John Kessenich [Sun, 28 Feb 2016 04:37:17 +0000 (21:37 -0700)]
Merge pull request #173 from amdrexu/bugfix
SPV: Fix an issue caused by bool-to-uint32 conversion.
John Kessenich [Sun, 28 Feb 2016 04:29:14 +0000 (21:29 -0700)]
Merge pull request #175 from rdb/master
Fix compilation issues with MSVC 2010
John Kessenich [Sun, 28 Feb 2016 04:14:15 +0000 (21:14 -0700)]
Merge pull request #178 from baldurk/minor-warning-fix
Minor warning fixes
baldurk [Thu, 25 Feb 2016 20:47:14 +0000 (21:47 +0100)]
GCC/Clang warning fix - unsigned/signed mismatch in comparison
baldurk [Wed, 10 Feb 2016 19:04:20 +0000 (20:04 +0100)]
GCC warning fix - unhandled enums in switch statement
baldurk [Wed, 10 Feb 2016 18:41:29 +0000 (19:41 +0100)]
MSVC warning fix - conversion from size_t to int, possible loss of data
John Kessenich [Thu, 25 Feb 2016 04:43:59 +0000 (21:43 -0700)]
Merge pull request #174 from mgadams/alias_proto_warnings
Fix warnings/errors for strict aliasing & function prototypes
John Kessenich [Thu, 25 Feb 2016 04:41:02 +0000 (21:41 -0700)]
Merge pull request #176 from jackoalan/parameterize-ensure
SPV: Ensure Parameterize is called during Disassemble
John Kessenich [Thu, 25 Feb 2016 04:39:47 +0000 (21:39 -0700)]
Merge pull request #172 from Marqin/master
fix #171 - error: ‘isinf’ was not declared in this scope
Rex Xu [Tue, 23 Feb 2016 09:51:09 +0000 (17:51 +0800)]
SPV: Fix an issue caused by bool-to-uint32 conversion.
This issue is related with the commit
103bef9d74d768f0690ed53f52681baead384d1e.
Jack Andersen [Tue, 23 Feb 2016 22:03:21 +0000 (12:03 -1000)]
SPV: Ensure Parameterize is called during Disassemble
rdb [Tue, 23 Feb 2016 21:17:38 +0000 (22:17 +0100)]
Fix compilation issues with MSVC 2010
(mostly by eliminating use of range-based for loops and std::tie)
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.
Hubert Jarosz [Tue, 23 Feb 2016 00:32:37 +0000 (01:32 +0100)]
fix #171 - error: ‘isinf’ was not declared in this scope
glslang/MachineIndependent/intermOut.cpp used `isinf`,
but it's in `std` namespace, so should use `std::isinf`.
John Kessenich [Fri, 19 Feb 2016 19:21:50 +0000 (12:21 -0700)]
SPV: Fix 'location' inheritance bug.
John Kessenich [Fri, 19 Feb 2016 02:47:33 +0000 (19:47 -0700)]
SPV: Fix Linux build warning.
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.
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.
John Kessenich [Tue, 16 Feb 2016 03:58:50 +0000 (20:58 -0700)]
SPV: Implement Vulkan version of GLSL (KHR_vulkan_glsl).
John Kessenich [Mon, 15 Feb 2016 22:40:42 +0000 (15:40 -0700)]
SPV: Fix issue #159: use ExplicitLod forms for non-fragment stages.
John Kessenich [Mon, 15 Feb 2016 18:57:00 +0000 (11:57 -0700)]
SPV Capabilities: StorageImageExtendedFormats, StorageImageReadWithoutFormat, and StorageImageWriteWithoutFormat.
John Kessenich [Mon, 15 Feb 2016 18:09:46 +0000 (11:09 -0700)]
SPV Capabilities: SampleRateShading, SparseResidency, MinLod, and ImageQuery.
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
John Kessenich [Mon, 15 Feb 2016 00:11:15 +0000 (17:11 -0700)]
SPV capabilities: Add int16, int64, float16, and float64.
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'.
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.
Csaba Osztrogonác [Fri, 5 Feb 2016 15:40:35 +0000 (07:40 -0800)]
Fix typo in an include guard.
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.
John Kessenich [Tue, 2 Feb 2016 19:37:46 +0000 (12:37 -0700)]
SPV: RelaxedPrecision: Plumb this through the full AST->SPV translator.
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
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
Mark Adams [Tue, 2 Feb 2016 03:13:06 +0000 (19:13 -0800)]
Fix two new Windows build warnings/errors
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.
GregF [Tue, 5 Jan 2016 23:41:29 +0000 (16:41 -0700)]
spirv-remap: assert on unhandled OperandClass
GregF [Tue, 5 Jan 2016 20:00:04 +0000 (13:00 -0700)]
spirv-remap: inhibit loadstore opt if variable ref'd by other instructions
GregF [Tue, 5 Jan 2016 15:41:59 +0000 (08:41 -0700)]
spirv-remap: handle OperandImageOperands during remap
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
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.
John Kessenich [Sat, 23 Jan 2016 01:27:05 +0000 (18:27 -0700)]
Todo: removed Todo.txt, and migrated to issues, closing issue #13.
John Kessenich [Sat, 23 Jan 2016 00:47:22 +0000 (17:47 -0700)]
SPV: Require desktop 140 or ES 310 or above.
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.
John Kessenich [Fri, 22 Jan 2016 17:15:03 +0000 (10:15 -0700)]
SPV: Use a more accurate MemorySemanticsAllMemory mask.
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.
John Kessenich [Fri, 22 Jan 2016 01:56:57 +0000 (18:56 -0700)]
SPV: Add recursive distrubition of 'location' across structure members.
John Kessenich [Wed, 20 Jan 2016 18:19:27 +0000 (11:19 -0700)]
SPV: Add unary-matrix operations, operating at vector level.
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.
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.
Dejan Mircevski [Wed, 20 Jan 2016 16:54:11 +0000 (11:54 -0500)]
Add Test/spv.for-complex-condition.vert.
Dejan Mircevski [Wed, 20 Jan 2016 16:51:43 +0000 (11:51 -0500)]
Split loop header from condition testing for for/while loops.
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.
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.
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.
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.
Dejan Mircevski [Tue, 19 Jan 2016 21:56:45 +0000 (16:56 -0500)]
Move continue-block to after all branches.
Dejan Mircevski [Tue, 19 Jan 2016 21:47:41 +0000 (16:47 -0500)]
Merge branch 'topo' into loopgen-after-readable-order
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
Dejan Mircevski [Tue, 19 Jan 2016 19:52:31 +0000 (14:52 -0500)]
Reformat to better match existing style.
Dejan Mircevski [Tue, 19 Jan 2016 19:50:12 +0000 (14:50 -0500)]
(C) Google
Dejan Mircevski [Tue, 19 Jan 2016 19:08:32 +0000 (14:08 -0500)]
Explicitly initialize Instruction::block.
Dejan Mircevski [Tue, 19 Jan 2016 16:49:37 +0000 (11:49 -0500)]
Remove a redundant check before visit(succ).
Dejan Mircevski [Tue, 19 Jan 2016 16:44:53 +0000 (11:44 -0500)]
Add copyright, remove unused #includes.
Dejan Mircevski [Tue, 19 Jan 2016 16:31:55 +0000 (11:31 -0500)]
Make Instruction::getBlock() const.
Dejan Mircevski [Tue, 19 Jan 2016 15:17:33 +0000 (10:17 -0500)]
Fix merge issues.
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.
Dejan Mircevski [Mon, 18 Jan 2016 22:33:25 +0000 (17:33 -0500)]
Fix spv.branch-return.vert.
Dejan Mircevski [Mon, 18 Jan 2016 22:12:59 +0000 (17:12 -0500)]
Add spv.branch-return.vert and fix inReadableOrder().
Dejan Mircevski [Mon, 18 Jan 2016 21:18:37 +0000 (16:18 -0500)]
Implement inReadableOrder().
Dejan Mircevski [Mon, 18 Jan 2016 21:18:01 +0000 (16:18 -0500)]
Call addPredecessor() on OpSwitch blocks.
Dejan Mircevski [Mon, 18 Jan 2016 04:27:45 +0000 (23:27 -0500)]
Add Block::successors.
John Kessenich [Mon, 18 Jan 2016 18:11:46 +0000 (11:11 -0700)]
Merge branch 'master' of github.com:KhronosGroup/glslang
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.
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).
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.
Andrew Woloszyn [Mon, 18 Jan 2016 14:23:56 +0000 (09:23 -0500)]
Free memory associated with SPIR-V generation.
Andrew Woloszyn [Mon, 18 Jan 2016 14:26:25 +0000 (09:26 -0500)]
Freed up some memory when no longer needed in glslangValidator.
John Kessenich [Sun, 17 Jan 2016 03:37:43 +0000 (20:37 -0700)]
Doubles: Add all the missing built-in double-based prototypes.
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.
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.
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.
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
John Kessenich [Thu, 14 Jan 2016 02:04:19 +0000 (19:04 -0700)]
Tests: Update to match previous pull request.
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
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.
Jason Ekstrand [Tue, 12 Jan 2016 21:04:52 +0000 (13:04 -0800)]
getBaseAlignment: Round up structure sizes to max alignment
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.
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
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
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
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
Dejan Mircevski [Mon, 11 Jan 2016 04:15:08 +0000 (23:15 -0500)]
Test a for loop with no body.
Change-Id: I5b53cc008349afad94b14500506fcab4d6e64d2e
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
Dejan Mircevski [Sun, 10 Jan 2016 17:15:13 +0000 (12:15 -0500)]
First cut at new loop codegen.
Change-Id: Id3bdf8b7a5606e7ce5d856ef225d5ddbe59a584b
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.
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".
John Kessenich [Tue, 5 Jan 2016 06:49:03 +0000 (23:49 -0700)]
SPV: Handle type punning in createCompositeCompare().
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.
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.
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.
John Kessenich [Thu, 24 Dec 2015 17:30:13 +0000 (10:30 -0700)]
SPV: Generalize multiple struct-type instances for interpolation/invariant qualifiers.
John Kessenich [Tue, 22 Dec 2015 23:39:07 +0000 (16:39 -0700)]
Semantics: Catch nested types containing 'int' with non-'flat' interpolation.