Francisco Casas
2e0cbff3a0
vkd3d-shader/hlsl: Allocate return variables before other outputs.
...
point-sprite.shader_test is not technically well formed since, in SM4,
the vertex output signature should be:
// Output signature:
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// sv_position 0 xyzw 0 POS float xyzw
// texcoord 0 xy 1 NONE float xy
and the pixel input signature should be:
// Input signature:
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// texcoord 0 xy 0 NONE float xy
so we are not passing "texcoord" properly to the pixel shader, even on
Windows.
2025-06-23 17:56:40 +02:00
Elizabeth Figura
d5237ec1cc
vkd3d-shader/hlsl: Output SSA registers where possible.
2025-06-23 17:44:11 +02:00
Elizabeth Figura
34dbd60e01
vkd3d-shader/hlsl: Add a register type field to struct hlsl_reg.
...
This will be used for temps. After moving temp allocation to vsir, some of these
will be VKD3DSPR_SSA, and some will not.
2025-06-23 17:28:40 +02:00
Elizabeth Figura
9552dab5aa
vkd3d-shader: Use the correct union members for raw and structured resources.
2025-06-04 12:10:39 +02:00
Shaun Ren
2b257caea9
vkd3d-shader/hlsl: Don't optimize semantic register allocations in SM1.
...
This matches the behaviour of fxc/d3dcompiler.
2025-06-02 20:53:00 +02:00
Elizabeth Figura
847c008b49
vkd3d-shader/ir: Split TEX into two separate vsir opcodes.
...
The two have the same d3dbc opcode, but have different names and different semantics.
2025-06-02 20:13:52 +02:00
Henri Verbeet
7929ba9747
vkd3d-shader: Move vkd3d_siv_from_sysval_indexed() to hlsl_codegen.c.
2025-06-02 20:10:46 +02:00
Shaun Ren
d5dcf31123
vkd3d-shader/hlsl: Store stream index in struct hlsl_semantic.
...
In addition, support stream indices in tpf_write_signature().
2025-06-02 19:59:22 +02:00
Shaun Ren
d368d18527
vkd3d-shader/hlsl: Generate vsir instructions for indexed output streams in geometry shaders.
2025-06-02 19:53:25 +02:00
Shaun Ren
7da7ccaf45
vkd3d-shader/hlsl: Emit dcl_stream instructions for SM5 geometry shaders.
2025-06-02 19:53:25 +02:00
Henri Verbeet
e17a98f870
vkd3d-shader: Remove some newlines from vkd3d-shader error messages.
2025-05-27 17:12:13 +02:00
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