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

Issue 681641 link

Starred by 6 users

Issue metadata

Status: Verified
Owner:
Email to this user bounced
Closed: Feb 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 2
Type: Bug



Sign in to add a comment

GPU.FYI Mac GPU ASAN Release mac-10.12 webgl_conformance_tests failure shader compile

Project Member Reported by weiliangc@chromium.org, Jan 16 2017

Issue description

Found on:
https://build.chromium.org/p/chromium.gpu.fyi/builders/Mac%20GPU%20ASAN%20Release

Failure:
webgl_conformance_tests on Intel GPU on Mac on Mac-10.12
Run on OS: 'Mac-10.12'
failures:
WebglConformance_conformance_more_functions_copyTexImage2D
WebglConformance_conformance_more_functions_copyTexSubImage2D

Happening since targeting mac-10.12

Raw Log at: https://chromium-swarm.appspot.com/task?id=33c103f7b6b01010&refresh=10&show_raw=1

AssertionError: Error: Failed to compile shader identity-flip-vert, Shader info log: 
testRoundtrip

(webgl2 tests are flaky will file another bug for it)

Assign to kbr to see if there is a quick fix. If not feel free to assign back to me to disable the particular tests.
 

Comment 1 by kbr@chromium.org, Jan 17 2017

Cc: kbr@chromium.org
Owner: weiliangc@chromium.org
Sorry, there's no quick fix here. The out-of-bounds access is inside Apple's graphics driver.

WebglConformance_conformance_more_functions_copyTexImage2D (gpu_tests.webgl_conformance_integration_test.WebGLConformanceIntegrationTest) ... =================================================================
==21932==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x602000395631 at pc 0x0001049c84a0 bp 0x7fff5b283410 sp 0x7fff5b282bb8
READ of size 4 at 0x602000395631 thread T0
==21932==WARNING: invalid path to external symbolizer!
==21932==WARNING: Failed to use and restart external symbolizer!
#0 0x1049c849f in __asan_memmove (/b/s/w/ira56Cll/out/Release/Chromium.app/Contents/Versions/57.0.2984.0/Chromium Helper.app/Contents/MacOS/libclang_rt.asan_osx_dynamic.dylib+0x4e49f)
#1 0x7fff92b4a8c6 in glgProcessPixelsWithProcessor (/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib+0x78c6)
#2 0x7fff937fa034 in gleTextureImagePut (/System/Library/Frameworks/OpenGL.framework/Versions/A/Resources/GLEngine.bundle/GLEngine+0x14c034)
#3 0x7fff936c7c01 in glTexImage2D_Exec (/System/Library/Frameworks/OpenGL.framework/Versions/A/Resources/GLEngine.bundle/GLEngine+0x19c01)
#4 0x7fff92b3a46c in glTexImage2D (/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib+0x346c)
#5 0x11ce53a0f in gl::(anonymous namespace)::CustomTexImage2D(unsigned int, int, int, int, int, int, unsigned int, unsigned int, void const*) (/b/s/w/ira56Cll/out/Release/Chromium.app/Contents/Versions/57.0.2984.0/Chromium Framework.framework/Chromium Framework+0x88d7a0f)
#6 0x11cdf094f in gl::GLApiBase::glTexImage2DFn(unsigned int, int, int, int, int, int, unsigned int, unsigned int, void const*) (/b/s/w/ira56Cll/out/Release/Chromium.app/Contents/Versions/57.0.2984.0/Chromium Framework.framework/Chromium Framework+0x887494f)
#7 0x11d18ed16 in gpu::gles2::TextureManager::DoTexImage(gpu::gles2::DecoderTextureState*, gpu::gles2::ContextState*, gpu::gles2::DecoderFramebufferState*, char const*, gpu::gles2::TextureRef*, gpu::gles2::TextureManager::DoTexImageArguments const&) (/b/s/w/ira56Cll/out/Release/Chromium.app/Contents/Versions/57.0.2984.0/Chromium Framework.framework/Chromium Framework+0x8c12d16)
#8 0x11d18da6b in gpu::gles2::TextureManager::DoCubeMapWorkaround(gpu::gles2::DecoderTextureState*, gpu::gles2::ContextState*, gpu::gles2::DecoderFramebufferState*, gpu::gles2::TextureRef*, char const*, gpu::gles2::TextureManager::DoTexImageArguments const&) (/b/s/w/ira56Cll/out/Release/Chromium.app/Contents/Versions/57.0.2984.0/Chromium Framework.framework/Chromium Framework+0x8c11a6b)
#9 0x11d016833 in gpu::gles2::GLES2DecoderImpl::DoCopyTexImage2D(unsigned int, int, unsigned int, int, int, int, int, int) (/b/s/w/ira56Cll/out/Release/Chromium.app/Contents/Versions/57.0.2984.0/Chromium Framework.framework/Chromium Framework+0x8a9a833)
#10 0x11cf2e10b in gpu::gles2::GLES2DecoderImpl::HandleCopyTexImage2D(unsigned int, void const volatile*) (/b/s/w/ira56Cll/out/Release/Chromium.app/Contents/Versions/57.0.2984.0/Chromium Framework.framework/Chromium Framework+0x89b210b)
#11 0x11cfc2f12 in gpu::error::Error gpu::gles2::GLES2DecoderImpl::DoCommandsImpl<false>(unsigned int, void const volatile*, int, int*) (/b/s/w/ira56Cll/out/Release/Chromium.app/Contents/Versions/57.0.2984.0/Chromium Framework.framework/Chromium Framework+0x8a46f12)


