https://bugs.freedesktop.org/show_bug.cgi?id=82920
Priority: medium Bug ID: 82920 Assignee: dri-devel@lists.freedesktop.org Summary: Invalid read during geometry program build Severity: normal Classification: Unclassified OS: All Reporter: pavol@klacansky.com Hardware: Other Status: NEW Version: git Component: Drivers/Gallium/r600 Product: Mesa
Created attachment 105060 --> https://bugs.freedesktop.org/attachment.cgi?id=105060&action=edit mc
When I try to compile marching cubes geometry program I get a lot of these
==31997== Invalid read of size 8 ==31997== at 0x9B51ED0: ??? (in /usr/lib/x86_64-linux-gnu/dri/r600_dri.so) ==31997== by 0x9B49F4F: ??? (in /usr/lib/x86_64-linux-gnu/dri/r600_dri.so) ==31997== by 0x9B93E56: ??? (in /usr/lib/x86_64-linux-gnu/dri/r600_dri.so) ==31997== by 0x9A7CB2E: ??? (in /usr/lib/x86_64-linux-gnu/dri/r600_dri.so) ==31997== by 0x9A7ED00: ??? (in /usr/lib/x86_64-linux-gnu/dri/r600_dri.so) ==31997== by 0x405371: main (mc.c:155)
and these
EE ../../../../../../src/gallium/drivers/r600/r600_shader.c:353 tgsi_is_supported - unsupported src 0 (dimension 1) EE ../../../../../../src/gallium/drivers/r600/r600_shader.c:157 r600_pipe_shader_create - translation from TGSI failed ! EE ../../../../../../src/gallium/drivers/r600/r600_state_common.c:751 r600_shader_select - Failed to build shader variant (type=2) -22
I have attached whole program. It needs GLFW3 and GLEW.
https://bugs.freedesktop.org/show_bug.cgi?id=82920
pavol@klacansky.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Hardware|Other |x86-64 (AMD64) OS|All |Linux (All)
https://bugs.freedesktop.org/show_bug.cgi?id=82920
--- Comment #1 from pavol@klacansky.com --- Created attachment 105095 --> https://bugs.freedesktop.org/attachment.cgi?id=105095&action=edit fixed mc
https://bugs.freedesktop.org/show_bug.cgi?id=82920
--- Comment #2 from pavol@klacansky.com --- I have tested new version on nvidia driver and test it on mesa when I get home. In original version there was a bug where UBOs were not binded (I am not sure if KHR_debug should report this).
https://bugs.freedesktop.org/show_bug.cgi?id=82920
Alex Deucher agd5f@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #105095|text/plain |application/x-gzip mime type| |
https://bugs.freedesktop.org/show_bug.cgi?id=82920
--- Comment #3 from pavol@klacansky.com --- I tested modified version and it still crashes
https://bugs.freedesktop.org/show_bug.cgi?id=82920
Glenn Kennard glenn.kennard@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|Drivers/Gallium/r600 |glsl-compiler Assignee|dri-devel@lists.freedesktop |idr@freedesktop.org |.org | QA Contact| |intel-3d-bugs@lists.freedes | |ktop.org
--- Comment #4 from Glenn Kennard glenn.kennard@gmail.com --- Testing "fixed_mc" with a debug-enabled mesa build I get:
Mesa: User error: GL_INVALID_ENUM in glGetString(GL_EXTENSIONS) - this is from GLFW as far as i can tell, its trying to get the extension string using the old method which is not supported in a >= 3.3 core context. Otherwise unrelated to this bug though.
valgrind: ==30990== Invalid read of size 8 ==30990== at 0x9F90847: ast_interface_block::hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:5688) ==30990== by 0x9F875FC: _mesa_ast_to_hir(exec_list*, _mesa_glsl_parse_state*) (ast_to_hir.cpp:100) ==30990== by 0x9FDB07A: _mesa_glsl_compile_shader (glsl_parser_extras.cpp:1462) ==30990== by 0x9EB843D: compile_shader (shaderapi.c:849) ==30990== by 0x9EBA1AD: _mesa_create_shader_program (shaderapi.c:1830) ==30990== by 0x9EBA7C7: _mesa_CreateShaderProgramv (shaderapi.c:1919) ==30990== by 0x6C29EED: shared_dispatch_stub_892 (glapi_mapi_tmp.h:20555) ==30990== by 0x404B0D: main (in /recording/download/20140803/mc/mc)
and a number of further errors in that function, then later the gallium state tracker throws an assertion: ../../src/mesa/state_tracker/st_glsl_to_tgsi.cpp:2104:visit: Assertion `var->data.location != -1' failed.
In release mode this check drops through and the r600 tgsi translator rejects it with: EE ../../../../../../src/gallium/drivers/r600/r600_shader.c:353 tgsi_is_supported - unsupported src 0 (dimension 1) and replaces the shader with a no-op dummy shader to not crash.
Basically the gallium driver layer is getting bad data out from the GLSL compiler.
dri-devel@lists.freedesktop.org