Граф коммитов

2074 Коммитов

Автор SHA1 Сообщение Дата
Hans-Kristian Arntzen edbe867b74 Improve handling of dead blocks.
All tests pass now.
Still need to handle OpFunction, atomics, OpPhi, etc ...
2016-11-17 22:15:07 +01:00
Hans-Kristian Arntzen dad4a34072 Start adding CFG analysis.
Not complete yet, but partly working ...
2016-11-17 16:58:05 +01:00
Hans-Kristian Arntzen f7ce25b6c2 Add some documentation for HLSL. 2016-11-13 11:24:13 +01:00
Hans-Kristian Arntzen 67aad48e50 Run format.sh. 2016-11-12 10:04:50 +01:00
Hans-Kristian Arntzen 526d06d0a4 Add more descriptive error message. 2016-11-12 10:04:42 +01:00
Hans-Kristian Arntzen 81c3caeeca Merge pull request #67 from brenwill/master
When flattening global structs for MSL, don't qualify names of built-…
2016-11-11 09:20:08 +01:00
Bill Hollings 23ff950390 When flattening global structs for MSL, don't qualify names of built-in members. 2016-11-10 21:07:50 -05:00
Hans-Kristian Arntzen 8199986c0e Merge pull request #64 from brenwill/master
Support MSL-specific functions
2016-10-28 09:09:35 +02:00
Bill Hollings 2f68ea39f1 Merge upstream. 2016-10-27 19:03:01 -04:00
Bill Hollings f5f910483b Support MSL-specific functions.
Add CompilerMSL emit_instruction() and emit_glsl_op() functions
to handle MSL-specific operation and function definitions.
Remove CompilerMSL emit_msl_defines() function.
2016-10-27 18:47:17 -04:00
Hans-Kristian Arntzen 03abf6a534 Fix formatting after merge. 2016-10-27 16:27:15 +02:00
Hans-Kristian Arntzen 75c2285f6e Merge branch 'master' of git://github.com/brenwill/SPIRV-Cross 2016-10-27 16:26:00 +02:00
Bill Hollings 943191a1c8 Compliance fixes for pull request.
Use C++ style primitive casts.
Add BackendVariations.discard_literal to support language variation for discard syntax.
Tweaks to custom MSL defines.
2016-10-27 10:20:01 -04:00
Hans-Kristian Arntzen 48636b4af8 Fix style nits from last merge. 2016-10-27 13:56:10 +02:00
Hans-Kristian Arntzen 376f19cf61 Merge branch 'master' of git://github.com/baszalmstra/SPIRV-Cross 2016-10-27 13:53:22 +02:00
Bas Zalmstra e042eab551 Changed keywords to const static unordered_set and indented the keywords 2016-10-27 13:48:15 +02:00
Bas Zalmstra f537adf6e9 Added all glsl reserved keywords to replace_illegal_names 2016-10-27 12:51:22 +02:00
Bill Hollings ac00c6032f Run clang-format. 2016-10-24 09:24:24 -04:00
Bill Hollings 0943d9fece MoltenVK shader converter handle missing names.
Use entry point name if no function name provided.
When flattening in/out structs, qualify member names with struct name.
Fix issue when determining declared size of struct types.
Refactor use of m_ name prefix.
Identify header defines in MSL code.
2016-10-23 21:42:54 -04:00
Nathaniel Brown 9577568d56 Corrects some problems converting to compilable MSL from SPIRV. A better solution is to refactor the glsl compiler base-class so some keywords and actions can be overridden, and then the msl subclass can override them - this is a quick & dirty solution.
- adds some common macros that correct for intrinsic differences
 - adds some inline functions to adapt for GLSL terms
 - injects structure member names when the original SPV has been stripped - there is another way to use the correct temporarily assigned member name, but using m_<id> based on the inside SPV code yields metal code that more correctly maps to the original SPV opcodes/slots.
