platform/upstream/glslang.git
8 years agoFix warnings/errors for strict aliasing & function prototypes
Mark Adams [Tue, 23 Feb 2016 17:17:11 +0000 (12:17 -0500)]
Fix warnings/errors for strict aliasing & function prototypes

This fixes various issues related to gcc's strict-aliasing warning
by using unions. It also handles various cases hit with
gcc's missing-declarations warning.

8 years agoSPV: Fix 'location' inheritance bug.
John Kessenich [Fri, 19 Feb 2016 19:21:50 +0000 (12:21 -0700)]
SPV: Fix 'location' inheritance bug.

8 years agoSPV: Fix Linux build warning.
John Kessenich [Fri, 19 Feb 2016 02:47:33 +0000 (19:47 -0700)]
SPV: Fix Linux build warning.

8 years agoMerge pull request #164 from google/bison
John Kessenich [Thu, 18 Feb 2016 18:58:50 +0000 (11:58 -0700)]
Merge pull request #164 from google/bison

Error out if bison is not found on non-Windows operating systems.

8 years agoError out if bison is not found on non-Windows operating systems.
Lei Zhang [Thu, 18 Feb 2016 11:16:11 +0000 (06:16 -0500)]
Error out if bison is not found on non-Windows operating systems.

We cannot just default to use tools/bison.exe when it is not on
Windows.

8 years agoSPV: Implement Vulkan version of GLSL (KHR_vulkan_glsl).
John Kessenich [Tue, 16 Feb 2016 03:58:50 +0000 (20:58 -0700)]
SPV: Implement Vulkan version of GLSL (KHR_vulkan_glsl).

8 years agoSPV: Fix issue #159: use ExplicitLod forms for non-fragment stages.
John Kessenich [Mon, 15 Feb 2016 22:40:42 +0000 (15:40 -0700)]
SPV: Fix issue #159: use ExplicitLod forms for non-fragment stages.

8 years agoSPV Capabilities: StorageImageExtendedFormats, StorageImageReadWithoutFormat, and...
John Kessenich [Mon, 15 Feb 2016 18:57:00 +0000 (11:57 -0700)]
SPV Capabilities: StorageImageExtendedFormats, StorageImageReadWithoutFormat, and StorageImageWriteWithoutFormat.

8 years agoSPV Capabilities: SampleRateShading, SparseResidency, MinLod, and ImageQuery.
John Kessenich [Mon, 15 Feb 2016 18:09:46 +0000 (11:09 -0700)]
SPV Capabilities: SampleRateShading, SparseResidency, MinLod, and ImageQuery.

8 years agoSPV Capabilities: Image types.
John Kessenich [Mon, 15 Feb 2016 00:37:30 +0000 (17:37 -0700)]
SPV Capabilities: Image types.

SampledBuffer
ImageBuffer
Sampled1D
Image1D
SampledCubeArray
ImageCubeArray
SampledRect
ImageRect
InputAttachment
ImageMSArray
StorageImageMultisample

8 years agoSPV capabilities: Add int16, int64, float16, and float64.
John Kessenich [Mon, 15 Feb 2016 00:11:15 +0000 (17:11 -0700)]
SPV capabilities: Add int16, int64, float16, and float64.

8 years agoSPV: Handle GLSL bool loads from a uniform buffer as a conversion from int -> bool.
John Kessenich [Tue, 9 Feb 2016 04:38:15 +0000 (21:38 -0700)]
SPV: Handle GLSL bool loads from a uniform buffer as a conversion from int -> bool.

SPIR-V bool is abstract; it has no bit pattern for storage with transparent memory.
OpenGL's convention is a bool in a uniform buffer is 32-bit int with non-0 being 'true'.

8 years agoMerge pull request #161 from ossy-szeged/master
John Kessenich [Sun, 7 Feb 2016 18:23:28 +0000 (11:23 -0700)]
Merge pull request #161 from ossy-szeged/master

Fix typo in an include guard.

