Commit Graph

260 Commits

Author SHA1 Message Date
7f94fda05c vkd3d-shader/ir: Rename the "immconst_uint64" field of struct vkd3d_shader_register to "immconst_u64". 2024-01-03 22:37:43 +01:00
05a542ba00 vkd3d-shader/ir: Rename the "immconst_float" field of struct vkd3d_shader_register to "immconst_f32". 2024-01-03 22:37:41 +01:00
e33d3b3954 vkd3d-shader/ir: Rename the "immconst_uint" field of struct vkd3d_shader_register to "immconst_u32".
For consistency with the rest of vkd3d-shader; e.g. put_u32() and
read_u32().
2024-01-03 22:37:39 +01:00
1929432559 vkd3d-shader: Introduce an instruction flag to suppress masking of bitwise shift counts.
DXIL does not use implicit masking of shift counts.
2023-12-12 22:50:46 +01:00
9cb4372378 vkd3d-shader/dxil: Check null pointer before it is dereferenced (Coverity). 2023-12-11 23:18:58 +01:00
3db7c2a62d vkd3d-shader/dxil: Implement the DXIL STORE instruction. 2023-12-11 23:18:51 +01:00
2d5f2bf7a4 vkd3d-shader/dxil: Implement the DXIL ALLOCA instruction. 2023-12-11 23:18:50 +01:00
d49bccea9a vkd3d-shader/dxil: No longer synthesize DCL instructions. 2023-12-11 23:18:45 +01:00
75348dff12 vkd3d-shader/dxil: Map SEMANTIC_KIND_TARGET to VKD3D_SHADER_SV_TARGET. 2023-12-11 23:18:43 +01:00
a4a1b4c557 vkd3d-shader/dxil: Set the result register data type for nop casts.
Casts from minimum precision types are emitted as nop, but the result
value type must be set to the cast result type.
2023-12-07 21:57:08 +01:00
1630fd9a3c vkd3d-shader/dxil: Apply metadata attachments to instructions.
These are apparently only used for 'dx.op' intrinsics, because the
instructions based on native LLVM ones have their own way to apply
attributes.
2023-12-07 21:57:00 +01:00
a33a9127ca vkd3d-shader/dxil: Implement DX intrinsic Unary. 2023-12-07 21:56:53 +01:00
cc5e703802 vkd3d-shader/dxil: Emit constant global arrays as immediate constant buffers. 2023-12-07 21:56:47 +01:00
cb88844a3d vkd3d-shader: Add a register index to struct vkd3d_shader_immediate_constant_buffer. 2023-12-07 21:56:47 +01:00
ffae57eb8d vkd3d-shader/dxil: Support null constant arrays. 2023-12-07 21:56:43 +01:00
a52604da8c vkd3d-shader/dxil: Declare IO registers as VEC4.
Otherwise, for instance, their write masks and swizzles are not written
in the D3D ASM dump.
2023-11-28 21:49:18 +01:00
1edbc05745 vkd3d-shader: Use unsigned int type for tags passed to sm6_metadata_get_uint_value. 2023-11-28 00:09:29 +01:00
eb05e434ff vkd3d-shader/dxil: Implement the DXIL LOAD instruction. 2023-11-22 22:07:59 +01:00
59730ecfd8 vkd3d-shader/dxil: Implement the DXIL GEP instruction. 2023-11-22 22:07:58 +01:00
a0f5d70792 vkd3d-shader/dxil: Support global variable initialisers. 2023-11-22 22:07:57 +01:00
f2a656b876 vkd3d-shader/dxil: Introduce a value type for immediate constant buffers. 2023-11-22 22:07:56 +01:00
85d5f83fb7 vkd3d-shader/dxil: Implement default address space global variables. 2023-11-22 22:07:54 +01:00
3c4631a4d4 vkd3d-shader/dxil: Implement the DXIL VSELECT instruction. 2023-11-15 21:48:35 +01:00
408f67c69c vkd3d-shader/dxil: Handle missing flags as zero for CMP2.
The flag operand is omitted if IEEE strictness is specified.
2023-11-14 23:06:43 +01:00
f1e9f40061 vkd3d-shader/dxil: Handle missing flags as zero for BINOP.
The flag operand is omitted if IEEE strictness is specified.
2023-11-14 23:06:41 +01:00