SPIRV-Cross/reference/shaders-msl/comp
Hans-Kristian Arntzen 24dc49e692 MSL: Handle descriptor aliasing of raw buffer descriptors.
It is allowed to redeclare descriptors with different types in Vulkan.
MSL in general does not allow this, but for raw buffers, we can cast the
reference type at the very least.

For typed resources we are kinda hosed. Without descriptor indexing's
PARTIALLY_BOUND_BIT, descriptors must be valid if they are statically
accessed, so it would not be valid to access differently typed aliases
unless that flag is used. There might be a way to reinterpret cast
descriptors, but that seems very sketchy.

Implements support for:

- Single discrete descriptor
- Single argument buffer descriptor
- Array of argument buffer descriptors

Other cases are unimplemented for now since they are extremely painful
to unroll.
2022-09-20 15:21:56 +02:00
..
access-private-workgroup-in-function.comp Update for pull request #1162 rev. 1 2019-09-24 18:13:04 -04:00
argument-buffers-discrete.msl2.argument.discrete.comp Update for pull request #1162 rev. 1 2019-09-24 18:13:04 -04:00
argument-buffers-image-load-store.ios.msl2.argument.comp Updates for pull request #1162 2019-09-24 14:35:25 -04:00
argument-buffers-image-load-store.msl2.argument.comp Updates for pull request #1162 2019-09-24 14:35:25 -04:00
array-length.comp MSL: Do not declare array of UBO/SSBO as spvUnsafeArray<T>. 2019-10-26 16:10:08 +02:00
array-length.msl2.argument.discrete.comp MSL: Do not declare array of UBO/SSBO as spvUnsafeArray<T>. 2019-10-26 16:10:08 +02:00
atomic.comp Update for pull request #1162 rev. 1 2019-09-24 18:13:04 -04:00
barriers.comp Updates for pull request #1162 2019-09-24 14:35:25 -04:00
basic.comp MSL: Do not generate UnsafeArray<> for any array inside buffer objects. 2019-10-24 12:22:30 +02:00
basic.dispatchbase.comp MSL: Do not generate UnsafeArray<> for any array inside buffer objects. 2019-10-24 12:22:30 +02:00
basic.dispatchbase.msl11.comp MSL: Do not generate UnsafeArray<> for any array inside buffer objects. 2019-10-24 12:22:30 +02:00
basic.inline-block.msl2.comp MSL: Move inline uniform blocks to the end of the argument buffer. 2020-01-25 13:40:51 -06:00
buffer_device_address-packed-vec-and-cast-to-and-from-uvec2.msl23.comp MSL: Fix various bugs with Ptr/U bitcasts. 2022-08-09 13:49:40 +02:00
buffer_device_address-recursive-struct-pointers.msl23.comp MSL: Fixes from review for SPV_KHR_physical_storage_buffer extension. 2022-07-01 16:10:41 -04:00
buffer_device_address.msl2.comp MSL: Fixes from review for SPV_KHR_physical_storage_buffer extension. 2022-06-24 17:28:17 -04:00
builtins.comp Updates for pull request #1162 2019-09-24 14:35:25 -04:00
cfg-preserve-parameter.comp Updates for pull request #1162 2019-09-24 14:35:25 -04:00
coherent-block.comp Update for pull request #1162 rev. 1 2019-09-24 18:13:04 -04:00
coherent-image.comp Update for pull request #1162 rev. 1 2019-09-24 18:13:04 -04:00
complex-composite-constant-array.comp MSL: Do not declare complex composite array in main for non-inlined. 2019-10-24 11:12:01 +02:00
complex-type-alias.comp MSL: Do not generate UnsafeArray<> for any array inside buffer objects. 2019-10-24 12:22:30 +02:00
composite-array-initialization.comp MSL: Declare arrays with proper type wrapper. 2019-10-26 17:57:34 +02:00
composite-array-initialization.force-native-array.comp MSL: Support synthetic functions in function constants. 2021-09-28 19:10:16 -04:00
composite-construct.comp MSL: Declare arrays with proper type wrapper. 2019-10-26 17:57:34 +02:00
copy-array-of-arrays.comp MSL: Declare arrays with proper type wrapper. 2019-10-26 17:57:34 +02:00
copy-array-of-arrays.force-native-array.comp MSL: Support synthetic functions in function constants. 2021-09-28 19:10:16 -04:00
culling.comp MSL: Do not generate UnsafeArray<> for any array inside buffer objects. 2019-10-24 12:22:30 +02:00
defer-parens.comp Update for pull request #1162 rev. 1 2019-09-24 18:13:04 -04:00
dowhile.comp MSL: Do not generate UnsafeArray<> for any array inside buffer objects. 2019-10-24 12:22:30 +02:00
force-recompile-hooks.swizzle.comp Update for pull request #1162 rev. 1 2019-09-24 18:13:04 -04:00
functions.comp Updates for pull request #1162 2019-09-24 14:35:25 -04:00
global-invocation-id-writable-ssbo-in-function.comp MSL: Support synthetic functions in function constants. 2021-09-28 19:10:16 -04:00
global-invocation-id.comp MSL: Support synthetic functions in function constants. 2021-09-28 19:10:16 -04:00
image-atomic-automatic-bindings.argument.msl2.comp MSL: Support synthetic functions in function constants. 2021-09-28 19:10:16 -04:00
image-atomic-automatic-bindings.comp MSL: Support synthetic functions in function constants. 2021-09-28 19:10:16 -04:00
image-cube-array-load-store.comp Update for pull request #1162 rev. 1 2019-09-24 18:13:04 -04:00
image.comp Update for pull request #1162 rev. 1 2019-09-24 18:13:04 -04:00
insert.comp MSL: Workaround broken vector -> scalar access chain in MSL. 2020-07-06 10:03:44 +02:00
inverse.comp MSL: Support synthetic functions in function constants. 2021-09-28 19:10:16 -04:00
local-invocation-id.comp MSL: Support synthetic functions in function constants. 2021-09-28 19:10:16 -04:00
local-invocation-index.comp MSL: Support synthetic functions in function constants. 2021-09-28 19:10:16 -04:00
mat3-row-maj-read-write-const.comp Add relax_nan_checks options. 2022-03-03 14:50:56 +01:00
mat3.comp MSL: Do not generate UnsafeArray<> for any array inside buffer objects. 2019-10-24 12:22:30 +02:00
mod.comp MSL: Support synthetic functions in function constants. 2021-09-28 19:10:16 -04:00
modf.comp MSL: Do not generate UnsafeArray<> for any array inside buffer objects. 2019-10-24 12:22:30 +02:00
outer-product.comp Update for pull request #1162 rev. 1 2019-09-24 18:13:04 -04:00
packing-test-1.comp MSL: Do not generate UnsafeArray<> for any array inside buffer objects. 2019-10-24 12:22:30 +02:00
packing-test-2.comp MSL: Do not generate UnsafeArray<> for any array inside buffer objects. 2019-10-24 12:22:30 +02:00
raw-buffer-descriptor-aliasing.argument.discrete.device-argument-buffer.msl2.comp MSL: Handle descriptor aliasing of raw buffer descriptors. 2022-09-20 15:21:56 +02:00
raw-buffer-descriptor-aliasing.argument.discrete.msl2.comp MSL: Handle descriptor aliasing of raw buffer descriptors. 2022-09-20 15:21:56 +02:00
ray-query.spv14.vk.ios.msl24..invalid.comp Update dependencies. 2022-09-02 14:58:04 +02:00
read-write-only.comp Update for pull request #1162 rev. 1 2019-09-24 18:13:04 -04:00
rmw-matrix.comp Update for pull request #1162 rev. 1 2019-09-24 18:13:04 -04:00
rmw-opt.comp Update for pull request #1162 rev. 1 2019-09-24 18:13:04 -04:00
scalar-std450-distance-length-normalize.comp Fix #1445: MSL: Enclose args when convert distance(a,b) to abs(a-b) 2020-08-13 21:16:08 +08:00
shared-array-of-arrays.comp MSL: Do not generate UnsafeArray<> for any array inside buffer objects. 2019-10-24 12:22:30 +02:00
shared-matrix-array-of-array.comp MSL: Use a wrapper type for matrices in workgroup storage. 2022-08-07 17:31:41 -07:00
shared-matrix-cast.comp MSL: Use a wrapper type for matrices in workgroup storage. 2022-08-07 17:31:41 -07:00
shared-matrix-nested-struct-array.comp MSL: Use a wrapper type for matrices in workgroup storage. 2022-08-07 17:31:41 -07:00
shared-matrix-nested-struct.comp MSL: Use a wrapper type for matrices in workgroup storage. 2022-08-07 17:31:41 -07:00
shared-struct-bool-cast.comp MSL: Also replace bool with short in structures. 2022-08-05 11:43:21 -07:00
shared.comp MSL: Do not generate UnsafeArray<> for any array inside buffer objects. 2019-10-24 12:22:30 +02:00
spec-constant-op-member-array.comp MSL: Do not generate UnsafeArray<> for any array inside buffer objects. 2019-10-24 12:22:30 +02:00
spec-constant-work-group-size.comp MSL: Do not generate UnsafeArray<> for any array inside buffer objects. 2019-10-24 12:22:30 +02:00
storage-buffer-std140-vector-array.comp MSL: Do not emit swizzled writes in packing fixups. 2020-07-06 10:03:46 +02:00
struct-layout.comp MSL: Do not generate UnsafeArray<> for any array inside buffer objects. 2019-10-24 12:22:30 +02:00
struct-nested.comp MSL: Do not generate UnsafeArray<> for any array inside buffer objects. 2019-10-24 12:22:30 +02:00
struct-packing.comp MSL: Avoid packed arrays in more cases. 2020-05-06 10:27:12 +02:00
threadgroup-boolean-workaround.comp Add relax_nan_checks options. 2022-03-03 14:50:56 +01:00
torture-loop.comp MSL: Do not generate UnsafeArray<> for any array inside buffer objects. 2019-10-24 12:22:30 +02:00
type_casting_i64.msl22.comp MSL: Add test for fixes to MSL constant expression type down-casting. 2021-08-16 13:56:05 -04:00
type-alias.comp MSL: Do not generate UnsafeArray<> for any array inside buffer objects. 2019-10-24 12:22:30 +02:00
udiv.comp MSL: Do not generate UnsafeArray<> for any array inside buffer objects. 2019-10-24 12:22:30 +02:00
writable-ssbo.comp MSL: Support synthetic functions in function constants. 2021-09-28 19:10:16 -04:00