Bug 223326

Summary: webgl/1.0.x/conformance/textures/misc/exif-orientation.html fails
Product: WebKit Reporter: Kimmo Kinnunen <kkinnunen>
Component: WebGLAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: dcasorran, dino, kbr, kkinnunen, micah.millereshleman, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: Other   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=242169
Bug Depends on:    
Bug Blocks: 222812    

Description Kimmo Kinnunen 2021-03-16 23:40:25 PDT
webgl/1.0.4/conformance/textures/misc/exif-orientation.html fails
Comment 1 Kimmo Kinnunen 2021-03-17 00:30:56 PDT
*** Bug 223342 has been marked as a duplicate of this bug. ***
Comment 2 Kimmo Kinnunen 2021-03-17 01:17:01 PDT
https://www.khronos.org/registry/webgl/sdk/tests/conformance/textures/misc/exif-orientation.html?webglVersion=1&quiet=0&quick=1


Verifies EXIF orientation is respected when uploading images to WebGL textures

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".

----------------------------------------------------------------
Testing exif-orientation-test-1-normal.jpg via ImageBitmap from Blob
  (createImageBitmap options not supported - skipping flipY=true case)
  Testing texImage2D, flipY = false
  Checking top
PASS shouldBe 255,0,0 +/-5
  Checking left
PASS shouldBe 0,0,255 +/-5
  Checking right
PASS shouldBe 255,255,0 +/-5
  Checking bottom
PASS shouldBe 0,255,0 +/-5
  Testing texSubImage2D, flipY = false
  Checking top
PASS shouldBe 255,0,0 +/-5
  Checking left
PASS shouldBe 0,0,255 +/-5
  Checking right
PASS shouldBe 255,255,0 +/-5
  Checking bottom
PASS shouldBe 0,255,0 +/-5
----------------------------------------------------------------
Testing exif-orientation-test-1-normal.jpg via HTMLImageElement
  Testing texImage2D, flipY = true
  Checking top
PASS shouldBe 255,0,0 +/-5
  Checking left
PASS shouldBe 0,0,255 +/-5
  Checking right
PASS shouldBe 255,255,0 +/-5
  Checking bottom
PASS shouldBe 0,255,0 +/-5
  Testing texSubImage2D, flipY = true
  Checking top
PASS shouldBe 255,0,0 +/-5
  Checking left
PASS shouldBe 0,0,255 +/-5
  Checking right
PASS shouldBe 255,255,0 +/-5
  Checking bottom
PASS shouldBe 0,255,0 +/-5
  Testing texImage2D, flipY = false
  Checking top
PASS shouldBe 255,0,0 +/-5
  Checking left
PASS shouldBe 0,0,255 +/-5
  Checking right
PASS shouldBe 255,255,0 +/-5
  Checking bottom
PASS shouldBe 0,255,0 +/-5
  Testing texSubImage2D, flipY = false
  Checking top
PASS shouldBe 255,0,0 +/-5
  Checking left
PASS shouldBe 0,0,255 +/-5
  Checking right
PASS shouldBe 255,255,0 +/-5
  Checking bottom
PASS shouldBe 0,255,0 +/-5
----------------------------------------------------------------
Testing exif-orientation-test-2-mirror-horizontal.jpg via ImageBitmap from Blob
  (createImageBitmap options not supported - skipping flipY=true case)
  Testing texImage2D, flipY = false
  Checking top
PASS shouldBe 255,0,0 +/-5
  Checking left
FAIL shouldBe 0,0,255 +/-5
at (102, 128) expected: 0,0,255 was 255,255,1
  Checking right
FAIL shouldBe 255,255,0 +/-5
at (153, 128) expected: 255,255,0 was 0,0,254
  Checking bottom
PASS shouldBe 0,255,0 +/-5
  Testing texSubImage2D, flipY = false
  Checking top
PASS shouldBe 255,0,0 +/-5
  Checking left
FAIL shouldBe 0,0,255 +/-5
at (102, 128) expected: 0,0,255 was 255,255,1
  Checking right
FAIL shouldBe 255,255,0 +/-5
at (153, 128) expected: 255,255,0 was 0,0,254
  Checking bottom
PASS shouldBe 0,255,0 +/-5
----------------------------------------------------------------
Testing exif-orientation-test-2-mirror-horizontal.jpg via HTMLImageElement
  Testing texImage2D, flipY = true
  Checking top
