Giovanni Mascellani
018f3e8094
vkd3d-shader/ir: Validate tessellation system values for the given tessellator domain.
2024-11-21 19:28:46 +01:00
Giovanni Mascellani
1ed8d907b3
vkd3d-shader/ir: Keep track of the tessellator domain in struct vsir_program.
2024-11-21 19:28:46 +01:00
Giovanni Mascellani
49ec9add38
vkd3d-shader/ir: Check that semantic indices for tessellation system values are not duplicated.
2024-11-21 19:28:46 +01:00
Giovanni Mascellani
8d8de1db10
vkd3d-shader/ir: Validate the semantic index for tessellation system values.
2024-11-21 19:28:46 +01:00
Anna (navi) Figueiredo Gomes
9f3bbab2f0
vkd3d-shader/hlsl: Implement cast from bool to int for SM1.
2024-11-21 19:28:46 +01:00
Nikolay Sivov
1a6409cd5b
vkd3d-shader/hlsl: Add parser support for stream-output object types.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-11-21 19:28:46 +01:00
Francisco Casas
13dfccc1c6
vkd3d-shader/hlsl: Store SM4 resource stores in the vsir program.
2024-11-21 19:28:46 +01:00
Francisco Casas
5b4af411f5
vkd3d-shader/hlsl: Store SM4 loads in the vsir program.
2024-11-21 19:28:46 +01:00
Francisco Casas
874ca85a95
vkd3d-shader/hlsl: Store SM4 stores in the vsir program.
2024-11-21 19:28:46 +01:00
Francisco Casas
5dedcff665
vkd3d-shader/tpf: Remove HLSL_IR_SWIZZLE handling.
2024-11-21 19:28:46 +01:00
Shaun Ren
e20b63c55e
vkd3d-shader: Implement scanning hull shader tessellation information.
2024-11-21 15:03:02 +01:00
Shaun Ren
1f4d17a4a2
vkd3d-shader/dxil: Allow zero domain input control point count.
2024-11-21 14:56:23 +01:00
Henri Verbeet
5c00766eff
Release 1.14.
2024-11-21 12:35:55 +01:00
Giovanni Mascellani
05c87b02f6
vkd3d-shader/ir: Return an error when the FLAT_INTERPOLATION parameter is invalid.
2024-11-20 14:53:58 +01:00
Giovanni Mascellani
36510cd0be
vkd3d-shader/ir: Move applying flat interpolation to a dedicated pass.
...
I/O normalisation is already a rather complicated pass that does a
lot of things, so it's better to keep anything not strictly
related to it somewhere else.
2024-11-20 14:53:47 +01:00
Henri Verbeet
df86a2842a
vkd3d-shader/msl: Implement VKD3DSIH_DCL_OUTPUT.
2024-11-20 14:40:10 +01:00
Feifan He
9e3b8ec98a
vkd3d-shader/msl: Output the generated shader code.
2024-11-20 14:40:10 +01:00
Henri Verbeet
2669ae16ea
vkd3d-shader/msl: Implement VKD3DSIH_DCL_OUTPUT_SIV.
2024-11-20 14:40:10 +01:00
Henri Verbeet
e6acf3090d
vkd3d-shader/msl: Implement VKD3DSIH_DCL_INPUT.
2024-11-20 14:40:10 +01:00
Feifan He
7a1d36ba05
vkd3d-shader/msl: Use pointers for constant buffer descriptors.
...
[[id]] attributes can not be applied to union references.
2024-11-20 14:40:10 +01:00
Feifan He
b29f1e6cdc
vkd3d-shader/msl: Add the missing output register index in msl_generate_entrypoint_epilogue().
2024-11-20 14:40:10 +01:00
Elizabeth Figura
0dc07f5cce
vkd3d-shader: Silence a spurious -Wmaybe-uninitialized in vsir_program_insert_alpha_test().
2024-11-14 14:12:13 +01:00
Elizabeth Figura
683e11aece
vkd3d-shader/hlsl: Silence a spurious -Wmaybe-uninitialized in sm4_generate_vsir_instr_dcl_semantic().
2024-11-14 14:12:13 +01:00
Giovanni Mascellani
72394d9ae3
vkd3d: Use WARN rather than ERR in vkd3d_instance_init().
...
ERR is used to indicate internal inconsistencies in vkd3d. Here that's
not the case, we simply have to forward the error condition to the
caller.
This fixes failures on the CI with llvmpipe, because the build we use is
compiled without support for VK_KHR_surface and related extensions.
2024-11-14 14:09:04 +01:00
Conor McCarthy
2996ad6bd2
vkd3d-shader/dxil: Implement DX intrinsic SampleIndex.
2024-11-13 16:18:13 +01:00
Nikolay Sivov
21681489ed
vkd3d-shader/fx: Implement parsing states objects.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-11-13 16:15:09 +01:00
Conor McCarthy
3d53d90d4b
vkd3d-shader/ir: Add a secondary sort by sysval for signature element register merges.
...
Fixes output signature normalisation failures in Silent Hill 2 caused by
failure of shader_signature_find_element_for_reg().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=57359
2024-11-13 13:32:32 +01:00
Giovanni Mascellani
7412e66064
vkd3d-shader/spirv: Get rid of the "offset_component_count" field of struct vkd3d_spirv_resource_type.
...
The number of components needed for texel offsets is the number of
components needed to address a single image/layer of an array. I.e.,
"coordinate_component_count - 1" for array textures, and
"coordinate_component_count" for non-array textures.
This change will also fix sampling of cube textures with explicit
gradients. Because texel offsets are unsupported for cube textures,
"offset_component_count" is currently 0 for cube textures. However, the
SAMPLE_GRAD handler also uses "offset_component_count" to determine the
number of components needed for the explicit gradients, and SAMPLE_GRAD
is supposed to work with cube textures.
This commit fixes the compilation of shaders in Star Wars Jedi:
Survivor.
2024-11-12 19:12:47 +01:00
Henri Verbeet
756b98f093
vkd3d-shader/glsl: Implement VKD3DSIH_LD2DMS.
2024-11-06 22:57:12 +01:00
Henri Verbeet
ca42adbf6b
vkd3d-shader/glsl: Handle SV_SAMPLE_INDEX inputs.
2024-11-06 22:56:02 +01:00
Henri Verbeet
3dbaf11f8c
vkd3d-shader/glsl: Implement support for static texel offsets in shader_glsl_sample().
2024-11-06 22:55:36 +01:00
Henri Verbeet
6ae4da02c9
vkd3d-shader/glsl: Implement VKD3DSIH_GATHER4_PO.
2024-11-06 22:53:55 +01:00
Henri Verbeet
466d849c72
vkd3d-shader/glsl: Implement support for VKD3D_SHADER_COMPONENT_INT outputs.
2024-11-06 22:53:31 +01:00
Francisco Casas
5df836c513
vkd3d-shader/hlsl: Store SM4 MOD in the vsir program.
2024-11-06 22:49:12 +01:00
Francisco Casas
30bc6965a2
vkd3d-shader/hlsl: Store SM4 DOT in the vsir program.
2024-11-06 22:48:13 +01:00
Francisco Casas
e8b373e3ff
vkd3d-shader/hlsl: Store SM4 DIV in the vsir program.
2024-11-06 22:47:42 +01:00
Francisco Casas
24f4308982
vkd3d-shader/hlsl: Store SM4 MUL in the vsir program.
2024-11-06 22:45:46 +01:00
Francisco Casas
e4d36bd855
vkd3d-shader/hlsl: Store SM4 SAT in the vsir program.
2024-11-06 22:45:23 +01:00
Francisco Casas
2e3f4a01bf
vkd3d-shader/hlsl: Store SM4 RCP in the vsir program.
2024-11-06 22:40:50 +01:00
Francisco Casas
3c4889add3
vkd3d-shader/hlsl: Store SM4 SIN and COS in the vsir program.
2024-11-06 22:38:04 +01:00
Francisco Casas
befba8e813
vkd3d-shader/hlsl: Store SM4 casts in the vsir program.
2024-11-06 22:27:49 +01:00
Nikolay Sivov
9af17d4a9d
vkd3d-shader/fx: Implement parsing the remaining fx_5_0 object types.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-11-06 22:14:03 +01:00
Nikolay Sivov
e5ba79b4f1
vkd3d-shader/hlsl: Implement the ByteAddressBuffer.Load*() methods.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-11-06 22:09:23 +01:00
Nikolay Sivov
1a28e7d9c6
vkd3d-shader/hlsl: Add parser support for the ByteAddressBuffer type.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-11-06 21:56:27 +01:00
Nikolay Sivov
8438aacc3b
vkd3d-shader/spriv: Only lookup resource symbols for UAVs in the ld_raw/ld_structured handler.
...
We don't need them for SRVs. Worse, if we're using a combined
resource/sampler pair for the SRV, a separate resource symbol may not
even exist.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-11-06 21:47:08 +01:00
Conor McCarthy
76fd1388d8
vkd3d: Check the IASetVertexBuffers() view count against the device limits.
...
For example, current MoltenVK only supports 31 vertex buffers.
2024-11-06 21:43:32 +01:00
Elizabeth Figura
fb8660c196
vkd3d-shader/ir: Add an is_pre_rasterization_shader() helper.
2024-11-05 20:00:27 +01:00
Elizabeth Figura
4290d85397
vkd3d-shader/hlsl: Write all writemask components for PSIZE and FOG outputs.
...
Matching fxc/d3dcompiler.
2024-11-05 19:58:49 +01:00
Elizabeth Figura
a10ee075ff
vkd3d-shader/ir: Force fog and point size to 1 component when normalizing I/O.
2024-11-05 19:57:41 +01:00
Elizabeth Figura
5a513ffcec
vkd3d-shader/hlsl: Enforce FOG component count for sm1 VS output.
2024-11-05 19:53:24 +01:00