Steve
3573f2e029
Add missing OpTypeSampledImage to prevent unknown type error from SPVRemapper.
2015-08-11 09:20:14 -06:00
Miro Knejp
28f9b1c28d
SPIR-V: Return undefined values from implicit returns instead of dummy
...
Previously if a non-void function implictly returned, a dummy variable
was created as return value. Now instead it returns the result of the
OpUndef instruction. This better conveys the presence of undefined
behavior to SPIR-V consuming tools (and humans).
It also saves one ID per occurrence...
2015-08-11 03:26:46 +02:00
John Kessenich
65c78a0b62
Array of array: Implement the core functionality: types, constructors, operations.
...
There will be subsequent commits to refine semantics, esp. version-specific semantics,
as well as I/O functionality and restrictions.
Note: I'm getting white-space differences in the preprocessor test results,
which I'm not checking in. I think they need to be tagged as binary or something.
2015-08-10 17:08:55 -06:00
John Kessenich
6726cccc91
Add new SPIR-V 31 files.
2015-08-06 22:59:24 -06:00
John Kessenich
5e4b1242bf
Move to revision 31 of SPIR-V.
2015-08-06 22:55:01 -06:00
John Kessenich
306695360d
Fixes to 8f1684b7bb881813365efd013b05bc0900a52a0c, merge pull request 52.
2015-08-06 22:02:24 -06:00
baldurk
d7c5ead6a1
Compile fixes for gcc -Wall
2015-08-05 21:04:23 +02:00
John Kessenich
61d7d7ad73
Revisioning: Include GLSL.std.450 version. Also, the revision.h script now includes redirection to revision.h.
2015-08-03 12:04:56 -06:00
John Kessenich
426394d0c8
AST -> SPV: Add basic atomic_uint and atomic*() built-in function functionality.
2015-07-23 10:22:48 -06:00
John Kessenich
c040e76c58
Portability: Remove unneeded "= default" to work with older compilers.
2015-07-22 15:25:59 -06:00
David Neto
3e6a33cedf
spv::Builder::Loop constructor inits all members.
...
After construction, the Loop is effectively const.
This perturbs the IDs in SPIR-V tests because the body block
is created before generating any of the loop code, rather than
only when the body is first referenced.
2015-07-22 12:24:21 -04:00
John Kessenich
96f4911351
SPV: Make previous commit compile with MSVC 2012.
2015-07-20 22:34:49 -06:00
John Kessenich
37e8337958
Merge pull request #22 from google/structured-do-while
...
Generate correctly structured do-while loops.
2015-07-20 22:14:38 -06:00
John Kessenich
2f273369e4
Performance: Simple upgrade/cleanup of stl c++11 containers (10% perf. increase).
2015-07-19 12:03:51 -06:00
David Neto
c22f37cfb4
Generate correctly structured do-while loops.
...
The loop test is always emitted before the loop body.
For do-while loops, use a phi node to track whether we're
on the first loop iteration, and only check the loop test
on the second and subsequent iterations.
For do-while loops, the loop test branch no longer occurs
at the top of the loop, so it must get its own selection
merge instruction.
A block can't be the target of more than one merge instruction.
So when the loop test executes after the body (as in do-while in GLSL)
we need to introduce a dummy block to be the target of the selection
merge just before the loop test conditional branch.
The other arm of the branch exits the loop and hence is the
"break block" exception in the structured control flow rules.
2015-07-17 17:51:51 -04:00
Steve
465a14666a
Comment out some dead assignments per suggestion from static analysis tools.
...
Code is left in as comments for clarity to humans.
2015-07-15 14:34:35 -06:00
John Kessenich
9e55f633bc
Include specification revision as part of the version string.
2015-07-15 10:03:39 -06:00
John Kessenich
eebb20511f
Merge pull request #11 from baldurk/size-t-int-warning-fixes
...
Fix warnings compiling on x64 with size_t to int casts
2015-07-14 12:25:55 -06:00
John Kessenich
f98ee23415
Fix incorrect used of snprintf()
2015-07-12 19:39:51 -06:00
John Kessenich
68d78fd31e
Updated command-line options, adding -o for saving binaries, -G for OpenGL SPIR-V validation, -v etc.
...
Old uses should still work as they did before.
Also encapsulated use of these flags during parsing, for the parse context.
Added SPIR-V version to -v.
2015-07-12 19:28:10 -06:00
baldurk
d76692dfb8
on x64, size_t is 64-bit and int is 32-bit, so needs an explicit cast
2015-07-12 11:32:58 +02:00
John Kessenich
1f654e1603
Merge pull request #4 from baldurk/relative-include-paths
...
include by relative path, so root doesn't need to be in the search path
2015-07-11 16:41:38 -06:00
Andre Weissflog
a5ade51363
Fix most clang warnings
...
- member initializing order in some constructors
- missing default branches in switch-case
- uninitialized variable if switch-case default (uncritical because
program would exit)
- && and || brace warnings in if()
2015-07-11 14:45:57 +02:00
baldurk
42169c5fee
include by relative path, so root doesn't need to be in the search path
2015-07-08 15:27:29 +02:00
John Kessenich
e0603a441e
Front-end: move to rational internal array-of-array interfaces and design. (A-of-A is not yet implemented though.)
2015-07-06 21:00:03 -06:00
John Kessenich
ec43d0abec
glslang -> SPIR-V: smear scalars for integer (scalar * vector). OpVectorTimesScalar is only for floats.
2015-07-04 17:17:31 -06:00
Felix Kaaman
61deffd92a
Fix include directive depending on root folder name
2015-07-02 15:25:23 +02:00
John Kessenich
140f3df134
Final round for line endings.
2015-06-26 16:58:36 -06:00
John Kessenich
e5e0f6e37a
glslang -> SPV: swap arguments as needed for OpVectorTimesScalar and OpMatrixTimesScalar, and check for correct types for those as well as OpMatrixTimesVector, OpVectorTimesMatrix, and OpMatrixTimesMatrix.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31486 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-06-13 00:48:48 +00:00
John Kessenich
8d64d44c3f
glslang -> SPV: fix degenerate switch topologies (bug 14118).
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31485 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-06-12 22:34:37 +00:00
John Kessenich
fae38ee277
glslang portability: Fixed a slew of OSX compilation warnings (but not all).
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31469 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-06-10 23:23:12 +00:00
John Kessenich
79eaa91e6f
glslang portability: Resolve OSX errors, some other OS warnings.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31468 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-06-10 22:05:48 +00:00
John Kessenich
3ef22f2139
SPV compressor: Fixes a possible asserts. Attribution: spvremapper@lunarg.com
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31451 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-06-09 02:01:53 +00:00
John Kessenich
06e1d0b434
glslang -> SPV: Improvements in swizzles on access chains: Bug 14007 (wrong type), simplications, tests, support mixed swizzle with dynamic component selection.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31277 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-05-22 21:57:58 +00:00
John Kessenich
6b3fd19d89
glslang -> SPV: add decorations for built-ins that are inside blocks.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31266 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-05-22 01:53:15 +00:00
John Kessenich
ea543986f9
glslang -> SPV: translate the source profile to the SPV source language.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31265 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-05-22 01:21:31 +00:00
John Kessenich
e61ed59726
glsl -> SPV: fix OpVectorInsertDynamic result type bug.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31262 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-05-22 00:58:41 +00:00
John Kessenich
3a13a0c71b
Correct some English spellings of SPIR-V.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31237 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-05-20 16:13:01 +00:00
John Kessenich
01685c3ff8
SPV compression: Final check-in enabling this on MSVC 2012. All compression submissions from Steve (spvremapper@lunarg.com).
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31236 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-05-20 16:04:17 +00:00
John Kessenich
3c4a276282
SPIR-V compression: Requires rerunning CMake. Adds a standalone tool for running the SPV compression.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31232 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-05-19 21:07:04 +00:00
John Kessenich
40e391184c
glslang -> SPV: Use the new TBuiltInVariable instead of string compares to get the type of SPV built in. Also fixed gl_FragData and gl_PrimitiveIDIn.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31226 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-05-18 23:25:32 +00:00
John Kessenich
ca3457f1a7
glslang: Fix a few more warnings, and see it using nullptr causes anyone problems (testing c++11 portability).
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31218 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-05-18 01:59:45 +00:00
John Kessenich
593a3f7f6b
glslang -> SPV: improved support for do-while/continue. Contributed by David Neto (dneto@google.com).
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31205 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-05-15 18:44:16 +00:00
John Kessenich
93dfbe1309
glslang: Fix over 100 warnings from MSVC warning level 4.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31202 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-05-15 17:30:55 +00:00
John Kessenich
2aa7f3a671
SPV compression: Remove file/path manipulation stuff, setting up for that to be a separate tool. Added copyright messages as well.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31201 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-05-15 16:02:07 +00:00
John Kessenich
4217d2ea22
SPIR-V compression: Add stripping and remapping tools for compressibility of generated SPIR-V.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31180 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-05-13 20:38:44 +00:00
John Kessenich
3a44d7fee8
glslang spvIR.h: Portability improvement.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31139 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-05-11 18:50:01 +00:00
John Kessenich
1cfc71b73e
glslang->SPV: Fix addStringOperand so it saves the string argument early, before the str parameter variable is modified. Otherwise you save a garbage string (buffer overrun?) because "str" has run past the terminating NUL. Contributor: Â Lei Zhang antiagainst@google.com
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31108 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-05-08 00:45:31 +00:00
John Kessenich
11f5fc04b8
glslang preprocassor: Fix operator precedence bug.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31087 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-05-07 01:04:29 +00:00
John Kessenich
b7cc33116a
glslang portability: add a #include <cassert>.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31082 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-05-06 22:16:30 +00:00