Could you please add a suppression for these failures? Please use the new 'asan' keyword in the expectations. Thanks.

Project Member

Comment 2 by bugdroid1@chromium.org, Jan 18 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/51338e518cff08a8f54644cd10e85e0b67e38d01

commit 51338e518cff08a8f54644cd10e85e0b67e38d01
Author: weiliangc <weiliangc@chromium.org>
Date: Wed Jan 18 02:24:38 2017

Suppress Mac Intel ASAN Webgl conformace test failures

Mark WebglConformance_conformance_more_functions_copyTexImage2D and
WebglConformance_conformance_more_functions_copyTexSubImage2D as failure
in webgl_conformance_tests on Intel GPU on Mac on Mac-10.12

TBR=kbr@chromium.org
BUG= 681641 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2635243003
Cr-Commit-Position: refs/heads/master@{#444247}

[modify] https://crrev.com/51338e518cff08a8f54644cd10e85e0b67e38d01/content/test/gpu/gpu_tests/webgl_conformance_expectations.py

Comment 3 by ajuma@chromium.org, Jan 23 2017

This is failing the same way on AMD as well:
https://build.chromium.org/p/chromium.gpu.fyi/builders/Mac%20GPU%20ASAN%20Release/builds/1376

==3823==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x6020002a3691 at pc 0x00010c6f24a0 bp 0x7fff5355b3b0 sp 0x7fff5355ab58
READ of size 4 at 0x6020002a3691 thread T0
==3823==WARNING: invalid path to external symbolizer!
==3823==WARNING: Failed to use and restart external symbolizer!
#0 0x10c6f249f in __asan_memmove (/b/s/w/irPBPMo7/out/Release/Chromium.app/Contents/Versions/58.0.2991.0/Chromium Helper.app/Contents/MacOS/libclang_rt.asan_osx_dynamic.dylib+0x4e49f)
#1 0x7fffae6df8c6 in glgProcessPixelsWithProcessor (/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib+0x78c6)
#2 0x7fffaf38f034 in gleTextureImagePut (/System/Library/Frameworks/OpenGL.framework/Versions/A/Resources/GLEngine.bundle/GLEngine+0x14c034)
#3 0x7fffaf25cc01 in glTexImage2D_Exec (/System/Library/Frameworks/OpenGL.framework/Versions/A/Resources/GLEngine.bundle/GLEngine+0x19c01)
#4 0x7fffae6cf46c in glTexImage2D (/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib+0x346c)
#5 0x11a64658f in gl::(anonymous namespace)::CustomTexImage2D(unsigned int, int, int, int, int, int, unsigned int, unsigned int, void const*) (/b/s/w/irPBPMo7/out/Release/Chromium.app/Contents/Versions/58.0.2991.0/Chromium Framework.framework/Chromium Framework+0x897458f)
#6 0x11a5e34cf in gl::GLApiBase::glTexImage2DFn(unsigned int, int, int, int, int, int, unsigned int, unsigned int, void const*) (/b/s/w/irPBPMo7/out/Release/Chromium.app/Contents/Versions/58.0.2991.0/Chromium Framework.framework/Chromium Framework+0x89114cf)
#7 0x11a982d06 in gpu::gles2::TextureManager::DoTexImage(gpu::gles2::DecoderTextureState*, gpu::gles2::ContextState*, gpu::gles2::DecoderFramebufferState*, char const*, gpu::gles2::TextureRef*, gpu::gles2::TextureManager::DoTexImageArguments const&) (/b/s/w/irPBPMo7/out/Release/Chromium.app/Contents/Versions/58.0.2991.0/Chromium Framework.framework/Chromium Framework+0x8cb0d06)

I'll broaden the suppression.
Project Member

Comment 4 by bugdroid1@chromium.org, Jan 23 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/fb9fa9e5693926b6807bd1f48db5b8a751c1aa51

commit fb9fa9e5693926b6807bd1f48db5b8a751c1aa51
Author: ajuma <ajuma@chromium.org>
Date: Mon Jan 23 23:11:23 2017

Broaden suppression for Mac ASAN WebGL conformance test failure

This marks WebglConformance_conformance_more_functions_copyTexImage2D and
WebglConformance_conformance_more_functions_copyTexSubImage2D as
failing on all platforms, not just Intel.

BUG= 681641 
TBR=zmo@chromium.org
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2651673005
Cr-Commit-Position: refs/heads/master@{#445534}

[modify] https://crrev.com/fb9fa9e5693926b6807bd1f48db5b8a751c1aa51/content/test/gpu/gpu_tests/webgl_conformance_expectations.py

WebglConformance_conformance_more_functions_copyTexImage2D fails in webgl2_conformance_tests as well.
https://build.chromium.org/p/chromium.gpu.fyi/builders/Mac%20GPU%20ASAN%20Release/builds/1399
As well as WebglConformance_deqp_functional_gles3_texturespecification_basic_copyteximage2d.
Are we sure there is no bug in gpu::gles2::TextureManager::DoCubeMapWorkaround?
Is there a bug open for Apple?

Comment 7 by ajuma@chromium.org, Jan 25 2017

Cc: qiankun....@intel.com
+qiankun.miao who wrote DoCubeMapWorkaround
Also
WebglConformance_deqp_functional_gles3_negativetextureapi
in https://build.chromium.org/p/chromium.gpu.fyi/builders/Mac%20GPU%20ASAN%20Release/builds/1397

Cc: cwallez@chromium.org
Cc: zmo@chromium.org
 Issue 680845  has been merged into this issue.
Owner: qiankun....@intel.com
Qiankun, could you please confirm that this is a bug in Apple's driver, and not DoCubeMapWorkaround passing wrong values to the driver?
Project Member

Comment 12 by bugdroid1@chromium.org, Feb 7 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/264a4bdbd88094e20d723c493a07c97df2946859

commit 264a4bdbd88094e20d723c493a07c97df2946859
Author: ynovikov <ynovikov@chromium.org>
Date: Tue Feb 07 22:23:10 2017

Broaden suppression for Mac ASAN WebGL conformance test failure

This marks
WebglConformance_conformance_more_functions_copyTexImage2D
WebglConformance_conformance_more_functions_copyTexSubImage2D
WebglConformance_deqp_functional_gles3_negativetextureapi
WebglConformance_deqp_functional_gles3_texturespecification_basic_copyteximage2d
failing on all platforms, not just Intel.

BUG= 681641 
TBR=kbr@chromium.org
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2680743004
Cr-Commit-Position: refs/heads/master@{#448741}

[modify] https://crrev.com/264a4bdbd88094e20d723c493a07c97df2946859/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py

Comment 13 by kbr@chromium.org, Feb 8 2017

Cc: infe...@chromium.org kainino@chromium.org
 Issue 680323  has been merged into this issue.
I investigated this again and found this may be caused by small pixel buffer was passed to TexImage2D. I uploaded a CL to fix it: https://codereview.chromium.org/2683993002/.
Project Member

Comment 15 by bugdroid1@chromium.org, Feb 8 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c2a73adc758f50c5ee8bf8e79ac6fe3fe2c52ce3

commit c2a73adc758f50c5ee8bf8e79ac6fe3fe2c52ce3
Author: qiankun.miao <qiankun.miao@intel.com>
Date: Wed Feb 08 20:38:50 2017

Fix heap overflow caused by small buffer size

Calling DoTexImage with pixels_size == 1 for 1x1 size texture is not big
enough for some formats. Use the specified texture size to calculate
pixles_size.

BUG= 681641 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2683993002
Cr-Commit-Position: refs/heads/master@{#449083}

[modify] https://crrev.com/c2a73adc758f50c5ee8bf8e79ac6fe3fe2c52ce3/gpu/command_buffer/service/gles2_cmd_decoder.cc

Great, thanks for fixing!
I'll reenable the tests, then.
Project Member

Comment 17 by bugdroid1@chromium.org, Feb 9 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cb22e6fe43598115c75d9afe73b37e93de68ba59

commit cb22e6fe43598115c75d9afe73b37e93de68ba59
Author: ynovikov <ynovikov@chromium.org>
Date: Thu Feb 09 01:09:38 2017

Remove Mac ASAN test suppressions

Bug was fixed in https://codereview.chromium.org/2683993002
No more ASAN errors in Mac GPU ASAN Release build 1695

BUG= 681641 
TBR=kbr@chromium.org
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2684153002
Cr-Commit-Position: refs/heads/master@{#449172}

[modify] https://crrev.com/cb22e6fe43598115c75d9afe73b37e93de68ba59/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py
[modify] https://crrev.com/cb22e6fe43598115c75d9afe73b37e93de68ba59/content/test/gpu/gpu_tests/webgl_conformance_expectations.py

Components: -Internals>GPU>WebGL Blink>WebGL

Sign in to add a comment