PASS shouldBe 255,0,0 +/-5
  Checking left
PASS shouldBe 0,0,255 +/-5
  Checking right
PASS shouldBe 255,255,0 +/-5
  Checking bottom
PASS shouldBe 0,255,0 +/-5
  Testing texSubImage2D, flipY = true
  Checking top
PASS shouldBe 255,0,0 +/-5
  Checking left
PASS shouldBe 0,0,255 +/-5
  Checking right
PASS shouldBe 255,255,0 +/-5
  Checking bottom
PASS shouldBe 0,255,0 +/-5
  Testing texImage2D, flipY = false
  Checking top
PASS shouldBe 255,0,0 +/-5
  Checking left
PASS shouldBe 0,0,255 +/-5
  Checking right
PASS shouldBe 255,255,0 +/-5
  Checking bottom
PASS shouldBe 0,255,0 +/-5
  Testing texSubImage2D, flipY = false
  Checking top
PASS shouldBe 255,0,0 +/-5
  Checking left
PASS shouldBe 0,0,255 +/-5
  Checking right
PASS shouldBe 255,255,0 +/-5
  Checking bottom
PASS shouldBe 0,255,0 +/-5
----------------------------------------------------------------
Testing exif-orientation-test-3-rotate-180.jpg via ImageBitmap from Blob
  (createImageBitmap options not supported - skipping flipY=true case)
  Testing texImage2D, flipY = false
  Checking top
FAIL shouldBe 255,0,0 +/-5
at (128, 64) expected: 255,0,0 was 0,255,1
  Checking left
FAIL shouldBe 0,0,255 +/-5
at (102, 128) expected: 0,0,255 was 255,255,1
  Checking right
FAIL shouldBe 255,255,0 +/-5
at (153, 128) expected: 255,255,0 was 0,0,254
  Checking bottom
FAIL shouldBe 0,255,0 +/-5
at (128, 192) expected: 0,255,0 was 254,0,0
  Testing texSubImage2D, flipY = false
  Checking top
FAIL shouldBe 255,0,0 +/-5
at (128, 64) expected: 255,0,0 was 0,255,1
  Checking left
FAIL shouldBe 0,0,255 +/-5
at (102, 128) expected: 0,0,255 was 255,255,1
  Checking right
FAIL shouldBe 255,255,0 +/-5
at (153, 128) expected: 255,255,0 was 0,0,254
  Checking bottom
FAIL shouldBe 0,255,0 +/-5
at (128, 192) expected: 0,255,0 was 254,0,0
----------------------------------------------------------------
Testing exif-orientation-test-3-rotate-180.jpg via HTMLImageElement
  Testing texImage2D, flipY = true
  Checking top
PASS shouldBe 255,0,0 +/-5
  Checking left
PASS shouldBe 0,0,255 +/-5
  Checking right
PASS shouldBe 255,255,0 +/-5
  Checking bottom
PASS shouldBe 0,255,0 +/-5
  Testing texSubImage2D, flipY = true
  Checking top
PASS shouldBe 255,0,0 +/-5
  Checking left
PASS shouldBe 0,0,255 +/-5
  Checking right
PASS shouldBe 255,255,0 +/-5
  Checking bottom
PASS shouldBe 0,255,0 +/-5
  Testing texImage2D, flipY = false
  Checking top
PASS shouldBe 255,0,0 +/-5
  Checking left
PASS shouldBe 0,0,255 +/-5
  Checking right
PASS shouldBe 255,255,0 +/-5
  Checking bottom
PASS shouldBe 0,255,0 +/-5
  Testing texSubImage2D, flipY = false
  Checking top
PASS shouldBe 255,0,0 +/-5
  Checking left
PASS shouldBe 0,0,255 +/-5
  Checking right
PASS shouldBe 255,255,0 +/-5
  Checking bottom
PASS shouldBe 0,255,0 +/-5
----------------------------------------------------------------
Testing exif-orientation-test-4-mirror-vertical.jpg via ImageBitmap from Blob
  (createImageBitmap options not supported - skipping flipY=true case)
  Testing texImage2D, flipY = false
  Checking top
FAIL shouldBe 255,0,0 +/-5
at (128, 64) expected: 255,0,0 was 0,255,1
  Checking left
PASS shouldBe 0,0,255 +/-5
  Checking right
PASS shouldBe 255,255,0 +/-5
  Checking bottom