8 years agoFix typo in an include guard.
Csaba Osztrogonác [Fri, 5 Feb 2016 15:40:35 +0000 (07:40 -0800)]
Fix typo in an include guard.

8 years agoSemantics: Map noise*() to an operator for PureOperatorBuiltins mode.
John Kessenich [Tue, 2 Feb 2016 22:59:12 +0000 (15:59 -0700)]
Semantics: Map noise*() to an operator for PureOperatorBuiltins mode.

Fixes issue #157.

8 years agoSPV: RelaxedPrecision: Plumb this through the full AST->SPV translator.
John Kessenich [Tue, 2 Feb 2016 19:37:46 +0000 (12:37 -0700)]
SPV: RelaxedPrecision: Plumb this through the full AST->SPV translator.

8 years agoMerge pull request #155 from mgadams/resultid_warnings
John Kessenich [Tue, 2 Feb 2016 16:14:38 +0000 (09:14 -0700)]
Merge pull request #155 from mgadams/resultid_warnings

Build: Fix two new Windows build warnings/errors

8 years agoMerge pull request #153 from greg-lunarg/gsf-pr1
John Kessenich [Tue, 2 Feb 2016 16:11:01 +0000 (09:11 -0700)]
Merge pull request #153 from greg-lunarg/gsf-pr1

SPV Remapper: Update for 1.0 and bug fixes

8 years agoFix two new Windows build warnings/errors
Mark Adams [Tue, 2 Feb 2016 03:13:06 +0000 (19:13 -0800)]
Fix two new Windows build warnings/errors

8 years agospirv-remap: Fixed strings not at end of operands, fixed L/S defect
GregF [Mon, 1 Feb 2016 23:44:57 +0000 (16:44 -0700)]
spirv-remap: Fixed strings not at end of operands, fixed L/S defect

Also added new op classes.

8 years agospirv-remap: assert on unhandled OperandClass
GregF [Tue, 5 Jan 2016 23:41:29 +0000 (16:41 -0700)]
spirv-remap: assert on unhandled OperandClass

8 years agospirv-remap: inhibit loadstore opt if variable ref'd by other instructions
GregF [Tue, 5 Jan 2016 20:00:04 +0000 (13:00 -0700)]
spirv-remap: inhibit loadstore opt if variable ref'd by other instructions

8 years agospirv-remap: handle OperandImageOperands during remap
GregF [Tue, 5 Jan 2016 15:41:59 +0000 (08:41 -0700)]
spirv-remap: handle OperandImageOperands during remap

8 years agoSPV: Address superset of issue #151: missing OpCapability instructions.
John Kessenich [Mon, 1 Feb 2016 20:45:25 +0000 (13:45 -0700)]
SPV: Address superset of issue #151: missing OpCapability instructions.

This commit adds:
CapabilityGeometryPointSize
CapabilityTessellationPointSize
CapabilityClipDistance
CapabilityCullDistance
CapabilityMultiViewport
CapabilityTransformFeedback
CapabilityGeometryStreams
CapabilityDerivativeControl
CapabilityInterpolationFunction

8 years agoFix front-end bug: Constant folding of array-of-struct index op.
John Kessenich [Mon, 1 Feb 2016 18:57:33 +0000 (11:57 -0700)]
Fix front-end bug: Constant folding of array-of-struct index op.

If a constant object was both an array and a structure, and was
indexed with a constant, the arrayness was ignored and the wrong
subconstant selected.  This fixes that.

8 years agoTodo: removed Todo.txt, and migrated to issues, closing issue #13.
John Kessenich [Sat, 23 Jan 2016 01:27:05 +0000 (18:27 -0700)]
Todo: removed Todo.txt, and migrated to issues, closing issue #13.

8 years agoSPV: Require desktop 140 or ES 310 or above.
John Kessenich [Sat, 23 Jan 2016 00:47:22 +0000 (17:47 -0700)]
SPV: Require desktop 140 or ES 310 or above.

