SPIRV-Cross/reference/opt/shaders-msl/comp
Chip Davis fc4a12fd4f MSL: Use a wrapper type for matrices in workgroup storage.
The standard `matrix` type in MSL lacked a constructor in the
`threadgroup` AS. This means that it was impossible to declare a
`threadgroup` variable that contains a matrix. This appears to have been
an oversight that was corrected in macOS 13/Xcode 14 beta 4. This
workaround continues to be required, however, for older systems.

To avoid changing interfaces unnecessarily (which shouldn't be a problem
regardless because the old and new types take up the same amount of
storage), only do this for structs if the struct is positively
identified as being used for workgroup storage.

I'm entirely aware this is inconsistent with the way packed matrices are
handled. One of them should be changed to match the other. Not sure
which one.

Fixes 23 CTS tests under `dEQP-VK.memory_model.shared`.
2022-08-07 17:31:41 -07: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: Fixes from review for SPV_KHR_physical_storage_buffer extension. 2022-07-01 16:10:41 -04: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 Update for pull request #1162 rev. 1 2019-09-24 18:13:04 -04:00
copy-array-of-arrays.force-native-array.comp MSL: Add a workaround path to force native arrays for everything. 2020-02-24 12:47:14 +01: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 Roll dependencies. 2022-05-27 13:28:25 +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
ray-query.nocompat.spv14.vk.comp Support Metal 2.4 Intersection Query, Implement GL_EXT_ray_query. 2021-10-19 18:45:10 +08:00
ray-query.spv14.vk.ios.msl24.comp MSL: Fix goofy bugs in ray query. 2022-03-24 18:14:46 +01: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