Implement texture type and sampler type match checking in WebGL2 |
|||||||
Issue descriptionFor example, if the texture is RGBA32UI, and sampler is not a integer sampler, then we should generate INVALID_OPERATION at draw time. See https://www.khronos.org/registry/webgl/specs/latest/2.0/#5.23 Conformance test is conformance2/uniforms/incompatible-texture-type-for-sampler.html (thanks gman@)
,
Nov 27
,
Dec 3
,
Dec 19
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/4d1557e84992428767937e98808d3bbad915e53f commit 4d1557e84992428767937e98808d3bbad915e53f Author: James Darpinian <jdarpinian@chromium.org> Date: Wed Dec 19 07:17:47 2018 Roll WebGL 5b6cbd7..a2b3563 https://chromium.googlesource.com/external/khronosgroup/webgl.git/+log/5b6cbd7..a2b3563 Bug: 849576, 809237 , 911918 , angleproject:3012 Bug: 913301, 912842 , 913033 , 563816 , 788439 Bug: angleproject:3033 Change-Id: I9b257afd69d26e75d1635633f556249583fdaa52 Cq-Include-Trybots: luci.chromium.try:win_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_angle_rel_ng;luci.chromium.try:win_angle_rel_ng Reviewed-on: https://chromium-review.googlesource.com/c/1383329 Commit-Queue: James Darpinian <jdarpinian@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Cr-Commit-Position: refs/heads/master@{#617754} [modify] https://crrev.com/4d1557e84992428767937e98808d3bbad915e53f/DEPS [modify] https://crrev.com/4d1557e84992428767937e98808d3bbad915e53f/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py [modify] https://crrev.com/4d1557e84992428767937e98808d3bbad915e53f/content/test/gpu/gpu_tests/webgl_conformance_revision.txt
,
Jan 4
The following revision refers to this bug: https://chromium.googlesource.com/angle/angle/+/e4109f27136d721659e7b545aaead2815fef2918 commit e4109f27136d721659e7b545aaead2815fef2918 Author: James Darpinian <jdarpinian@chromium.org> Date: Fri Jan 04 02:03:28 2019 WebGL: validate texture format matches sampler type WebGL requires that drawing produces INVALID_OPERATION if a texture's format doesn't match the sampler type it is bound to. This is a little confusing because samplers have two attributes that could be called "type": addressing mode (2D/3D/Cube), and component format (float/signed/unsigned/shadow). ANGLE already handled checking the addressing mode; this change adds checking for the component format. Fixes WebGL conformance test conformance2/uniforms/incompatible-texture-type-for-sampler.html Bug: chromium:809237 Change-Id: I52ebfecd92625e3ee10274cb5f548d7e53de72dd Reviewed-on: https://chromium-review.googlesource.com/c/1377611 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: James Darpinian <jdarpinian@chromium.org> [modify] https://crrev.com/e4109f27136d721659e7b545aaead2815fef2918/src/libANGLE/Texture.cpp [modify] https://crrev.com/e4109f27136d721659e7b545aaead2815fef2918/src/common/utilities.h [modify] https://crrev.com/e4109f27136d721659e7b545aaead2815fef2918/src/common/gen_uniform_type_table.py [modify] https://crrev.com/e4109f27136d721659e7b545aaead2815fef2918/src/libANGLE/State.cpp [modify] https://crrev.com/e4109f27136d721659e7b545aaead2815fef2918/src/tests/gl_tests/StateChangeTest.cpp [modify] https://crrev.com/e4109f27136d721659e7b545aaead2815fef2918/src/libANGLE/ErrorStrings.h [modify] https://crrev.com/e4109f27136d721659e7b545aaead2815fef2918/src/libANGLE/validationES.cpp [modify] https://crrev.com/e4109f27136d721659e7b545aaead2815fef2918/scripts/run_code_generation_hashes.json [modify] https://crrev.com/e4109f27136d721659e7b545aaead2815fef2918/src/libANGLE/Program.h [modify] https://crrev.com/e4109f27136d721659e7b545aaead2815fef2918/src/libANGLE/MemoryProgramCache.cpp [modify] https://crrev.com/e4109f27136d721659e7b545aaead2815fef2918/src/libANGLE/Texture.h [modify] https://crrev.com/e4109f27136d721659e7b545aaead2815fef2918/src/common/uniform_type_info_autogen.cpp [modify] https://crrev.com/e4109f27136d721659e7b545aaead2815fef2918/src/libANGLE/State.h [modify] https://crrev.com/e4109f27136d721659e7b545aaead2815fef2918/src/libANGLE/Program.cpp
,
Jan 4
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/3add1473e92002f7c1f9718636cb545d00fdbef7 commit 3add1473e92002f7c1f9718636cb545d00fdbef7 Author: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com> Date: Fri Jan 04 03:26:30 2019 Roll src/third_party/angle 225f08bf85a3..e4109f27136d (1 commits) https://chromium.googlesource.com/angle/angle.git/+log/225f08bf85a3..e4109f27136d git log 225f08bf85a3..e4109f27136d --date=short --no-merges --format='%ad %ae %s' 2019-01-04 jdarpinian@chromium.org WebGL: validate texture format matches sampler type Created with: gclient setdep -r src/third_party/angle@e4109f27136d The AutoRoll server is located here: https://autoroll.skia.org/r/angle-chromium-autoroll Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+/master/autoroll/README.md If the roll is causing failures, please contact the current sheriff, who should be CC'd on the roll, and stop the roller if necessary. CQ_INCLUDE_TRYBOTS=luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel BUG= chromium:809237 TBR=syoussefi@chromium.org Change-Id: Ic594afb3521a746b929d588bb130d454908513c5 Reviewed-on: https://chromium-review.googlesource.com/c/1395346 Reviewed-by: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#619875} [modify] https://crrev.com/3add1473e92002f7c1f9718636cb545d00fdbef7/DEPS
,
Jan 4
,
Jan 9
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0fce45278dd0c9622984502bd7b427ae39dddd7b commit 0fce45278dd0c9622984502bd7b427ae39dddd7b Author: James Darpinian <jdarpinian@chromium.org> Date: Wed Jan 09 02:46:54 2019 gpu: Check that texture format matches sampler This validation is required by the WebGL 2 spec and tested in conformance2/uniforms/incompatible-texture-type-for-sampler.html Bug: 809237 Change-Id: I288566e27ee17e4a38208f6ae8369dd40d31d8ef Reviewed-on: https://chromium-review.googlesource.com/c/1368832 Commit-Queue: James Darpinian <jdarpinian@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Cr-Commit-Position: refs/heads/master@{#621014} [modify] https://crrev.com/0fce45278dd0c9622984502bd7b427ae39dddd7b/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py [modify] https://crrev.com/0fce45278dd0c9622984502bd7b427ae39dddd7b/gpu/command_buffer/service/gles2_cmd_decoder.cc [modify] https://crrev.com/0fce45278dd0c9622984502bd7b427ae39dddd7b/gpu/command_buffer/service/texture_manager.cc [modify] https://crrev.com/0fce45278dd0c9622984502bd7b427ae39dddd7b/gpu/command_buffer/service/texture_manager.h
,
Jan 9
WebglConformance_conformance2_uniforms_incompatible_texture_type_for_sampler fails on Linux FYI Release (AMD R7 240) https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Linux%20FYI%20Release%20%28AMD%20R7%20240%29/2675 Says it's crashing in amdgpu_dri.so, but the stack looks suspicious Crash reason: SIGSEGV Crash address: 0x48 Process uptime: not available Thread 0 (crashed) 0 amdgpu_dri.so + 0x15ec047 rax = 0x0000000000000001 rdx = 0x0000000000000000 rcx = 0x000000000000005c rbx = 0x00007f90f90bc000 rsi = 0x0000000000000000 rdi = 0x00007f90fbffa6a0 rbp = 0x00007f90f96b2040 rsp = 0x00007ffe957f05b8 r8 = 0x000000000000005c r9 = 0x000000000000005c r10 = 0x00007f90f9762cc0 r11 = 0x0000269409b46a08 r12 = 0x00007f90f912bc00 r13 = 0x0000000000000000 r14 = 0x0000000000000000 r15 = 0x0000000000000000 rip = 0x00007f90faff8047 Found by: given as instruction pointer in context 1 amdgpu_dri.so + 0x18eaf33 rsp = 0x00007ffe957f0620 rip = 0x00007f90fb2f6f33 Found by: stack scanning 2 amdgpu_dri.so + 0x162f89b rsp = 0x00007ffe957f06e0 rip = 0x00007f90fb03b89b Found by: stack scanning 3 amdgpu_dri.so + 0x1904c0b rsp = 0x00007ffe957f0720 rip = 0x00007f90fb310c0b Found by: stack scanning 4 amdgpu_dri.so + 0x17411af rsp = 0x00007ffe957f0760 rip = 0x00007f90fb14d1af Found by: stack scanning 5 amdgpu_dri.so + 0x1904c0b rsp = 0x00007ffe957f07a0 rip = 0x00007f90fb310c0b Found by: stack scanning 6 amdgpu_dri.so + 0x16adf85 rsp = 0x00007ffe957f07e0 rip = 0x00007f90fb0b9f85 Found by: stack scanning 7 amdgpu_dri.so + 0x18f3160 rsp = 0x00007ffe957f0860 rip = 0x00007f90fb2ff160 Found by: stack scanning 8 amdgpu_dri.so + 0x18eb2c0 rsp = 0x00007ffe957f08a0 rip = 0x00007f90fb2f72c0 Found by: stack scanning 9 amdgpu_dri.so + 0x18eb31b rsp = 0x00007ffe957f08e0 rip = 0x00007f90fb2f731b Found by: stack scanning 10 amdgpu_dri.so + 0x1902a40 rsp = 0x00007ffe957f0920 rip = 0x00007f90fb30ea40 Found by: stack scanning 11 chrome!tc_malloc [tcmalloc.cc : 0 + 0x5] rsp = 0x00007ffe957f0930 rip = 0x0000555e5d91bf1d Found by: stack scanning 12 amdgpu_dri.so + 0x18c3b82 rsp = 0x00007ffe957f09e0 rip = 0x00007f90fb2cfb82 Found by: stack scanning 13 amdgpu_dri.so + 0x18fcbbf rsp = 0x00007ffe957f0a20 rip = 0x00007f90fb308bbf Found by: stack scanning 14 amdgpu_dri.so + 0x18829be rsp = 0x00007ffe957f0a60 rip = 0x00007f90fb28e9be Found by: stack scanning 15 amdgpu_dri.so + 0x10fa875 rsp = 0x00007ffe957f0aa0 rip = 0x00007f90fab06875 Found by: stack scanning 16 amdgpu_dri.so + 0x18e5328 rsp = 0x00007ffe957f0ae0 rip = 0x00007f90fb2f1328 Found by: stack scanning 17 amdgpu_dri.so + 0x10e1f09 rsp = 0x00007ffe957f0ba0 rip = 0x00007f90faaedf09 Found by: stack scanning 18 chrome!operator new [allocator_shim.cc : 160 + 0xa] rsp = 0x00007ffe957f0cb0 rip = 0x0000555e5847000e Found by: stack scanning Going to skip the test there.
,
Jan 9
,
Jan 9
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/dc969ea6f0d44803e555091f1e9ab430707b56a6 commit dc969ea6f0d44803e555091f1e9ab430707b56a6 Author: Yuly Novikov <ynovikov@chromium.org> Date: Wed Jan 09 19:08:51 2019 Suppress two WebGL2 tests conformance2/uniforms/incompatible-texture-type-for-sampler.html Skip on Linux AMD conformance2/vertex_arrays/vertex-array-object.html Flaky on Win Nvidia GL passthrough TBR=kbr@chromium.org Bug: 809237 , 920265 Change-Id: I27e65f987284ae05741617e3a7ac62ec745caa7a Reviewed-on: https://chromium-review.googlesource.com/c/1403322 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Cr-Commit-Position: refs/heads/master@{#621251} [modify] https://crrev.com/dc969ea6f0d44803e555091f1e9ab430707b56a6/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py
,
Jan 9
We suspect the AMD failures are a driver bug that will be fixed when we upgrade the driver.
,
Jan 17
(5 days ago)
,
Today
(18 hours ago)
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b270239f4ec4ab1a00332bdf3fda4bb5cb0eaecb commit b270239f4ec4ab1a00332bdf3fda4bb5cb0eaecb Author: James Darpinian <jdarpinian@chromium.org> Date: Tue Jan 22 20:56:19 2019 gpu: Fix format/internalformat confusion Several code paths in the command decoder were creating textures with format == internalformat. However, many internalformat values are not valid as format values. This was not checked before http://crrev.com/c/1368832 , but now it results in errors. This change calls TextureManager::ExtractFormatFromStorageFormat to get the correct format for the specified internalformat. Fixes video display in the YouTube Android app on some Chrome OS devices. Bug: 920967 , 809237 , 628064 Change-Id: I93c6449286094d895f45572fa0db5dbead1797ea Reviewed-on: https://chromium-review.googlesource.com/c/1425728 Commit-Queue: James Darpinian <jdarpinian@chromium.org> Reviewed-by: Antoine Labour <piman@chromium.org> Cr-Commit-Position: refs/heads/master@{#624907} [modify] https://crrev.com/b270239f4ec4ab1a00332bdf3fda4bb5cb0eaecb/gpu/command_buffer/service/gles2_cmd_decoder.cc [modify] https://crrev.com/b270239f4ec4ab1a00332bdf3fda4bb5cb0eaecb/gpu/command_buffer/service/shared_image_backing_factory_gl_texture.cc [modify] https://crrev.com/b270239f4ec4ab1a00332bdf3fda4bb5cb0eaecb/gpu/command_buffer/service/texture_manager.cc |
|||||||
►
Sign in to add a comment |
|||||||
Comment 1 by jdarpinian@chromium.org
, Nov 27