8 years agoSemantics: Spec. changing to reflect reality of int/uint conversion for |^&.
John Kessenich [Fri, 22 Jan 2016 22:40:24 +0000 (15:40 -0700)]
Semantics: Spec. changing to reflect reality of int/uint conversion for |^&.

This effects 4.x, where int/uint conversions are done, but not earlier.

8 years agoSPV: Use a more accurate MemorySemanticsAllMemory mask.
John Kessenich [Fri, 22 Jan 2016 17:15:03 +0000 (10:15 -0700)]
SPV: Use a more accurate MemorySemanticsAllMemory mask.

8 years agoSPV: the OpImageTexelPointer sample 0 should be <id> of 0, not literal 0.
John Kessenich [Fri, 22 Jan 2016 16:54:12 +0000 (09:54 -0700)]
SPV: the OpImageTexelPointer sample 0 should be <id> of 0, not literal 0.

8 years agoSPV: Add recursive distrubition of 'location' across structure members.
John Kessenich [Fri, 22 Jan 2016 01:56:57 +0000 (18:56 -0700)]
SPV: Add recursive distrubition of 'location' across structure members.

8 years agoSPV: Add unary-matrix operations, operating at vector level.
John Kessenich [Wed, 20 Jan 2016 18:19:27 +0000 (11:19 -0700)]
SPV: Add unary-matrix operations, operating at vector level.

8 years agoMerge pull request #138 from dekimir/fix-old-msvc
John Kessenich [Wed, 20 Jan 2016 17:46:40 +0000 (10:46 -0700)]
Merge pull request #138 from dekimir/fix-old-msvc

Fix #137 by avoiding a C++11 feature.

8 years agoMerge pull request #139 from dekimir/small-header-always
John Kessenich [Wed, 20 Jan 2016 17:46:21 +0000 (10:46 -0700)]
Merge pull request #139 from dekimir/small-header-always

SPV: Split loop header from condition testing for for/while loops.

8 years agoAdd Test/spv.for-complex-condition.vert.
Dejan Mircevski [Wed, 20 Jan 2016 16:54:11 +0000 (11:54 -0500)]
Add Test/spv.for-complex-condition.vert.

8 years agoSplit loop header from condition testing for for/while loops.
Dejan Mircevski [Wed, 20 Jan 2016 16:51:43 +0000 (11:51 -0500)]
Split loop header from condition testing for for/while loops.

8 years agoFix #137 by avoiding a C++11 feature.
Dejan Mircevski [Wed, 20 Jan 2016 15:19:25 +0000 (10:19 -0500)]
Fix #137 by avoiding a C++11 feature.

Apparently, older MSVC versions don't support brace-initializers for
function arguments.

Thanks @baldurk for a suggestion on his branch.

8 years agoMerge pull request #136 from dekimir/no-block-removal
John Kessenich [Wed, 20 Jan 2016 02:26:08 +0000 (19:26 -0700)]
Merge pull request #136 from dekimir/no-block-removal

SPV: Don't remove SPIR-V blocks before codegen, use new InReadableOrder instead.

8 years agoDon't remove SPIR-V blocks before codegen.
Dejan Mircevski [Wed, 20 Jan 2016 02:13:38 +0000 (21:13 -0500)]
Don't remove SPIR-V blocks before codegen.

A removed block releases its instructions, so Module::idToInstruction
suddenly contains dangling references.  The original motivation for
block removal was to skip some unreachable blocks, but that's already
achieved by InReadableOrder.cpp.

Also updated stale comments.

8 years agoMerge pull request #127 from dekimir/loopgen
John Kessenich [Tue, 19 Jan 2016 22:32:07 +0000 (15:32 -0700)]
Merge pull request #127 from dekimir/loopgen

SPV: Rework loop code generation to match SPIR-V 1.0.

8 years agoMove continue-block to after all branches.
Dejan Mircevski [Tue, 19 Jan 2016 21:56:45 +0000 (16:56 -0500)]
Move continue-block to after all branches.

