Giovanni Mascellani
bec000b88e
vkd3d-shader: Enable converting DXIL to MSL.
...
Only trivial shaders work so far.
2025-08-04 14:34:01 +02:00
Henri Verbeet
bd3d0f3495
vkd3d-shader/ir: Use vsir_program_append() in vsir_program_ensure_ret().
...
I think this is slightly nicer. It also happens to avoid a
-Warray-bounds warning on some versions of gcc that suggests the "ins"
pointer returned by vsir_program_iterator_next() may be NULL.
2025-07-31 15:01:29 +02:00
Elizabeth Figura
75cb4336ec
vkd3d-shader/ir: Record the previous temp count before allocating any SSA values.
...
Due to the unintentional placement of this line, we were inadvertently
allocating every SSA value to a unique temp register, overflowing limits.
2025-07-30 15:36:38 +02:00
Henri Verbeet
67fd9bb76b
vkd3d-shader/ir: Free program parameters on failure in vsir_program_init() if needed.
2025-07-30 15:35:54 +02:00
Giovanni Mascellani
247fbd869a
vkd3d-shader/ir: Use iterators in vsir_program_ensure_ret().
2025-07-29 13:12:58 +02:00
Giovanni Mascellani
812f6faa11
vkd3d-shader/ir: Use iterators in vsir_program_normalize_addr().
2025-07-29 12:53:00 +02:00
Giovanni Mascellani
22f84317c0
vkd3d-shader/ir: Check that GSINSTID registers have dimension VEC4.
...
I had set it to SCALAR in an earlier commit, but I hadn't noticed
it failed validation.
Also fix the HLSL compiler to emit them accordingly.
Fixes: dfc18781cc
2025-07-29 12:51:06 +02:00
Francisco Casas
19bc3ec104
vkd3d-shader/ir: Validate flags in RESINFO operations.
2025-07-28 16:26:16 +02:00
Francisco Casas
3a0a96b851
vkd3d-shader/ir: Validate flags in SAMPLE_INFO operations.
2025-07-28 16:26:16 +02:00
Henri Verbeet
4300e6c8b5
vkd3d-shader/ir: Allow source operands of shift operations to have different data types.
2025-07-28 16:10:15 +02:00
Henri Verbeet
7295a8d0b5
vkd3d-shader/ir: Explicitly initialise the "resource_data_type" field in vsir_instruction_init().
...
This depended on VKD3D_DATA_FLOAT/VSIR_DATA_F32 being the first
enumeration value, but that's no longer the case.
shader_dump_instruction() compares this against VSIR_DATA_F32 to
determine whether to call shader_dump_resource_data_type().
2025-07-23 17:23:01 +02:00
Henri Verbeet
795211141f
vkd3d-shader/ir: Rename VKD3D_DATA_BOOL to VSIR_DATA_BOOL.
2025-07-23 17:19:28 +02:00
Henri Verbeet
aebe64ecac
vkd3d-shader/ir: Rename VKD3D_DATA_UNUSED to VSIR_DATA_UNUSED.
2025-07-23 17:19:28 +02:00
Giovanni Mascellani
bb51b976df
vkd3d-shader/ir: Use size_t in the parameter allocator.
...
The idea is to, by default, use size_t for any quantity that is
a memory size or an array index.
2025-07-23 17:16:38 +02:00
Nikolay Sivov
969b6f5946
vkd3d-shader/ir: Handle TEXLDL instructions in vsir_program_lower_instructions().
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=58063
2025-07-23 17:02:05 +02:00
Giovanni Mascellani
68cd72c7fc
vkd3d-shader/ir: Validate ROUND_NI instructions.
2025-07-22 17:11:51 +02:00
Giovanni Mascellani
b3db78e3c1
vkd3d-shader/ir: Validate ROUND_NE instructions.
2025-07-22 17:11:51 +02:00
Giovanni Mascellani
f3f8056800
vkd3d-shader/ir: Validate RCP instructions.
2025-07-22 17:11:51 +02:00
Giovanni Mascellani
59738c7a4a
vkd3d-shader/ir: Validate ORD instructions.
2025-07-22 17:11:51 +02:00
Giovanni Mascellani
6266f89827
vkd3d-shader/ir: Validate OR operations.
2025-07-22 17:11:51 +02:00
Giovanni Mascellani
1c7c66912b
vkd3d-shader/ir: Validate NOT operations.
2025-07-22 17:11:51 +02:00
Giovanni Mascellani
4789295e91
vkd3d-shader/ir: Validate NEU operations.
2025-07-22 17:11:51 +02:00
Giovanni Mascellani
3234c428b3
vkd3d-shader/ir: Validate NEO operations.
2025-07-22 17:11:50 +02:00
Henri Verbeet
1487764e23
vkd3d-shader/ir: Rename VKD3D_DATA_UINT64 to VSIR_DATA_U64.
2025-07-22 14:57:26 +02:00
Henri Verbeet
742cce9a08
vkd3d-shader/ir: Rename VKD3D_DATA_UINT to VSIR_DATA_U32.
2025-07-22 14:57:26 +02:00