Nikolay Sivov
4fc15d4b4a
vkd3d-shader/fx: Add initial support for writing fx_2_0 parameters.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-03-18 23:07:30 +01:00
Conor McCarthy
3f99719ff2
vkd3d-shader/dxil: Implement DX intrinsic BufferUpdateCounter.
2024-03-18 23:07:23 +01:00
Conor McCarthy
52a831ba0d
tests/hlsl: Add UAV counter tests.
2024-03-18 23:07:21 +01:00
Francisco Casas
4c40deaac1
vkd3d-shader/hlsl: Use hlsl_fixme() on missing SM1 matrix writemask lowering.
...
Instead of FIXME(). Otherwise we compile invalid d3dbc.
2024-03-14 22:49:29 +01:00
Francisco Casas
5c986b9cde
vkd3d-shader/hlsl: Lower SLT instructions for pixel shaders.
...
Properly passing the inverse-trig.shader_test tests whose qualifiers
have been removed requires making spirv.c capable of handling ABS.
The same happens for the ps_3_0 equality test in
float-comparison.shader_test.
2024-03-14 22:49:29 +01:00
Francisco Casas
4133c4d801
tests: Test equality between tiny and between large numbers on ps_2_0.
2024-03-14 22:49:29 +01:00
Francisco Casas
e9a4758648
vkd3d-shader/hlsl: Implement SM1 comparison operators.
2024-03-14 22:49:29 +01:00
Conor McCarthy
b6c41d5287
tests/hlsl: Add tests for countbits() and firstbit{high|low}().
2024-03-13 21:50:39 +01:00
Nikolay Sivov
e0ef45c0a3
vkd3d-shader: Parse a 'single' modifier.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-03-12 22:14:50 +01:00
Nikolay Sivov
cf7c05f431
vkd3d-shader: Remove a token for 'precise' modifier.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-03-12 22:14:50 +01:00
Nikolay Sivov
7f1fdd447c
vkd3d-shader/fx: Add initial support for writing uninitialized vertex/pixel shader objects.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-03-12 22:14:40 +01:00
Evan Tang
03a80cde2e
vkd3d: Enable VK_EXT_fragment_shader_interlock if available.
2024-03-11 22:10:25 +01:00
Giovanni Mascellani
5e43f99809
tests: Relax precision a bit for an interpolation test.
...
Otherwise the test fails on Intel, NVIDIA and llvmpipe.
2024-03-11 22:10:14 +01:00
Conor McCarthy
4f0e5b9069
vkd3d-shader/dxil: Support 16-bit types.
2024-03-11 22:10:06 +01:00
Conor McCarthy
581939f1ef
tests/shader-runner: Add tests for minimum-precision constants.
...
Values in DXIL have no signedness, so it is ambiguous whether 16-bit
constants should or should not be sign-extended when 16-bit execution
is not supported.
2024-03-11 22:10:01 +01:00
Francisco Casas
2b06bcc615
tests: Check that -0.0f is not less than 0.0f.
2024-03-11 22:09:44 +01:00
Francisco Casas
308c7941d4
tests: Test comparison and logic operators on SM1 vertex shaders.
...
Currently these are failing for SM1 because VKD3DSIH_SLT is not being
handled by spirv.c.
2024-03-11 22:09:43 +01:00
Conor McCarthy
5a6fd010ac
vkd3d-shader/dxil: Implement DX intrinsic TextureGather.
2024-03-11 22:09:18 +01:00
Conor McCarthy
8337b99a2c
tests/shader-runner: Add a Gather test with non-constant offset.
2024-03-11 22:09:16 +01:00
Conor McCarthy
7fcf1b6ca2
tests/shader-runner: Add sampler comparison tests.
2024-03-11 22:09:08 +01:00
Evan Tang
4553b2a0dc
vkd3d-shader/spirv: Implement support for rasteriser-ordered views.
...
Using SPV_EXT_fragment_shader_interlock.
2024-03-08 23:36:35 +01:00
Conor McCarthy
e65055b435
vkd3d-shader/spirv: Handle the ORD and UNO instructions.
2024-03-08 23:36:14 +01:00
Conor McCarthy
94583815bc
tests/shader-runner: Add a test for FCMP_ORD (is ordered).
2024-03-08 23:36:12 +01:00
Nikolay Sivov
b13d60d805
vkd3d-shader/hlsl: Add determinant() function.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-03-08 23:35:23 +01:00
Nikolay Sivov
a0d52dc385
vkd3d-shader/hlsl: Improve VertexShader/PixelShader types handling.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-03-06 23:04:25 +01:00
Nikolay Sivov
4dd1bbae40
tests: Add some tests for shader object type names.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-03-06 23:04:25 +01:00
Nikolay Sivov
8c5db57ea7
vkd3d-shader/fx: Reject fx_2_0 output without techniques.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-03-06 23:04:19 +01:00
Nikolay Sivov
dd5e42d347
vkd3d-shader/hlsl: Allow technique10 {} blocks for fx_2_0.
...
Such techniques are ignored later, but do not cause compilation errors.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-03-06 23:04:18 +01:00
Conor McCarthy
5082893e5d
vkd3d-shader/spirv: Always use a 64-bit write mask for IMMCONST64 src params.
...
There is no way to tell in spirv_compiler_emit_load_reg() if the write
mask is 64-bit. All loads are 32-bit except for IMMCONST64 and SSA, and
the latter ignores the mask, so the only issue lies with IMMCONST64.
2024-03-06 23:04:12 +01:00
Conor McCarthy
13143700b7
tests/shader-runner: Add raw UAV tests.
2024-03-06 23:04:11 +01:00
Francisco Casas
58c456ff2b
vkd3d-shader/d3dbc: Implement bool to float cast as MOV.
...
In SM1, bools are always represented as either 0.0f or 1.0f at runtime.
2024-03-06 23:04:07 +01:00
Francisco Casas
747511131d
vkd3d-shader/hlsl: Lower non-float operators for SM1.
2024-03-06 23:04:05 +01:00
Giovanni Mascellani
500b61c383
tests: Test how constant folding works on SM1.
2024-02-26 23:04:08 +01:00
Conor McCarthy
c083b1d0fc
vkd3d-shader/dxil: Implement DX intrinsic GetDimensions.
2024-02-26 23:03:48 +01:00
Conor McCarthy
2330ffdeda
vkd3d-shader/dxil: Implement DX intrinsics SampleBias and SampleLevel.
2024-02-22 22:45:34 +01:00
Conor McCarthy
cab8b781ab
vkd3d-shader/dxil: Handle raw and structured buffers in sm6_parser_emit_dx_buffer_store().
2024-02-22 22:45:07 +01:00
Conor McCarthy
ce1875c435
vkd3d-shader/dxil: Implement DX intrinsic BufferStore.
2024-02-22 22:45:06 +01:00
Conor McCarthy
b447a725ec
tests/shader-runner: Add a test for a signed int structured buffer UAV.
...
Check for backend type mismatches resulting from the absence of
signedness in SM 6.
2024-02-22 22:45:05 +01:00
Conor McCarthy
9180ea6591
tests/shader-runner: Add a test for a signed int typed buffer UAV.
...
Check for backend type mismatches resulting from the absence of
signedness in SM 6.
2024-02-22 22:45:04 +01:00
Conor McCarthy
081c9dbc96
tests/shader-runner: Support structured buffer UAVs.
2024-02-22 22:45:02 +01:00
Petrichor Park
02a3667822
vkd3d-shader/hlsl: Implement atan and atan2.
...
Also narrows some more todos on the tests.
2024-02-21 23:23:13 +01:00
Petrichor Park
69294c290b
vkd3d-shader/hlsl: Implement acos and asin trig intrinsics.
...
Tests have already been implemented in 92044d5e; this commit also reduces
the scope of some of the todos (because now they're implemented!).
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55154
2024-02-21 23:23:11 +01:00
Conor McCarthy
96a0685ba6
vkd3d-shader/dxil: Implement DX intrinsic AtomicCompareExchange.
2024-02-20 22:50:16 +01:00
Conor McCarthy
560c9413c3
vkd3d-shader/dxil: Implement DX intrinsic AtomicBinOp.
2024-02-20 22:50:15 +01:00
Conor McCarthy
3906c12476
tests/shader-runner: Add tests for UAV atomic ops.
2024-02-20 22:50:13 +01:00
Evan Tang
7b41abaa1b
vkd3d-shader/hlsl: Support SV_PrimitiveID in pixel shaders.
2024-02-19 21:12:23 +01:00
Francisco Casas
8df34fce62
vkd3d-shader/hlsl: Emit fixme on non-direct resource stores.
...
Co-authored-by: Giovanni Mascellani <gmascellani@codeweavers.com>
These may happen when storing to structured buffers, and we are not
handling them properly yet. The included test reaches unreacheable code
before this patch.
Storing to buffers is complicated since we need to split the index
chain in two paths:
- The path within the variable where the resource is.
- The subpath to the part of the resource element that is being stored
to.
For now, we will emit a fixme when the index chain in the lhs is not a
direct resource access.
2024-02-19 21:12:14 +01:00
Francisco Casas
c249461e97
vkd3d-shader/hlsl: Parse Buffer types.
2024-02-19 21:11:55 +01:00
Francisco Casas
4fe9ab0a90
tests/shader-runner: Change probe directive syntax on shader_test files.
...
For consistency with the previous commit.
2024-02-19 21:11:53 +01:00
Francisco Casas
b08be04465
tests/shader-runner: Change resource declaration syntax on shader_test files.
...
On shader_test files, now resources should be declared this way:
[texture n] -> [srv n]
[srv buffer n] -> [srv n]
[uav n] -> [uav n]
[uav buffer n] -> [uav n]
[vertex buffer n] -> [vb n]
[render target n] -> [rtv n]
The dimension (buffer or 2D) is now specified as an additional parameter
in the "size" directive:
For 2D resources:
size (n, m) -> size (2d, n, m)
For buffers:
size (n, 1) -> size (buffer, n)
2024-02-19 21:11:52 +01:00