8 years agoMerge branch 'topo' into loopgen-after-readable-order
Dejan Mircevski [Tue, 19 Jan 2016 21:47:41 +0000 (16:47 -0500)]
Merge branch 'topo' into loopgen-after-readable-order

8 years agoMerge pull request #135 from dekimir/topo
John Kessenich [Tue, 19 Jan 2016 21:22:53 +0000 (14:22 -0700)]
Merge pull request #135 from dekimir/topo

SPV: Code-generate SPIR-V blocks in a more readable order

8 years agoReformat to better match existing style.
Dejan Mircevski [Tue, 19 Jan 2016 19:52:31 +0000 (14:52 -0500)]
Reformat to better match existing style.

8 years ago(C) Google
Dejan Mircevski [Tue, 19 Jan 2016 19:50:12 +0000 (14:50 -0500)]
(C) Google

8 years agoExplicitly initialize Instruction::block.
Dejan Mircevski [Tue, 19 Jan 2016 19:08:32 +0000 (14:08 -0500)]
Explicitly initialize Instruction::block.

8 years agoRemove a redundant check before visit(succ).
Dejan Mircevski [Tue, 19 Jan 2016 16:49:37 +0000 (11:49 -0500)]
Remove a redundant check before visit(succ).

8 years agoAdd copyright, remove unused #includes.
Dejan Mircevski [Tue, 19 Jan 2016 16:44:53 +0000 (11:44 -0500)]
Add copyright, remove unused #includes.

8 years agoMake Instruction::getBlock() const.
Dejan Mircevski [Tue, 19 Jan 2016 16:31:55 +0000 (11:31 -0500)]
Make Instruction::getBlock() const.

8 years agoFix merge issues.
Dejan Mircevski [Tue, 19 Jan 2016 15:17:33 +0000 (10:17 -0500)]
Fix merge issues.

8 years agoRework inReadableOrder() as a recursive descent.
Dejan Mircevski [Tue, 19 Jan 2016 15:01:27 +0000 (10:01 -0500)]
Rework inReadableOrder() as a recursive descent.

Add a test for unreachable merge block.

Update test results with the new order: mainly delaying merge blocks and
removing unreachable ones.

8 years agoFix spv.branch-return.vert.
Dejan Mircevski [Mon, 18 Jan 2016 22:33:25 +0000 (17:33 -0500)]
Fix spv.branch-return.vert.

8 years agoAdd spv.branch-return.vert and fix inReadableOrder().
Dejan Mircevski [Mon, 18 Jan 2016 22:12:59 +0000 (17:12 -0500)]
Add spv.branch-return.vert and fix inReadableOrder().

8 years agoImplement inReadableOrder().
Dejan Mircevski [Mon, 18 Jan 2016 21:18:37 +0000 (16:18 -0500)]
Implement inReadableOrder().

8 years agoCall addPredecessor() on OpSwitch blocks.
Dejan Mircevski [Mon, 18 Jan 2016 21:18:01 +0000 (16:18 -0500)]
Call addPredecessor() on OpSwitch blocks.

8 years agoAdd Block::successors.
Dejan Mircevski [Mon, 18 Jan 2016 04:27:45 +0000 (23:27 -0500)]
Add Block::successors.

8 years agoMerge branch 'master' of github.com:KhronosGroup/glslang
John Kessenich [Mon, 18 Jan 2016 18:11:46 +0000 (11:11 -0700)]
Merge branch 'master' of github.com:KhronosGroup/glslang

8 years agoMemory: remove a part of the last merge request that causes crashes in multi-threaded...
John Kessenich [Mon, 18 Jan 2016 18:10:40 +0000 (11:10 -0700)]
Memory: remove a part of the last merge request that causes crashes in multi-threaded mode.

8 years agoMerge pull request #134 from AWoloszyn/glslangvalidator-memory
John Kessenich [Mon, 18 Jan 2016 18:10:18 +0000 (11:10 -0700)]
Merge pull request #134 from AWoloszyn/glslangvalidator-memory

