Commit Graph

2683 Commits

Author SHA1 Message Date
Hans-Kristian Arntzen
28bf9057df HLSL: Add support for treating NonWritable UAV texture as SRV instead. 2020-04-03 11:50:50 +02:00
Thomas Roughton
4cf736d753
MSL: mark BuiltInFragCoord as implicitly used for subpass reads
Without this patch, `gl_FragCoord` is not output for subpass reads in certain cases where `gl_FragCoord` is not used elsewhere in the shader.

I'm not sure why this isn't caught by existing tests (e.g. [input-attachment.frag](shaders-msl/frag/input-attachment.frag)), but I encountered this issue in code generated by DXC and passed through spire-opt.
2020-04-03 14:32:31 +13:00
Hans-Kristian Arntzen
e58e8d5dbe
Merge pull request #1303 from KhronosGroup/fix-1302
MSL: Fix access chain for deep struct hierarchy on array of buffers.
2020-03-31 17:25:53 +02:00
Hans-Kristian Arntzen
3cb6aeb480 MSL: Fix access chain for deep struct hierarchy on array of buffers. 2020-03-31 14:17:29 +02:00
Hans-Kristian Arntzen
84ec99c531
Merge pull request #1301 from dj2/roll_deps
Roll GLSLang, SPIRV-Tools and SPIRV-Headers
2020-03-30 21:58:28 +02:00
dan sinclair
32307df73a Roll GLSLang, SPIRV-Tools and SPIRV-Headers
This CL rolls the various dependencies and updates tests as needed.
2020-03-30 11:03:43 -04:00
Hans-Kristian Arntzen
9b3c5e12be
Merge pull request #1299 from KhronosGroup/fix-1298
Add support for forcefully zero-initialized variables.
2020-03-26 17:58:27 +01:00
Hans-Kristian Arntzen
b8905bbd95 Add support for forcefully zero-initialized variables.
Useful to better support certain platforms which require all variables
to be initialized to something.
2020-03-26 13:38:27 +01:00
Hans-Kristian Arntzen
871c85d7f0
Merge pull request #1297 from KhronosGroup/fix-1295
GLSL: Implement GL_EXT_shader_framebuffer_fetch.
2020-03-19 16:19:19 +01:00
Hans-Kristian Arntzen
04e877df12 GLSL: Implement GL_EXT_shader_framebuffer_fetch. 2020-03-19 14:53:39 +01:00
Hans-Kristian Arntzen
c2655ab291 Run format_all.sh. 2020-03-19 14:22:49 +01:00
Hans-Kristian Arntzen
c3d216c011
Merge pull request #1296 from KhronosGroup/fix-1292
Fix nonuniform qualifier with atomics
2020-03-19 13:29:19 +01:00
Hans-Kristian Arntzen
05004a57ea GLSL/HLSL: Fix nonuniform qualifier for SSBO atomics. 2020-03-19 12:05:27 +01:00
Hans-Kristian Arntzen
a3d3c80dd7 GLSL/HLSL: Implement nonuniform qualifier for image atomics. 2020-03-19 11:35:29 +01:00
Hans-Kristian Arntzen
65aa0c35d6 include/spirv_cross: Fix typo. 2020-03-10 10:52:27 +01:00
Hans-Kristian Arntzen
7d42fd7f7b
Merge pull request #1290 from KhronosGroup/fix-1289
HLSL: Do not emit globallycoherent for SRV ByteAddressBuffer.
2020-03-05 12:23:40 +01:00
Hans-Kristian Arntzen
185551bfaf HLSL: Do not emit globallycoherent for SRV ByteAddressBuffer. 2020-03-05 10:37:36 +01:00
Hans-Kristian Arntzen
d19f30a90e
Merge pull request #1287 from KhronosGroup/read-write-decoration-tweaks
Improve handling of readonly/writeonly flags in some cases
2020-03-04 17:43:14 +01:00
Hans-Kristian Arntzen
95cd20f1c7 Add test for disable-storage-image-qualifier-deduction. 2020-03-04 16:42:31 +01:00
Hans-Kristian Arntzen
c27e1efbf1 HLSL: Add option to always treat SSBO as UAV, even with readonly.
This can make codegen more predictable since ByteAddressBuffer is SRV
and not UAV.
2020-03-04 16:42:31 +01:00
Hans-Kristian Arntzen
01968c4486 Add option to disable storage image qualifier deduction. 2020-03-04 16:42:31 +01:00
Hans-Kristian Arntzen
3ebc83da46 Remove old hack which forces NonWritable/NonReadable.
Somehow this has been lingering in the code base and effectively ignores
readonly/writeonly decoration declared by the shader.
2020-03-04 16:42:31 +01:00
Hans-Kristian Arntzen
9deb6ffbba
Merge pull request #1285 from KhronosGroup/vulkan-semantics-shorthand
Add -V alias for --vulkan-semantics.
2020-03-02 14:19:51 +01:00
Hans-Kristian Arntzen
3f2de0d5d3 Add -V alias for --vulkan-semantics. 2020-03-02 11:56:23 +01:00
Hans-Kristian Arntzen
c5f7b55756
Merge pull request #1284 from KhronosGroup/fix-1282
MSL: Reintroduce workarounds for arrays not being value types
2020-02-24 15:40:34 +01:00
Hans-Kristian Arntzen
16796e92be MSL: Add C API for force native arrays. 2020-02-24 13:51:08 +01:00
Hans-Kristian Arntzen
d91e134500 MSL: Add native array test for composite array initialization. 2020-02-24 13:34:51 +01:00
Hans-Kristian Arntzen
30343f3e95 MSL: Reintroduce workaround for constant arrays being passed by value. 2020-02-24 13:22:52 +01:00
Hans-Kristian Arntzen
20b28f72fa MSL: Reinstate workaround for returning arrays. 2020-02-24 13:04:10 +01:00
Hans-Kristian Arntzen
c9d4f9cd74 MSL: Add a workaround path to force native arrays for everything. 2020-02-24 12:47:14 +01:00
Hans-Kristian Arntzen
f19fdb94d7
Merge pull request #1283 from dj2/roll
Roll GLSLang, SPIRV-Tools and SPIRV-Headers
2020-02-20 10:33:45 +01:00
Dan Sinclair
7ec16b64c8 Roll GLSLang, SPIRV-Tools and SPIRV-Headers
This CL rolls the various dependencies of SPIRV-Cross and updates the
tests as needed.
2020-02-19 10:13:52 -05:00
Hans-Kristian Arntzen
dffd33dd9d
Merge pull request #1280 from KhronosGroup/fix-1278
Reject SPIR-V modules with garbage ID bound.
2020-02-14 16:30:33 +01:00
Hans-Kristian Arntzen
92a4294c57 Reject SPIR-V modules with garbage ID bound.
SPIR-V spec has a limit of ~4 million, and Vulkan spec does not increase
this bound, so be a bit defensive and fail early.
2020-02-14 12:57:01 +01:00
Hans-Kristian Arntzen
c53b34765d Merge pull request #1277 from KhronosGroup/fix-1276
HLSL: Declare undef variables as static.
2020-02-08 15:03:07 +01:00
Hans-Kristian Arntzen
e81c1b1d98 HLSL: Declare undef variables as static.
Undef variables would somehow become cbuffer variables without any
warning ...
2020-02-08 13:39:50 +01:00
Hans-Kristian Arntzen
7ac5c38838
Merge pull request #1275 from KhronosGroup/fix-1274
Remove old memory_scope flag from iOS barriers.
2020-02-06 12:11:07 +01:00
Hans-Kristian Arntzen
cec0502ba5 Remove old memory_scope flag from iOS barriers.
I cannot find any reference to this flag ever having existed in older
MSL spec documents, and it breaks compilation on any recent SDK for any
iOS/macOS Metal version. Just remove it.
2020-02-06 10:18:00 +01:00
Hans-Kristian Arntzen
6b2add8e2c
Merge pull request #1272 from KhronosGroup/fix-1271
CMake: Avoid warning when parent project uses VERSION in project().
2020-02-03 10:54:26 +01:00
Hans-Kristian Arntzen
6f5cb00148 Use GNUInstallDirs for include path as well. 2020-02-03 10:53:30 +01:00
Hans-Kristian Arntzen
cb0aca91ef
Merge pull request #1273 from orbea/cmake
Add GNUInstallDirs + fixes for the pkg-config file
2020-02-03 10:47:55 +01:00
orbea
8b90526911 cmake: Don't hardcode the pkg-config file. 2020-02-02 06:17:04 -08:00
orbea
74544caa16 cmake: Use GNUInstallDirs. 2020-02-01 17:56:37 -08:00
Hans-Kristian Arntzen
d67c3393da CMake: Avoid warning when parent project uses VERSION in project(). 2020-02-01 23:14:06 +01:00
Hans-Kristian Arntzen
68bf0f824c
Merge pull request #1270 from KhronosGroup/fix-1266
GLSL: Support GL_ARB_enchanced_layouts for XFB.
2020-01-27 17:39:27 +01:00
Hans-Kristian Arntzen
dfffbb1cf3 Compile fix on older compilers. 2020-01-27 15:56:47 +01:00
Hans-Kristian Arntzen
655312cb47 GLSL: Support GL_ARB_enchanced_layouts for XFB. 2020-01-27 13:11:38 +01:00
Hans-Kristian Arntzen
306cb31bad
Merge pull request #1239 from cdavis5e/msl-inline-uniform-blocks
MSL: Support inline uniform blocks in argument buffers.
2020-01-27 11:17:47 +01:00
Chip Davis
ae6c05f6f4 MSL: Move inline uniform blocks to the end of the argument buffer.
Limit inline blocks to one per descriptor set.

This should avoid the need for complicated code to calculate the
argument buffer ID stride of an inline uniform block. If there's demand
for more inline blocks, we can revisit this.
2020-01-25 13:40:51 -06:00
Chip Davis
fedbc35315 MSL: Support inline uniform blocks in argument buffers.
Here, the inline uniform block is explicit: we instantiate the buffer
block itself in the argument buffer, instead of a pointer to the buffer.
I just hope this will work with the `MTLArgumentDescriptor` API...

Note that Metal recursively assigns individual members of embedded
structs IDs. This means for automatic assignment that we have to
calculate the binding stride for a given buffer block. For MoltenVK,
we'll simply increment the ID by the size of the inline uniform block.
Then the later IDs will never conflict with the inline uniform block. We
can get away with this because Metal doesn't require that IDs be
contiguous, only monotonically increasing.
2020-01-24 18:51:24 -06:00