SPIRV-Cross/reference/shaders-msl/frag
Hans-Kristian Arntzen 5b952d2cbf MSL: Rethink how opaque descriptors are passed to leaf functions.
We were passing arrays by value which the compiler fails to optimize,
causing abyssal performance. To fix this, we need to consider that
descriptors can be in constant or const device address spaces.

Also, lone descriptors are passed by value, so we explicitly remove address
space qualifiers.

One failure case is when shader passes a texture/sampler array as an
argument. It's all UniformConstant in SPIR-V, but in MSL it might be
thread, const device or constant, so that won't work ...
Global variable use works fine though, and that should cover 99.9999999%
of use cases.
2022-01-18 14:40:52 +01:00
..
argument-buffers.msl2.argument.frag MSL: Rethink how opaque descriptors are passed to leaf functions. 2022-01-18 14:40:52 +01:00
array-component-io.frag MSL: Handle array with component when we cannot rely on user() attrib. 2021-05-21 13:46:33 +02:00
array-lut-no-loop-variable.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
array-of-array-lut.frag MSL: Fix array of array declaration. 2019-10-26 16:10:12 +02:00
array-of-texture-swizzle-nonconstant-uniform.msl2.argument.discrete.swizzle.frag MSL: Rethink how opaque descriptors are passed to leaf functions. 2022-01-18 14:40:52 +01:00
array-of-texture-swizzle-nonconstant-uniform.msl2.swizzle.frag MSL: Rethink how opaque descriptors are passed to leaf functions. 2022-01-18 14:40:52 +01:00
array-of-texture-swizzle.msl2.argument.discrete.swizzle.frag MSL: Rethink how opaque descriptors are passed to leaf functions. 2022-01-18 14:40:52 +01:00
array-of-texture-swizzle.msl2.swizzle.frag MSL: Rethink how opaque descriptors are passed to leaf functions. 2022-01-18 14:40:52 +01:00
barycentric-nv-nopersp.msl22.frag MSL: Do not generate UnsafeArray<> for any array inside buffer objects. 2019-10-24 12:22:30 +02:00
barycentric-nv.msl22.frag MSL: Do not generate UnsafeArray<> for any array inside buffer objects. 2019-10-24 12:22:30 +02:00
basic.force-sample.frag MSL: Adjust FragCoord for sample-rate shading. 2020-11-23 10:30:24 -06:00
basic.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
binary-func-unpack-pack-arguments.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
binary-unpack-pack-arguments.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
bitcasting.1d-as-2d.frag MSL: Handle Offset and Grad operands for 1D-as-2D textures. 2020-10-15 12:51:00 -05:00
bitcasting.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
buffer-read-write.frag MSL: Support synthetic functions in function constants. 2021-09-28 19:10:16 -04:00
buffer-read-write.texture-buffer-native.msl21.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
builtins.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
clip-distance-varying.frag MSL: Use spvUnsafeArray for builtin arrays after all. 2021-04-19 12:10:49 +02:00
complex-expression-in-access-chain.frag MSL: Do not generate UnsafeArray<> for any array inside buffer objects. 2019-10-24 12:22:30 +02:00
composite-extract-forced-temporary.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
constant-array.frag Roll GLSLang, SPIRV-Headers and SPIRV-Tools. 2020-07-22 23:03:11 -04:00
constant-composites.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
control-dependent-in-branch.desktop.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
cull-distance-varying.frag MSL: Use spvUnsafeArray for builtin arrays after all. 2021-04-19 12:10:49 +02:00
depth-greater-than.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
depth-less-than.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
depth-out-early-frag-tests.frag MSL: Don't output depth and stencil values with explicit early fragment tests. 2021-11-12 14:17:00 -05:00
depth-out-no-early-frag-tests.frag MSL: Don't output depth and stencil values with explicit early fragment tests. 2021-11-12 14:17:00 -05:00
disable-frag-output.frag-output.frag MSL: Add options to control emission of fragment outputs. 2020-04-13 15:29:11 -05:00
dual-source-blending.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
early-fragment-tests.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
false-loop-init.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
flush_params.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
for-loop-continue-control-flow.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
for-loop-init.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
fp16-packing.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
fragment-component-padding.pad-fragment.frag MSL: Don't emit weird reference type for spvUnsafeArray types. 2021-04-19 12:10:49 +02:00
front-facing.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
gather-dref.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
gather-offset.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
helper-invocation.msl21.frag MSL: Rethink how opaque descriptors are passed to leaf functions. 2022-01-18 14:40:52 +01:00
huge-argument-buffer.device-argument-buffer.argument.msl2.frag MSL: Rethink how opaque descriptors are passed to leaf functions. 2022-01-18 14:40:52 +01:00
illegal-name-test-0.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
image-query-lod.msl22.frag MSL: Rethink how opaque descriptors are passed to leaf functions. 2022-01-18 14:40:52 +01:00
in_block.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
in_mat.frag MSL: Selectively enable fast-math in MSL code to match Vulkan CTS results. 2021-09-22 18:58:31 -04:00
input-attachment-ms.arrayed-subpass.msl21.frag MSL: Rethink how opaque descriptors are passed to leaf functions. 2022-01-18 14:40:52 +01:00
input-attachment-ms.frag MSL: Rethink how opaque descriptors are passed to leaf functions. 2022-01-18 14:40:52 +01:00
input-attachment-ms.multiview.msl21.frag MSL: Rethink how opaque descriptors are passed to leaf functions. 2022-01-18 14:40:52 +01:00
input-attachment.arrayed-subpass.frag MSL: Rethink how opaque descriptors are passed to leaf functions. 2022-01-18 14:40:52 +01:00
input-attachment.frag MSL: Rethink how opaque descriptors are passed to leaf functions. 2022-01-18 14:40:52 +01:00
input-attachment.multiview.frag MSL: Rethink how opaque descriptors are passed to leaf functions. 2022-01-18 14:40:52 +01:00
interpolation-qualifiers-block.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
interpolation-qualifiers.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
lut-promotion.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
mix.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
modf-access-tracking-function.frag Handle Modf/Frexp in more cases. 2021-11-07 11:36:44 +01:00
mrt-array.frag MSL: Support synthetic functions in function constants. 2021-09-28 19:10:16 -04:00
nonuniform-qualifier.msl2.frag Rewrite how non-uniform qualifiers are handled. 2021-04-22 16:03:08 +02:00
packed-expression-vector-shuffle.frag Roll dependencies. 2022-01-05 14:56:01 +01:00
packing-test-3.frag Overhaul how we deal with reserved identifiers. 2020-08-21 16:33:27 +02:00
pixel-interlock-ordered.msl2.argument.frag MSL: Support synthetic functions in function constants. 2021-09-28 19:10:16 -04:00
pixel-interlock-ordered.msl2.frag MSL: Support synthetic functions in function constants. 2021-09-28 19:10:16 -04:00
pls.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
post-depth-coverage.ios.msl2.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
post-depth-coverage.msl23.frag MSL: Allow post-depth coverage on Mac in MSL 2.3. 2020-10-27 22:07:01 -05:00
private-variable-prototype-declaration.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
read-cull-clip-distance-in-function.frag MSL: Make builtin argument type declaration context sensitive. 2021-04-19 12:10:49 +02:00
readonly-ssbo.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
return-value-after-discard-terminator.frag MSL: Return fragment function value even when last SPIR-V Op is discard (OpKill). 2021-09-12 16:28:21 -04:00
sample-depth-propagate-state-from-resource.frag MSL: Rethink how opaque descriptors are passed to leaf functions. 2022-01-18 14:40:52 +01:00
sample-depth-separate-image-sampler.frag MSL: Rethink how opaque descriptors are passed to leaf functions. 2022-01-18 14:40:52 +01:00
sample-mask-in-and-out.fixed-sample-mask.force-sample.frag MSL: Adjust gl_SampleMaskIn for sample-shading and/or fixed sample mask. 2021-07-13 21:22:13 -04:00
sample-mask-in-and-out.fixed-sample-mask.frag MSL: Adjust gl_SampleMaskIn for sample-shading and/or fixed sample mask. 2021-07-13 21:22:13 -04:00
sample-mask-not-used.fixed-sample-mask.frag MSL: Adjust gl_SampleMaskIn for sample-shading and/or fixed sample mask. 2021-07-13 21:22:13 -04:00
sample-mask.fixed-sample-mask.frag MSL: Adjust gl_SampleMaskIn for sample-shading and/or fixed sample mask. 2021-07-13 21:22:13 -04:00
sample-mask.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
sample-position-func.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
sample-position.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
sample-rate-frag-coord-sample-id.frag MSL: Adjust FragCoord for sample-rate shading. 2020-11-23 10:30:24 -06:00
sample-rate-frag-coord-sample-input.frag MSL: Adjust FragCoord for sample-rate shading. 2020-11-23 10:30:24 -06:00
sample-rate-frag-coord-sample-pos.frag MSL: Adjust FragCoord for sample-rate shading. 2020-11-23 10:30:24 -06:00
sample-rate-frag-coord.force-sample.frag MSL: Adjust FragCoord for sample-rate shading. 2020-11-23 10:30:24 -06:00
sampler-1d-lod.1d-as-2d.frag MSL: Handle Offset and Grad operands for 1D-as-2D textures. 2020-10-15 12:51:00 -05:00
sampler-1d-lod.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
sampler-compare-bias.msl23.1d-as-2d.frag MSL: Allow Bias and Grad arguments with comparison on Mac in MSL 2.3. 2020-10-30 11:14:59 -05:00
sampler-compare-cascade-gradient.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
sampler-compare-cascade-gradient.ios.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
sampler-compare-cascade-gradient.msl23.frag MSL: Allow Bias and Grad arguments with comparison on Mac in MSL 2.3. 2020-10-30 11:14:59 -05:00
sampler-image-arrays.msl2.frag MSL: Rethink how opaque descriptors are passed to leaf functions. 2022-01-18 14:40:52 +01:00
sampler-ms.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
sampler.frag MSL: Rethink how opaque descriptors are passed to leaf functions. 2022-01-18 14:40:52 +01:00
scalar-refract-reflect.frag MSL: Support synthetic functions in function constants. 2021-09-28 19:10:16 -04:00
separate-image-sampler-argument.frag MSL: Rethink how opaque descriptors are passed to leaf functions. 2022-01-18 14:40:52 +01:00
shader-arithmetic-8bit.frag MSL: Do not generate UnsafeArray<> for any array inside buffer objects. 2019-10-24 12:22:30 +02:00
spec-constant-block-size.frag MSL: Do not generate UnsafeArray<> for any array inside buffer objects. 2019-10-24 12:22:30 +02:00
spec-constant-ternary.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
stencil-export.msl21.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
subgroup-builtins.msl22.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
subgroup-globals-extract.msl22.frag MSL: Support synthetic functions in function constants. 2021-09-28 19:10:16 -04:00
switch-unsigned-case.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
swizzle.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
texel-fetch-offset.1d-as-2d.frag MSL: Handle Offset and Grad operands for 1D-as-2D textures. 2020-10-15 12:51:00 -05:00
texel-fetch-offset.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
texture-cube-array.frag Further updates for pull request #1162; also added two test cases for spvCubemapTo2DArrayFace function and added '--msl-framebuffer-fetch'/ '--msl-emulate-cube-array' compiler options. 2019-09-27 15:49:54 -04:00
texture-cube-array.ios.emulate-cube-array.frag MSL: Support synthetic functions in function constants. 2021-09-28 19:10:16 -04:00
texture-multisample-array.msl21.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
texture-proj-shadow.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
ubo_layout.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
unary-enclose.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00
vecsize-mismatch.shader-inputs.frag MSL: Fix up input variables' vector lengths in all stages. 2020-06-16 14:50:30 -05:00
write-depth-in-function.frag Updates for pull request #1162 2019-09-24 14:35:25 -04:00