Commit Graph

5864 Commits

Author SHA1 Message Date
Giovanni Mascellani
51b65688e1 ci: Abort on assertions on the CI. 2024-07-29 13:17:19 +02:00
Giovanni Mascellani
fb55c2b227 vkd3d: Emit an ERR() when reaching unreachable code.
This way the ERR() configuration is reused for unreachable code.
2024-07-29 13:17:19 +02:00
Giovanni Mascellani
4ada72a397 vkd3d: Allow aborting on ERR(). 2024-07-29 13:17:19 +02:00
Giovanni Mascellani
d7fc2693c4 vkd3d: Introduce a softer form of assertion.
Triggering an ERR() instead of aborting the program.
2024-07-29 13:17:19 +02:00
Giovanni Mascellani
a484063cd2 vkd3d: Introduce debug severity MESSAGE.
That's intended for messages that it's pretty important that the
user receives, but that are not proper error messages.
2024-07-29 13:17:19 +02:00
Giovanni Mascellani
021a7f030a vkd3d: Allow disabling ERR() by defining VKD3D_NO_ERROR_MESSAGES. 2024-07-29 13:17:19 +02:00
Giovanni Mascellani
60ecf8c12b vkd3d: Disable FIXME_ONCE() when VKD3D_NO_DEBUG_MESSAGES is defined.
Similarly to FIXME().
2024-07-29 13:17:19 +02:00
Giovanni Mascellani
4c1cc6101f vkd3d: Disable WARN_ON() when VKD3D_NO_DEBUG_MESSAGES is defined.
Similarly to WARN().
2024-07-29 13:17:19 +02:00
Elizabeth Figura
947b937a1a tests: Test shade mode. 2024-07-24 16:08:10 +02:00
Elizabeth Figura
ae5cd6573f vkd3d-shader: Allow controlling d3d color shade mode through vkd3d-shader parameters. 2024-07-24 16:08:10 +02:00
Elizabeth Figura
d20d0fc69f vkd3d-shader: Use the program parameters in spirv_compiler_alloc_spec_constant_id(). 2024-07-24 16:07:13 +02:00
Victor Chiletto
a0de05f0b4 vkd3d-shader/hlsl: Implement the asint() intrinsic. 2024-07-24 16:06:03 +02:00
Nikolay Sivov
91dce79227 vkd3d-shader/fx: Correct one of the object counters in the fx_2_0 header.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-07-24 16:04:21 +02:00
Elizabeth Figura
97cd941710 vkd3d-shader: Do not make the alpha test ref parameter VSIR_DIMENSION_VEC4. 2024-07-23 21:12:28 +02:00
Elizabeth Figura
1db7c03185 vkd3d-shader/spirv: Pass a vkd3d_data_type to spirv_compiler_emit_shader_parameter(). 2024-07-23 21:11:15 +02:00
Elizabeth Figura
f6dd6d52b3 vkd3d-shader: Factor out a vsir_program_get_parameter() helper. 2024-07-23 21:10:00 +02:00
Elizabeth Figura
6b58b6f261 vkd3d-shader/spirv: Allocate output_info after normalization.
Normalization may change the signatures.
2024-07-23 21:09:00 +02:00
Shaun Ren
49caeee1fd vkd3d-shader/hlsl: Support default values for function parameters. 2024-07-23 15:36:32 +02:00
Nikolay Sivov
29699d3d22 vkd3d-shader/fx: Set total pass count for fx_2_0.
Binaries with that field set incorrectly fail to load on Windows.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-07-23 15:23:54 +02:00
Nikolay Sivov
dcf4ce753b vkd3d-shader/fx: Correct empty pass check.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-07-23 15:23:54 +02:00
Nikolay Sivov
958117df2f vkd3d-shader/hlsl: Allow annotations on global variables.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-07-23 15:23:54 +02:00
Giovanni Mascellani
ba0fec4c51 vkd3d: Propagate errors out of d3d12_root_signature_append_vk_binding(). 2024-07-22 16:01:37 +02:00
Giovanni Mascellani
4b7fe26b33 vkd3d: Remove the temporary pointers in vkd3d_physical_device_info_init().
They were rather pointless now.
2024-07-22 16:00:28 +02:00
Giovanni Mascellani
75c64e55cd vkd3d: Rebuild the vkd3d_physical_device_info chain before creating the device.
vkd3d might decide to disable some extensions after the chain is created,
so the chain must be recreated with only the structures corresponding to
enabled extensions.
2024-07-22 16:00:28 +02:00
Giovanni Mascellani
7eb63a7c0d vkd3d: Document how to install "Graphics Tools" to use the Agility SDK.
This is a required step, otherwise the debug layer will not work.
2024-07-17 15:54:31 +02:00
Giovanni Mascellani
7e557420b1 tests: Terminate the Agility SDK path with a slash.
That's what the documentation recommends. It used to work for me without
the slash, but maybe they changed something in recent versions.
2024-07-17 15:54:31 +02:00
Giovanni Mascellani
e4e7368c1c tests: Pad the constant buffer in test_update_compute_descriptor_tables() to 256 bytes.
The D3D12 debug layer signals an error otherwise.
2024-07-17 15:53:31 +02:00
Giovanni Mascellani
a876e0b192 vkd3d: Allocate temporary arrays on the stack in d3d12_command_list_update_push_descriptors(). 2024-07-17 15:52:37 +02:00
Conor McCarthy
ae0faf4500 vkd3d: Limit the workgroup X count for buffer UAV clears to the supported max. 2024-07-17 15:51:39 +02:00
Conor McCarthy
3e25356abb tests: Add a test for clearing a large buffer UAV.
Large buffers can exceed the maximum workgroup X count.
2024-07-17 15:51:39 +02:00
Conor McCarthy
15f8657d74 vkd3d: Create a descriptor pool for static samplers when Vulkan-backed heaps are used.
Static samplers may be allocated from these pools.
2024-07-17 15:50:24 +02:00
Shaun Ren
0202393d41 vkd3d-shader/d3dbc: Implement HLSL_OP1_{COS,SIN}_REDUCED for SM1.
Also enable SM1 trigonometry function tests.
2024-07-16 19:03:52 +02:00
Shaun Ren
ea2ffc0b6c vkd3d-shader/hlsl: Allocate registers for HLSL_OP1_{COS,SIN}_REDUCED with the required writemasks. 2024-07-16 19:02:01 +02:00
Shaun Ren
8724cbe5d5 vkd3d-shader/d3dbc: Implement HLSL_OP3_MAD for SM1. 2024-07-16 18:56:44 +02:00
Shaun Ren
b4845b9dca vkd3d-shader/hlsl: Implement sin/cos for SM1.
Also introduce HLSL_OP3_MAD.
2024-07-16 18:55:22 +02:00
Shaun Ren
b3a11a9ec4 vkd3d-shader/ir: Lower SM1 SINCOS to SM4 SINCOS. 2024-07-16 15:24:58 +02:00
Elizabeth Figura
5a53b73995 tests: Test alpha test. 2024-07-11 17:02:53 +02:00
Elizabeth Figura
7e868f1f4b tests: Factor out a set_default_target() helper. 2024-07-11 17:02:45 +02:00
Elizabeth Figura
ded0733ff8 tests: Offset the viewport by 0.5 when running d3dbc shaders. 2024-07-11 17:02:40 +02:00
Elizabeth Figura
806363b765 vkd3d-shader: Allow controlling alpha test through vkd3d-shader parameters. 2024-07-11 17:02:11 +02:00
Elizabeth Figura
c2ce15b623 vkd3d-shader/spirv: Respect VKD3D_SHADER_CONDITIONAL_OP_Z when discard has a bool argument. 2024-07-11 16:59:06 +02:00
Elizabeth Figura
9e59e57cb3 tests: Add a test for the vkd3d_shader_parameter APIs. 2024-07-11 16:58:56 +02:00
Elizabeth Figura
e8bdac8147 vkd3d-shader/spirv: Support passing shader parameters through uniform buffers. 2024-07-11 16:58:52 +02:00
Elizabeth Figura
3dff608bf8 include: Document shader parameters. 2024-07-11 16:48:09 +02:00
Elizabeth Figura
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
Petrichor Park
bec4f413dc vkd3d-shader/tpf: Implmenent HLSL_OP1_RCP.
SM5 comes with a RCP opcode; for SM4, implement it as `DIV dst, 1, x`.
2024-07-11 16:44:16 +02:00
Petrichor Park
b3f0cd5788 vkd3d-shader/hlsl: Implement the rcp() intrinisic.
SM1 already has the RCP opcode implemented; SM4 implementation is in the
next commit.
2024-07-11 16:44:02 +02:00
Petrichor Park
3a49852075 vkd3d-shader/hlsl: Implement tests for the rcp() intrinsic. 2024-07-11 16:43:48 +02:00
Nikolay Sivov
c792114a6a vkd3d-shader/fx: Do not output empty strings for missing semantics for fx_2_0.
This is directly visible in parameter description. For a parameter without semantic
it should return null, instead of a pointer to an empty string.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-07-11 00:36:05 +02:00
Giovanni Mascellani
85fe4c421b tests: Define WIDL macros in utils.h.
This way other headers including utils.h, like d3d12_test_utils.h,
are self-contained.
2024-07-11 00:34:58 +02:00