New issue
Advanced search Search tips

Issue 809817 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner:
Closed: Feb 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

Swiftshader / Ganesh crash in oop raster layout test run

Project Member Reported by enne@chromium.org, Feb 7 2018

Issue description

Run: chrome --use-gl=swiftshader --enable-gpu-rasterization --enable-oop-rasterization third_party/WebKit/LayoutTests/fast/backgrounds/background-repeat-with-background-color.html

../../third_party/swiftshader/src/OpenGL/libGLESv2/utilities.cpp:1285: bool es2::IsColorRenderable(GLint, GLint): Assertion `false' failed.
Received signal 6
#0 0x7f03644a0a7d base::debug::StackTrace::StackTrace()
#1 0x7f036449ef6c base::debug::StackTrace::StackTrace()
#2 0x7f03644a0445 base::debug::(anonymous namespace)::StackDumpSignalHandler()
#3 0x7f0364a0b330 <unknown>
#4 0x7f034a0b2c37 gsignal
#5 0x7f034a0b6028 abort
#6 0x7f034a0abbf6 <unknown>
#7 0x7f034a0abca2 __assert_fail
#8 0x7f033be57de0 <unknown>
#9 0x7f033be40872 <unknown>
#10 0x7f034641dcb7 _ZZN12GrGLFunctionIPFPvjEEC1ES2_ENKUlPKvjE_clES5_j
#11 0x7f034641dc7e _ZZN12GrGLFunctionIPFPvjEEC1ES2_ENUlPKvjE_8__invokeES5_j
#12 0x7f0363d329f2 GrGLFunction<>::operator()()
#13 0x7f0363d22d01 GrGLGpu::generateMipmaps()
#14 0x7f0363d4a8ca GrGLProgram::generateMipmaps()
#15 0x7f0363d4a7d7 GrGLProgram::generateMipmaps()
#16 0x7f0363d186d0 GrGLGpu::flushGLState()
#17 0x7f0363d1f732 GrGLGpu::draw()
#18 0x7f0363d38e86 GrGLGpuRTCommandBuffer::onDraw()
#19 0x7f0363b48b8f GrGpuRTCommandBuffer::draw()
#20 0x7f0363b4e25a GrOpFlushState::executeDrawsAndUploadsForMeshDrawOp()
#21 0x7f0363c17f19 GrMeshDrawOp::onExecute()
#22 0x7f0363b9a94f GrOp::execute()
#23 0x7f0363b9661a GrRenderTargetOpList::onExecute()
#24 0x7f0363b31a9f GrOpList::execute()
#25 0x7f0363b2ece8 GrDrawingManager::executeOpLists()
#26 0x7f0363b2e499 GrDrawingManager::internalFlush()
#27 0x7f0363b213bf GrDrawingManager::flush()
#28 0x7f0363b2f10e GrDrawingManager::prepareSurfaceForExternalIO()
#29 0x7f0363b8cfa6 GrRenderTargetContext::prepareForExternalIO()
#30 0x7f0363da4faf SkGpuDevice::flushAndSignalSemaphores()
#31 0x7f0363db9e82 SkSurface_Gpu::onFlush()
#32 0x7f036389a45c SkSurface::flush()
#33 0x7f036389a425 SkSurface::prepareForExternalIO()
#34 0x7f035511bc4d gpu::gles2::GLES2DecoderImpl::DoEndRasterCHROMIUM()
#35 0x7f03550c10d2 gpu::gles2::GLES2DecoderImpl::HandleEndRasterCHROMIUM()
#36 0x7f0355123ecc gpu::gles2::GLES2DecoderImpl::DoCommandsImpl<>()
#37 0x7f03550de3b5 gpu::gles2::GLES2DecoderImpl::DoCommands()

The texture format here going into IsColorRenderable is 0, clientVersion 3.  The GrTexture has a config kBGRA_8888_GrPixelConfig.

If I run Chrome in release, then the page just looks wrong and I (understandably) get some GL errors.  Image attached.  The middle right box is supposed to be a mirror of the middle left box.

[37069:37069:0206/172515.672788:ERROR:texture_manager.cc(3378)] [.RenderWorker-0x7febb77dae00]GL ERROR :GL_INVALID_ENUM : glTexImage2D: <- error from previous GL command
[37069:37069:0206/172515.672865:ERROR:texture_manager.cc(3378)] [.RenderWorker-0x7febb77dae00]GL ERROR :GL_INVALID_OPERATION : glTexImage2D: <- error from previous GL command
[37069:37069:0206/172515.672915:ERROR:texture_manager.cc(3378)] [.RenderWorker-0x7febb77dae00]GL ERROR :GL_INVALID_FRAMEBUFFER_OPERATION : glTexImage2D: <- error from previous GL command

 
background-repeat-with-background-color-actual.png
3.1 KB View Download

Comment 1 by sugoi@chromium.org, Feb 7 2018

Cc: capn@chromium.org
capn@ is currently refactoring internal texture formats in SwiftShader. This could be caused by one of the format/type combination issues that the refactor should solve.

Comment 2 by capn@chromium.org, Feb 7 2018

Owner: capn@chromium.org
Status: Started (was: Available)
Thanks for reporting this. I assume this is a new test and not a regression on an old test?

Comment 3 by enne@chromium.org, Feb 7 2018

This is an old test being manually run with new flags through a different raster codepath.

I'm not convinced that I want to double or triple the amount of layout tests to run via new raster modes, so I was just doing a manual inspection of these tests with new flags to see what I could dig up.

Comment 4 by enne@chromium.org, Feb 12 2018

Components: Internals>Compositing>OOP-Raster

Comment 5 by capn@chromium.org, Feb 20 2018

Cc: -bsalomon@chromium.org enne@chromium.org
Couldn't repro with SwiftShader b1d452e (current DEPS) and Chromium 66.0.3351.0 (master@{#537410}) Debug, Linux build. No assert and image looks correct.

@enne, could you check what version of SwiftShader you have in your build? Any recent changes in Chrome that might mask this issue?

Comment 6 by enne@chromium.org, Feb 20 2018

Status: Fixed (was: Started)
This no longer repros for me locally or in layout tests either.  I thought it could be bsalomon's texture change, but that wasn't it.

You're welcome to reopen and bisect yourself if you think this is worth tracking down.

Comment 7 by enne@chromium.org, Feb 20 2018

In terms of version, I was using whatever was Chromium ToT deps when I filed this bug.

Comment 8 by capn@chromium.org, Feb 21 2018

Status: Started (was: Fixed)
Thanks for confirming this no longer reproduces.

Reopening because the root cause may not be fixed, and I'd like to make sure we have a dEQP test for it.

Comment 9 by capn@chromium.org, Feb 21 2018

Status: WontFix (was: Started)
I wasn't able to reproduce the rendering artifacts, but I did see the assert on IsColorRenderable(). It basically stems from calling glGenerateMipmap() on an unspecified texture.

Aside from producing an assert on a non-fatal situation, I don't think this is a SwiftShader bug. In a release build it returns GL_INVALID_OPERATION as expected.

Considering that the issue no longer reproduces in more recent versions, I'll assume that not having a valid texture was also not SwiftShader's fault.

Sign in to add a comment