Hans-Kristian Arntzen
8471ad55b2
Add atomics C++ sample.
2016-05-30 21:31:29 +02:00
Hans-Kristian Arntzen
1b5cef5f0e
Add first C++ backend sample.
2016-05-30 21:31:29 +02:00
Hans-Kristian Arntzen
5ba6296a51
Merge pull request #20 from KhronosGroup/std-array
...
Use std::array in C++ backend.
2016-05-28 20:27:16 +02:00
Hans-Kristian Arntzen
168e46fdf9
Use std::array in C++ backend.
...
Deals better with composite construction in C++
and also fixes a few bugs in GLSL backend with array-of-arrays.
2016-05-28 13:23:51 +02:00
Hans-Kristian Arntzen
4739d16e98
Remove workaround for overly conservative memory barriers.
...
This is now fixed in ESSL 3.10 backend of glslang, so we can remove the old workaround
of dropping full memory barriers.
Also fixes unrelated issue which newer glslang detects.
2016-05-28 11:46:33 +02:00
Hans-Kristian Arntzen
1a199f2ad0
Fixed typo in NumWorkGroups.
2016-05-28 11:30:38 +02:00
Hans-Kristian Arntzen
5ad4340976
Workaround case with identical structs but different types.
...
With the current workarounds for SSBO type aliasing, we have no choice
but to look at OpName in order to figure this out properly.
2016-05-28 09:47:52 +02:00
Hans-Kristian Arntzen
2eb6037ff3
Remove type aliases when emitting buffer blocks in C++.
...
C++ emits separate structs, which we must always emit properly.
2016-05-23 14:18:00 +02:00
Hans-Kristian Arntzen
46892ab745
Fix MSVC warnings.
2016-05-23 13:45:20 +02:00
Hans-Kristian Arntzen
5ea59bd11b
Non-functional: Update formatting.
2016-05-23 13:30:02 +02:00
Hans-Kristian Arntzen
efaf75e620
Remove unused interface_block_names member.
2016-05-23 13:29:18 +02:00
Hans-Kristian Arntzen
6aa2007cba
Deal better with OpName and OpMemberName which alias.
...
OpName is only for debug information, so we must be very careful that
we do not reuse the same name for different variables.
This was previously done for local variables, but this commit extends
this to global variables as well.
2016-05-23 13:19:41 +02:00
Hans-Kristian Arntzen
f05373bdd1
Do not rely on OpName when finding OpTypeStruct aliases.
...
SPIR-V can stamp out multiple variants of the same types to deal with
different offsets, layouts, array strides and so on in buffer blocks.
2016-05-23 10:57:22 +02:00
Hans-Kristian Arntzen
78e7615af6
Do not use flexible member arrays in C++.
...
This is supported as compiler extensions, but we can be standards
compliant here, so use the classic workaround of having a single entry
array at the end of the structs instead.
2016-05-23 09:15:49 +02:00
Hans-Kristian Arntzen
e717daee76
Merge pull request #14 from Think-Silicon/constant_expression_cpp
...
CompilerCPP now properly initializes arrays with constant expressions
2016-05-19 13:52:47 +02:00
papostolou
e108d85c99
CompilerCPP now properly initializes arrays with constant expressions
2016-05-19 14:05:58 +03:00
Hans-Kristian Arntzen
5c16c885c0
Merge pull request #8 from KhronosGroup/integer-bitcast-ops
...
Better handling of bitcasts within integer operations
2016-05-13 15:35:22 +02:00
Hans-Kristian Arntzen
ba47be9896
README tweaks.
...
Remove outdated references to glslang.
2016-05-13 15:32:16 +02:00
Hans-Kristian Arntzen
ffc5544c0b
Don't need to force specific type for left shifts.
2016-05-13 15:30:40 +02:00
Hans-Kristian Arntzen
45ad58a903
Implement more correct integer op handling.
...
In some cases we need to bitcast when dealing with int vs. uint.
SPIR-V allows inputs to be of different integer signedness, so we need
to deal with this somehow.
Add testing system to test SPIR-V assembly.
For now, test all possible combination for all major cases.
- IAdd (which doesn't care about input type as long as they're equal)
- SDiv/UDiv operations which case about input type.
- Arith/Logical right shifts.
- IEqual to test outputs to bvec, which shouldn't get output cast. Also
tests casting in function-like calls.
2016-05-13 15:23:33 +02:00
Hans-Kristian Arntzen
56f1f3d894
Merge pull request #7 from KhronosGroup/out-of-tree-testing
...
Improve out of tree testing, and avoid separate GL/Vulkan folders
2016-05-12 08:13:26 +02:00
Hans-Kristian Arntzen
8869a167d6
Drop --vulkan flag to test_shaders.py
...
We can infer shader types from file extensions.
2016-05-11 20:02:31 +02:00
Hans-Kristian Arntzen
78c9a80600
Make test_shaders.py more robust with out-of-tree builds.
...
Previous assumed that test script was run from root folder.
This doesn't work with out-of-tree builds.
2016-05-11 19:39:38 +02:00
Hans-Kristian Arntzen
0b54291950
Merge pull request #3 from dneto0/add-cmake-support
...
Add a CMakeLists.txt file for use by cmake, ctest
2016-05-11 16:09:55 +02:00
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