Commit Graph

8443 Commits

Author SHA1 Message Date
Giovanni Mascellani
654c96fc94 tests/d3d12: Mark a texture aliasing test as todo on Intel. 2025-11-17 15:21:08 +01:00
Giovanni Mascellani
ffbf0320ba tests/hlsl: Mark a denormalization mode test as todo on Intel.
It behaves the same as llvmpipe.
2025-11-17 15:20:47 +01:00
Henri Verbeet
124bdae77c vkd3d-shader: Explicitly support all chained compilation structures with vkd3d_shader_scan().
Most of these will have no effect on the returned information, but it is
always valid to include them.
2025-11-17 15:19:07 +01:00
Henri Verbeet
c8c52933d3 vkd3d-shader: Document vkd3d_shader_scan_thread_group_size_info as a supported chained compilation structure. 2025-11-17 15:19:07 +01:00
Anna (navi) Figueiredo Gomes
dd3524444d vkd3d-shader/hlsl: Properly free default values when discarding them. 2025-11-17 15:17:45 +01:00
Anna (navi) Figueiredo Gomes
990be02cca vkd3d-shader/hlsl: Add a default value fail test with all allowed instructions.
Co-Authored-By: Francisco Casas <fcasas@codeweavers.com>
2025-11-17 15:15:47 +01:00
Giovanni Mascellani
7f377879fc vkd3d-shader/spirv: Clamp push constant CBV sizes to those of the push constant ranges backing them.
Otherwise invalid SPIR-V may be generated, because the CBV field in
"push_cb_struct" may end up overlapping with a subsequent one.
2025-11-12 15:24:30 +01:00
Giovanni Mascellani
2903831f79 tests/hlsl: Test using an SRV in combination with a CBV larger than the declared uniforms.
This appears to be valid on native (no validation message is
raised) but is not properly handled by vkd3d.
2025-11-12 15:19:33 +01:00
Henri Verbeet
4039168bca vkd3d-shader/hlsl: Consider scalars to be equivalent to 1-component vectors in hlsl_add_conditional(). 2025-11-12 15:12:30 +01:00
Henri Verbeet
5d385fbce0 vkd3d-shader/d3d-asm: Avoid shader_print_data_type() in shader_dump_resource_data_type(). 2025-11-12 15:11:10 +01:00
Giovanni Mascellani
065430547c vkd3d-shader/dxil: Parse the gather offset as an int2.
Instead of an int3.

Gather operations expect an offset with only two components.
Currently the following field (which is the gather channel) is
parsed as a third component, which leads to wrong and invalid
results.

This fixes a crash on a shader from WRC Generations.
2025-11-12 15:08:42 +01:00
Henri Verbeet
cb3367c66d vkd3d-common: Get rid of "vkd3d_dbg_env_name". 2025-11-12 15:06:42 +01:00
Giovanni Mascellani
7022bb57fc tests/shader_runner_metal: Implement explicit descriptor mapping. 2025-11-12 15:02:58 +01:00
Giovanni Mascellani
653de0c076 tests/shader_runner: Generate a default descriptor mapping when none is provided. 2025-11-12 15:02:18 +01:00
Giovanni Mascellani
a30c07f510 tests/shader_runner_d3d12: Always create a descriptor heap.
So it's also available when resources are not used, which
simplifies later commits.
2025-11-12 14:58:15 +01:00
Giovanni Mascellani
fb985f496d tests/shader_runner_d3d12: Appropriately set the root descriptor table for dispatching. 2025-11-12 14:57:24 +01:00
Elizabeth Figura
1569bb3fb8 vkd3d-shader/hlsl: Only prepend a $ for parameters with the uniform keyword. 2025-11-10 16:20:08 +01:00
Elizabeth Figura
6801f50422 vkd3d-shader/hlsl: Write a "dimx" of 4 for combined sampler types in the CTAB. 2025-11-10 16:20:01 +01:00
Elizabeth Figura
da456b1fb4 vkd3d-shader/hlsl: Do not deduplicate sampler types in the CTAB. 2025-11-10 16:18:59 +01:00
Elizabeth Figura
03d02f9018 vkd3d-shader/hlsl: Write the used sampler dimension for generic samplers in the CTAB. 2025-11-10 16:18:59 +01:00
Francisco Casas
460abeb03e vkd3d-shader/ir: Make FOG and PSIZE write masks 0x1 on I/O normalization.
The validator checks that on normalized vsir I/O destination write masks
are always a subset of the element's write mask.

This is currently not always happening for FOG and PSIZE outputs, because
d3dbc input might use the 0xf mask instead, despite these semantics being
scalar.

Note that this problem is hidden when using varying mapping, because in
that case the vsir_program_remap_output_signature() pass, specifically
the remove_unread_output_components() function, fixes the write mask.
2025-11-10 16:15:55 +01:00
Francisco Casas
6ca05f458e vkd3d-shader/hlsl: Actually emit 0xf write masks for FOG and PSIZE destination operands. 2025-11-10 15:54:59 +01:00
Francisco Casas
5dc96ab8d6 tests/hlsl: Test which shader models allow FOG and PSIZE. 2025-11-10 15:54:18 +01:00
Shaun Ren
58d02da892 vkd3d-shader/hlsl: Use a bool type for "new_cond" in lower_conditional_block_discard_nz().
This fixes the assertion error

    "sm4_generate_vsir_instr_expr Failed assertion: dst_type->e.numeric.type == HLSL_TYPE_BOOL"

which occurs when compiling the following HLSL shader using the ps_4_0 target profile:

    uniform float4 x;
    uniform bool b;

    float4 main() : SV_Target
    {
        if (!b)
            clip(x.x);
        else
            clip(x.y);

        return x;
    }
2025-11-10 15:51:26 +01:00
Giovanni Mascellani
0c9a5b7a0c tests/d3d12: Do not crash when failing to create a shader cache session.
With some (Windows 11) runtimes creating a shader cache session fails
when the requested size is too small. The test will have to be fixed for
that, but in the meantime let's at least ensure it doesn't crash.
2025-11-10 15:37:52 +01:00