FAIL shouldBe 0,255,0 +/-5
at (128, 192) expected: 0,255,0 was 254,0,0
  Testing texSubImage2D, flipY = false
  Checking top
FAIL shouldBe 255,0,0 +/-5
at (128, 64) expected: 255,0,0 was 0,255,1
  Checking left
PASS shouldBe 0,0,255 +/-5
  Checking right
PASS shouldBe 255,255,0 +/-5
  Checking bottom
FAIL shouldBe 0,255,0 +/-5
at (128, 192) expected: 0,255,0 was 254,0,0
----------------------------------------------------------------
Testing exif-orientation-test-4-mirror-vertical.jpg via HTMLImageElement
  Testing texImage2D, flipY = true
  Checking top
PASS shouldBe 255,0,0 +/-5
  Checking left
PASS shouldBe 0,0,255 +/-5
  Checking right
PASS shouldBe 255,255,0 +/-5
  Checking bottom
PASS shouldBe 0,255,0 +/-5
  Testing texSubImage2D, flipY = true
  Checking top
PASS shouldBe 255,0,0 +/-5
  Checking left
PASS shouldBe 0,0,255 +/-5
  Checking right
PASS shouldBe 255,255,0 +/-5
  Checking bottom
PASS shouldBe 0,255,0 +/-5
  Testing texImage2D, flipY = false
  Checking top
PASS shouldBe 255,0,0 +/-5
  Checking left
PASS shouldBe 0,0,255 +/-5
  Checking right
PASS shouldBe 255,255,0 +/-5
  Checking bottom
PASS shouldBe 0,255,0 +/-5
  Testing texSubImage2D, flipY = false
  Checking top
PASS shouldBe 255,0,0 +/-5
  Checking left
PASS shouldBe 0,0,255 +/-5
  Checking right
PASS shouldBe 255,255,0 +/-5
  Checking bottom
PASS shouldBe 0,255,0 +/-5
----------------------------------------------------------------
Testing exif-orientation-test-5-mirror-horizontal-90-ccw.jpg via ImageBitmap from Blob
  (createImageBitmap options not supported - skipping flipY=true case)
  Testing texImage2D, flipY = false
  Checking top
FAIL shouldBe 255,0,0 +/-5
at (128, 64) expected: 255,0,0 was 0,0,254
  Checking left
FAIL shouldBe 0,0,255 +/-5
at (102, 128) expected: 0,0,255 was 255,255,1
  Checking right
PASS shouldBe 255,255,0 +/-5
  Checking bottom
FAIL shouldBe 0,255,0 +/-5
at (128, 192) expected: 0,255,0 was 255,255,0
  Testing texSubImage2D, flipY = false
  Checking top
FAIL shouldBe 255,0,0 +/-5
at (128, 64) expected: 255,0,0 was 0,0,254
  Checking left
FAIL shouldBe 0,0,255 +/-5
at (102, 128) expected: 0,0,255 was 255,255,1
  Checking right
PASS shouldBe 255,255,0 +/-5
  Checking bottom
FAIL shouldBe 0,255,0 +/-5
at (128, 192) expected: 0,255,0 was 255,255,0
----------------------------------------------------------------
Testing exif-orientation-test-5-mirror-horizontal-90-ccw.jpg via HTMLImageElement
  Testing texImage2D, flipY = true
  Checking top
PASS shouldBe 255,0,0 +/-5
  Checking left
PASS shouldBe 0,0,255 +/-5
  Checking right
PASS shouldBe 255,255,0 +/-5
  Checking bottom
PASS shouldBe 0,255,0 +/-5
  Testing texSubImage2D, flipY = true
  Checking top
PASS shouldBe 255,0,0 +/-5
  Checking left
PASS shouldBe 0,0,255 +/-5
  Checking right
PASS shouldBe 255,255,0 +/-5
  Checking bottom
PASS shouldBe 0,255,0 +/-5
  Testing texImage2D, flipY = false
  Checking top
PASS shouldBe 255,0,0 +/-5
  Checking left
PASS shouldBe 0,0,255 +/-5
  Checking right
PASS shouldBe 255,255,0 +/-5
  Checking bottom
PASS shouldBe 0,255,0 +/-5
  Testing texSubImage2D, flipY = false
  Checking top
PASS shouldBe 255,0,0 +/-5
  Checking left
PASS shouldBe 0,0,255 +/-5
  Checking right
PASS shouldBe 255,255,0 +/-5
  Checking bottom
