Henri Verbeet
3a3acb5b7d
vkd3d-shader/dxbc: Pass a vkd3d_shader_code structure to shader_parse_input_signature().
2023-02-23 21:47:20 +01:00
Zebediah Figura
ab601d65cd
vkd3d-shader: Initialize the parameter allocator head.
...
This fixes a memory leak.
Fixes: 007f894b94
2023-02-07 22:15:08 +01:00
Conor McCarthy
d14f42be9d
vkd3d-shader/spirv: Pass a parser pointer to spirv_compiler_generate_spirv().
2023-01-24 18:11:16 +01:00
Conor McCarthy
2a5ae0a8c6
vkd3d-shader/sm4: Use the instruction array interface in compile_dxbc_tpf().
2023-01-24 18:11:14 +01:00
Conor McCarthy
2559d622de
vkd3d-shader: Use the instruction array interface in scan_with_parser().
2023-01-24 18:11:12 +01:00
Conor McCarthy
e9a2642d6a
vkd3d-shader/trace: Use the instruction array interface in vkd3d_dxbc_binary_to_text().
2023-01-24 18:11:10 +01:00
Conor McCarthy
e8cb90608d
vkd3d-shader: Initialise the instruction array in vkd3d_shader_parser_init().
2023-01-24 18:11:10 +01:00
Conor McCarthy
a9aaa59df0
vkd3d-shader/sm4: Store parsed instructions in an array.
2023-01-24 18:11:08 +01:00
Conor McCarthy
007f894b94
vkd3d-shader/sm1: Store parsed instructions in an array.
2023-01-24 18:11:06 +01:00
Conor McCarthy
1b11b57652
vkd3d-shader: Introduce DESCRIPTOR_INFO_FLAG_UAV_ATOMICS and always declare UAV images with known type for atomic ops.
...
Atomic ops on images with Unknown type will cause SPIR-V validation failure,
and assertion failure in Mesa debug builds. D3D12 allows atomics on typed
buffers, and this requires a distinction to be made between UAV reads and
atomic ops.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53874
2022-11-21 18:28:54 +01:00
Zebediah Figura
35b48a8b04
vkd3d-shader/spirv: Rename struct vkd3d_dxbc_compiler to struct spirv_compiler.
...
We would like to generate SPIR-V for input formats other than DXBC.
The "vkd3d_" prefix is dropped, partly to make names shorter, and partly to help
clarify what is an internal function.
I prefer avoiding the vkd3d_* prefix on all internal functions, for these
reasons. However, I'm open to restoring it.
2022-11-08 20:52:29 +01:00
Giovanni Mascellani
d5fd309ef8
vkd3d: Add a macro to mark unreachable code.
...
This should silence warnings about some branches non returning any value
without requiring additional "return 0" statement or similar.
Also, in theory this might enable to compiler to optimize the program
a little bit more, though that's unlikely to have any measurable effect.
2022-09-27 20:14:27 +02:00
Zebediah Figura
174172887b
vkd3d-shader: Allow writing log output via a custom callback.
...
When using PE vkd3d through Wine, debug output may be swallowed by writing to
Win32 stderr. Avoid this by providing a way to hook up vkd3d log output to Wine
output.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-06-07 19:38:49 +02:00
Matteo Bruni
228f7ab5cd
vkd3d-shader/hlsl: Handle over/underflow when parsing integer literals.
...
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-05-12 19:33:56 +02:00
Henri Verbeet
f0479f08bd
vkd3d-shader/glsl: Disable support for the GLSL target.
...
Regrettably, support for the GLSL target is not mature enough for the
upcoming 1.3 release.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-02 19:53:59 +01:00
Henri Verbeet
cea9f19bd4
vkd3d-shader/d3d-asm: Always use '.' as decimal separator when printing doubles.
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-01 22:31:33 +01:00
Henri Verbeet
aef9e9ea62
vkd3d-shader/d3d-asm: Always use '.' as decimal separator when printing floats.
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-01 22:31:33 +01:00
Henri Verbeet
850badd38c
vkd3d-shader: Handle double-precision floating-point data in vkd3d_shader_scan_typed_resource_declaration().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-28 22:23:22 +01:00
Henri Verbeet
2a14718fe5
vkd3d-shader: Handle "mixed" data in vkd3d_shader_scan_typed_resource_declaration().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-28 22:23:20 +01:00
Henri Verbeet
f5c4c06090
vkd3d-shader/hlsl: Respect the requested target type.
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-28 22:23:13 +01:00
Alexandre Julliard
7710f5deaf
vkd3d-shader: Use LONG type with InterlockedIncrement.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
2022-01-31 15:58:15 +01:00
Zebediah Figura
f3050be89d
vkd3d-shader: Do not validate the target type in vkd3d_shader_scan().
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-06 11:34:16 +01:00
Philip Rebohle
4e398459b1
vkd3d-shader/spirv: Omit the "endloop" branch to the loop start if the loop block was previously ended.
...
Avoiding generation of invalid SPIR-V.
Signed-off-by: Conor McCarthy <cmccarthy@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-08 22:39:51 +01:00
Henri Verbeet
b5a7abbfa6
vkd3d-shader/sm1: Add support for vkd3d_shader_scan().
...
Nominally, at least. Not all of the early shader models explicitly
declare resources and samplers, so those may currently get missed for
those.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-06 18:35:46 +02:00
Henri Verbeet
f7662f9878
vkd3d-shader/sm1: Introduce a parser for the legacy D3D byte-code format.
...
This is largely derived from the parser in Wine/wined3d, as of wine-6.18.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-06 18:35:44 +02:00
Henri Verbeet
28316b2694
vkd3d-shader: Introduce struct vkd3d_shader_parser_ops.
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-06 18:35:42 +02:00
Henri Verbeet
f5c6f2ea0e
vkd3d-shader: Introduce vkd3d_shader_parser_error().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-06 18:35:40 +02:00
Henri Verbeet
a0c2e52b4b
vkd3d-shader/sm4: Set an error state when shader_sm4_error() is called.
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-06 18:35:38 +02:00
Henri Verbeet
18e838a1cc
vkd3d-shader/sm4: Maintain the parser location in the vkd3d_shader_parser structure.
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-05 15:34:21 +02:00
Henri Verbeet
aca39afd73
vkd3d-shader/sm4: Store the message context pointer in the vkd3d_shader_parser structure.
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-05 15:34:20 +02:00
Henri Verbeet
88c8d11805
vkd3d-shader/sm4: Store a vkd3d_shader_parser structure in the vkd3d_sm4_data structure.
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-05 15:34:14 +02:00
Matteo Bruni
49eba71844
vkd3d-shader: Allocate memory for a string buffer at init time.
...
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-01 19:32:52 +02:00
Matteo Bruni
c3f8531477
vkd3d-shader: Don't resize the buffer when there is enough free space.
...
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-01 19:32:46 +02:00
Zebediah Figura
75a1a24d63
vkd3d-shader: Factor out a vkd3d_shader_trace_text() helper and use it in vkd3d_spirv_dump() (Valgrind).
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-17 22:56:31 +02:00
Henri Verbeet
4509f089e5
vkd3d-shader: Introduce shader_sm4_reset().
...
This allows us to drop the "ptr" argument to various functions.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-09 17:52:16 +02:00
Henri Verbeet
26009069dd
vkd3d-shader: Pass a vkd3d_shader_parser structure to shader_sm4_is_end().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-09 17:52:14 +02:00
Henri Verbeet
bb482332bf
vkd3d-shader: Pass a vkd3d_shader_parser structure to shader_sm4_read_instruction().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-09 17:52:13 +02:00
Henri Verbeet
12190ee3a9
vkd3d-shader: Pass a vkd3d_shader_parser structure to shader_sm4_read_header().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-09 17:52:11 +02:00
Henri Verbeet
661570254d
vkd3d-shader: Pass a vkd3d_shader_parser structure to shader_sm4_free().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-09 17:52:09 +02:00
Henri Verbeet
1c8b0d1062
vkd3d-shader: Pass a vkd3d_shader_parser structure to vkd3d_dxbc_binary_to_text().
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-01 22:02:06 +02:00
Henri Verbeet
a129206e7e
vkd3d-shader: Pass a vkd3d_shader_parser structure to vkd3d_shader_trace().
...
Mostly to avoid passing around void pointers.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-01 22:02:03 +02:00
Henri Verbeet
a8b062000e
vkd3d-shader: Only use scan_dxbc() for scanning dxbc-tpf source.
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-01 22:01:59 +02:00
Henri Verbeet
cfc09a210a
vkd3d-shader: Dump HLSL shaders with a ".hlsl" suffix.
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-01 22:01:52 +02:00
Atharva Nimbalkar
d71483d0e5
vkd3d-shader/glsl: Implement VKD3DSIH_RET.
...
Signed-off-by: Atharva Nimbalkar <atharvakn@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-19 20:42:53 +02:00
Atharva Nimbalkar
72435b8ac7
vkd3d-shader/glsl: Implement vkd3d_glsl_generator_generate().
...
Signed-off-by: Atharva Nimbalkar <atharvakn@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-19 20:42:44 +02:00
Atharva Nimbalkar
0376a8b4ee
vkd3d-shader: Implement VKD3D_SHADER_TARGET_GLSL.
...
Signed-off-by: Atharva Nimbalkar <atharvakn@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-18 23:16:52 +02:00
Zebediah Figura
70017e0e9e
vkd3d-shader: Move the bytecode buffer helpers to vkd3d_shader_main.c.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-27 13:55:42 +02:00
Conor McCarthy
a97d090010
vkd3d-shader: Get descriptor info for descriptor arrays.
...
Signed-off-by: Conor McCarthy <cmccarthy@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-26 17:35:21 +02:00
Conor McCarthy
57faa09dc0
vkd3d-shader: Introduce shader_sm4_error() for reporting via vkd3d_shader_verror().
...
Signed-off-by: Conor McCarthy <cmccarthy@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-02 16:45:28 +02:00
Conor McCarthy
f3ed1c0d9a
vkd3d-shader: Pass a struct vkd3d_shader_register_range to vkd3d_shader_scan_add_descriptor().
...
Signed-off-by: Conor McCarthy <cmccarthy@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-28 13:44:39 +02:00