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
cc1db404b0
vkd3d-shader/msl: Implement support for VKD3DSPR_UNDEF registers.
...
MSL doesn't seem to have any special handling for undefined values,
differently from SPIR-V. Thus we just emit zeros.
UNDEF registers are sometimes created by the DXIL parser,
for example in sm6_parser_emit_composite_construct().
2025-10-30 18:18:14 +01:00
Giovanni Mascellani
eaabd2ffd7
vkd3d-shader/msl: Allow binding to descriptor arrays.
...
This requires merging adjacent bindings in the Metal shader runner,
mostly like 805a4bc1e8 did for the
d3d12 backend.
2025-10-30 17:53:10 +01:00
Giovanni Mascellani
39391230d2
vkd3d-shader/msl: Pass a descriptor to msl_get_binding().
2025-10-29 13:37:12 +01:00
Giovanni Mascellani
a0db928473
vkd3d-shader/msl: Pass a descriptor to msl_get_uav_binding().
2025-10-29 13:35:45 +01:00
Giovanni Mascellani
6915388289
vkd3d-shader/msl: Pass a descriptor to msl_get_sampler_binding().
2025-10-29 13:32:47 +01:00
Giovanni Mascellani
53a349b46c
vkd3d-shader/msl: Pass a descriptor to msl_get_srv_binding().
2025-10-29 13:31:33 +01:00
Giovanni Mascellani
13d105c104
vkd3d-shader/msl: Pass a descriptor to msl_get_cbv_binding().
2025-10-29 13:28:53 +01:00
Giovanni Mascellani
b3f5bfdb7e
vkd3d-shader/msl: Retrieve the CBV register space from the descriptor information.
2025-10-28 16:46:33 +01:00
Giovanni Mascellani
957c6728f1
vkd3d-shader/msl: Return a raw index from msl_get_binding().
...
In the future that will involve some computation, and it will not
necessarily correspond to a struct vkd3d_shader_descriptor_binding
object.
2025-10-28 16:42:14 +01:00
Giovanni Mascellani
491fecc6a3
vkd3d-shader/msl: Introduce msl_get_binding().
2025-10-28 16:36:33 +01:00
Giovanni Mascellani
6654b88407
vkd3d-shader/ir: Check that no modifier is added to a vsir program after lowering.
2025-10-27 18:48:33 +01:00
Giovanni Mascellani
86b8f2de35
vkd3d-shader/ir: Error out on unsupported source modifiers.
2025-10-16 15:15:05 +02:00
Giovanni Mascellani
c99c729513
vkd3d-shader/ir: Error out on unsupported destination modifiers.
2025-10-16 15:10:39 +02:00
Giovanni Mascellani
8a100fa06d
vkd3d-shader/ir: Ignore and drop PARTIALPRECISION modifiers.
2025-10-16 14:57:56 +02:00
Giovanni Mascellani
737158e7b8
vkd3d-shader/ir: Remove SATURATE modifiers after lowering them.
2025-10-16 14:55:51 +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
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