Elizabeth Figura
7b61b0219e
vkd3d-shader/hlsl: Allocate register spaces for constant buffers.
2024-06-11 15:49:30 +02:00
Elizabeth Figura
28a5e23814
vkd3d-shader: Write SM5.1 register indices.
...
Separate ID and index. Allocate IDs for all external resources (but ignore them
for shader models other than 5).
2024-06-11 15:49:30 +02:00
Elizabeth Figura
19a13740de
vkd3d-shader/hlsl: Put constant buffers into the extern_resources struct.
...
Mostly to get the same sorting logic.
2024-06-11 15:49:30 +02:00
Elizabeth Figura
558320b52f
vkd3d-shader/hlsl: Add a hlsl_fixme() for 5.1 resource arrays.
...
These are a bit trickier to handle, and need more tests.
2024-06-11 15:49:30 +02:00
Conor McCarthy
9b070edf01
vkd3d-shader/spirv: Implement the QUAD_READ_LANE_AT instruction.
2024-06-11 15:48:21 +02:00
Conor McCarthy
0b8b5b2d0f
vkd3d-shader/dxil: Implement DX intrinsic QuadReadLaneAt.
2024-06-11 15:48:21 +02:00
Conor McCarthy
c298493e4f
vkd3d-shader/spirv: Implement the QUAD_READ_ACROSS_* instructions.
2024-06-11 15:48:21 +02:00
Conor McCarthy
8a15642f45
vkd3d-shader/dxil: Implement DX intrinsic QuadOp.
2024-06-11 15:48:21 +02:00
Francisco Casas
f5bfa728eb
vkd3d-shader/hlsl: Reorder default values for matrices for SM4.
...
Default value initializers behave differently than regular initializers
for matrices on SM4 profiles.
While regular initializers assign the rhs elements in reading-order
(completing one row at the time), default initializers assing the rhs
elements in Chinese reading-order (completing one column at the time).
So after lowering a default value to a constant, the index of the
component to which this default value is stored is computed to meet
this expectation. This can be done because the default values.
For reference, compiling this shader:
row_major int2x3 m = {1, 2, 3, 4, 5, 6};
float4 main() : sv_target
{
return float4(m[0][0], 99, 99, 99);
}
gives the following buffer definition:
// cbuffer $Globals
// {
//
// row_major int2x3 m; // Offset: 0 Size: 28
// = 0x00000001 0x00000003 0x00000005 0x00000000
// 0x00000002 0x00000004 0x00000006
//
// }
Given that the matrix is column-major, m's default value is actually
{{1, 3, 5}, {2, 4, 6}}, unlike the {{1, 2, 3}, {4, 5, 6}} one would
expect in a regular initializer.
SM1 profiles assign the elements in regular reading order.
2024-06-11 15:46:40 +02:00
Francisco Casas
ab01fedc5d
vkd3d-shader/hlsl: Fix numeric register offset for matrix components.
2024-06-11 15:46:40 +02:00
Francisco Casas
ade3daa311
tests: Test matrix default value initializers.
2024-06-11 15:46:40 +02:00
Francisco Casas
affadf319c
vkd3d-shader/d3dbc: Write default values for SM1.
2024-06-11 15:46:40 +02:00
Francisco Casas
253c994155
vkd3d-shader/tpf: Write default values for SM4.
2024-06-11 15:46:40 +02:00
Francisco Casas
b44a25ce19
tests: Test default values using reflection.
2024-06-11 15:46:40 +02:00
Francisco Casas
099a64aeb2
vkd3d-shader/hlsl: Initialize default values with braceless initializers.
...
It is hard to initialize default values on add_assignment() and calling
add_assignment() for initializers is not really necessary: the only
thing we need from it the implicit cast.
2024-06-11 15:46:40 +02:00
Francisco Casas
e8dbc36bd2
vkd3d-shader/hlsl: Record default values for uniforms and constant buffers.
2024-06-11 15:46:40 +02:00
Henri Verbeet
1fe7a6581b
vkd3d-shader/ir: Rename the "handler_idx" field of struct vkd3d_shader_instruction to "opcode".
2024-05-30 19:57:01 +02:00
Nikolay Sivov
5265fbb789
vkd3d-shader/fx: Do not write shared buffers block when not compiling as a child effect.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-05-30 19:56:50 +02:00
Nikolay Sivov
727aacca18
tests: Add a few tests for the NULL value.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-05-30 19:56:44 +02:00
Nikolay Sivov
163aaf9729
tests: Add some basic tests for ConstantBuffer type.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-05-30 19:56:39 +02:00
Nikolay Sivov
ea177a7750
vkd3d-shader/hlsl: Handle "unsigned int" type.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-05-30 19:56:29 +02:00
Henri Verbeet
36c123c005
Release 1.12.
2024-05-29 22:05:28 +02:00
Henri Verbeet
9693271dcf
tests: Rename VKD3D_TESTS_SKIP_DXC to VKD3D_TEST_SKIP_DXC.
...
For consistency with the other VKD3D_TEST_* environment variables.
2024-05-27 21:08:14 +02:00
Henri Verbeet
695ef722e8
build: Fix the order of a couple of shader runner tests.
2024-05-27 21:08:06 +02:00
Henri Verbeet
b363fdbb21
include: Add a \since tag for VKD3D_FALSE.
2024-05-27 21:08:00 +02:00
Henri Verbeet
007233a016
include: Document the additional HLSL transformations supported by vkd3d_shader_compile().
2024-05-27 21:08:00 +02:00
Nikolay Sivov
308d735923
vkd3d-shader/ir: Set texture register dimension as VEC4 when normalising combined samplers.
...
Thanks, Giovanni.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-05-27 21:07:51 +02:00
Giovanni Mascellani
9a3fa67c1f
tests: Skip a test that freezes the GPU on NVIDIA.
2024-05-27 21:07:43 +02:00
Conor McCarthy
ae25c80498
vkd3d: Check for mutable descriptor set allocation failure in d3d12_descriptor_heap_create_descriptor_set().
2024-05-27 21:07:30 +02:00
Nikolay Sivov
f090d1e80d
vkd3d-shader: Remove explicit newlines from hlsl_fixme() messages.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-05-23 23:12:10 +02:00
Henri Verbeet
b5ac6ac636
vkd3d-shader: Use a separate allocation for the "semantic_name" field of shader signature elements.
...
For tpf shader this would previously be a pointer into the original
shader code, and for d3dbc shaders we'd use static strings.
Unfortunately the dxil parser creates shader signatures where these
are pointers to metadata strings, and those go away when we call
sm6_parser_cleanup().
We could conceivably store a flag in the shader signature to indicate
whether shader_signature_cleanup()/vkd3d_shader_free_shader_signature()
should free the "semantic_name" field. It'd be a little ugly, and seems
unlikely to be worth it, but I'd be willing to be convinced.
2024-05-23 23:12:06 +02:00
Victor Chiletto
105ef28273
vkd3d-shader/preproc: Treat CR as whitespace.
2024-05-23 23:11:58 +02:00
Giovanni Mascellani
a64426edf9
tests: Check device support for all the 16 bit image formats.
...
Otherwise the test crash on llvmpipe.
2024-05-22 22:15:32 +02:00
Giovanni Mascellani
dfa3ee25e0
vkd3d: Move the full stops before the newline.
2024-05-22 22:15:27 +02:00
Victor Chiletto
fa5708d3b5
vkd3d-shader/hlsl: Fix XOR assign operator lexing.
2024-05-22 22:15:20 +02:00
Victor Chiletto
d8d2414132
tests/hlsl: Add a test for the XOR assign operator.
2024-05-22 22:15:19 +02:00
Conor McCarthy
7d3c286e9b
tests/d3d12: Add a separate null 'views' pointer test in test_null_vbv().
2024-05-22 22:15:14 +02:00
Conor McCarthy
fd416b492c
tests/d3d12: Use get_cpu_sampler_handle() for the sampler heap in test_unbounded_samplers().
2024-05-22 22:15:12 +02:00
Conor McCarthy
cc1877dadb
tests/d3d12: Ensure stream output BufferFilledSizeLocation is always valid.
2024-05-22 22:15:11 +02:00
Conor McCarthy
42d369d595
tests/d3d12: Check UnalignedBlockTexturesSupported when testing GetCopyableFootprints().
2024-05-22 22:15:09 +02:00
Conor McCarthy
0daba96025
tests/d3d12: Test format D32_FLOAT_S8X24_UINT in test_get_copyable_footprints().
2024-05-22 22:15:07 +02:00
Conor McCarthy
f6db3330c8
tests/d3d12: Check the correct depth/stencil plane format and alignment in test_get_copyable_footprints().
2024-05-22 22:15:05 +02:00
Conor McCarthy
23881bad7a
tests/d3d12: Set the descriptor heaps for the draw call in test_graphics_uav_counters().
2024-05-22 22:15:04 +02:00
Conor McCarthy
dcc715b4d1
tests/d3d12: Do not clear UAVs via a structured view.
2024-05-22 22:15:02 +02:00
Conor McCarthy
42eee382ec
tests/d3d12: Do not test 3D depth textures in test_get_copyable_footprints().
2024-05-22 22:15:00 +02:00
Conor McCarthy
bb2a79a8fb
tests/d3d12: Do not test a typed UAV in test_atomic_instructions().
...
A shader typed UAV declaration must not map to a root descriptor UAV. We
now have shader runner tests for typed UAV atomics, so there is no need
to modify this test to use a descriptor heap.
2024-05-22 22:14:58 +02:00
Nikolay Sivov
9c83caeda6
vkd3d-shader/fx: Use correct type name when reusing types.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-05-16 21:49:50 +02:00
Nikolay Sivov
a913ac7844
vkd3d-shader/fx: Implement writing shared buffers.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-05-16 21:49:48 +02:00
Henri Verbeet
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
Henri Verbeet
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