David Neto
59d6898fd0
Add a CMakeLists.txt file for use by cmake, ctest
...
This enables out-of-tree builds, and the use of other build tools.
This will not overwrite Makefile if you are building in the
source tree. To use makefiles generated from CMake, you must
build out of the source tree.
Usage: If SPIRV-Cross source is in $SPIRV_CROSS_ROOT, then to
build with ninja in a different directory:
cmake -G Ninja $SPIRV_CROSS_ROOT
ninja
# Run tests, if enabled
ctest
Tests will be enabled if you have python3.
2016-05-11 10:04:22 -04:00
Hans-Kristian Arntzen
44ef367141
Handle padding for struct members in buffers.
...
Fixes earlier issues with struct-packing test.
2016-05-05 16:32:15 +02:00
Hans-Kristian Arntzen
2d38c6e192
Fixups for struct-packing test.
...
There seems to have been some changes to alignment in glslang here,
so workaround to verify that the other cases at least still work as expected.
2016-05-05 11:59:33 +02:00
Hans-Kristian Arntzen
f144b767ce
Always emit DescriptorSet decoration for Vulkan GLSL.
2016-05-05 11:53:43 +02:00
Hans-Kristian Arntzen
b7a30b659e
Remove stale reference shader.
2016-05-05 10:46:34 +02:00
Hans-Kristian Arntzen
dbee4e4346
Add support for Vulkan GLSL as output target.
...
Mostly useful for debugging SPIR-V where it is useful to see the
"original" Vulkan GLSL constructs which created the SPIR-V.
2016-05-05 10:44:45 +02:00
Hans-Kristian Arntzen
5af1a51727
Treat more opcodes as impure.
2016-05-05 09:52:28 +02:00
Hans-Kristian Arntzen
4b8ed53974
Add Clang format.
...
Reformats the entire codebase. Better to do it now than later.
Adds .clang-format and a convenience script format_all.sh which formats
everything automatically.
2016-05-05 09:40:58 +02:00
Hans-Kristian Arntzen
9d4b5c0c59
Use texel fetch instead of normalized sampling for subpass.
...
Cleaner output code, and matches more directly to how subpass reads work.
2016-05-05 09:19:38 +02:00
Hans-Kristian Arntzen
926916d745
Add -Wshadow.
...
Fixes lots of dubious variable shadowing.
2016-05-05 09:15:25 +02:00
Hans-Kristian Arntzen
874d30130e
Update MSVC build with MSL.
2016-05-05 08:38:33 +02:00
Hans-Kristian Arntzen
700a4c3fb6
Update SPIR-V headers to latest from SPIRV-Headers repo.
2016-05-05 08:31:23 +02:00
Hans-Kristian Arntzen
e5107c8102
Merge pull request #2 from brenwill/master
...
Initial support for Metal Shading Language.
2016-05-05 08:06:05 +02:00
Bill Hollings
2b1e6a8706
Merge branch 'master' of https://github.com/KhronosGroup/SPIRV-Cross
2016-05-04 12:02:45 -04:00
Hans-Kristian Arntzen
12cfbb221f
Add support for querying DecorationInputAttachmentIndex.
...
Was missing from OpDecoration handling.
2016-05-04 13:41:04 +02:00
Bill Hollings
2436f4cb5c
CompilerMSL DimBuffer image type uses 2D MTLTexture.
2016-04-29 15:04:17 +02:00
Bill Hollings
762947e3dd
CompilerMSL move Private global variables to entry-point function variables.
...
CompilerMSL add support for texture read() without sampler for OpImageFetch.
2016-04-27 19:54:33 +02:00
Bill Hollings
5aafb28cc7
Track sampler ID in Meta for OpSampledImage objects.
...
Add virtual CompilerGLSL emit_sampled_image_op function for OpSampledImage.
Under MSL, set sampler ID for local OpSampledImage objects and extract it when emitting sampler.
2016-04-23 21:47:41 -04:00
Bill Hollings
1dbd18daaf
Add pixel type qualifier to MSL image type names.
...
Add MSL support for half-precision base formats (short, ushort, half).
2016-04-21 20:47:57 -04:00
Bill Hollings
2570121582
Merge branch 'master' of https://github.com/KhronosGroup/SPIRV-Cross
2016-04-19 10:14:01 -04:00
Hans-Kristian Arntzen
b6e3a00976
Support sampler and texture as function arguments.
...
sampler is also not an lvalue type.
2016-04-19 11:27:17 +02:00
Hans-Kristian Arntzen
7652c90802
Add support for separate samplers and textures.
...
This will not really make sense for plain GLSL/ESSL target, but other
backends might want it and useful to have for debugging.
2016-04-19 11:13:47 +02:00
Bill Hollings
d7660fa129
Merge branch 'master' of https://github.com/KhronosGroup/SPIRV-Cross
2016-04-18 22:41:58 -04:00
Hans-Kristian Arntzen
b424851706
Fix floating point OpMod.
...
Floating point mod uses separate builtin in GLSL.
2016-04-16 09:25:14 +02:00
Hans-Kristian Arntzen
7c738c5068
Workaround some MSVC issues.
2016-04-16 09:21:56 +02:00
Hans-Kristian Arntzen
d8132df2de
Bump number of compilation loops to 3 in C++ as well.
2016-04-16 09:19:33 +02:00
Hans-Kristian Arntzen
defb416bc0
Add information to README about contributions.
2016-04-15 09:08:23 +02:00
Bill Hollings
fa46c14a78
Clean up commented uniform code and replace with TODO statement.
2016-04-11 17:34:26 -04:00
Bill Hollings
257b10eef4
Fix MSL reference to instruction stream modified in subclass update.
2016-04-11 14:16:12 -04:00
Bill Hollings
6236cc79f0
Merge branch 'master' of https://github.com/KhronosGroup/SPIRV-Cross
2016-04-11 13:35:14 -04:00
Bill Hollings
78b6877368
MSL outputs vertex input struct even when vertex attribute configuration input is missing.
2016-04-11 13:28:43 -04:00
Bill Hollings
b2e313ef3e
Support 3 compilation loops for MSL.
2016-04-11 12:23:31 -04:00
Bill Hollings
5f2d666b69
Add CLI support for Metal.
2016-04-11 11:31:03 -04:00
Bill Hollings
f9e5fb38b8
Fix compiler warnings.
2016-04-11 10:19:20 -04:00
Hans-Kristian Arntzen
1230dd9fe2
Build static library during Makefile build.
...
Makes it easier to use SPIRV-Cross as an API.
Add some subsection in README about this.
2016-04-11 14:30:17 +02:00
Hans-Kristian Arntzen
a1fd2403e9
Add API usage sample to README.md.
2016-04-11 14:22:51 +02:00
Hans-Kristian Arntzen
5ac882765d
Avoid out of range access to spirv data.
...
Avoids debug assertion crashes on MSVC 2015 when trying to access
elements out of range.
2016-04-11 13:40:36 +02:00
Bill Hollings
6ddd80e3fe
Fixes from code review of MSL functionality.
...
Rename MSLOptions to MSLConfiguration.
Convert tabs to spaces.
Replace Builtin with uint32_t as map key.
2016-04-08 15:12:40 -04:00
Bill Hollings
8f30f07eb5
Clarify CompileMSL config parameters and move to compile() function.
...
CompileMSL supports marking vertex attributes and resource bindings
as to whether they are used by the shader, and feeding back to caller.
2016-04-07 21:25:51 -04:00
Bill Hollings
103aabf5e8
Initial support for Metal Shading Language.
2016-04-06 17:42:27 -04:00
Hans-Kristian Arntzen
147e53aeb2
Rename project to SPIRV-Cross.
...
Rename to coincide with moving the project to KhronosGroup.
2016-04-04 15:42:30 +02:00
Hans-Kristian Arntzen
ba0ab875c8
Fix cases where SPIR-V conditionally branches to loop headers.
...
We should check if we are actually branching back to loop header.
Fixes some logic when continue_block == loop_header.
2016-04-04 08:53:37 +02:00
Hans-Kristian Arntzen
92134e410a
Do not add dependencies for variables loaded from UniformConstant.
...
Fixes case where image variables (OpTypeImage), etc are
loaded from UniformConstant address space.
2016-04-01 19:58:26 +02:00
Hans-Kristian Arntzen
97f81ba1e2
Implement workaround to deal with older glslang loop output.
...
The problem case is when continue block == loop header block.
Add some special cases to deal with this scenario.
2016-04-01 12:37:29 +02:00
Hans-Kristian Arntzen
e50e04c247
Add --keep argument to test_shaders.py.
...
Improves debuggability when regressions are found.
2016-03-22 14:56:50 +01:00
Hans-Kristian Arntzen
72e93672d3
Add array-of-SSBO test.
2016-03-22 14:49:43 +01:00
Hans-Kristian Arntzen
0a5b3a6c78
Add --update flag and --malisc flag to test_shaders.py.
...
Avoids the hard dependency on malisc as well as making test_shaders.py
more suitable to regression testing.
2016-03-22 14:47:59 +01:00
Hans-Kristian Arntzen
0ae2bcc3d0
Ensure that floating point literals are float.
...
Fixes regression from earlier workaround of std::to_string.
Update reference output.
2016-03-12 14:22:39 +01:00
Hans-Kristian Arntzen
75471fbb98
Initial commit.
2016-03-11 16:30:27 +01:00