Patrick Mours
dfa2a0abf9
Add generated reference shaders
...
See commit aa1c72bc51
2019-03-25 15:16:08 +01:00
Patrick Mours
aa1c72bc51
Add ray tracing test shaders
...
Slightly modified from https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#_sample_code_2
2019-03-25 15:07:51 +01:00
Patrick Mours
c74d7a412c
Add "GL_NV_ray_tracing" extension to output when ray tracing execution model is found
2019-03-25 15:06:01 +01:00
Patrick Mours
b2651d01e5
Merge branch master into SPV_NV_ray_tracing
2019-03-25 14:09:15 +01:00
Hans-Kristian Arntzen
736703fe3b
Merge pull request #903 from KhronosGroup/fix-901
...
Support -1 index in OpVectorShuffle.
2019-03-25 10:50:25 +01:00
Hans-Kristian Arntzen
8eb33c8017
Support -1 index in OpVectorShuffle.
...
-1 (0xffffffff) literal means the component should be undefined.
Since we cannot express undefined directly, just use a 0 literal in the
appropriate type.
2019-03-25 10:17:05 +01:00
Hans-Kristian Arntzen
9dbb25783f
Merge pull request #900 from KhronosGroup/fix-899
...
GLSL/HLSL: Implement NMin/NMax/NClamp.
2019-03-21 17:17:28 +01:00
Hans-Kristian Arntzen
2a0365c813
GLSL/HLSL: Implement NMin/NMax/NClamp.
...
Need to emulate these calls for correctness.
2019-03-21 15:26:46 +01:00
Hans-Kristian Arntzen
5dacfa9dc2
Merge pull request #898 from KhronosGroup/fix-897
...
GLSL: Fix some complex cases for loading arrays
2019-03-21 13:52:00 +01:00
Hans-Kristian Arntzen
0b20180537
GLSL: Deal with array loads from input in tessellation.
...
We have an edge case where the array is declared with a concrete size,
but in GLSL we must emit an unsized array, which breaks array copies.
Deal explicitly with this.
2019-03-21 11:50:53 +01:00
Hans-Kristian Arntzen
d2961b30db
GLSL: Unroll loads from builtin pos/point arrays.
...
Odd-ball case for certain geometry shaders coming from HLSL.
2019-03-21 11:25:41 +01:00
Hans-Kristian Arntzen
1b00a6e48a
Merge pull request #896 from KhronosGroup/fix-895
...
Move check for structured OpSwitch to CompilerGLSL.
2019-03-20 12:12:00 +01:00
Hans-Kristian Arntzen
45baf24a17
Move check for structured OpSwitch to CompilerGLSL.
...
Can still parse correctly.
2019-03-20 10:42:38 +01:00
Hans-Kristian Arntzen
a94490498d
Merge pull request #894 from KhronosGroup/fix-882
...
GLSL: Support emitting push constant block as a plain UBO.
2019-03-19 11:56:24 +01:00
Hans-Kristian Arntzen
1389aa34e4
GLSL: Check target version for push constant location = N.
2019-03-19 11:20:53 +01:00
Hans-Kristian Arntzen
0474848d4a
GLSL: Support emitting push constant block as a plain UBO.
2019-03-19 10:58:52 +01:00
Hans-Kristian Arntzen
66f32eca72
Merge pull request #893 from KhronosGroup/fix-891
...
Fix build on Android API < 26.
2019-03-18 10:15:20 +01:00
Hans-Kristian Arntzen
7310274a4f
Fix build on Android API < 26.
2019-03-18 10:14:04 +01:00
Hans-Kristian Arntzen
f1d10089fa
Merge pull request #892 from fjhenigman/roll
...
Update to latest glslang/SPIRV-Tools.
2019-03-18 09:59:21 +01:00
Frank Henigman
b393fa5c85
Update to latest glslang/SPIRV-Tools.
2019-03-17 23:38:34 -04:00
Hans-Kristian Arntzen
62dce70c2e
Merge pull request #890 from KhronosGroup/msl-argument-buffers
...
MSL: Add support for Metal 2 indirect argument buffers.
2019-03-16 10:31:54 +01:00
Hans-Kristian Arntzen
d8e4d995e5
Remove strange include which got included for some reason.
2019-03-15 21:55:53 +01:00
Hans-Kristian Arntzen
e2aadf8995
Rename "push descriptor set" to "discrete descriptor set".
...
Check for case where iOS doesn't support writable argument buffer
textures.
2019-03-15 21:53:21 +01:00
Hans-Kristian Arntzen
b3380ec9dd
MSL: Support VK_KHR_push_descriptor.
...
If we have argument buffers, we also need to support using plain
descriptor sets for certain cases where API wants it.
2019-03-15 14:08:47 +01:00
Hans-Kristian Arntzen
a5f072d2ab
MSL: Add some comments about how we remap bindings for IAB.
2019-03-15 13:07:59 +01:00
Hans-Kristian Arntzen
c310b40fd3
MSL: Make sure get_buffer_block_flags is only used in right context.
2019-03-15 12:27:54 +01:00
Hans-Kristian Arntzen
bc21ccb7ce
MSL: Emit correct SSBO constness for argument buffers.
2019-03-15 12:05:35 +01:00
Hans-Kristian Arntzen
969566aff5
MSL: Fixup buffer array case issue on MSL 1.0.
2019-03-15 11:37:34 +01:00
Hans-Kristian Arntzen
af8a9ccdcb
MSL: Need to emit two layers of address space.
...
When passing down arrays of buffer pointers, the array itself needs an
address space.
2019-03-15 11:29:17 +01:00
Hans-Kristian Arntzen
e47a77d596
MSL: Implement Metal 2.0 indirect argument buffers.
2019-03-15 11:01:27 +01:00
Hans-Kristian Arntzen
ed55e0ac6d
Merge pull request #886 from KhronosGroup/fix-885
...
Gracefully fall back in test suite if we haven't built external dependencies
2019-03-07 14:39:31 +01:00
Hans-Kristian Arntzen
852e63eebc
Clean up some very verbose argument passing.
2019-03-07 12:43:00 +01:00
Hans-Kristian Arntzen
074f765a83
Explicitly pass down paths to glslang/spirv-tools.
...
Windows and CMake really cannot get along with %PATH%, sigh ...
2019-03-07 12:36:16 +01:00
Hans-Kristian Arntzen
79d995caab
Gracefully fall back in test suite if we haven't built deps.
2019-03-07 10:22:58 +01:00
Hans-Kristian Arntzen
46290a67d1
Update spirv.h.
2019-03-07 10:21:18 +01:00
Hans-Kristian Arntzen
a206afa785
Merge pull request #884 from KhronosGroup/negative-loop-tests
...
Extend loop tests to cover negative tests.
2019-03-06 13:27:00 +01:00
Hans-Kristian Arntzen
cff057ca5a
We emit loop header variables even for while and dowhile.
...
Make the name clearer.
2019-03-06 12:30:11 +01:00
Hans-Kristian Arntzen
8bfb04d29d
Run format_all.sh
...
Disable clang format in C wrapper for now.
Some weird formatting bug with the try/catch macro.
2019-03-06 12:20:13 +01:00
Hans-Kristian Arntzen
ef24337849
Support do-while where test is negative.
2019-03-06 12:17:38 +01:00
Hans-Kristian Arntzen
70ff96b03f
Deal with more for loop candidate cases.
...
We can trivially deal with cases where the loop tests are simply
inverted. We can also deal with cases where the condition block branches
to the merge block via other noop blocks.
This makes SPIR-V codegen easier when targeting SPIRV-Cross.
2019-03-06 11:24:43 +01:00
Hans-Kristian Arntzen
b680c5fa34
Merge pull request #869 from KhronosGroup/c-api
...
Add a stable C API for SPIRV-Cross.
2019-03-06 10:09:53 +01:00
Hans-Kristian Arntzen
f0ad0f1015
Add ubsan and msan.
2019-03-05 11:15:08 +01:00
Hans-Kristian Arntzen
5341a189ff
Add support for sanitizing address and threads.
2019-03-05 10:11:04 +01:00
Hans-Kristian Arntzen
e4704c5cf7
Run install targets on Travis.
2019-03-04 11:39:27 +01:00
Hans-Kristian Arntzen
73db6f3437
Build shared library in travis.
2019-03-04 11:38:39 +01:00
Hans-Kristian Arntzen
afef135dd8
Add a simple SPIR-V for purposes of smoke testing the C API.
2019-03-04 11:37:01 +01:00
Hans-Kristian Arntzen
3699ead741
Add C sample code to the README.
2019-03-04 11:33:01 +01:00
Hans-Kristian Arntzen
ee11bb3bc6
Add a C API smoke test.
2019-03-04 11:14:33 +01:00
Hans-Kristian Arntzen
e74c21a39b
Review fixups.
2019-03-04 10:08:31 +01:00
Hans-Kristian Arntzen
9bbdccddb7
Add a stable C API for SPIRV-Cross.
...
This adds a new C API for SPIRV-Cross which is intended to be stable,
both API and ABI wise.
The C++ API has been refactored a bit to make the C wrapper easier and
cleaner to write. Especially the vertex attribute / resource interfaces
for MSL has been rewritten to avoid taking mutable pointers into the
interface. This would be very annoying to wrap and it didn't fit well
with the rest of the C++ API to begin with. While doing this, I went
ahead and removed all the old deprecated interfaces.
The CMake build system has also seen an overhaul.
It is now possible to build static/shared/CLI separately with -D
options.
The shared library only exposes the C API, as it is the only ABI-stable
API. pkg-configs as well as CMake modules are exported and installed for
the shared library configuration.
2019-03-01 11:53:51 +01:00