Commit Graph

6609 Commits

Author SHA1 Message Date
Victor Chiletto
8010ef8771 tests: Add a test for unused overlapping cbuffer reservations. 2024-10-01 17:28:41 +02:00
Nikolay Sivov
5e52ccbf3d vkd3d-shader/hlsl: Move default values indexing fixup to the tpf writer stage.
The primary goal here is to move compilation profile type and version
check outside of a parsing stage. Default values for parameters were
never subjected to this fixup, and it does look tpf-specific, so moving
it where it belongs.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-10-01 17:27:12 +02:00
Andrey Gusev
f28d39b609 vkd3d-utils: Store the actual serialisation return value in D3DStripShader(). 2024-09-30 20:57:15 +02:00
Andrey Gusev
c94eac2d33 vkd3d-utils: Store the actual serialisation return value in get_blob_part(). 2024-09-30 20:52:24 +02:00
Giovanni Mascellani
6822f1fe6c vkd3d-shader/dxil: Trace the program when validation fails after parsing. 2024-09-30 20:48:43 +02:00
Giovanni Mascellani
5f20103518 vkd3d-shader/d3dbc: Trace the program when validation fails after parsing. 2024-09-30 20:48:43 +02:00
Giovanni Mascellani
8acaa3a62c vkd3d-shader/tpf: Propagate validation errors after parsing.
Also, trace the program when validation fails after parsing, mostly
to make debugging easier.
2024-09-30 20:48:43 +02:00
Giovanni Mascellani
0f91149260 vkd3d-shader/d3d-asm: Dump all indices when tracing VSIR code.
Our ASM dumper currently hides or interprets some register indices
in order to match users expectations. This can be inconvenient for
developers, though, because it makes it harder to understand what's
really going on in the VSIR code when reading logs. With this change
the whole index structure is dumped.
2024-09-30 20:22:53 +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
Giovanni Mascellani
5c2b057b56 vkd3d-shader/ir: Validate UAV registers. 2024-09-30 20:05:52 +02:00
Giovanni Mascellani
b7b5b0cff8 vkd3d-shader/ir: Validate RESOURCE registers. 2024-09-30 20:05:52 +02:00
Giovanni Mascellani
a0b98c1610 vkd3d-shader/ir: Validate SAMPLER registers. 2024-09-30 20:05:52 +02:00
Giovanni Mascellani
7404fa5285 vkd3d-shader/dxil: Emit RESOURCE and UAV registers with data type UNUSED. 2024-09-30 20:05:39 +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
Conor McCarthy
2bf517782d vkd3d-shader/dxil: Load forward-referenced sources as value/type pairs in sm6_parser_emit_store(). 2024-09-30 19:58:06 +02:00
Conor McCarthy
6a86e1a8d9 vkd3d-shader/dxil: Load forward-referenced comparands as value/type pairs in sm6_parser_emit_cmpxchg(). 2024-09-30 19:57:55 +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
Giovanni Mascellani
828e5f1249 vkd3d-shader/ir: Disallow RESOURCE registers in destination parameters. 2024-09-26 17:44:52 +02:00
Giovanni Mascellani
674ad7d655 vkd3d-shader/ir: Disallow SAMPLER registers in destination parameters. 2024-09-26 17:44:52 +02:00
Giovanni Mascellani
6de741e5e7 vkd3d-shader/ir: Do not allow NULL registers in source parameters. 2024-09-26 17:44:52 +02:00
Giovanni Mascellani
8d85ea2dc5 vkd3d-shader: Get rid of the RESOURCE data type. 2024-09-26 17:42:16 +02:00
Giovanni Mascellani
e58726310b vkd3d-shader: Get rid of the UAV data type. 2024-09-26 17:42:16 +02:00
Giovanni Mascellani
2934f820a9 vkd3d-shader: Get rid of the SAMPLER data type. 2024-09-26 17:42:16 +02:00
Giovanni Mascellani
afa2fd527c vkd3d-shader/dxil: Release memory on exceptional paths when parsing DXIL code. (Valgrind) 2024-09-26 17:41:21 +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
Giovanni Mascellani
5ad83a05ff vkd3d-shader/dxil: Release memory on exceptional paths in sm6_parser_read_signature(). (Valgrind) 2024-09-26 01:05:35 +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
Feifan He
e8b14d765d vkd3d-shader/msl: Implement support for VKD3DSPR_TEMP registers. 2024-09-24 13:56:11 +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
f37be27bdc vkd3d-shader/ir: Properly check the register bounds in shader_signature_find_element_for_reg().
Perhaps the existing code is safe in practice, but doing the check
properly avoids having to make that determination.
2024-09-24 13:39:43 +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