Shaun Ren
a4e43402e5
vkd3d-shader/hlsl: Support void pass-through hull shader control point functions.
2025-05-24 21:13:00 +02:00
Shaun Ren
e7b2ca28ab
vkd3d-shader/hlsl: Fix the register string for patch arrays in debug_register().
2025-05-24 21:03:56 +02:00
Shaun Ren
a58b1f7011
vkd3d-shader/hlsl: Implement output semantics for geometry shaders.
2025-05-24 20:38:36 +02:00
Elizabeth Figura
e16176672a
vkd3d-shader/hlsl: Validate "numthreads" attribute values.
2025-05-14 14:56:42 +02:00
Elizabeth Figura
cdc74a9377
vkd3d-shader/hlsl: Emit an error when min16uint is used in d3dbc target profiles.
...
Fixes: 18ca7affad
2025-05-14 14:12:19 +02:00
Shaun Ren
5b06fe83df
vkd3d-shader/hlsl: Generate vsir instructions for stream output operations.
2025-05-05 14:54:07 +02:00
Shaun Ren
c8c1e270e0
vkd3d-shader/hlsl: Validate maximum output size in geometry shaders.
2025-05-05 14:43:53 +02:00
Shaun Ren
729a3ac089
vkd3d-shader/hlsl: Append output copies for stream output Append() invocations.
2025-05-05 14:30:16 +02:00
Shaun Ren
34b4b34f2c
vkd3d-shader/hlsl: Use a block in append_output_copy*().
2025-05-05 14:30:16 +02:00
Francisco Casas
b89f0bc730
vkd3d-shader/hlsl: Generate vsir for HLSL_IR_SYNC operations.
...
The following table shows how each intrinsic maps to d3d assembly and the
flags that appear in the tpf bytecode, in binary.
GroupMemoryBarrier() sync_g 0010
GroupMemoryBarrierWithGroupSync() sync_g_t 0011
DeviceMemoryBarrier() sync_uglobal 1000
DeviceMemoryBarrierWithGroupSync() sync_uglobal_t 1001
AllMemoryBarrier() sync_uglobal_g 1010
AllMemoryBarrierWithGroupSync() sync_uglobal_g_t 1011
2025-05-05 14:17:47 +02:00
Francisco Casas
a975c56695
vkd3d-shader/hlsl: Mark stores dirty on interlocked operation in vectorize_stores().
2025-05-05 14:15:23 +02:00
Francisco Casas
758a4bef09
vkd3d-shader/hlsl: Parse barriers.
...
And introduce hlsl_ir_sync to represent them.
2025-05-05 14:15:14 +02:00
Elizabeth Figura
315247bf02
vkd3d-shader: Normalize TEXKILL to use a source register.
2025-04-30 16:51:44 +02:00
Shaun Ren
2a89b23ede
vkd3d-shader/hlsl: Validate and record stream output objects.
...
Validation should only be done for stream outputs that are used.
2025-04-23 18:01:06 +02:00
Shaun Ren
f2f44b054d
vkd3d-shader/hlsl: Allocate registers for stream output objects.
...
All stream output objects need to have a stream index allocated,
whether they are used or not.
We allocate stream outputs here, before other objects are allocated,
because the stream index is needed to create the appropriate output
semantic variables during append_output_copy(), which will be called
in a lowering pass for the Append() method.
2025-04-23 17:54:54 +02:00
Shaun Ren
d620ad4942
vkd3d-shader/hlsl: Introduce HLSL_REGSET_STREAM_OUTPUTS regset.
2025-04-23 17:54:54 +02:00
Shaun Ren
9525eb2f0c
vkd3d-shader/hlsl: Parse the Append() method for stream outputs.
2025-04-23 17:54:54 +02:00
Elizabeth Figura
d91d552a5e
vkd3d-shader/ir: Introduce a vsir_dst_param_init_null() helper.
2025-04-14 15:32:12 +02:00
Elizabeth Figura
1a1f1f1369
vkd3d-shader/hlsl: Set the right interpolation mode in the vsir signature.
2025-04-14 15:29:19 +02:00
Elizabeth Figura
7331c70e9e
vkd3d-shader/hlsl: Set the sysval for more sm1 semantics.
...
To match the sysval we set when reading them.
2025-04-14 15:29:19 +02:00
Shaun Ren
0c139ef7a0
vkd3d-shader/hlsl: Add special allocation rules for patch constant data.
2025-04-09 16:02:12 +02:00
Shaun Ren
05f8dd8273
vkd3d-shader/hlsl: Prioritize smaller writemasks for all allocators in allocate_semantic_registers().
2025-04-09 16:02:12 +02:00
Shaun Ren
ec2f18ab17
vkd3d-shader/hlsl: Free all allocators in allocate_semantic_registers().
2025-04-09 16:02:12 +02:00
Shaun Ren
d1df10ac86
vkd3d-shader/hlsl: Use dcl_output_siv for patch constant function sysval outputs.
2025-04-09 16:02:12 +02:00
Elizabeth Figura
f576ecc992
vkd3d-shader/hlsl: Introduce a compiler pass to vectorize stores.
2025-04-03 20:29:20 +02:00