PASS shouldBe 0,255,0 +/-5
----------------------------------------------------------------
Testing exif-orientation-test-6-90-ccw.jpg via ImageBitmap from Blob
  (createImageBitmap options not supported - skipping flipY=true case)
  Testing texImage2D, flipY = false
  Checking top
FAIL shouldBe 255,0,0 +/-5
at (128, 64) expected: 255,0,0 was 255,255,1
  Checking left
PASS shouldBe 0,0,255 +/-5
  Checking right
FAIL shouldBe 255,255,0 +/-5
at (153, 128) expected: 255,255,0 was 0,0,254
  Checking bottom
FAIL shouldBe 0,255,0 +/-5
at (128, 192) expected: 0,255,0 was 0,0,254
  Testing texSubImage2D, flipY = false
  Checking top
FAIL shouldBe 255,0,0 +/-5
at (128, 64) expected: 255,0,0 was 255,255,1
  Checking left
PASS shouldBe 0,0,255 +/-5
  Checking right
FAIL shouldBe 255,255,0 +/-5
at (153, 128) expected: 255,255,0 was 0,0,254
  Checking bottom
FAIL shouldBe 0,255,0 +/-5
at (128, 192) expected: 0,255,0 was 0,0,254
----------------------------------------------------------------
Testing exif-orientation-test-6-90-ccw.jpg via HTMLImageElement
  Testing texImage2D, flipY = true
  Checking top
PASS shouldBe 255,0,0 +/-5
  Checking left
PASS shouldBe 0,0,255 +/-5
  Checking right
PASS shouldBe 255,255,0 +/-5
  Checking bottom
PASS shouldBe 0,255,0 +/-5
  Testing texSubImage2D, flipY = true
  Checking top
PASS shouldBe 255,0,0 +/-5
  Checking left
PASS shouldBe 0,0,255 +/-5
  Checking right
PASS shouldBe 255,255,0 +/-5
  Checking bottom
PASS shouldBe 0,255,0 +/-5
  Testing texImage2D, flipY = false
  Checking top
PASS shouldBe 255,0,0 +/-5
  Checking left
PASS shouldBe 0,0,255 +/-5
  Checking right
PASS shouldBe 255,255,0 +/-5
  Checking bottom
PASS shouldBe 0,255,0 +/-5
  Testing texSubImage2D, flipY = false
  Checking top
PASS shouldBe 255,0,0 +/-5
  Checking left
PASS shouldBe 0,0,255 +/-5
  Checking right
PASS shouldBe 255,255,0 +/-5
  Checking bottom
PASS shouldBe 0,255,0 +/-5
----------------------------------------------------------------
Testing exif-orientation-test-7-mirror-horizontal-90-cw.jpg via ImageBitmap from Blob
  (createImageBitmap options not supported - skipping flipY=true case)
  Testing texImage2D, flipY = false
  Checking top
FAIL shouldBe 255,0,0 +/-5
at (128, 64) expected: 255,0,0 was 255,255,1
  Checking left
PASS shouldBe 0,0,255 +/-5
  Checking right
FAIL shouldBe 255,255,0 +/-5
at (153, 128) expected: 255,255,0 was 0,0,254
  Checking bottom
FAIL shouldBe 0,255,0 +/-5
at (128, 192) expected: 0,255,0 was 0,0,254
  Testing texSubImage2D, flipY = false
  Checking top
FAIL shouldBe 255,0,0 +/-5
at (128, 64) expected: 255,0,0 was 255,255,1
  Checking left
PASS shouldBe 0,0,255 +/-5
  Checking right
FAIL shouldBe 255,255,0 +/-5
at (153, 128) expected: 255,255,0 was 0,0,254
  Checking bottom
FAIL shouldBe 0,255,0 +/-5
at (128, 192) expected: 0,255,0 was 0,0,254
----------------------------------------------------------------
Testing exif-orientation-test-7-mirror-horizontal-90-cw.jpg via HTMLImageElement
  Testing texImage2D, flipY = true
  Checking top
PASS shouldBe 255,0,0 +/-5
  Checking left
PASS shouldBe 0,0,255 +/-5
  Checking right
PASS shouldBe 255,255,0 +/-5
  Checking bottom
PASS shouldBe 0,255,0 +/-5
  Testing texSubImage2D, flipY = true
  Checking top
PASS shouldBe 255,0,0 +/-5
  Checking left
