Commit Graph

165 Commits

Author SHA1 Message Date
Henri Verbeet
6174d1af5d vkd3d-shader/msl: Implement VSIR_OP_FREM. 2025-09-30 17:16:32 +02:00
Henri Verbeet
521efaeb7b vkd3d-shader/msl: Implement VSIR_OP_ATAN. 2025-09-30 17:16:32 +02:00
Henri Verbeet
d9d2a00ef3 vkd3d-shader/msl: Implement VSIR_OP_ASIN. 2025-09-30 17:16:32 +02:00
Henri Verbeet
b2aac30430 vkd3d-shader/msl: Implement VSIR_OP_ACOS. 2025-09-30 17:16:32 +02:00
Henri Verbeet
ab54fc7b29 vkd3d-shader/msl: Implement VSIR_OP_HTAN. 2025-09-30 17:16:32 +02:00
Giovanni Mascellani
ad8e41f8f2 vkd3d-shader/msl: Implement VKD3DSPR_THREADID. 2025-09-30 17:02:01 +02:00
Henri Verbeet
161c815a39 vkd3d-shader/msl: Implement VSIR_OP_HSIN. 2025-09-29 12:51:08 +02:00
Henri Verbeet
d0ef67234d vkd3d-shader/msl: Implement VSIR_OP_HCOS. 2025-09-29 12:51:08 +02:00
Henri Verbeet
f28c9e116b vkd3d-shader/msl: Implement VSIR_OP_TAN. 2025-09-29 12:51:08 +02:00
Henri Verbeet
68dd93b7e8 vkd3d-shader/msl: Implement VSIR_OP_SIN. 2025-09-29 12:51:08 +02:00
Henri Verbeet
3794411d95 vkd3d-shader/msl: Implement VSIR_OP_COS. 2025-09-29 12:51:08 +02:00
Henri Verbeet
007792c33b vkd3d-shader/msl: Handle VSIR_DATA_BOOL operands. 2025-09-19 12:47:15 +02:00
Giovanni Mascellani
05b5a48c1d vkd3d-shader/msl: Reject UAV stores to multi-sampled resources.
Current versions of MSL don't support this, and it doesn't seem likely
that Direct3D source formats do either.
2025-09-09 12:10:44 +02:00
Giovanni Mascellani
26c51f53b7 vkd3d-shader/msl: Access resources as non-multisampled if the sample count is 1. 2025-09-09 12:08:36 +02:00
Henri Verbeet
7851cbfd3d vkd3d-shader/msl: Do not pretend to support initialisers for indexable temporaries. 2025-09-08 12:33:44 +02:00
Henri Verbeet
a1edfc4008 vkd3d-shader/msl: Implement compute shaders. 2025-08-28 20:05:53 +02:00
Shaun Ren
45e549c1b2 vkd3d-shader/msl: Implement VSIR_OP_UGE. 2025-08-21 15:32:37 +02:00
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