Francisco Casas
b3badec039
vkd3d-shader/ir: Use iterators in vsir_program_normalise_io_registers().
2025-08-06 12:53:52 +02:00
Francisco Casas
304caa885f
vkd3d-shader/ir: Use iterators in vsir_program_normalise_flat_constants().
2025-08-06 12:53:52 +02:00
Francisco Casas
37ca1b55c9
vkd3d-shader/ir: Use iterators in instruction_array_normalise_hull_shader_control_point_io().
2025-08-06 12:53:52 +02:00
Francisco Casas
97e3877aa4
vkd3d-shader/ir: Use iterators in vsir_program_remap_output_signature().
2025-08-06 12:53:52 +02:00
Francisco Casas
6dc9ff1bd8
vkd3d-shader/ir: Use iterators in vsir_program_ensure_diffuse().
...
The change in vsir_program_iterator_next() is necessary to allow us to
introduce instructions before the iterator using:
vsir_program_iterator_prev(&it);
vsir_program_iterator_inset_after(&it, n);
vsir_program_iterator_next(&it);
This since (it.idx == SIZE_MAX) is equivalent to the iterator being
before the beginning of the list.
2025-08-06 12:53:37 +02:00
Shaun Ren
4bb880f9ed
vkd3d-shader/hlsl: Support interlocked operations on non-indexed groupshared variables.
2025-08-05 16:33:08 +02:00
Shaun Ren
8d0d8d106b
vkd3d-shader/hlsl: Support stores to raw groupshared variables.
2025-08-05 16:32:34 +02:00
Shaun Ren
c8d2d40b91
vkd3d-shader/hlsl: Support loads from groupshared variables.
2025-08-05 16:18:26 +02:00
Shaun Ren
fa560b589e
vkd3d-shader/hlsl: Emit dcl_tgsm_raw instructions for raw groupshared variables.
2025-08-05 16:09:45 +02:00
Shaun Ren
3802344e97
vkd3d-shader/hlsl: Allocate groupshared registers.
2025-08-05 16:06:07 +02:00
Victor Chiletto
e615e435d9
vkd3d-shader/hlsl: Split matrix copies from resource loads.
2025-08-05 14:25:50 +02:00
Victor Chiletto
e718546ee5
vkd3d-shader/hlsl: Transform hlsl_ir_index into structured buffers into field specific hlsl_ir_resource_loads.
2025-08-05 14:25:50 +02:00
Victor Chiletto
5dbf859029
vkd3d-shader/hlsl: Parse SRV structured buffers.
2025-08-05 14:25:50 +02:00
Francisco Casas
5dca0da2da
vkd3d-shader/hlsl: Use vsir_program_append() in generate_vsir_add_program_instruction().
2025-08-04 14:58:14 +02:00
Francisco Casas
be5a9c2ca8
vkd3d-shader/hlsl: Use vsir_program_append() in sm1_generate_vsir_sampler_dcls().
2025-08-04 14:52:50 +02:00
Francisco Casas
81488ce330
vkd3d-shader/hlsl: Use vsir_program_append() in sm1_generate_vsir_constant_defs().
2025-08-04 14:47:58 +02:00
Francisco Casas
8717fe9c47
vkd3d-shader/dxil: Use iterators in sm6_parser_globals_init().
2025-08-04 14:40:17 +02:00
Giovanni Mascellani
1d71cf9af1
vkd3d-shader/msl: Allocate SSA registers to temporaries.
2025-08-04 14:34:23 +02:00
Giovanni Mascellani
bec000b88e
vkd3d-shader: Enable converting DXIL to MSL.
...
Only trivial shaders work so far.
2025-08-04 14:34:01 +02:00
Conor McCarthy
691dd49e49
vkd3d-shader/dxil: Handle SV_PrimitiveId outputs.
2025-08-04 11:54:46 +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
Conor McCarthy
b9fe19701c
vkd3d-shader/dxil: Handle SV_ViewportArrayIndex.
2025-07-31 14:55:33 +02:00
Henri Verbeet
55fe8df979
vkd3d: Set the maximum viewport count in d3d12_pipeline_state_get_or_create_pipeline().
...
VK_DYNAMIC_STATE_VIEWPORT and VK_DYNAMIC_STATE_SCISSOR specify that
viewports and scissor rectangles are dynamic state, but not their
counts.
It took a while to notice this issue because the existing code seemed to
largely work as intended on hardware implementations, but tests using
the additional viewports would fail on llvmpipe.
2025-07-31 14:55:33 +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