Freed up some command line memory (not used programmatically).

8 years agoMerge pull request #133 from AWoloszyn/spirv-memory
John Kessenich [Mon, 18 Jan 2016 17:48:07 +0000 (10:48 -0700)]
Merge pull request #133 from AWoloszyn/spirv-memory

Free memory associated with SPIR-V generation and the pragmaTable.

8 years agoFree memory associated with SPIR-V generation.
Andrew Woloszyn [Mon, 18 Jan 2016 14:23:56 +0000 (09:23 -0500)]
Free memory associated with SPIR-V generation.

8 years agoFreed up some memory when no longer needed in glslangValidator.
Andrew Woloszyn [Mon, 18 Jan 2016 14:26:25 +0000 (09:26 -0500)]
Freed up some memory when no longer needed in glslangValidator.

8 years agoDoubles: Add all the missing built-in double-based prototypes.
John Kessenich [Sun, 17 Jan 2016 03:37:43 +0000 (20:37 -0700)]
Doubles: Add all the missing built-in double-based prototypes.

8 years agoMemory/Perf: For link-mode, isolate file I/O so API can be looped over.
John Kessenich [Sat, 16 Jan 2016 22:30:03 +0000 (15:30 -0700)]
Memory/Perf: For link-mode, isolate file I/O so API can be looped over.

Separating file I/O from compile/link lets the compile/link be done
repeatedly in a loop for testing and measuring of performance and
memory footprint, including seeing memory growth over time for
functional-level memory-leak testing.

While the older compile-only mode already had this functionality,
and typically showed no memory leaks, SPIR-V uses the link path,
has pending "TODO" for memory freeing, and this shows several
kilobytes of leaking per compile-link. Most likely, pending
merge request 131 will address much of this.

8 years agoMerge pull request #121 from amdrexu/feature
John Kessenich [Fri, 15 Jan 2016 07:52:18 +0000 (00:52 -0700)]
Merge pull request #121 from amdrexu/feature

Parser & SPV: Implement two extensions regarding GLSL sparse texture.

8 years agoMerge pull request #129 from AWoloszyn/fix-noop-strcpy
John Kessenich [Thu, 14 Jan 2016 02:12:50 +0000 (19:12 -0700)]
Merge pull request #129 from AWoloszyn/fix-noop-strcpy

Preprocessor: Removed strcpy that copied a value to itself.

8 years agoMerge pull request #126 from mgadams/win32_warnings
John Kessenich [Thu, 14 Jan 2016 02:11:05 +0000 (19:11 -0700)]
Merge pull request #126 from mgadams/win32_warnings

Fix several build warnings/error encountered with VS2013

8 years agoTests: Update to match previous pull request.
John Kessenich [Thu, 14 Jan 2016 02:04:19 +0000 (19:04 -0700)]
Tests:  Update to match previous pull request.

8 years agoMerge pull request #130 from jekstrand/fix-std140-struct
John Kessenich [Thu, 14 Jan 2016 01:59:31 +0000 (18:59 -0700)]
Merge pull request #130 from jekstrand/fix-std140-struct

linkValidate: Round up structure sizes to vec4 in std140

8 years agogetBaseAlignment: Use the rowMajor argument for determining matrix strides
Jason Ekstrand [Thu, 14 Jan 2016 01:14:43 +0000 (17:14 -0800)]
getBaseAlignment: Use the rowMajor argument for determining matrix strides

The argument version is passed in from above and struct handling ensures
that row-majorness gets propagated correctly from one level to the next.
If we just look at the type itself and it's embedded in a struct that's
declared row-major, we may get the wrong stride.

8 years agogetBaseAlignment: Round up structure sizes to max alignment
Jason Ekstrand [Tue, 12 Jan 2016 21:04:52 +0000 (13:04 -0800)]
getBaseAlignment: Round up structure sizes to max alignment

