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
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
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
Henri Verbeet
fc4c9b7a95
vkd3d-shader/glsl: Implement VKD3DSIH_USHR.
2024-10-02 22:30:58 +02:00
Henri Verbeet
babbf11d52
vkd3d-shader/glsl: Implement VKD3DSIH_ISHR.
2024-10-02 22:30:58 +02:00
Henri Verbeet
7f1c78f8e2
vkd3d-shader/glsl: Implement VKD3DSIH_ISHL.
2024-10-02 22:30:58 +02:00
Henri Verbeet
f501b8c661
vkd3d-shader/glsl: Implement VKD3DSIH_MAD.
2024-10-02 22:30:58 +02:00
Henri Verbeet
4103e76245
vkd3d-shader/glsl: Implement support for VKD3DSPDM_SATURATE modifiers.
2024-10-02 22:30:58 +02:00
Nikolay Sivov
79aa75e98f
vkd3d-shader/fx: Implement writing fx_2_0 object initializer data sections.
...
Object data is used for strings, textures, and shaders. Samplers are handled separately.
The section is a contigious stream of <id><size><object-data>, size field is used
to advance to the next <id> position.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-10-02 22:17:41 +02:00
Francisco Casas
caa2a9d314
vkd3d-shader/hlsl: Parse sampler_state.
2024-10-02 22:07:34 +02:00
Francisco Casas
125bf74ef3
tests: Test sampler_state keyword syntax.
2024-10-02 22:07:34 +02:00
Nikolay Sivov
994e994231
vkd3d-shader/fx: Handle assignments with array RHS indexed with a constant or a single variable.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-10-02 22:05:46 +02:00
Nikolay Sivov
849d4b3b2b
tests: Add some tests for state value assignments.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-10-02 22:04:44 +02:00
Elizabeth Figura
3b1760134f
tests: Test clip planes.
2024-10-02 21:49:54 +02:00
Henri Verbeet
3452d126a8
vkd3d-shader/glsl: Implement VKD3DSIH_ELSE.
2024-10-01 17:29:48 +02:00
Henri Verbeet
01ba2ba6db
vkd3d-shader/glsl: Implement VKD3DSIH_NOT.
2024-10-01 17:29:48 +02:00
Henri Verbeet
1812258f37
vkd3d-shader/glsl: Implement VKD3DSIH_RSQ.
2024-10-01 17:29:48 +02:00
Henri Verbeet
5cf8562124
vkd3d-shader/glsl: Implement VKD3DSIH_MIN.
2024-10-01 17:29:48 +02:00
Henri Verbeet
4f054aed48
vkd3d-shader/glsl: Implement VKD3DSIH_MAX.
2024-10-01 17:29:48 +02:00
Victor Chiletto
2ea5f187f9
vkd3d-shader/hlsl: Allow cbuffer reservations to overlap if only one of them is allocated.
2024-10-01 17:28:41 +02:00
Victor Chiletto
8010ef8771
tests: Add a test for unused overlapping cbuffer reservations.
2024-10-01 17:28:41 +02:00
Henri Verbeet
10559fa17a
vkd3d-shader/glsl: Implement VKD3DSIH_LOG.
2024-09-30 20:21:14 +02:00
Henri Verbeet
700eba0b01
vkd3d-shader/glsl: Handle SV_IS_FRONT_FACE inputs.
2024-09-30 20:20:11 +02:00
Henri Verbeet
0cc0b68fb4
vkd3d-shader/glsl: Implement VKD3DSIH_ROUND_NE.
2024-09-30 20:08:58 +02:00
Henri Verbeet
308121ba04
vkd3d-shader/glsl: Implement VKD3DSIH_IF and VKD3DSIH_ENDIF.
2024-09-30 20:08:58 +02:00
Henri Verbeet
e911433e0c
vkd3d-shader/glsl: Implement VKD3DSIH_ROUND_NI.
2024-09-30 20:08:58 +02:00
Nikolay Sivov
300e4e0d12
vkd3d-shader/fx: Add support for writing annotations for fx_2_0.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-09-30 20:02:51 +02:00
Nikolay Sivov
c9c537faa0
vkd3d-shader/fx: Add initial support for writing default values for fx_2_0.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-09-30 20:02:05 +02:00
Nikolay Sivov
da0469f190
vkd3d-shader/fx: Handle the 'half' type in fx_4+.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-09-30 20:01:57 +02:00
Nikolay Sivov
2626dcc55d
tests: Add some tests for initial values in effects.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-09-30 19:59:21 +02:00
Francisco Casas
95bd06be83
tests/shader-runner: Query for SM6 support instead of checking VKD3D_SHADER_UNSUPPORTED_DXIL.
...
This change avoids skipping the tests on a Windows build, where the
support is present but the macro is not defined.
Thanks Giovanni for pointing this out.
2024-09-30 19:29:14 +02:00
Francisco Casas
42f910e56e
tests/shader_runner: Query for GLSL target support instead of checking VKD3D_SHADER_UNSUPPORTED_GLSL.
2024-09-30 19:28:09 +02:00
Henri Verbeet
466c8bfbb7
vkd3d-shader/glsl: Implement VKD3DSIH_LTO.
2024-09-26 17:40:07 +02:00
Henri Verbeet
44e96ad4d6
vkd3d-shader/glsl: Implement VKD3DSIH_EXP.
2024-09-26 17:40:07 +02:00
Henri Verbeet
d68e60a78a
vkd3d-shader/glsl: Implement VKD3DSIH_IEQ.
2024-09-26 17:40:07 +02:00
Henri Verbeet
55de9ea405
vkd3d-shader/glsl: Implement VKD3DSIH_DCL_INPUT_PS.
2024-09-26 17:40:07 +02:00
Henri Verbeet
f0c8b4a3c5
vkd3d-shader/glsl: Implement VKD3DSIH_SQRT.
2024-09-26 17:40:07 +02:00
Henri Verbeet
92a7cc3420
vkd3d-shader/glsl: Implement VKD3DSIH_DP2.
2024-09-26 01:04:32 +02:00
Henri Verbeet
b9d8b84b06
vkd3d-shader/glsl: Implement VKD3DSIH_DP4.
2024-09-26 01:04:32 +02:00
Henri Verbeet
93cd63bc93
vkd3d-shader/glsl: Implement VKD3DSIH_DP3.
2024-09-26 01:04:32 +02:00
Henri Verbeet
929010ffd7
vkd3d-shader/glsl: Implement support for the VKD3DSPR_DEPTHOUT register.
2024-09-26 01:04:32 +02:00
Henri Verbeet
459f141e81
vkd3d-shader/glsl: Implement VKD3DSIH_ROUND_Z.
2024-09-26 01:04:32 +02:00
Francisco Casas
ebc4f84185
tests/shader_runner: Use skip() when the d3d12 device doesn't support shader model 6.
2024-09-24 13:54:27 +02:00
Francisco Casas
a4262c3836
tests/shader_runner: Skip the DXIL tests when DXIL support is not enabled.
2024-09-24 13:51:14 +02:00
Francisco Casas
94af1754dd
tests/shader_runner: Skip the GLSL tests when GLSL support is not enabled.
2024-09-24 13:45:57 +02:00
Henri Verbeet
8e39783770
vkd3d-shader/glsl: Implement VKD3DSIH_ROUND_PI.
2024-09-24 13:38:26 +02:00
Henri Verbeet
58472e7404
vkd3d-shader/glsl: Implement VKD3DSIH_FTOU.
2024-09-24 13:38:26 +02:00
Atharva Nimbalkar
f441d3e112
vkd3d-shader/glsl: Implement VKD3DSIH_UTOF.
2024-09-24 13:38:26 +02:00
Henri Verbeet
a3d06c8f12
vkd3d-shader/glsl: Implement VKD3DSIH_FTOI.
2024-09-24 13:38:26 +02:00
Atharva Nimbalkar
b81cdcb488
vkd3d-shader/glsl: Implement VKD3DSIH_ITOF.
2024-09-24 13:38:26 +02:00
Conor McCarthy
91475c684f
vkd3d: Clear the output pointer on failure in vkd3d_create_versioned_root_signature_deserializer().
2024-09-24 13:34:40 +02:00
Conor McCarthy
ae4a6c7044
tests/d3d12: Test invalid bytecode in test_root_signature_byte_code().
2024-09-24 13:30:33 +02:00
Arkadiusz Hiler
a3017fe9d5
vkd3d-shader/preproc: Support namespaces in macro identifiers.
2024-09-24 13:17:24 +02:00
Conor McCarthy
966e627733
tests/d3d12: Test a bounded range at the same offset as an unbounded one in test_unbounded_resource_arrays().
2024-09-23 15:45:26 +02:00
Elizabeth Figura
650bf4d83f
vkd3d-shader/hlsl: Fix a corner case in ternary type conversion.
...
If the condition and argument types are compatible, i.e. there is no broadcast,
the resulting shape should be the shape of the arguments, not the shape of the
condition.
2024-09-23 15:43:15 +02:00
Elizabeth Figura
b2cddecfc5
vkd3d-shader/hlsl: Use add_cast() in append_conditional_break().
...
Instead of creating a cast node directly.
This specifically handles the 1x1 matrix case, which currently the backend code does not expect.
2024-09-23 15:43:15 +02:00
Atharva Nimbalkar
ee8e005209
vkd3d-shader/glsl: Implement VKD3DSIH_MOVC.
2024-09-23 15:41:07 +02:00
Henri Verbeet
7b99c33510
vkd3d-shader/glsl: Implement VKD3DSIH_FRC.
2024-09-23 15:41:07 +02:00
Henri Verbeet
36c08b47e9
vkd3d-shader/glsl: Implement VKD3DSIH_GEO.
2024-09-23 15:41:07 +02:00
Henri Verbeet
28ef331704
vkd3d-shader/glsl: Implement support for VKD3DSPSM_NEG modifiers.
2024-09-23 15:41:07 +02:00
Henri Verbeet
b9366def96
vkd3d-shader/glsl: Implement VKD3DSIH_DIV.
2024-09-23 15:41:07 +02:00
Nikolay Sivov
d7def84253
vkd3d-shader/hlsl: Remove the 'double' keyword.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-09-23 15:26:35 +02:00
Nikolay Sivov
968a3dfc1a
tests: Add some more tests for type name handling.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-09-23 15:26:28 +02:00
Henri Verbeet
bc70d575ae
vkd3d-shader/glsl: Implement VKD3DSIH_OR.
2024-09-20 17:16:33 +02:00
Henri Verbeet
e289c3999d
vkd3d-shader/glsl: Implement VKD3DSIH_INE.
2024-09-20 17:16:33 +02:00
Henri Verbeet
3b3fe1da2c
vkd3d-shader/glsl: Implement VKD3DSIH_MUL.
2024-09-20 17:16:33 +02:00
Atharva Nimbalkar
2fc35da940
vkd3d-shader/glsl: Implement support for VSIR_DIMENSION_VEC4 immediate constants.
2024-09-20 17:16:33 +02:00
Henri Verbeet
2409966ff2
vkd3d-shader/glsl: Implement VKD3DSIH_NEU.
2024-09-20 17:16:33 +02:00
Henri Verbeet
c8acf285cb
vkd3d-shader/glsl: Implement support for VKD3DSPSM_ABS modifiers.
2024-09-19 14:35:20 +02:00
Atharva Nimbalkar
1d485cc8a9
vkd3d-shader/glsl: Implement support for VKD3DSPR_IMMCONST registers.
2024-09-19 14:32:29 +02:00
Atharva Nimbalkar
ab07637ee1
vkd3d-shader/glsl: Implement VKD3DSIH_ADD.
2024-09-19 14:29:46 +02:00
Henri Verbeet
ae40184631
vkd3d-shader/glsl: Implement support for VKD3DSPR_CONSTBUFFER registers.
2024-09-19 14:29:46 +02:00
Francisco Casas
ffc1449412
vkd3d-shader/hlsl: Allow effect calls on default value initializers.
2024-09-14 16:09:12 +02:00
Francisco Casas
4aa262d773
vkd3d-shader/hlsl: Parse ConstructGSWithSO().
2024-09-14 16:09:08 +02:00
Francisco Casas
3423d1b54b
tests: Test ConstructGSWithSO() parsing.
2024-09-14 15:59:35 +02:00
Anna (navi) Figueiredo Gomes
e61046fb23
vkd3d-shader/hlsl: Implement the "earlydepthstencil" attribute.
2024-09-12 18:46:24 +02:00
Anna (navi) Figueiredo Gomes
fe8a2f820b
tests/shader_runner: Test the "earlydepthstencil" attribute.
2024-09-12 18:45:56 +02:00
Anna (navi) Figueiredo Gomes
127ae6cf12
vkd3d: Implement d3d12_command_list_OMSetDepthBounds().
...
Based on the design document, "The runtime will not clamp or validate
the input, but implementations may clamp to the range [0,1] if necessary.",
so we test for the EXT_depth_range_unrestricted extension, and only clamp if
it's not available (thus, necessary to do so).
NaNs are converted to zero as per "NaNs must be treated as 0, but the runtime
will convert NaNs to 0 on behalf of the implementation.", and a default bounds
are set to 0.0 and 1.0.
2024-09-11 14:53:33 +02:00
Anna (navi) Figueiredo Gomes
61a700bcdc
tests: Test depth bounds.
2024-09-11 14:53:33 +02:00
Anna (navi) Figueiredo Gomes
e761b2cad1
tests/shader_runner: Introduce a "d3d12" tag.
2024-09-11 14:53:33 +02:00
Anna (navi) Figueiredo Gomes
3eb2a3d0e4
tests/shader_runner: Introduce a 'depth-bounds' test option.
2024-09-11 14:53:21 +02:00
Anna (navi) Figueiredo Gomes
12a7cde092
tests/shader_runner: Use ID3D12Device2_CreatePipelineState() when available.
2024-09-11 14:13:59 +02:00
Anna (navi) Figueiredo Gomes
04d7ad90e5
tests/shader_runner: Extract a pipeline creation function from d3d12_runner_draw().
2024-09-11 14:08:37 +02:00
Nikolay Sivov
de6abd964e
vkd3d-shader/hlsl: Implement the mad() intrinsic.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-09-10 21:40:32 +02:00
Nikolay Sivov
75299c04fd
vkd3d-shader: Handle the SV_SampleIndex semantic.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-09-10 21:39:03 +02:00
Shaun Ren
c1babbc8aa
vkd3d-shader/hlsl: Validate hull shader attributes.
2024-09-04 18:30:04 +02:00
Shaun Ren
dae88bab52
vkd3d-shader/hlsl: Parse the outputcontrolpoints attribute.
2024-09-04 18:28:46 +02:00
Shaun Ren
62fad1c185
tests: Test hull shader function overloads.
2024-09-04 18:18:23 +02:00
Shaun Ren
ed1e74dd62
tests: Test hull shader attributes.
2024-09-04 18:18:23 +02:00
Shaun Ren
73ee5a135a
vkd3d-shader/hlsl: Check for duplicate attributes in function declaration.
2024-09-04 18:18:23 +02:00
Petrichor Park
855b9713b8
vkd3d-shader/hlsl: Implement the sincos() intrinsic.
2024-09-04 18:16:37 +02:00
Petrichor Park
384810b4ba
vkd3d-shader/hlsl: Implement the dst() intrinsic.
2024-09-04 18:08:24 +02:00
Francisco Casas
7ec44bd70b
vkd3d-shader/hlsl: Parse the CompileShader() syntax.
2024-09-04 17:59:34 +02:00
Francisco Casas
45f18a7838
vkd3d-shader/hlsl: Parse the shader 'compile' syntax.
...
The hlsl_ir_compile node is introduced to represent the "compile"
syntax, and later the CompileShader() and ConstructGSWithSO()
constructs.
It basically represents a function call that remembers its arguments
using hlsl_srcs and keeps its own instruction block, which is discarded
when working on non-effect shaders.
For shader compilations it can be asserted that args_count is 1, and
that this argument (and the last node in hlsl_ir_effect_call.instrs)
is a regular hlsl_ir_call pointing to the declaration of the function
to be compiled.
2024-09-04 17:58:56 +02:00