New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 809237 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Jan 9
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug

Blocked on:
issue angleproject:3048
issue 920291

Blocking:
issue 662644
issue 920967


Participants' hotlists:
webgl-conformance-all


Sign in to add a comment

Implement texture type and sampler type match checking in WebGL2

Project Member Reported by zmo@chromium.org, Feb 5 2018

Issue description

For 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@)
 
Blocking: 662644
Labels: webgl-conformance
Owner: jdarpinian@chromium.org
Status: Started (was: Available)
Project Member

Comment 4 by bugdroid1@chromium.org, 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

Project Member

Comment 5 by bugdroid1@chromium.org, 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

Project Member

Comment 6 by bugdroid1@chromium.org, 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

Blockedon: angleproject:3048
Project Member

Comment 8 by bugdroid1@chromium.org, 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

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.
Blockedon: 920291
Project Member

Comment 11 by bugdroid1@chromium.org, 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

Status: Fixed (was: Started)
We suspect the AMD failures are a driver bug that will be fixed when we upgrade the driver.

Comment 13 by kbr@chromium.org, Jan 17 (5 days ago)

Blocking: 920967
Project Member

Comment 14 by bugdroid, 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