8 years agoRemoved strcpy that copied to itself.
Andrew Woloszyn [Tue, 12 Jan 2016 20:45:55 +0000 (15:45 -0500)]
Removed strcpy that copied to itself.

Found by running glslang with -fsanitize=address in clang.
Also fixes a potential buffer-overrun with return from lReadByte.

8 years agoMerge branch 'master' of github.com:google/glslang into loopgen
Dejan Mircevski [Mon, 11 Jan 2016 21:26:18 +0000 (16:26 -0500)]
Merge branch 'master' of github.com:google/glslang into loopgen

Change-Id: Ie8236430bb9e30a9be2e0c1573c42183c2f4d0d4

8 years agoFix back-branch target for do-while loops.
Dejan Mircevski [Mon, 11 Jan 2016 20:57:11 +0000 (15:57 -0500)]
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

8 years agoUpdate .out files with new loop SPIR-V.
Dejan Mircevski [Mon, 11 Jan 2016 19:48:36 +0000 (14:48 -0500)]
Update .out files with new loop SPIR-V.

Also update breakForLoop and call builder.closeLoop() in code
generation.

Remove dead code.

Change-Id: Ic8ce5b208530f8787989ef45a2efa405f1b45310

8 years agoSwitch loops stack to use LoopBlocks.
Dejan Mircevski [Mon, 11 Jan 2016 14:35:22 +0000 (09:35 -0500)]
Switch loops stack to use LoopBlocks.

Also remove dead code.

Change-Id: I2c0177d8cab48b7d6f9442715aecb7951597f3c8

8 years agoTest a for loop with no body.
Dejan Mircevski [Mon, 11 Jan 2016 04:15:08 +0000 (23:15 -0500)]
Test a for loop with no body.

Change-Id: I5b53cc008349afad94b14500506fcab4d6e64d2e

8 years agoFix unreachable-block removal.
Dejan Mircevski [Mon, 11 Jan 2016 00:37:00 +0000 (19:37 -0500)]
Fix unreachable-block removal.

Add a test for loop without a condition.

Change-Id: Idd7fc462218a84b1e745207e2975a3f2897d30a0

8 years agoFirst cut at new loop codegen.
Dejan Mircevski [Sun, 10 Jan 2016 17:15:13 +0000 (12:15 -0500)]
First cut at new loop codegen.

Change-Id: Id3bdf8b7a5606e7ce5d856ef225d5ddbe59a584b

8 years agoFix several build warnings/error encountered with VS2013
Mark Adams [Wed, 6 Jan 2016 18:41:02 +0000 (13:41 -0500)]
Fix several build warnings/error encountered with VS2013

This also fixes the newlines for spirv.hpp to be consistent with the rest of the files.

8 years agoParser & SPV: Implement two extensions regarding GLSL sparse texture.
Rex Xu [Thu, 31 Dec 2015 08:11:41 +0000 (16:11 +0800)]
Parser & SPV: Implement two extensions regarding GLSL sparse texture.

Implement extension "GL_ARB_sparse_texture2".
Implement extension "GL_ARB_sparse_texture_clamp".

8 years agoSPV: Handle type punning in createCompositeCompare().
John Kessenich [Tue, 5 Jan 2016 06:49:03 +0000 (23:49 -0700)]
SPV: Handle type punning in createCompositeCompare().

8 years agoSPV: Don't do stride decorations for arrays of arrays of blocks.
John Kessenich [Tue, 5 Jan 2016 02:22:56 +0000 (19:22 -0700)]
SPV: Don't do stride decorations for arrays of arrays of blocks.

8 years agoSPV: Handle stride decorations for arrays of arrays, and using multiple type instance...
John Kessenich [Wed, 30 Dec 2015 04:27:24 +0000 (21:27 -0700)]
SPV: Handle stride decorations for arrays of arrays, and using multiple type instances when strides are used.

8 years agoSPV: Fix array strides by explicitly computing them in the getBaseAlignment() algorithm.
John Kessenich [Wed, 30 Dec 2015 00:11:44 +0000 (17:11 -0700)]
SPV: Fix array strides by explicitly computing them in the getBaseAlignment() algorithm.

