[Bug 85579] [bisected] piglit test crashes in spec/glsl-1.50/execution/geometry/max-input-components

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Sun Nov 2 03:19:08 PST 2014


https://bugs.freedesktop.org/show_bug.cgi?id=85579

--- Comment #9 from Marek Olšák <maraeo at gmail.com> ---
I think there are 2 ways to fix this and we should do both:

1) Fix VGPR register spilling caused by indirect addressing into lots of
registers. LLVM crashes when it attempts to do that. Those registers are just
copies of shader inputs and outputs.

2)
Step A) Implement indirect addressing for VS outputs before GS and GS inputs.
This means that we cannot store outputs at the end of shaders (using
emit_epilogue), but we must store them when they occur as a destination
register (using emit_store).

(BTW my tessellation branch contains modifications to emit_store that make it
easier to re-implement it for shaders that use store instructions for outputs)

Step B) glsl_to_tgsi and/or some passes of the GLSL compiler may need to be
modified not to move ins/outs into temporaries. I think the only pass that does
that is the varying packing. The pass should be disabled or rewritten, because
its current implementation isn't gonna fly with our hardware and is often the
cause of unnecessary register spilling.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20141102/fcfd001a/attachment.html>


More information about the dri-devel mailing list