SPIRV-Cross/reference
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
..
opt MSL: Rethink how opaque descriptors are passed to leaf functions. 2022-01-18 14:40:52 +01:00
shaders Update references for GL_EXT_texture_buffer. 2022-01-14 14:57:24 +01:00
shaders-hlsl Add support for LocalSizeId. 2022-01-06 13:57:10 +01:00
shaders-hlsl-no-opt Add support for LocalSizeId. 2022-01-06 13:57:10 +01:00
shaders-msl MSL: Rethink how opaque descriptors are passed to leaf functions. 2022-01-18 14:40:52 +01:00
shaders-msl-no-opt MSL: Rethink how opaque descriptors are passed to leaf functions. 2022-01-18 14:40:52 +01:00
shaders-no-opt Merge pull request #1847 from KhronosGroup/fix-1775 2022-01-17 14:55:56 +01:00
shaders-reflection Correctly reflect declared buffer size for out of order members. 2021-11-07 10:08:17 +01:00
shaders-ue4/asm Do not forward expressions which carry a huge amount of dependencies. 2022-01-17 13:45:12 +01:00
shaders-ue4-no-opt/asm MSL: Selectively enable fast-math in MSL code to match Vulkan CTS results. 2021-09-22 18:58:31 -04:00