8 years agoSPV: Generalize multiple struct-type instances for interpolation/invariant qualifiers.
John Kessenich [Thu, 24 Dec 2015 17:30:13 +0000 (10:30 -0700)]
SPV: Generalize multiple struct-type instances for interpolation/invariant qualifiers.

8 years agoSemantics: Catch nested types containing 'int' with non-'flat' interpolation.
John Kessenich [Tue, 22 Dec 2015 23:39:07 +0000 (16:39 -0700)]
Semantics: Catch nested types containing 'int' with non-'flat' interpolation.

8 years agoSPV: Don't make MissingFunctionality() exit anymore.
John Kessenich [Tue, 22 Dec 2015 04:21:11 +0000 (21:21 -0700)]
SPV: Don't make MissingFunctionality() exit anymore.

8 years agoSPV: Implement composite comparisons (reductions across hierchical compare).
John Kessenich [Tue, 22 Dec 2015 03:54:09 +0000 (20:54 -0700)]
SPV: Implement composite comparisons (reductions across hierchical compare).

8 years agoSPV: Move to deterministic results for OpEntryPoint, for test stability across platforms.
John Kessenich [Mon, 21 Dec 2015 18:45:34 +0000 (11:45 -0700)]
SPV: Move to deterministic results for OpEntryPoint, for test stability across platforms.

8 years agoSPV: Make OpEntryPoint I/O list include all static uses.
John Kessenich [Mon, 21 Dec 2015 00:37:07 +0000 (17:37 -0700)]
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

8 years agoSPV: recursively propagate row/col majorness through nested structures.
John Kessenich [Sun, 20 Dec 2015 18:29:16 +0000 (11:29 -0700)]
SPV: recursively propagate row/col majorness through nested structures.

This includes doing structure uniqueness modulo majorness, for shared nested structures.

8 years agoSPV: Nested layouts: Recursively send around the top-level std140 or std430 packing.
John Kessenich [Sat, 19 Dec 2015 20:57:10 +0000 (13:57 -0700)]
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.

8 years agoMerge pull request #118 from amdrexu/bugfix
John Kessenich [Sat, 19 Dec 2015 18:20:25 +0000 (11:20 -0700)]
Merge pull request #118 from amdrexu/bugfix

SPV: Fix an issue related with imageStore() for 2DMS.

8 years agoMerge pull request #120 from amdrexu/bugfix2
John Kessenich [Sat, 19 Dec 2015 18:14:32 +0000 (11:14 -0700)]
Merge pull request #120 from amdrexu/bugfix2

Parser: Correct the storage qualifier of gl_HelperInvocation.

8 years agoMerge branch 'master' of github.com:KhronosGroup/glslang
John Kessenich [Sat, 19 Dec 2015 18:10:56 +0000 (11:10 -0700)]
Merge branch 'master' of github.com:KhronosGroup/glslang

8 years agoMerge pull request #117 from amdrexu/feature
John Kessenich [Sat, 19 Dec 2015 18:08:02 +0000 (11:08 -0700)]
Merge pull request #117 from amdrexu/feature

SPV: Implement GLSL built-in bitcast functions.

8 years agoTests for PR: Fix results for 4f68b83ea1b34923a71e699125a9e867003864f6.
John Kessenich [Sat, 19 Dec 2015 18:05:44 +0000 (11:05 -0700)]
Tests for PR: Fix results for 4f68b83ea1b34923a71e699125a9e867003864f6.

8 years agoMerge pull request #119 from thothonegan/master
John Kessenich [Sat, 19 Dec 2015 18:00:49 +0000 (11:00 -0700)]
Merge pull request #119 from thothonegan/master

Display the filename if we have output, even if validating  a single file

8 years agoConstant folding: Correct result type of non-square matrix folding.
John Kessenich [Tue, 15 Dec 2015 01:21:19 +0000 (18:21 -0700)]
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.