Dejan Mircevski
dba2826328
Merge branch 'master' of github.com:google/glslang into loopgen
...
Change-Id: Ie8236430bb9e30a9be2e0c1573c42183c2f4d0d4
2016-01-11 16:26:18 -05:00
Dejan Mircevski
832c65c33b
Fix back-branch target for do-while loops.
...
To ensure back branches always go to a header block, create a header
block even for !testFirst loops. Then unify common code between the
testFirst/!testFirst cases.
Generate the header-block code first, so update golden files.
Realize that certain infinite loops generate invalid SPIR-V, so put a
TODO to instead abort code generation in such cases.
Change-Id: I1e173c8f73daad186cfc666b7d72bd563ed7665d
2016-01-11 15:57:11 -05:00
Dejan Mircevski
c8fbbab419
Update .out files with new loop SPIR-V.
...
Also update breakForLoop and call builder.closeLoop() in code
generation.
Remove dead code.
Change-Id: Ic8ce5b208530f8787989ef45a2efa405f1b45310
2016-01-11 14:48:36 -05:00
Dejan Mircevski
7819bee82c
Switch loops stack to use LoopBlocks.
...
Also remove dead code.
Change-Id: I2c0177d8cab48b7d6f9442715aecb7951597f3c8
2016-01-11 09:35:22 -05:00
Dejan Mircevski
13228243b2
Test a for loop with no body.
...
Change-Id: I5b53cc008349afad94b14500506fcab4d6e64d2e
2016-01-10 23:15:08 -05:00
Dejan Mircevski
e537b8b488
Fix unreachable-block removal.
...
Add a test for loop without a condition.
Change-Id: Idd7fc462218a84b1e745207e2975a3f2897d30a0
2016-01-10 19:37:00 -05:00
Dejan Mircevski
9c6734c8df
First cut at new loop codegen.
...
Change-Id: Id3bdf8b7a5606e7ce5d856ef225d5ddbe59a584b
2016-01-10 12:15:13 -05:00
John Kessenich
e23c9849c2
SPV: Handle type punning in createCompositeCompare().
2016-01-04 23:59:09 -07:00
John Kessenich
f8842e55c0
SPV: Don't do stride decorations for arrays of arrays of blocks.
2016-01-04 19:22:56 -07:00
John Kessenich
c9e0a42b92
SPV: Handle stride decorations for arrays of arrays, and using multiple type instances when strides are used.
2015-12-29 21:27:24 -07:00
John Kessenich
4998789d4e
SPV: Fix array strides by explicitly computing them in the getBaseAlignment() algorithm.
2015-12-29 19:20:55 -07:00
John Kessenich
e0b6cad44f
SPV: Generalize multiple struct-type instances for interpolation/invariant qualifiers.
2015-12-24 10:30:13 -07:00
John Kessenich
69d01eadd6
Semantics: Catch nested types containing 'int' with non-'flat' interpolation.
2015-12-22 16:39:07 -07:00
John Kessenich
50e57560a1
SPV: Don't make MissingFunctionality() exit anymore.
2015-12-21 21:21:11 -07:00
John Kessenich
2211835b4d
SPV: Implement composite comparisons (reductions across hierchical compare).
2015-12-21 20:54:09 -07:00
John Kessenich
59420fd356
SPV: Move to deterministic results for OpEntryPoint, for test stability across platforms.
2015-12-21 11:45:34 -07:00
John Kessenich
7ba6341a05
SPV: Make OpEntryPoint I/O list include all static uses.
...
Before, it was only including explicit interface, sufficient for IO-Block-declared
oriented interface, but not sufficient for all modes GLSL might be used with
SPIR-V.
Two things are accomplished now:
1) each id will appear exactly once
2) the OpEntryPoint list will union static use with declarations
2015-12-20 17:37:07 -07:00
John Kessenich
3ac051e41d
SPV: recursively propagate row/col majorness through nested structures.
...
This includes doing structure uniqueness modulo majorness, for shared nested structures.
2015-12-20 12:25:21 -07:00
John Kessenich
f85e806e44
SPV: Nested layouts: Recursively send around the top-level std140 or std430 packing.
...
This also distinguishes between the same struct included in multiple parent packings.
2015-12-19 15:21:38 -07:00
John Kessenich
b62e693f74
Merge pull request #118 from amdrexu/bugfix
...
SPV: Fix an issue related with imageStore() for 2DMS.
2015-12-19 11:20:25 -07:00
John Kessenich
a3211bfe72
Merge pull request #120 from amdrexu/bugfix2
...
Parser: Correct the storage qualifier of gl_HelperInvocation.
2015-12-19 11:14:32 -07:00
John Kessenich
aa1dd61257
Merge branch 'master' of github.com:KhronosGroup/glslang
2015-12-19 11:10:56 -07:00
John Kessenich
b6d7fa91a1
Merge pull request #117 from amdrexu/feature
...
SPV: Implement GLSL built-in bitcast functions.
2015-12-19 11:08:02 -07:00
John Kessenich
297bb3f2d0
Tests for PR: Fix results for 4f68b83ea1b34923a71e699125a9e867003864f6.
2015-12-19 11:05:44 -07:00
John Kessenich
4f68b83ea1
Merge pull request #119 from thothonegan/master
...
Display the filename if we have output, even if validating a single file
2015-12-19 11:00:49 -07:00
John Kessenich
61c47a951b
Constant folding: Correct result type of non-square matrix folding.
...
This also made the function easier to read by identifying
left and right operands more clearly.
2015-12-16 15:50:25 -07:00
Rex Xu
1934506555
Parser: Correct the storage qualifier of gl_HelperInvocation.
2015-12-16 14:41:39 +08:00
Kenneth Perry
b07e6beb8a
Display the filename if we have output, even if validating a single file.
2015-12-15 10:52:34 -06:00
Rex Xu
7beb44190f
SPV: Fix an issue related with imageStore() for 2DMS.
2015-12-15 17:52:45 +08:00
Rex Xu
cbc426ee62
SPV: Implement GLSL built-in bitcast functions.
2015-12-15 16:03:10 +08:00
John Kessenich
ea0cb2eb11
Merge pull request #116 from mgadams/scan_compile_fix
...
Fix compile warning/error due to assignment in while() loop
2015-12-14 17:47:51 -07:00
Mark Adams
22badee09a
Fix compile warning/error due to assignment in while() loop
...
This causes build failures with -Werror=parentheses
2015-12-14 10:48:04 -05:00
John Kessenich
e7c83cfb8c
SPV GLSL.std.450: Add needed smear operations for min, max, clamp, mix, step, and smoothstep.
2015-12-13 13:34:37 -07:00
John Kessenich
6feb4989fe
SPV texturing: Use comp. 2 as the 3rd comp. for Dref in ImageSampleProjDrefImplicitLod.
2015-12-13 12:23:33 -07:00
John Kessenich
f5ce646546
Fix crash: when no #version for compute shader in es mode.
...
An extra line of error recovery code set a non-sense combination of
es version and core profile.
2015-12-13 11:20:12 -07:00
John Kessenich
61d9fb9048
Semantics: 'invocations' defaults to 1, not 0.
...
'invocations' was using 0 as the "shader never set" flag and as the
default. Formalize this and explicit set to 1 and link time.
2015-12-13 10:59:17 -07:00
John Kessenich
04bb8a01d6
SPV: Implement all matrix operators {+,-,*,/} for {matrix,scalar,vector}.
2015-12-12 12:28:14 -07:00
John Kessenich
494a02a2b0
Semantics: Geometry stage can support max_vertices = 0.
...
To do this, more generally use a named -1 as a not set value.
2015-12-11 17:54:35 -07:00
John Kessenich
3c24a06c8c
SPV tests: Turn on some more tests related to currently pending issues.
2015-12-11 15:08:26 -07:00
John Kessenich
cc16fa0720
Tests: Move to just linefeed to simply cross-platform test changes.
2015-12-10 18:01:54 -07:00
John Kessenich
562394d112
Linux: Fix case of test file.
2015-12-10 12:01:41 -07:00
John Kessenich
76f7139789
SPV: Modify last merge: Have promoteScalar() generate the correct vectorType.
2015-12-09 19:08:42 -07:00
John Kessenich
c51710e0a9
Merge pull request #115 from amdrexu/bugfix
...
SPV: Smear should use type of the scalar to make the expected vector type when the provided vector type is incompatible with the scalar.
2015-12-09 18:47:48 -07:00
John Kessenich
534610d815
Merge pull request #114 from amdrexu/bugfix2
...
Parser: Extension requirement of gl_PrimitiveID and gl_Layer should be checked only for ESSL instead of GLSL.
2015-12-09 18:26:38 -07:00
Rex Xu
e723b45bca
SPV: Scalar smear operation should use type of the scalar to make the
...
expected vector type when the provided vector type is incompatible with
the scalar.
2015-12-09 16:05:06 +08:00
Rex Xu
e553ace049
Parser: Extension requirement of gl_PrimitiveID and gl_Layer should be checked only for ESSL instead of GLSL.
2015-12-09 15:03:41 +08:00
John Kessenich
e00e72ded1
SPV: Protect getStorageClass() with a test that the thing is pointer.
2015-12-08 20:48:49 -07:00
John Kessenich
33661450c7
SPV: Implement OpImage functionality (emit before query).
2015-12-08 19:32:47 -07:00
John Kessenich
45457bcddb
Merge pull request #113 from amdrexu/feature
...
SPV: Implement GLSL interpolation built-in functions.
2015-12-08 14:45:01 -07:00
John Kessenich
5d60ca5744
Platforms: Remove support for Windows XP executables.
...
Dealing with the 110 toolset seems not worth it.
2015-12-08 14:26:26 -07:00