Commit Graph

8332 Commits

Author SHA1 Message Date
Petrichor Park
e6d840170d vkd3d-shader/hlsl: Implement the firstbithigh() intrinsic. 2025-09-22 11:26:42 +02:00
Petrichor Park
e49beca0d5 vkd3d-shader/hlsl: Implement the countbits() intrinsic. 2025-09-22 11:26:42 +02:00
Petrichor Park
16cb69a324 tests/hlsl: Split the test for countbits()/firstbithigh()/firstbitlow().
And add some more.
2025-09-22 11:26:42 +02:00
Giovanni Mascellani
52b9aa416b vkd3d-shader/ir: Fix r0 allocation for PS 1.x shaders.
In order to allocate it properly we have to ensure it is the first
register to be processed. The current algorithm fails to do so, so
a more explicit approach is introduced.
2025-09-19 12:48:50 +02:00
Henri Verbeet
89b05594f5 vkd3d-shader/d3dbc: Don't call vsir_update_dcl_temps(). 2025-09-19 12:48:08 +02:00
Henri Verbeet
21b5a2be8c vkd3d-shader/ir: Return early for shader model < 4 in vsir_update_dcl_temps(). 2025-09-19 12:48:08 +02:00
Henri Verbeet
007792c33b vkd3d-shader/msl: Handle VSIR_DATA_BOOL operands. 2025-09-19 12:47:15 +02:00
Henri Verbeet
72071fcf08 vkd3d-shader/ir: Avoid memset() in vsir_instruction_init().
Primarily to avoid -Warray-bounds warnings from newer gcc, specifically
for the first vsir_instruction_init() call in vsir_update_dcl_temps().
This seems to be a false positive created by the interaction between
vsir_program_iterator_insert_after() and vsir_program_iterator_next()
error handling; it may be possible to avoid that by rearranging things,
but it doesn't seem worth it.
2025-09-19 12:46:54 +02:00
Henri Verbeet
269376229b vkd3d-shader/spirv: Use spirv_get_type_id() in spirv_compiler_emit_f16tof32(). 2025-09-19 12:45:51 +02:00
Henri Verbeet
75a50c40ed vkd3d-shader/spirv: Use spirv_get_type_id() in spirv_compiler_emit_bitfield_instruction(). 2025-09-19 12:45:51 +02:00
Henri Verbeet
e67cd10ce2 vkd3d-shader/spirv: Use spirv_get_type_id() in spirv_compiler_emit_dtof(). 2025-09-19 12:45:51 +02:00
Henri Verbeet
b228b626b0 vkd3d-shader/spirv: Use spirv_get_type_id() in spirv_compiler_emit_ftou(). 2025-09-19 12:45:51 +02:00
Henri Verbeet
c5bafc4408 vkd3d-shader/spirv: Use spirv_get_type_id() in spirv_compiler_emit_ftoi(). 2025-09-19 12:45:51 +02:00
Henri Verbeet
47f2ec1a08 vkd3d-shader/ir: Require default swizzles on vec4 immediate constants.
The SPIR-V, GLSL and MSL backends implicitly handle swizzles on
immediate constants, but the TPF and d3d-asm backends assume a default
swizzle. In principle there's no reason those couldn't support swizzles
on immediate constants, but they're a little pointless.
2025-09-18 11:35:05 +02:00
Henri Verbeet
a1451f8113 vkd3d-shader/ir: Require signed operands for IMIN instructions. 2025-09-18 11:30:20 +02:00
Henri Verbeet
8eebc71c13 vkd3d-shader/ir: Require signed operands for IMAX instructions. 2025-09-18 11:30:19 +02:00
Henri Verbeet
6e8192e198 vkd3d-shader/ir: Require signed source operands for signed integer comparison instructions. 2025-09-18 11:30:19 +02:00
Henri Verbeet
1912f50f52 vkd3d-shader/ir: Validate USHR instructions. 2025-09-18 11:30:18 +02:00
Henri Verbeet
31eb152917 vkd3d-shader/ir: Require signed operands for ISHR instructions. 2025-09-18 11:26:52 +02:00
Nikolay Sivov
c481414572 vkd3d: Implement d3d12_device_CreateCommandList1().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2025-09-17 12:50:16 +02:00
Nikolay Sivov
faec701cce vkd3d: Check that the allocator type matches the list type in d3d12_command_list_Reset().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2025-09-17 12:38:27 +02:00
Shaun Ren
b6d274e68e vkd3d-shader/hlsl: Remove the whitespace before the closing parenthesis in dump_ir_expr(). 2025-09-17 12:36:54 +02:00
Henri Verbeet
d09f1502ba tests/hlsl: Add a missing "}" to trigonometry.shader_test. 2025-09-17 12:34:56 +02:00
Henri Verbeet
d914b3f5a4 vkd3d-shader/spirv: Use spirv_get_type_id() in spirv_compiler_emit_dot(). 2025-09-17 12:34:13 +02:00
Henri Verbeet
cc6e8826f6 vkd3d-shader/spirv: Use spirv_get_type_id() in spirv_compiler_emit_swapc(). 2025-09-17 12:34:13 +02:00