Elizabeth Figura
10efdd3f63
vkd3d-shader/hlsl: Introduce an add_explicit_conversion() helper.
2024-10-07 17:33:07 +02:00
Elizabeth Figura
aa79bfa681
vkd3d-shader/preproc: Store argument values per expansion, not per macro.
2024-10-07 17:32:27 +02:00
Henri Verbeet
e7c4867359
vkd3d-shader/glsl: Implement support for VKD3DSPR_IDXTEMP registers.
2024-10-07 17:31:20 +02:00
Henri Verbeet
944929d0da
vkd3d-shader/glsl: Implement VKD3DSIH_IADD.
2024-10-07 17:31:20 +02:00
Henri Verbeet
4eed6b8887
vkd3d-shader/glsl: Add interpolation modifiers to interstage inputs and outputs.
2024-10-07 17:31:20 +02:00
Henri Verbeet
7b47528e4b
vkd3d-shader/glsl: Handle SV_VERTEX_ID inputs.
2024-10-07 17:31:20 +02:00
Henri Verbeet
79455041f0
vkd3d-shader/glsl: Implement VKD3DSIH_EQO.
2024-10-07 17:31:19 +02:00
Nikolay Sivov
565698711b
tests: Add a test for uniform array indexing.
2024-10-07 17:30:41 +02:00
Nikolay Sivov
d1c2ae3f0e
vkd3d-shader/hlsl: Remove the type equality assertion for binary expression arguments.
2024-10-07 17:29:40 +02:00
Francisco Casas
0b989c9f37
vkd3d-shader/hlsl: Fix the conditions to discard default values.
...
Otherwise default_values for strings are lost.
Thanks to Nikolay Sivov for pointing this out.
2024-10-07 17:28:07 +02:00
Feifan He
b7314e2438
vkd3d-shader/msl: Handle signature element masks in the prologue and epilogue.
2024-10-07 17:21:52 +02:00
Feifan He
7c42da465a
vkd3d-shader/msl: Generate the shader entry point prologue.
2024-10-07 17:21:52 +02:00
Feifan He
cd070f9995
vkd3d-shader/msl: Generate the shader entry point epilogue.
2024-10-07 17:21:52 +02:00
Feifan He
a88f3168e5
vkd3d-shader/msl: Generate the shader entry point.
2024-10-07 17:21:52 +02:00
Feifan He
577cc47740
vkd3d-shader/msl: Generate shader input structure declarations.
2024-10-07 17:21:52 +02:00
Feifan He
cd5917c648
vkd3d-shader/msl: Generate shader output structure declarations.
2024-10-07 17:21:27 +02:00
Henri Verbeet
25232f2b2b
vkd3d-shader/glsl: Implement VKD3DSIH_IMUL.
2024-10-03 19:20:14 +02:00
Henri Verbeet
4dec4e9959
vkd3d-shader/glsl: Implement VKD3DSIH_ILT.
2024-10-03 19:18:15 +02:00
Henri Verbeet
68492e704f
vkd3d-shader/glsl: Implement VKD3DSIH_IGE.
2024-10-03 19:15:48 +02:00
Henri Verbeet
cf6a3ad676
vkd3d-shader/glsl: Implement VKD3DSIH_SAMPLE.
2024-10-03 19:15:48 +02:00
Henri Verbeet
eb10f0897e
vkd3d-shader/glsl: Implement VKD3DSIH_LD.
2024-10-03 19:14:43 +02:00
Giovanni Mascellani
0e50825b83
vkd3d-shader/ir: Validate indices for UAV registers.
2024-10-03 19:08:33 +02:00
Giovanni Mascellani
3ab68c1e46
vkd3d-shader/ir: Validate indices for RESOURCE registers.
2024-10-03 19:08:33 +02:00
Giovanni Mascellani
ab23038367
vkd3d-shader/ir: Validate indices for SAMPLER registers.
2024-10-03 19:08:33 +02:00
Giovanni Mascellani
da7c9694f1
vkd3d-shader/dxil: Emit SAMPLER, UAV and RESOURCE registers with only 2 indices.
...
DXIL handles are used to represent descriptors. Currently they are
translated to registers of the appropriate type (depending on the
descriptor type) and three indices. The first two indices are used
to represent the descriptor itself (through its signature and array
index), and are filled when the handle itself is created. The last
index is used with constant buffers to address the data inside the
buffer itself, and it goes unused with other descriptor types.
As currently implemented, however, registers for descriptors other
than constant buffers are still created with three indices, even if
the last one is useless and set to -1. In the interest of creating
more sensible VSIR code, this is now removed: DXIL handles are
created with just two indices; a third one is added when accessing
constant buffers, and nothing is changed for other descriptor types.
2024-10-03 19:08:33 +02:00