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
Giovanni Mascellani
9ebf779ef0
vkd3d: Propagate a failure in d3d12_descriptor_heap_init().
2024-07-11 00:34:58 +02:00
Elizabeth Figura
59f770214a
vkd3d-shader/hlsl: Implement output SV_Coverage.
2024-07-11 00:33:57 +02:00
Elizabeth Figura
71a3d55e8c
vkd3d-shader/hlsl: Implement the GetRenderTargetSampleCount() intrinsic.
2024-07-11 00:33:57 +02:00
Elizabeth Figura
a5a75d45d3
tests: Implement multisampling in the GL renderer.
2024-07-11 00:33:57 +02:00
Elizabeth Figura
737967604e
tests: Implement multisampling in the Vulkan renderer.
2024-07-11 00:33:57 +02:00
Elizabeth Figura
fe21318b5f
tests/shader_runner: Factor out a resource_desc structure.
2024-07-11 00:33:57 +02:00
Elizabeth Figura
fa570ee1f3
tests/shader_runner: Use resource->width instead of resource->size for buffer width.
2024-07-11 00:33:57 +02:00
Victor Chiletto
76ae871f5b
tests/hlsl: Test loop unrolling edge cases.
2024-07-11 00:32:53 +02:00
Victor Chiletto
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
Victor Chiletto
7edd7dcf79
vkd3d-shader/hlsl: Allow cloned blocks to contain external references.
2024-07-11 00:32:53 +02:00
Victor Chiletto
5bc56d43bb
vkd3d-shader/hlsl: Parse loop and unroll loop attributes.
...
Based on a patch by Nikolay Sivov.
Co-authored-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-07-11 00:32:53 +02:00
Victor Chiletto
323f53bd7d
vkd3d-shader/hlsl: Pull evaluate_static_expression_as_uint() upwards.
2024-07-11 00:32:53 +02:00
Victor Chiletto
50e28f70ed
vkd3d-shader/hlsl: Defer bounds checks to after copy propagation.
...
We potentially generate OOB accesses during loop unrolling that are later deleted.
2024-07-11 00:32:53 +02:00
Victor Chiletto
317bd46efd
vkd3d-shader/hlsl: Use a switch in validate_static_object_references().
2024-07-11 00:32:49 +02:00
Victor Chiletto
900433e371
tests/hlsl: Add a test for dynamically indexed multisampled texture loads.
2024-07-11 00:31:06 +02:00
Victor Chiletto
67c690aa07
vkd3d-shader/d3dbc: Fix implicit enum conversion warning.
...
This slipped through and broke CI.
2024-07-10 00:06:14 +02:00
Petrichor Park
746222b349
vkd3d-shader/hlsl: Implement the faceforward() intrinsic.
2024-07-09 20:43:41 +02:00
Francisco Casas
60c8a813a3
vkd3d-shader/hlsl: Validate state block function calls.
2024-07-09 20:38:08 +02:00
Francisco Casas
af7c4010f4
tests: Test whether valid state block function names are case-sensitive.
2024-07-09 20:37:20 +02:00
Francisco Casas
b5f2e7daeb
vkd3d-shader/hlsl: Parse function call syntax on state blocks.
2024-07-09 20:36:28 +02:00
Francisco Casas
f15d8dc9e9
tests: Separate the valid stateblock function names test from the string arg test.
...
This test is important because it checks that all the valid names for
stateblock functions with the expected amount of arguments are tested,
but, after parsing state block function calls, the only reason it is
not passing is that we don't parse strings yet.
2024-07-09 20:34:17 +02:00
Francisco Casas
7bd53cf6d9
vkd3d-shader/hlsl: Free array sizes on function parameters (Valgrind).
2024-07-09 20:32:25 +02:00
Francisco Casas
b92baa40ec
vkd3d-shader/d3dbc: Don't write inconsequential MOVs.
...
CASTs from floats to integers are implemented as mere MOVs. These often,
but not always, end up moving the value from one register to the same
register.
This patch avoids writing the MOV instructions if they have no effect.
2024-07-09 20:32:25 +02:00