Summary: | ast_to_hir.cpp:1761: const glsl_type* process_array_type(YYLTYPE*, const glsl_type*, ast_node*, _mesa_glsl_parse_state*): Assertion `dummy_instructions.is_empty()' failed. | ||
---|---|---|---|
Product: | Mesa | Reporter: | Vinson Lee <vlee> |
Component: | glsl-compiler | Assignee: | Paul Berry <stereotype441> |
Status: | CLOSED FIXED | QA Contact: | |
Severity: | critical | ||
Priority: | medium | ||
Version: | git | ||
Hardware: | x86 (IA32) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Vinson Lee
2011-06-23 16:55:32 UTC
I tracked this down to a flaw in Mesa's ast-to-hir conversion. When a built-in function was used in computing an array size, Mesa correctly computed the constant array size, but it emitted some unnecessary IR in the process. That IR had no place to go (since no IR is expected for constant values) so an assertion fired. I've submitted a patch series for review that: - ensures that no IR is generated when a built-in function is used in computing a constant value, and - delays the assertion so that if the user attempts to declare an array with a non-constant size, they will get an error message rather than a crash. If all goes well, the patch should land in master in a few days. Fixed in commit 789ee6516bfca289e1948ff8f2c147b94286a0e0. mesa: ccecc08f79afc020c8c0acface04a8e53e3a7c32 (master) Verified fixed. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.