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

96 Коммитов

Автор SHA1 Сообщение Дата
Hans-Kristian Arntzen 0c9683cd85 Distinguish between cross edges and back edges.
Handle the weird opcodes CopyMemory/CopyObject.
2016-11-18 09:59:54 +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 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
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 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
Corentin Wallez ef9ee49276 Fix compilation on some old C++11 standard libraries. 2016-10-05 16:13:51 -04: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 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 62d223adda Comment the workaround for layout_for_variable. 2016-09-21 08:20:04 +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 6cc9624e88 Run format.sh. 2016-09-17 18:46:10 +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
Rob Fischer 2199063e3c For arrayed textures in GLSL < 130, require GL_EXT_texture_array and emit correct texture lookup function names 2016-09-17 17:01:50 +09:00
Hans-Kristian Arntzen 378fbe8b92 Consistently use "image" nomenclature for separate images. 2016-09-11 13:48:25 +02:00
Hans-Kristian Arntzen b4c67dafdd Pass down combined samplers to callees. 2016-09-11 13:20:35 +02:00
Hans-Kristian Arntzen bff273636f Skip arguments if necessary. 2016-09-11 13:05:44 +02:00
Hans-Kristian Arntzen 313cb5f820 Declare shadow arguments. 2016-09-11 12:54:08 +02:00
Hans-Kristian Arntzen 948930b171 Build new IDs for shadow arguments. 2016-09-11 12:36:12 +02:00
Hans-Kristian Arntzen dfb6597ee4 Begin redirecting separate params to other params. 2016-09-11 12:05:20 +02:00
Hans-Kristian Arntzen dd1513b814 Trace usage of image/sampler variants through calls. 2016-09-10 21:52:22 +02:00
Hans-Kristian Arntzen 14bc1ffed8 Correctly emit variable declarations for combined image samplers.
Only support direct accesses to global variables in this commit.
2016-09-10 18:09:32 +02:00
Hans-Kristian Arntzen 71bacc4469 Basic combined image sampler emulation hooked up. 2016-09-10 17:48:52 +02:00
Hans-Kristian Arntzen 1b5ca8d868 Move combined image hiding logic into is_hidden. 2016-09-10 16:20:19 +02:00
Hans-Kristian Arntzen bcb5560109 Sketch out interface for combined image samplers. 2016-09-10 13:56:36 +02:00
Hans-Kristian Arntzen 32b463f740 Only check for image load/store if sampling type is 2.
uniform texture2D is sampling type 1.
2016-09-10 13:00:07 +02:00
Bill Hollings cf476f36d1 Merge MSL with upstream. 2016-08-31 21:00:56 -04:00
Hans-Kristian Arntzen f61a5d1e5d Implement dead variable elimination. 2016-08-26 12:58:50 +02:00
Hans-Kristian Arntzen 6ae838c192 Fix legacy GLSL output with gl_FragData.
If the source GLSL file accessed gl_FragData, we got double up
with array access, giving invalid GLSL.
2016-08-18 12:55:19 +02:00
Hans-Kristian Arntzen 1c78f353a4 Merge pull request #39 from KTXSoftware/master
Change variable names beginning with gl_ in GLSL
2016-08-13 23:41:50 +02:00
Robert Konrad 3a40860869 Remove unused variable in replace_illegal_names 2016-08-13 22:56:53 +02:00
Robert Konrad 866cb014d1 Never try to rename remapped variables
Because remapping is used to map to builtins.
2016-08-13 22:56:08 +02:00
Hans-Kristian Arntzen 0eb89ecce0 Fix mistaken nullptr returned instead of empty string. 2016-08-13 10:31:29 +02:00
Robert Konrad 7693656d68 Change variable names beginning with gl_ in GLSL
Using old-school GLSL as input containing code ala
"gl_FragColor = whatever" resulted in illegal
declarations ala "out vec4 gl_FragColor;".
2016-08-13 00:14:52 +02:00
Bill Hollings 0dfeabc6d2 Merge branch 'master' of https://github.com/KhronosGroup/SPIRV-Cross 2016-08-01 15:38:57 -04:00
Hans-Kristian Arntzen 042475e88e Add support for multiple entry points.
- Only consider I/O variables if part of OpEntryPoint.
- Keep a safe fallback if #entry-points is 1 to avoid potentially
  breaking previously working shaders.
2016-07-28 13:18:55 +02:00