Giovanni Mascellani
56247130c1
vkd3d-shader/ir: Validate UAV flags in vsir programs.
2025-07-16 17:44:13 +02:00
Giovanni Mascellani
32bf71ba96
vkd3d-shader/ir: Validate descriptor flags in vsir programs.
2025-07-16 17:34:35 +02:00
Evan Tang
9c040caa40
vkd3d: Get rid of the default fragment shader from d3d12_pipeline_state_init_graphics().
...
Vulkan does support rendering without a fragment shader, and this seems
to work fine on current drivers. This commit gets rid of the last
embedded shader binary in libvkd3d, and may have a slight performance
advantage on hardware/drivers able to take advantage of the absence of a
fragment shader.
2025-07-16 17:30:11 +02:00
Evan Tang
39db6731c0
vkd3d: Mask colour writes on graphics pipelines without fragment shaders.
...
Vulkan leaves the contents of colour attachments undefined in this case.
2025-07-16 16:54:55 +02:00
Nikolay Sivov
3163e589bc
vkd3d-shader/fx: Explicitly handle bool state values when parsing.
...
For bools 0/1 values are treated as named values, outside of this
range it's zero/non-zero.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com >
2025-07-14 18:38:21 +02:00
Nikolay Sivov
46c75137c7
vkd3d-shader/fx: Use the correct value range for bools in fx_4_0 state values.
...
The earlier fix a06ecb6867
is missing this.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com >
2025-07-14 18:38:21 +02:00
Giovanni Mascellani
1a5a2969be
vkd3d/resource: Write null descriptors with their correct type when using mutable descriptor types.
...
This fixes crashes in test_null_srv() and test_null_uav() with
llvmpipe and NVIDIA GPUs.
2025-07-14 18:37:13 +02:00
Giovanni Mascellani
fb91bd7b8b
vkd3d: Move vkd3d_vk_descriptor_set_index_from_vk_descriptor_type() to resource.c.
...
It's only used there.
2025-07-14 18:36:35 +02:00
Nikolay Sivov
fc77bddb9c
vkd3d-shader/fx: Improve register naming in the disassembly output.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com >
2025-07-14 18:29:10 +02:00
Giovanni Mascellani
15561c1e56
vkd3d-shader/ir: Do not make a local copy of the instructions array in vsir_program_flatten_hull_shader_phases().
2025-07-14 18:25:24 +02:00
Giovanni Mascellani
44ca7b7b1b
vkd3d-shader/ir: Handle SSA registers when flattening hull shader phases.
...
Currently when a phase is duplicated more than once SSA registers
are not refreshed, therefore they are invalidly assigned more than
once.
2025-07-14 18:19:23 +02:00
Giovanni Mascellani
ad1aa739c2
vkd3d-shader/ir: Collect the hull shader phase flattener code together.
2025-07-14 18:19:23 +02:00
Henri Verbeet
673c26a040
vkd3d-shader/msl: Implement VKD3DSGF_FORCE_EARLY_DEPTH_STENCIL.
2025-07-14 18:13:43 +02:00
Henri Verbeet
1a20395e6f
vkd3d-shader/msl: Implement VSIR_OP_STORE_UAV_TYPED.
2025-07-14 18:13:43 +02:00
Henri Verbeet
90b6412daa
vkd3d-shader/msl: Implement VSIR_OP_UMAX and VSIR_OP_UMIN.
2025-07-14 18:13:43 +02:00
Giovanni Mascellani
ed464a4f4c
vkd3d-shader/ir: Validate ILT instructions.
2025-07-14 18:12:22 +02:00
Giovanni Mascellani
715d23ebbb
vkd3d-shader/ir: Validate IGE instructions.
2025-07-14 18:12:22 +02:00
Giovanni Mascellani
9f455667eb
vkd3d-shader/ir: Validate IEQ instructions.
2025-07-14 18:12:22 +02:00
Giovanni Mascellani
c29e8188ff
vkd3d-shader/ir: Validate IADD instructions.
2025-07-14 18:12:22 +02:00
Giovanni Mascellani
4d1fabd350
vkd3d-shader/ir: Validate HTAN instructions.
2025-07-14 18:12:22 +02:00
Giovanni Mascellani
e954f75862
vkd3d-shader/ir: Validate HSIN instructions.
2025-07-14 18:12:22 +02:00
Giovanni Mascellani
5dd452a5c7
vkd3d-shader/ir: Validate HCOS instructions.
2025-07-14 18:12:22 +02:00
Giovanni Mascellani
98b0ca544a
vkd3d-shader/ir: Test the data type when validating comparison operations.
...
I had forgot that bit.
2025-07-14 18:06:55 +02:00
Elizabeth Figura
0c3250122c
vkd3d-shader/spirv: Do not use OpCopyMemory for partial writemasks in spirv_compiler_emit_mov().
...
This fixes instructions like "mov r0.xy, r1.xyzw".
2025-06-26 17:44:34 +02:00
Henri Verbeet
22ebccfeb7
vkd3d-shader/ir: Create SSA values with the corresponding dimension in vsir_program_lower_udiv().
2025-06-26 16:08:32 +02:00