John Kessenich [Sun, 20 Mar 2016 22:46:00 +0000 (16:46 -0600)]
Front-end: Add specialization-constant subtrees for const variables/symbols.
John Kessenich [Sun, 20 Mar 2016 06:46:02 +0000 (00:46 -0600)]
Front-end infrastructure: Encapsulate semantic-level questions/actions about const/temp.
Much about const or temp is mechanical, about actual declaration,
while much is semantic, about something higher level. This commit
checks every use everywhere, and for the high-level ones, substitutes
an encapsulated version instead.
John Kessenich [Sun, 20 Mar 2016 00:10:22 +0000 (18:10 -0600)]
Front-end infrastructure: simplify and localize creating symbol nodes, reducing replication.
John Kessenich [Fri, 18 Mar 2016 20:42:07 +0000 (14:42 -0600)]
Merge pull request #209 from amdrexu/bugfix
Parser: Type promotion for operator modulus(%) is missing.
Rex Xu [Fri, 18 Mar 2016 08:26:23 +0000 (16:26 +0800)]
Parser: Type promotion for operator modulus(%) is missing.
John Kessenich [Wed, 16 Mar 2016 20:08:30 +0000 (14:08 -0600)]
Merge pull request #203 from dneto0/wip-mingw
Support Linux-to-Windows cross compile via MinGW
David Neto [Mon, 29 Feb 2016 04:32:44 +0000 (23:32 -0500)]
Support compilation via MinGW
Change-Id: Ie52f0b1b2b20948c6f4b3cb5474537d36a5a3385
John Kessenich [Tue, 15 Mar 2016 15:14:27 +0000 (09:14 -0600)]
Merge pull request #204 from amdrexu/bugfix
SPV: Implement boolean selection for mix().
Rex Xu [Tue, 15 Mar 2016 04:08:31 +0000 (12:08 +0800)]
SPV: Implement boolean selection for mix().
Use OpSelect to implement boolean selection of mix(). FMix is applicable
to linear blending of mix().
John Kessenich [Fri, 11 Mar 2016 19:34:02 +0000 (12:34 -0700)]
Merge pull request #199 from dekimir/test-dead-decors
SPV test: Test dead-decoration removal.
Dejan Mircevski [Fri, 11 Mar 2016 17:06:17 +0000 (12:06 -0500)]
Test dead-decoration removal.
John Kessenich [Thu, 10 Mar 2016 16:51:22 +0000 (09:51 -0700)]
Merge pull request #195 from Qining/remove-decoration-on-undef-IDs
SPV: Remove decoration of undefined IDs
qining [Thu, 10 Mar 2016 02:40:41 +0000 (21:40 -0500)]
Change to traditional 'for' loop
John Kessenich [Thu, 10 Mar 2016 02:07:41 +0000 (19:07 -0700)]
Merge pull request #194 from google/if-macro
Preprocessor: Fix array out of bounds bug in processing if-else-endif macros.
qining [Thu, 10 Mar 2016 00:54:03 +0000 (19:54 -0500)]
Remove decoration of undefined IDs
Fix issue #185 by removing OpDecorate instructions whose target IDs are
defined in unreachable blocks and thus not dumped in the generated
SPIR-V code.
Lei Zhang [Wed, 9 Mar 2016 19:53:57 +0000 (14:53 -0500)]
Fix array out of bounds bug in processing if-else-endif macros.
If we are not inside an if macro, we cannot simply decrease
elsetracker.
Fixes https://github.com/KhronosGroup/glslang/issues/29.
John Kessenich [Wed, 9 Mar 2016 04:36:22 +0000 (21:36 -0700)]
SPV: Issue #180: push_constants don't have descriptor sets.
John Kessenich [Tue, 8 Mar 2016 04:22:54 +0000 (21:22 -0700)]
Merge pull request #192 from Qining/enable-adding-multiviewport-capability
SPV: Declare MultiViewport capability.
qining [Tue, 8 Mar 2016 04:05:59 +0000 (23:05 -0500)]
Run regression tests, update spv.420.geom.out so capability MultiViewport is declared
qining [Tue, 8 Mar 2016 02:32:15 +0000 (21:32 -0500)]
Enable adding capability: MultiViewport
Fix issue #191:
https://github.com/KhronosGroup/glslang/issues/191
John Kessenich [Sun, 6 Mar 2016 22:45:11 +0000 (15:45 -0700)]
Merge pull request #168 from amdrexu/feature2
SPV: Add support for memory qualifiers.
John Kessenich [Sun, 6 Mar 2016 22:43:01 +0000 (15:43 -0700)]
Merge pull request #165 from amdrexu/feature
SPV: Support the new OpCode - OpImageSparseRead
John Kessenich [Sun, 6 Mar 2016 22:37:56 +0000 (15:37 -0700)]
Infrastructure: Tweak CMake for
31c294cea86ae0115820f2a02c5a33cfca662a26, removal of bison.
John Kessenich [Sun, 6 Mar 2016 22:14:46 +0000 (15:14 -0700)]
Merge pull request #122 from baldurk/remove-bison-binary
Remove bison binary
John Kessenich [Fri, 4 Mar 2016 05:29:11 +0000 (22:29 -0700)]
SPV: Use heuristic to avoid geometry multi-streams when possible.
John Kessenich [Fri, 4 Mar 2016 04:59:21 +0000 (21:59 -0700)]
Merge pull request #187 from amdrexu/bugfix
SPV: Continue to fix the issue of bool -> uint32
John Kessenich [Fri, 4 Mar 2016 04:57:51 +0000 (21:57 -0700)]
Merge pull request #188 from bsalomon/master
Fix line endings in Test/100.conf
Brian Salomon [Thu, 3 Mar 2016 17:12:07 +0000 (12:12 -0500)]
Fix line endings in Test/100.conf.
Rex Xu [Thu, 3 Mar 2016 06:38:51 +0000 (14:38 +0800)]
SPV: Continue to fix the issue of bool -> uint32
For short-circuit operator (&& and ||), the conversion is missing.
John Kessenich [Tue, 1 Mar 2016 15:43:17 +0000 (08:43 -0700)]
Syntax: correct spelling of rgb10_a2ui.
baldurk [Fri, 1 Jan 2016 00:21:56 +0000 (01:21 +0100)]
Remove custom command for bison, it fails if bison is not found
baldurk [Thu, 31 Dec 2015 23:54:05 +0000 (00:54 +0100)]
Commit bison-generated files from Windows GNU Bison 2.7
baldurk [Thu, 31 Dec 2015 23:31:43 +0000 (00:31 +0100)]
Add a note to README.md about how to build the bison grammar
baldurk [Thu, 31 Dec 2015 23:29:11 +0000 (00:29 +0100)]
Remove bison binaries see issue #103
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`.
Rex Xu [Sun, 21 Feb 2016 12:59:01 +0000 (20:59 +0800)]
SPV: Add support for memory qualifiers.
John Kessenich [Fri, 19 Feb 2016 19:21:50 +0000 (12:21 -0700)]
SPV: Fix 'location' inheritance bug.
Rex Xu [Fri, 19 Feb 2016 14:24:03 +0000 (22:24 +0800)]
SPV: Support the new OpCode - OpImageSparseRead
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.