Zebediah Figura
2a412670ee
tests: Add more tests for pack_matrix pragmas.
2023-02-28 22:06:54 +01:00
Francisco Casas
af25d5bf96
vkd3d-shader/hlsl: Don't map src swizzles for SM1 dp3 and dp4 ops.
...
Without this patch, dp3 and dp4 map src swizzles to the dst writemask,
which is not correct.
Before b84f560bdf
, these ops worked
despite this, because the dst register had, incorrectly, the full
writemask.
To solve this problem, write_sm1_binary_op_dot() is introduced,
similarly to write_sm4_binary_op_dot().
2023-02-27 22:12:38 +01:00
Giovanni Mascellani
a1c6bb85ad
vkd3d-shader: Do not pass client-given strings as printf()-style format strings.
2023-02-27 22:12:26 +01:00
Henri Verbeet
b1e13d6e33
vkd3d-shader/dxbc: Introduce API for serialising DXBC blobs.
2023-02-23 21:47:27 +01:00
Henri Verbeet
c87492ed21
vkd3d-shader/dxbc: Introduce API for parsing DXBC blobs.
2023-02-23 21:47:26 +01:00
Henri Verbeet
d0d2130f74
vkd3d-shader/dxbc: Rename parse_dxbc() to for_each_dxbc_section().
2023-02-23 21:47:23 +01:00
Henri Verbeet
a06320c1fc
vkd3d-shader/dxbc: Pass a vkd3d_shader_code structure to parse_dxbc().
2023-02-23 21:47:22 +01:00
Henri Verbeet
2f762465a6
vkd3d-shader/dxbc: Pass a vkd3d_shader_code structure to shader_extract_from_dxbc().
2023-02-23 21:47:21 +01:00
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
Henri Verbeet
e2825f7658
vkd3d-shader/dxbc: Pass a vkd3d_shader_dxbc_section_desc structure to the parse_dxbc() section handler.
2023-02-23 21:47:19 +01:00
Henri Verbeet
5020781f76
vkd3d-shader/dxbc: Pass a vkd3d_shader_dxbc_section_desc structure to shader_parse_root_signature().
2023-02-23 21:47:18 +01:00
Henri Verbeet
6c64f8a217
vkd3d-shader/dxbc: Pass a vkd3d_shader_dxbc_section_desc structure to shader_parse_signature().
2023-02-23 21:47:16 +01:00
Henri Verbeet
bf3c012834
vkd3d-shader/dxbc: Rename the dxbc_writer_section structure to vkd3d_shader_dxbc_section_desc.
...
In preparation of exposing it in the public API.
2023-02-23 21:47:15 +01:00
Henri Verbeet
b59de4de5c
vkd3d-shader/dxbc: Store DXBC section data as a vkd3d_shader_code structure.
2023-02-23 21:47:13 +01:00
Zebediah Figura
dea212688a
vkd3d: Remove a double space in a trace message.
2023-02-23 21:46:49 +01:00
Nikolay Sivov
dd36215a00
vkd3d-shader/hlsl: Support case-insensitive lookup for builtin 'float' type.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2023-02-23 21:46:42 +01:00
Nikolay Sivov
df2d6d35e2
vkd3d-shader/hlsl: Use unsigned type for the 'dword' alias.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2023-02-23 21:46:40 +01:00
Nikolay Sivov
891217664a
vkd3d-shader/hlsl: Support case-insensitive lookup for builtin 'dword' type.
2023-02-23 21:46:38 +01:00
Giovanni Mascellani
5f904e5022
vkd3d-utils: Generate Doxygen documentation for vkd3d_utils.h.
2023-02-22 21:38:46 +01:00
Giovanni Mascellani
e5bbd05c98
vkd3d: Generate Doxygen documentation for vkd3d.h.
2023-02-22 21:38:46 +01:00
Giovanni Mascellani
6bdb0abf68
vkd3d-shader: Fix the Doxygen documentation for vkd3d_shader.h.
...
The \since field was too early, and prevented Doxygen from really
parsing the synopsis for vkd3d_shader.h.
2023-02-22 21:38:43 +01:00
Zebediah Figura
e10e12a10c
vkd3d-shader: Avoid underflowing the indentation level.
...
Any shader that would underflow is invalid, but it is helpful to allow tracing even invalid shaders.
2023-02-22 18:28:19 +01:00
Francisco Casas
f8338ef089
vkd3d-shader/hlsl: Allocate register reservations in a separate pass.
...
This refactoring is required for improving the allocation strategy so it
works with multiple-register variables.
2023-02-22 18:28:19 +01:00
Francisco Casas
75359e6dbd
vkd3d-shader/hlsl: Respect object reservations even if the object is unused.
2023-02-22 18:28:19 +01:00
Francisco Casas
7a7116eaab
tests: Test allocation of unused objects.
2023-02-22 18:28:19 +01:00
Francisco Casas
c5384b38ee
vkd3d-shader/hlsl: Allocate objects according to register set.
2023-02-22 18:28:19 +01:00
Francisco Casas
e0031d2a1f
vkd3d-shader/hlsl: Keep an hlsl_reg for each register set in hlsl_ir_var.
2023-02-22 18:28:19 +01:00
Francisco Casas
5272c5f86a
vkd3d-shader/hlsl: Obtain extern resources as a separate array in SM4.
2023-02-22 18:28:19 +01:00
Francisco Casas
d07247249a
vkd3d-shader/hlsl: Store the type's register size for each register set.
2023-02-22 18:28:19 +01:00
Francisco Casas
315966dc21
vkd3d-shader/hlsl: Leave offset empty for array and struct derefs.
2023-02-22 18:28:19 +01:00
Zebediah Figura
7c1c2e6cc4
vkd3d-shader/hlsl: Parse the tex3D() intrinsic.
2023-02-22 18:28:19 +01:00
Zebediah Figura
645ec0167a
vkd3d-shader/hlsl: Parse the tex2D() intrinsic.
2023-02-22 18:28:19 +01:00
Francisco Casas
9fdff25a3b
vkd3d-shader/hlsl: Avoid segfault on missing sampler.
2023-02-22 18:28:19 +01:00
Nikolay Sivov
d86db8bcbe
vkd3d-shader/hlsl: Support lit() intrinsic.
2023-02-21 21:09:52 +01:00
Zebediah Figura
02e3be811b
configure: Declare LFLAGS and YFLAGS as precious.
...
Normally AC_PROG_LEX and AC_PROG_YACC do this, but we demand flex and bison specifically.
2023-02-20 22:00:00 +01:00
Francisco Casas
7f009f59ce
vkd3d-shader/hlsl: Add a more specific error for missing compatible fn. definitions.
2023-02-20 21:59:54 +01:00
Francisco Casas
f08c0a7c03
vkd3d-shader/hlsl: Find compatible function overloads.
...
But still throw hlsl_fixme() when there is more than one.
Prioritizing among multiple compatible function overloads in the same way
as the native compiler would require systematic testing.
2023-02-20 21:59:53 +01:00
Francisco Casas
d279d34801
vkd3d-shader/hlsl: Parse array types in function parameters.
2023-02-20 21:59:51 +01:00
Francisco Casas
9df54851c9
tests: Test array parameters on functions.
2023-02-20 21:59:51 +01:00
Francisco Casas
1b951c87f6
tests: Add more tests for broadcasts in function call args.
2023-02-20 21:59:51 +01:00
Francisco Casas
2a9b9f7530
vkd3d-shader/hlsl: Rename compatible_data_types() to be more specific.
2023-02-20 21:59:50 +01:00
Zebediah Figura
6767b7abbf
vkd3d-shader/hlsl: Avoid warning for each variable when in/out modifiers are specified on non-parameters.
2023-02-20 21:59:45 +01:00
Zebediah Figura
72ec5563f8
vkd3d-shader/hlsl: Remove a redundant warning for mutually exclusive majority modifiers.
...
We will warn subsequently in apply_type_modifiers() or add_typedef().
2023-02-20 21:59:43 +01:00
Zebediah Figura
af65287423
vkd3d-shader/hlsl: Check for majority modifiers on non-matrices in apply_type_modifiers().
2023-02-20 21:59:42 +01:00
Zebediah Figura
1ee7a4e82a
tests: Add more tests for majority modifier syntax.
2023-02-20 21:59:42 +01:00
Zebediah Figura
1c29b45c1f
tests: Test macro expansion in pack_matrix pragmas.
2023-02-20 21:59:42 +01:00
Nikolay Sivov
e5b40092c2
vkd3d-shader/hlsl: Support all() intrinsic.
2023-02-20 21:59:37 +01:00
Francisco Casas
2142d31f13
vkd3d-shader/hlsl: Fix number of components when creating a swizzle in copy-prop.
...
Otherwise we may create nodes of different dimensions than the ones we
are replacing.
"count" is the number of components of the source deref (without
considering the swizzle), while "instr_component_count" is the actual
number of components of the instruction to be replaced.
2023-02-20 21:59:31 +01:00
Nikolay Sivov
e7bc634307
vkd3d-shader/hlsl: Support reflect() intrinsic.
...
Tests authored by Giovanni.
2023-02-20 21:59:23 +01:00
Giovanni Mascellani
7c3dadce6b
vkd3d-shader/hlsl: Write SM4 break instructions.
2023-02-15 21:53:21 +01:00