2016-10-21 13:48:21 -07:00
Bill Hollings a759e2c872 Merge Brenwill fork with upstream. 2016-10-19 14:09:51 -07:00
Hans-Kristian Arntzen 206cb9157c Handle interpolation qualifiers inside IO blocks. 2016-10-07 16:30:11 +02:00
Hans-Kristian Arntzen a2d2d2e6fb Merge git://github.com/Kangz/SPIRV-Cross 2016-10-05 23:21:26 +02:00
Corentin Wallez ef9ee49276 Fix compilation on some old C++11 standard libraries. 2016-10-05 16:13:51 -04:00
Hans-Kristian Arntzen f10fbc8131 Split CMake build into separate static libs.
Makes it easier to use SPIRV-Cross from other CMake projects.
2016-10-05 21:43:04 +02:00
Hans-Kristian Arntzen 301e981203 Merge pull request #60 from KhronosGroup/spec-constant
Add more complete specialization constant support
2016-10-03 17:33:28 +02:00
Hans-Kristian Arntzen 253b15ff0c Remove fixed FIXME. 2016-10-03 17:25:20 +02:00
Hans-Kristian Arntzen 5d4bb687bc Support arrays which have spec constant size.
The size of an array can be a specialization constant or a spec constant
op. This complicates things quite a lot.

Reflection becomes very painful in the presence of expressions instead
of literals so add a new array which expresses this.

It is unlikely that we will need to do accurate reflection of interface
types which have specialization constant size.

SSBOs and UBOs will for now throw exception if a dynamic size is used since it
is very difficult to know the real size.
2016-10-03 17:17:11 +02:00
Hans-Kristian Arntzen 7e8afa872b Implement OpSpecConstantOp.
The details here get quite hairy, and it's not complete as not all
functionality is implemented in glslang yet.
2016-10-03 15:54:02 +02:00
Hans-Kristian Arntzen 081620f811 Emit spec constants directly with Vulkan semantics.
Emit an actual spec constant declaration in Vulkan instead of resolving
the constant.
2016-10-03 12:52:56 +02:00
Hans-Kristian Arntzen 6bd545bc6b Basic support for specialization constant reflection. 2016-10-03 12:29:46 +02:00
Hans-Kristian Arntzen 48ca43c8e0 Merge pull request #59 from h3xl3r/master
MSL: Add color attribute qualifiers to fragment function outputs
2016-10-01 09:37:32 +02:00
rob 8bdc4060e8 MSL: Add color attribute qualifiers to fragment function outputs 2016-10-01 15:46:43 +09:00
Hans-Kristian Arntzen 25c4467a10 Add tests for all geometry shader primitive types. 2016-09-28 08:23:21 +02:00
Hans-Kristian Arntzen f3220833e8 Fix triangle mode in tessellation output. 2016-09-28 08:12:04 +02:00
Hans-Kristian Arntzen 6204d8e45d Move static extension checking out to appropriate method.
Also make sure extra statements are placed after extensions as extra
statements can depend on extensions.
2016-09-23 14:25:11 +02:00
Hans-Kristian Arntzen 18129663d9 Run format.sh. 2016-09-21 08:20:16 +02:00
Hans-Kristian Arntzen 62d223adda Comment the workaround for layout_for_variable. 2016-09-21 08:20:04 +02:00
Hans-Kristian Arntzen 64f62e53ce Merge branch 'master' of git://github.com/h3xl3r/SPIRV-Cross 2016-09-21 08:17:02 +02:00
rob ace1911bd4 No layout qualifiers for versions that can't support GL_ARB_shading_language_420pack 2016-09-21 13:20:28 +09:00
rob 42fe8c31f1 Do not add layout qualifiers to variables for GLSL versions that don't support it 2016-09-21 10:21:52 +09:00
Hans-Kristian Arntzen 4d4e6d7a41 Document variable type remap interface a bit more.
Fix some minor missing pieces from C++.
Type remapping like this doesn't seem to fit MSL backend so well, as it
does a lot of remapping internally on its own.

Type name remapping, really is for fringe extension cases in GLSL which
aren't yet supported in SPIR-V.
2016-09-20 10:55:09 +02:00
Panagiotis Christopoulos Charitos 66e76d903f Add support of variable type remapping 2016-09-20 10:26:07 +02:00
Hans-Kristian Arntzen 394521b287 Workaround compiler crash in VS 2013. 2016-09-19 13:17:04 +02:00
Hans-Kristian Arntzen 6cc9624e88 Run format.sh. 2016-09-17 18:46:10 +02:00
Hans-Kristian Arntzen 64a2803dec Merge pull request #53 from luboslenco/master
Legacy GLES extensions.
2016-09-17 18:45:01 +02:00
Lubos Lenco 30dfd0d9b7 Clean up. 2016-09-17 18:42:38 +02:00
Lubos Lenco 1caaf2bba6 Typo. 2016-09-17 15:59:41 +02:00
Lubos Lenco 521586445f Clean up. 2016-09-17 15:56:23 +02:00
Lubos Lenco 80c394160a Legacy GLES extensions. 2016-09-17 14:33:16 +02:00