- Jan 18, 2024
-
-
- Jan 17, 2024
-
-
-
-
-
-
-
-
The relative-addressed case in shader_register_normalise_arrayed_addressing() leaves the control point id in idx[0], while for constant register indices it is placed in idx[1]. The latter case could be fixed instead, but placing the control point count in the outer dimension is more logical.
-
The FXC optimiser sometimes converts a local array of input values into direct array addressing of the inputs, which can result in a dcl_indexrange instruction spanning input elements with different masks.
-
For example, this occurred in a shader: reg_idx write_mask 0 xyz 1 xyzw 2 xyzw 3 xyz The dcl_indexrange instruction covered only xyz, so once merged, searching for xyzw failed. It is impossible to declare an input array where elements have different component counts, but the optimiser can create this case. One way for this to occur is to dynamically index input values via a local array containing copies of the input values. The optimiser converts this to dynamically indexed inputs.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Ensures they are loaded only once per function independent of the control flow graph.
-
- Jan 15, 2024
-
-
-
vkd3d-shader/tpf: Store the "recognized_bits" mask as a uint32_t in shader_sm4_read_instruction_modifier().
-
-
-
-
-
-
This was once used by libvkd3d's fence worker thread, but currently this is unused.
-
-