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
Elizabeth Figura
1a999f74fc
vkd3d-shader/hlsl: Introduce a compiler pass to vectorize expressions.
2025-04-03 20:29:20 +02:00
Shaun Ren
7aebed0eea
vkd3d-shader/hlsl: Ensure that uniform objects are never written to in copy_propagation_transform_object_load().
2025-04-02 18:49:52 +02:00
Shaun Ren
b1d8915440
vkd3d-shader/hlsl: Divert written uniform derefs to temps before copy-propagation passes.
...
The following pixel shader currently triggers an infinite loop during
copy propagation, which is fixed by this commit:
sampler s;
Texture2D t1, t2;
float4 main() : sv_target
{
Texture2D t = t1;
t1 = t2;
t2 = t;
return t1.Sample(s, float2(0, 0)) + t2.Sample(s, float2(0, 0));
}
The infinite loop occurs because copy_propagation_transform_object_load()
replaces t1 in the resource_load(t1, ...) instruction
with t2, t1, t2, ... repeatedly.
2025-04-02 18:49:52 +02:00
Francisco Casas
3ead8d532b
vkd3d-shader/hlsl: Allow non-constant deref propagation on SM1.
...
Note that we still have to preempt the propagation to SM1 pixel shader
uniforms. Otherwise this will turn the many constant derefs that appear
from the <index-val> copy generated in lower_index_loads() into a single
non-constant deref, causing it to allocate all the registers instead of
up until the last one used.
2025-04-02 18:27:16 +02:00
Francisco Casas
fd02d69dda
vkd3d-shader/hlsl: Implement indirect addressing for d3dbc target profiles.
2025-04-02 18:26:03 +02:00
Elizabeth Figura
20b76f87bf
vkd3d-shader/hlsl: Initialize the temp count for sm1.
2025-04-02 17:58:26 +02:00
Elizabeth Figura
7cb5a7bebc
vkd3d-shader/hlsl: Leave the swizzle zero for VSIR_DIMENSION_NONE registers.
2025-04-02 17:58:26 +02:00
Elizabeth Figura
950f78041a
vkd3d-shader/hlsl: Initialize the vsir dimension for sm1.
2025-04-02 17:58:26 +02:00
Elizabeth Figura
856f4b55f6
vkd3d-shader/hlsl: Set the correct index count for sm1 DEPTHOUT.
2025-04-02 17:58:26 +02:00
Elizabeth Figura
227e2cc0f5
vkd3d-shader/hlsl: Use vsir_*_from_hlsl_node() helpers in more places.
2025-04-02 17:58:18 +02:00
Shaun Ren
bd055fac1c
vkd3d-shader/hlsl: Store geometry shader properties in struct vsir_program.
2025-03-18 15:46:02 +01:00
Shaun Ren
b1ace5763a
vkd3d-shader/hlsl: Implement input semantics for geometry shaders.
2025-03-18 15:40:11 +01:00
Shaun Ren
8af3173955
vkd3d-shader/hlsl: Support input primitive arrays in geometry shaders.
2025-03-18 15:40:11 +01:00
Francisco Casas
ea99d2c2cd
vkd3d-shader/hlsl: Lower integer modulus for d3dbc target profiles.
2025-03-18 15:27:04 +01:00
Francisco Casas
828afe188c
vkd3d-shader/hlsl: Don't lower integer MOD and DIV on const passes for d3dbc target profiles.
...
These bitwise operations are not available in these profiles.
2025-03-18 15:27:03 +01:00
Elizabeth Figura
bc382c6835
vkd3d-shader/hlsl: Reuse shader model 1-3 constants.
2025-03-18 14:21:02 +01:00