Commit Graph

8432 Commits

Author SHA1 Message Date
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
Elizabeth Figura
67d391fad8 vkd3d-shader/hlsl: Use replace_ir() for lower_discard_nz(). 2025-11-06 15:59:50 +01:00
Elizabeth Figura
88b218cae1 vkd3d-shader/hlsl: Use replace_ir() for lower_resource_load_bias(). 2025-11-06 15:59:01 +01:00
Elizabeth Figura
bf702331d9 vkd3d-shader/hlsl: Use replace_ir() for hlsl_normalize_binary_exprs(). 2025-11-06 14:10:53 +01:00
Elizabeth Figura
974db85d07 vkd3d-shader/hlsl: Use replace_ir() for fold_unary_identities(). 2025-11-06 14:10:53 +01:00
Henri Verbeet
74ebd4621f vkd3d-shader/msl: Implement VSIR_OP_FIRSTBIT_HI. 2025-11-04 14:59:38 +01:00
Henri Verbeet
c576a09d57 vkd3d-shader/msl: Implement VSIR_OP_FIRSTBIT_LO. 2025-11-04 14:59:38 +01:00
Henri Verbeet
08026880d6 vkd3d-shader/msl: Implement VSIR_OP_COUNTBITS. 2025-11-04 14:59:38 +01:00
Henri Verbeet
f431cddc9f vkd3d-shader/msl: Implement support for VKD3DSPR_IMMCONSTBUFFER registers. 2025-11-04 14:59:38 +01:00
Henri Verbeet
51cce61770 vkd3d-shader/msl: Implement VSIR_OP_SYNC. 2025-11-04 14:59:38 +01:00
Henri Verbeet
3660a5a79c vkd3d-shader/msl: Include metal_stdlib in the generated code.
We're already using functions not made available through either
metal_common or metal_texture. This doesn't seem to be an issue for the
Metal shader runner, possibly because the "online" compiler includes the
required headers by default. In any case, including metal_stdlib should
make all of MSLib available.
2025-11-04 14:59:38 +01:00
Giovanni Mascellani
d6d1485e40 ci: Execute DXC tests on 32-bit as well. 2025-11-03 17:52:54 +01:00