Commit Graph

261 Commits

Author SHA1 Message Date
49fba97b0a vkd3d-shader/spirv: Introduce a SPIR-V parser. 2024-12-09 14:22:24 +01:00
e20b63c55e vkd3d-shader: Implement scanning hull shader tessellation information. 2024-11-21 15:03:02 +01:00
9e3b8ec98a vkd3d-shader/msl: Output the generated shader code. 2024-11-20 14:40:10 +01:00
e781abc3fb vkd3d-shader: Write uninitialized components of COLOR0 as 1. 2024-11-04 15:21:09 +01:00
91701f8303 vkd3d-shader: Warn instead of erroring out when failing to dump a shader.
It's a debug operation and shouldn't be considered fatal, even
for development workflows.
2024-10-23 16:14:33 +02:00
6a03369f84 vkd3d-shader: Do not dump the target shader if compilation failed.
Otherwise we'd use unitialized data.
2024-10-23 16:14:33 +02:00
32e6a1bb4d vkd3d-shader: Validate the parsed shader in vsir_parse(). 2024-10-23 16:02:09 +02:00
3a3f95e1e7 vkd3d-shader: Factor out a vsir_parse() helper. 2024-10-23 16:02:09 +02:00
6801ad9b7a vkd3d-shader/fx: Introduce a parser/disassembler.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-10-14 15:20:41 +02:00
2d7832e738 vkd3d-shader/msl: Generate shader descriptor structure declarations. 2024-10-10 19:40:34 +02:00
16efb7c0c6 vkd3d-shader: Ignore the patch constant signature when it doesn't make sense. 2024-10-09 13:13:00 +02:00
1256b4f862 vkd3d-shader/d3d-asm: Rename vkd3d_shader_trace() to vsir_program_trace(). 2024-10-08 22:04:59 +02:00
eb10f0897e vkd3d-shader/glsl: Implement VKD3DSIH_LD. 2024-10-03 19:14:43 +02:00
ae40184631 vkd3d-shader/glsl: Implement support for VKD3DSPR_CONSTBUFFER registers. 2024-09-19 14:29:46 +02:00
5df81049aa vkd3d-shader/msl: Call vsir_program_transform() before generating code. 2024-09-12 18:09:00 +02:00
47981def0d vkd3d-shader/msl: Generate comments for unhandled instructions.
Similar to commit 8a60814476 for the GLSL
target.
2024-09-12 18:04:44 +02:00
23ba1a5e07 vkd3d-shader: Introduce VKD3D_SHADER_TARGET_MSL. 2024-09-12 17:03:32 +02:00
527966580e vkd3d-shader: Dump the converted shader too. 2024-08-29 19:17:07 +02:00
1a0d6a4db4 vkd3d-shader: Use a hash to build the filename when dumping shaders.
This way the same shader is always dumped to the same path and when
launching the same program over and over we avoid both creating new
copies of the same file each time and overwriting different dumped
shaders.
2024-08-29 19:14:27 +02:00
27bceec965 vkd3d-shader: Replace assert() with VKD3D_ASSERT() in vkd3d_shader_main.c. 2024-08-08 23:39:23 +02:00
1fe7a6581b vkd3d-shader/ir: Rename the "handler_idx" field of struct vkd3d_shader_instruction to "opcode". 2024-05-30 19:57:01 +02:00
b5ac6ac636 vkd3d-shader: Use a separate allocation for the "semantic_name" field of shader signature elements.
For tpf shader this would previously be a pointer into the original
shader code, and for d3dbc shaders we'd use static strings.
Unfortunately the dxil parser creates shader signatures where these
are pointers to metadata strings, and those go away when we call
sm6_parser_cleanup().

We could conceivably store a flag in the shader signature to indicate
whether shader_signature_cleanup()/vkd3d_shader_free_shader_signature()
should free the "semantic_name" field. It'd be a little ugly, and seems
unlikely to be worth it, but I'd be willing to be convinced.
2024-05-23 23:12:06 +02:00
ce6f8a6a30 vkd3d-shader/dxil: Parse the shader into a vsir program in vkd3d_shader_sm6_parser_create(). 2024-05-16 21:49:40 +02:00
6474e8cc7b vkd3d-shader/tpf: Parse the shader into a vsir program in vkd3d_shader_sm4_parser_create(). 2024-05-16 21:49:39 +02:00
402b96ef3b vkd3d-shader/d3dbc: Parse the shader into a vsir program in vkd3d_shader_sm1_parser_create(). 2024-05-16 21:49:38 +02:00