Comment # 9
on bug 85579
from Marek Olšák
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.
_______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel