Giovanni Mascellani
1d71cf9af1
vkd3d-shader/msl: Allocate SSA registers to temporaries.
2025-08-04 14:34:23 +02:00
Giovanni Mascellani
3cf35ce22e
vkd3d-shader/msl: Convert the results of load and sample operations to the destination data type.
...
This should eventually go away when we properly enforce vsir typing,
but since for the moment we're resolving to hack, let's at least
make it compatible with DXIL.
2025-07-28 16:31:57 +02:00
Giovanni Mascellani
7df92b6e50
vkd3d-shader/msl: Reject shaders with duplicate I/O target locations.
...
We'll have to handle them eventually, but let's avoid generating
invalid code in the meantime.
2025-07-28 16:27:58 +02:00
Giovanni Mascellani
9476a235b2
vkd3d-shader/msl: Use the union type for SAMPLEMASK registers.
...
Function msl_print_assignment() doesn't currently handle bitcasts
when the left operand has a specific (rather than a union) type.
We could also fix the function, and maybe it wouldn't be a bad
idea anyway, but using the union type seems more in the spirit
of the MSL backend anyway.
2025-07-28 16:27:58 +02:00
Giovanni Mascellani
16b06c295b
vkd3d-shader/msl: Emit indexable temps with the appropriate component count.
2025-07-28 16:27:58 +02:00
Giovanni Mascellani
6ed0bd0bab
vkd3d-shader/msl: Ignore the interpolation mode for output variables.
...
They are meaningless, but some frontends (e.g., DXIL) set them
nevertheless.
2025-07-28 16:27:58 +02:00
Henri Verbeet
ed695cc551
vkd3d-shader/ir: Rename VKD3D_DATA_SNORM to VSIR_DATA_SNORM.
2025-07-23 17:19:28 +02:00
Henri Verbeet
ed27427508
vkd3d-shader/ir: Rename VKD3D_DATA_UNORM to VSIR_DATA_UNORM.
2025-07-23 17:19:28 +02:00
Giovanni Mascellani
01068dada2
vkd3d-shader/msl: Use iterators in msl_generator_generate().
2025-07-22 16:57:25 +02:00
Henri Verbeet
742cce9a08
vkd3d-shader/ir: Rename VKD3D_DATA_UINT to VSIR_DATA_U32.
2025-07-22 14:57:26 +02:00
Henri Verbeet
a04e4e4010
vkd3d-shader/ir: Rename VKD3D_DATA_INT to VSIR_DATA_I32.
2025-07-22 14:57:26 +02:00
Henri Verbeet
c5c1c03430
vkd3d-shader/ir: Rename VKD3D_DATA_FLOAT to VSIR_DATA_F32.
2025-07-21 12:10:43 +02:00
Henri Verbeet
0126beb3b2
vkd3d-shader/ir: Rename enum vkd3d_data_type to vsir_data_type.
2025-07-21 12:10:43 +02:00
Henri Verbeet
673c26a040
vkd3d-shader/msl: Implement VKD3DSGF_FORCE_EARLY_DEPTH_STENCIL.
2025-07-14 18:13:43 +02:00
Henri Verbeet
1a20395e6f
vkd3d-shader/msl: Implement VSIR_OP_STORE_UAV_TYPED.
2025-07-14 18:13:43 +02:00
Henri Verbeet
90b6412daa
vkd3d-shader/msl: Implement VSIR_OP_UMAX and VSIR_OP_UMIN.
2025-07-14 18:13:43 +02:00
Henri Verbeet
752a48f4ac
vkd3d-shader/msl: Implement VSIR_OP_IMAX.
2025-06-25 16:00:34 +02:00
Henri Verbeet
543ee120fc
vkd3d-shader/msl: Implement VSIR_OP_DSX_FINE and VSIR_OP_DSY_FINE.
2025-06-25 16:00:31 +02:00
Henri Verbeet
b9ce945e61
vkd3d-shader/msl: Implement VSIR_OP_DSX_COARSE and VSIR_OP_DSY_COARSE.
2025-06-25 16:00:27 +02:00
Henri Verbeet
06a0453762
vkd3d-shader/msl: Implement VSIR_OP_DSX and VSIR_OP_DSY.
2025-06-25 16:00:22 +02:00
Henri Verbeet
cdfaeb209a
vkd3d-shader/msl: Implement VSIR_OP_CONTINUE.
2025-06-25 16:00:15 +02:00
Henri Verbeet
d219cccc99
vkd3d-shader/ir: Rename the VKD3DSIH_* enum elements to VSIR_OP_*.
2025-06-25 15:53:41 +02:00
Henri Verbeet
c2a01fff1e
vkd3d-shader/msl: Implement support for static texel offsets in msl_sample().
2025-06-24 15:32:59 +02:00
Henri Verbeet
6f8ce6df72
vkd3d-shader/msl: Implement VKD3DSIH_GATHER4_PO.
2025-06-24 15:32:59 +02:00
Henri Verbeet
449804623a
vkd3d-shader/msl: Implement VKD3DSIH_GATHER4_C.
2025-06-24 15:32:59 +02:00