https://bugs.winehq.org/show_bug.cgi?id=54660
Francisco Casas fcasas@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |fcasas@codeweavers.com
--- Comment #3 from Francisco Casas fcasas@codeweavers.com --- In the log I see three shaders that fail to compile.
These relate to bugs #54647, #54648, and this one, respectively.
These are the first lines in the output assembly of the last one:
out half4 output : COLOR0 2: float2 | <input-TEXCOORD0> 3: | = (input.xy @2) ...
The problem is that, in this shader, the variable "input" is a struct, so it shouldn't be stored to directly (without indexation).
The assertion fails when the call to write_sm4_store() for instruction 3, calls write_sm4_store(), which calls sm4_register_from_deref().
Currently, deref->offset_regset is 0 for derefs to structs. Which makes sense since:
/* Instructions that directly refer to structs or arrays (instead of single-register components) * are removed later by dce. So it is not a problem to just cleanup their derefs. */