Commit Graph

8489 Commits

Author SHA1 Message Date
Giovanni Mascellani
a6c6ba6eda tests/hlsl: Check the result for attribute evaluation tests more sharply.
Those tests are meant to check that each single sample computes the
right value during a multi-sampled rendering operation. Checking whether
the result is correct after multi-sample resolution isn't enough,
because errors at different samples belonging to the same pixel might
have cancelled out.

Instead, for each shader invocation we compute the expected result and
return the absolute value of the difference between the expected and
computed value. This way errors at different samples cannot cancel out,
but add up.
2025-10-16 14:16:43 +02:00
Giovanni Mascellani
085ba17c4c tests/d3d12: Use D3D12_RESOURCE_STATE_ALL_SHADER_RESOURCE in test_stencil_load().
The texture is also accessed by a compute shader.
2025-10-16 14:03:08 +02:00
Giovanni Mascellani
6d4df71f61 tests/d3d12: Use D3D12_RESOURCE_STATE_ALL_SHADER_RESOURCE in test_depth_load().
The texture is also accessed by a compute shader.
2025-10-16 14:03:01 +02:00
Giovanni Mascellani
beed3f0e15 tests: Print ANSI colour codes in the Windows test driver.
That program is only meant to be used in the specific context of the CI,
so we don't care about querying the terminal or honouring environment
variables.
2025-10-16 14:01:01 +02:00
Elizabeth Figura
507990d3c5 vkd3d-shader/d3dbc: Fix writing vertex input semantics. 2025-10-15 12:55:16 +02:00
Elizabeth Figura
cb514ef6e0 tests: Test a shader with many semantics. 2025-10-15 12:54:52 +02:00
Henri Verbeet
e7f258c622 vkd3d-shader/d3dbc: Get the resource/sampler index from the destination operand in vsir_program_lower_texld_sm1(). 2025-10-15 12:45:39 +02:00
Henri Verbeet
1b491a657c tests: Test that ps_1_4 texld samples from the sampler corresponding to the destination operand. 2025-10-15 12:45:39 +02:00
Henri Verbeet
0e7eae00ba vkd3d-shader/d3dbc: Trace the vsir program before applying any transformations.
Specifically, before running vsir_program_lower_d3dbc().
2025-10-15 12:45:39 +02:00
Conor McCarthy
997d445724 vkd3d-shader/ir: Fix the FTOU swizzle for MOVA in vsir_program_normalize_addr(). 2025-10-15 12:41:49 +02:00
Conor McCarthy
13e631779d vkd3d-shader/ir: Use an SSA intermediate in vsir_program_lower_precise_mad(). 2025-10-15 12:41:49 +02:00
Conor McCarthy
1c23976660 vkd3d-shader/ir: Fix the addition swizzle in vsir_program_lower_precise_mad().
The swizzle from vsir_swizzle_from_writemask() is for use with a
contiguous write mask starting at bit zero, but we need the final write
mask to match that of the original MAD instruction.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=58746
2025-10-15 12:41:49 +02:00
Conor McCarthy
f9d12e5596 tests/hlsl: Add a precise MAD test where the first component is not x. 2025-10-15 12:41:49 +02:00
Henri Verbeet
a2ce610cc9 vkd3d-shader/glsl: Handle VSIR_DATA_SNORM and VSIR_DATA_UNORM in shader_glsl_vprint_assignment(). 2025-10-15 12:41:49 +02:00
Conor McCarthy
3943f9aca6 vkd3d-shader/spirv: Handle VSIR_DATA_SNORM and VSIR_DATA_UNORM in image_format_for_image_read().
Typed UAVs can be declared snorm or unorm.
2025-10-15 12:41:49 +02:00
Conor McCarthy
1586c2294a vkd3d-shader/spirv: Handle VSIR_DATA_SNORM and VSIR_DATA_UNORM in spirv_get_type_id(). 2025-10-15 12:41:49 +02:00
Henri Verbeet
f02c0e9be8 tests/hlsl: Add tests for unorm and snorm buffer SRVs. 2025-10-15 12:41:49 +02:00
Henri Verbeet
808191eb8e vkd3d-shader/spirv: Emit an error for unhandled types in spirv_get_type_id(). 2025-10-15 12:41:49 +02:00
Giovanni Mascellani
40bdaa43af vkd3d: Do not put immutable samplers in the push descriptor set.
This was the original intention, but it didn't happen because of a bug:
what we need to know at this point is whether the push descriptor set is
being used in general (which is tracked by the corresponding Vulkan
extension bit), not whether the descriptors we're currently processing
are to be put in the push descriptor set (which is tracked by
`push_descriptor'). Indeed, `push_descriptor' is always false when
processing static samplers, precisely because we want to segregate them
in different sets.

This fixes a rendering bug in "The Dark Pictures Anthology: Man of
Medan".

Fixes: 07b7975d09
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=58589
2025-10-14 16:23:07 +02:00
Giovanni Mascellani
8b8ee542d7 vkd3d-shader/ir: Lower SATURATE modifiers to instructions. 2025-10-14 16:21:05 +02:00
Giovanni Mascellani
835044dd8e vkd3d-shader/ir: Introduce VSIR_OP_SATURATE to represent floating-point clamping to [0, 1]. 2025-10-14 15:53:26 +02:00
Henri Verbeet
9b98761909 vkd3d-shader/msl: Implement VSIR_OP_IREM. 2025-10-14 15:49:18 +02:00
Henri Verbeet
c89fd93859 vkd3d-shader/ir: Require signed operands for IREM instructions. 2025-10-14 15:49:18 +02:00
Henri Verbeet
b6acac49f1 vkd3d-shader/msl: Implement VSIR_OP_UREM. 2025-10-14 15:49:18 +02:00
Henri Verbeet
69879129f8 vkd3d-shader/msl: Implement VSIR_OP_IDIV. 2025-10-14 15:49:18 +02:00