Swiftshader / Ganesh crash in oop raster layout test run |
|||||||
Issue descriptionRun: 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
,
Feb 7 2018
Thanks for reporting this. I assume this is a new test and not a regression on an old test?
,
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.
,
Feb 12 2018
,
Feb 20 2018
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?
,
Feb 20 2018
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.
,
Feb 20 2018
In terms of version, I was using whatever was Chromium ToT deps when I filed this bug.
,
Feb 21 2018
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.
,
Feb 21 2018
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 |
|||||||
Comment 1 by sugoi@chromium.org
, Feb 7 2018