PASS shouldBe 0,0,255 +/-5
  Checking right
PASS shouldBe 255,255,0 +/-5
  Checking bottom
PASS shouldBe 0,255,0 +/-5
  Testing texImage2D, flipY = false
  Checking top
PASS shouldBe 255,0,0 +/-5
  Checking left
PASS shouldBe 0,0,255 +/-5
  Checking right
PASS shouldBe 255,255,0 +/-5
  Checking bottom
PASS shouldBe 0,255,0 +/-5
  Testing texSubImage2D, flipY = false
  Checking top
PASS shouldBe 255,0,0 +/-5
  Checking left
PASS shouldBe 0,0,255 +/-5
  Checking right
PASS shouldBe 255,255,0 +/-5
  Checking bottom
PASS shouldBe 0,255,0 +/-5
----------------------------------------------------------------
Testing exif-orientation-test-8-90-cw.jpg via ImageBitmap from Blob
  (createImageBitmap options not supported - skipping flipY=true case)
  Testing texImage2D, flipY = false
  Checking top
FAIL shouldBe 255,0,0 +/-5
at (128, 64) expected: 255,0,0 was 0,0,254
  Checking left
FAIL shouldBe 0,0,255 +/-5
at (102, 128) expected: 0,0,255 was 255,255,1
  Checking right
PASS shouldBe 255,255,0 +/-5
  Checking bottom
FAIL shouldBe 0,255,0 +/-5
at (128, 192) expected: 0,255,0 was 255,255,0
  Testing texSubImage2D, flipY = false
  Checking top
FAIL shouldBe 255,0,0 +/-5
at (128, 64) expected: 255,0,0 was 0,0,254
  Checking left
FAIL shouldBe 0,0,255 +/-5
at (102, 128) expected: 0,0,255 was 255,255,1
  Checking right
PASS shouldBe 255,255,0 +/-5
  Checking bottom
FAIL shouldBe 0,255,0 +/-5
at (128, 192) expected: 0,255,0 was 255,255,0
----------------------------------------------------------------
Testing exif-orientation-test-8-90-cw.jpg via HTMLImageElement
  Testing texImage2D, flipY = true
  Checking top
PASS shouldBe 255,0,0 +/-5
  Checking left
PASS shouldBe 0,0,255 +/-5
  Checking right
PASS shouldBe 255,255,0 +/-5
  Checking bottom
PASS shouldBe 0,255,0 +/-5
  Testing texSubImage2D, flipY = true
  Checking top
PASS shouldBe 255,0,0 +/-5
  Checking left
PASS shouldBe 0,0,255 +/-5
  Checking right
PASS shouldBe 255,255,0 +/-5
  Checking bottom
PASS shouldBe 0,255,0 +/-5
  Testing texImage2D, flipY = false
  Checking top
PASS shouldBe 255,0,0 +/-5
  Checking left
PASS shouldBe 0,0,255 +/-5
  Checking right
PASS shouldBe 255,255,0 +/-5
  Checking bottom
PASS shouldBe 0,255,0 +/-5
  Testing texSubImage2D, flipY = false
  Checking top
PASS shouldBe 255,0,0 +/-5
  Checking left
PASS shouldBe 0,0,255 +/-5
  Checking right
PASS shouldBe 255,255,0 +/-5
  Checking bottom
PASS shouldBe 0,255,0 +/-5
PASS successfullyParsed is true

TEST COMPLETE
Comment 3 Kimmo Kinnunen 2021-03-17 01:45:40 PDT
At least macOS 11.3, iMacPro1,1, Radeon Pro Vega 56
Comment 4 Radar WebKit Bug Importer 2021-03-23 23:41:11 PDT
<rdar://problem/75772814>
Comment 5 Kimmo Kinnunen 2021-08-10 02:54:45 PDT
*** Bug 228948 has been marked as a duplicate of this bug. ***
Comment 6 Kimmo Kinnunen 2022-06-29 23:35:38 PDT
https://github.com/WebKit/WebKit/pull/1897
Comment 7 Kimmo Kinnunen 2022-06-29 23:51:59 PDT
*** Bug 242137 has been marked as a duplicate of this bug. ***
Comment 8 EWS 2022-08-01 13:06:57 PDT
Committed 253004@main (8758b1b9f855): <https://commits.webkit.org/253004@main>

Reviewed commits have been landed. Closing PR #1897 and removing active labels.