On Fri Mar 22 22:01:20 2024 +0000, Zebediah Figura wrote:
This is required before introducing the upcoming tests because otherwise we reach unreacheable code when new_offset_instr_from_deref() calls type_get_regset() on pixel or vertex shaders.
Why are we creating offset instrs for objects?
We are currently lowering all dereferences into a single offset node and a regset (which is used to discern when variables belong to multiple regsets). Copy propagation also relies on this.
Dereferences to pixel shaders and vertex shaders are created on the instructions originated from prepend_uniform_copy(), when the original uniform is copied into the temp.
It can happen merely by declaring PixelShader or VertexShader variables ``` PixelShader ps1;
float4 main() : sv_target { return 0; } ```