Commit Graph

520 Commits

Author SHA1 Message Date
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
114578fc8a vkd3d-shader/fx: Replace assert() with VKD3D_ASSERT(). 2024-08-13 21:20:28 +02:00
8b6ab9627d vkd3d-shader: Replace assert() with VKD3D_ASSERT() in vkd3d_shader_private.h. 2024-08-08 23:39:23 +02:00
f6dd6d52b3 vkd3d-shader: Factor out a vsir_program_get_parameter() helper. 2024-07-23 21:10:00 +02:00
806363b765 vkd3d-shader: Allow controlling alpha test through vkd3d-shader parameters. 2024-07-11 17:02:11 +02:00
98def3214b vkd3d-shader: Introduce struct vkd3d_shader_parameter_info and struct vkd3d_shader_parameter1.
As the newly added documentation describes, this reroll serves two purposes:

* to allow shader parameters to be used for any target type (which allows using
  parameters for things like Direct3D 8-9 alpha test),

* to allow the union in struct vkd3d_shader_parameter to contain types larger
  than 32 bits (by specifying them indirectly through a pointer).
2024-07-11 16:48:09 +02:00
2034a8bab9 vkd3d-shader/hlsl: Implement loop unrolling.
Based on a patch by Nikolay Sivov.

Co-authored-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-07-11 00:32:53 +02:00
60c8a813a3 vkd3d-shader/hlsl: Validate state block function calls. 2024-07-09 20:38:08 +02:00
a289393fe7 vkd3d-shader/asm: Output 'bias' flag for 'texld'.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-06-11 15:50:34 +02:00
0b8b5b2d0f vkd3d-shader/dxil: Implement DX intrinsic QuadReadLaneAt. 2024-06-11 15:48:21 +02:00
8a15642f45 vkd3d-shader/dxil: Implement DX intrinsic QuadOp. 2024-06-11 15:48:21 +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
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
efe9dfd73a vkd3d-shader/ir: Do not store the vkd3d-shader configuration flags in struct vkd3d_shader_parser. 2024-05-16 21:49:37 +02:00
19b552ce1b vkd3d-shader/ir: Pass an initialised vsir_program structure to vkd3d_shader_parser_init(). 2024-05-16 21:49:36 +02:00
9e4a790de1 vkd3d-shader/ir: Use a separate allocation for the vsir program in struct vkd3d_shader_parser. 2024-05-16 21:49:34 +02:00
47f0483267 vkd3d-shader/dxil: Implement DX intrinsic WaveReadLaneFirst. 2024-05-14 20:44:06 +02:00
e41643ab8f vkd3d-shader/dxil: Implement DX intrinsic WaveReadLaneAt. 2024-05-14 20:44:02 +02:00
2810edf45b vkd3d-shader/dxil: Implement DX intrinsic WavePrefixBitCount. 2024-05-13 11:50:22 +02:00
c30976e5c2 vkd3d-shader/dxil: Implement DX intrinsic WaveIsFirstLane. 2024-05-13 11:50:20 +02:00
cb5163f9a4 vkd3d-shader/dxil: Implement DX intrinsic WaveAllBitCount. 2024-05-13 11:50:17 +02:00
cc49f26af1 vkd3d-shader/ir: Validate geometry shader properties. 2024-05-08 21:08:15 +02:00