John Kessenich [Fri, 20 May 2016 18:17:26 +0000 (12:17 -0600)]
HLSL: Add more matrix types to the grammar.
John Kessenich [Fri, 20 May 2016 18:06:03 +0000 (12:06 -0600)]
Full stack: distinguish between a scalar and a vector of size 1.
There have been GLSL extensions considering this, and HLSL does it.
This is a fully backward compatible change that allows this distinction.
John Kessenich [Fri, 20 May 2016 00:26:42 +0000 (18:26 -0600)]
SPV: Don't emit memory barrier for ESSL barrier(), but still do for GLSL barrier().
Addresses issue #205.
Current open Khronos bug for finalizing this.
John Kessenich [Thu, 19 May 2016 22:35:25 +0000 (16:35 -0600)]
Merge pull request #298 from thp/remove-unused-prototype
Nonfunctional: Remove declaration for ShGetPhysicalAttributeBindings
Thomas Perl [Thu, 19 May 2016 20:19:58 +0000 (22:19 +0200)]
Remove declaration for ShGetPhysicalAttributeBindings
The function ShGetPhysicalAttributeBindings() is declared in the
header, but not defined (or referenced) anywhere in the codebase.
John Kessenich [Thu, 19 May 2016 16:13:08 +0000 (10:13 -0600)]
Merge pull request #288 from thp/attribute-reflection
Reflection: Add support for querying vertex attributes in reflection API
Thomas Perl [Thu, 19 May 2016 07:26:20 +0000 (09:26 +0200)]
Update test cases for vertex attribute reflection
Thomas Perl [Tue, 17 May 2016 11:59:13 +0000 (13:59 +0200)]
Add support for querying vertex attributes in reflection API
John Kessenich [Thu, 19 May 2016 06:00:54 +0000 (00:00 -0600)]
Merge pull request #295 from amdrexu/bugfix
Parser: Redeclaration of gl_CullDistance is disallowed mistakenly.
John Kessenich [Thu, 19 May 2016 05:55:54 +0000 (23:55 -0600)]
Merge pull request #293 from antiagainst/link-tests
Testing: Add link tests in the GTest framework
Rex Xu [Wed, 18 May 2016 23:10:01 +0000 (07:10 +0800)]
Parser: Redeclaration of gl_CullDistance is disallowed mistakenly.
Lei Zhang [Wed, 18 May 2016 03:03:28 +0000 (23:03 -0400)]
Run link tests in the GTest framework.
John Kessenich [Thu, 19 May 2016 00:06:53 +0000 (18:06 -0600)]
Merge pull request #294 from scyganINTEL/scygan-fix-io_storage_structs-location
SPV: Fix missing location decoration for structures put directly on input/output interfaces
scygan [Wed, 18 May 2016 16:09:17 +0000 (18:09 +0200)]
Fix missing location decoration for structures put directly on input/output interfaces
Spec for decorating the OpVariable:
"The remaining variables listed by OpEntryPoint with the Input or Output storage class form the user-defined variable interface. These variables must be identified with a Location decoration"
Spec for decorating struct type:
"The layout of a structure type used as an Input or Output depends on whether it is also a Block (i.e. has a Block decoration).
If it is a not a Block, then the structure type must have a Location decoration"
Lei Zhang [Tue, 17 May 2016 20:43:05 +0000 (16:43 -0400)]
Fix several comments in GTest fixture.
John Kessenich [Tue, 17 May 2016 16:24:00 +0000 (10:24 -0600)]
Non-functional: Fix some comments English and brace formatting in recent merges.
John Kessenich [Tue, 17 May 2016 16:04:05 +0000 (10:04 -0600)]
Merge branch 'scyganINTEL-struct_member_decorations'
John Kessenich [Tue, 17 May 2016 16:03:37 +0000 (10:03 -0600)]
Merge branch 'struct_member_decorations' of https://github.com/scyganINTEL/glslang into scyganINTEL-struct_member_decorations
John Kessenich [Tue, 17 May 2016 15:59:39 +0000 (09:59 -0600)]
Merge pull request #286 from amdrexu/bugfix
SPV: Correct an issue in createUnaryMatrixOperation().
Rex Xu [Tue, 17 May 2016 10:57:18 +0000 (18:57 +0800)]
SPV: Correct an issue in createUnaryMatrixOperation().
Type of the source is not necessarily the same as that of the destination.
John Kessenich [Tue, 17 May 2016 06:31:36 +0000 (00:31 -0600)]
Merge pull request #285 from baldurk/vs2010-fixes
VS2010 compilation fixes
John Kessenich [Tue, 17 May 2016 01:22:05 +0000 (19:22 -0600)]
SPV: Don't add clip/cull distance capabilities unless used.
These capabalities were added on declaration of the members, but
that is considered too aggressive, as those members are automatically
declared in some shaders that don't use them. Now, actual access
is needed to make the capabalities be declared.
John Kessenich [Mon, 16 May 2016 23:39:50 +0000 (17:39 -0600)]
Tests: Add a set of gtest-file-based HLSL tests.
baldurk [Mon, 16 May 2016 23:38:56 +0000 (01:38 +0200)]
Compile fix - if _MSC_VER is undefined, _MSC_VER < 1700 is true!
baldurk [Mon, 16 May 2016 23:28:44 +0000 (01:28 +0200)]
[VS2010] Define strtoll() and atoll() functions
baldurk [Mon, 16 May 2016 23:23:57 +0000 (01:23 +0200)]
[VS2010] Locally define std::to_string on VS2010 as well as android
baldurk [Mon, 16 May 2016 23:19:23 +0000 (01:19 +0200)]
[VS2010] Remove use of ranged-for loops
baldurk [Mon, 16 May 2016 23:17:06 +0000 (01:17 +0200)]
[VS2010] Remove use of "= default" and "= delete"
baldurk [Mon, 16 May 2016 23:16:46 +0000 (01:16 +0200)]
[VS2010] Change "using X = Y;" to "typedef Y X;"
John Kessenich [Mon, 16 May 2016 22:56:40 +0000 (16:56 -0600)]
Merge pull request #284 from antiagainst/gtest-hlsl
Tests: Add support for testing file-based HLSL source code in GTest.
John Kessenich [Mon, 16 May 2016 22:49:20 +0000 (16:49 -0600)]
Merge pull request #253 from amdrexu/bugfix2
SPV: Handle matrix's OpFConvert vector by vector.
John Kessenich [Mon, 16 May 2016 22:47:51 +0000 (16:47 -0600)]
Merge pull request #281 from amdrexu/bugfix
Parser: Add missing vector relational functions for double type.
John Kessenich [Mon, 16 May 2016 22:47:01 +0000 (16:47 -0600)]
Merge pull request #282 from baldurk/android-warning-fix
Build: Minor android compile warning fix
Lei Zhang [Mon, 16 May 2016 16:50:30 +0000 (12:50 -0400)]
Add support for testing file-based HLSL source code in GTest.
baldurk [Sat, 14 May 2016 12:57:41 +0000 (14:57 +0200)]
Use DetachThreadLinux wrapper on android
* Fixes a warning - static function being defined but not used.
* Just in case any more code is added to DetachThreadLinux, this will go
through the same path on both platforms.
Rex Xu [Sat, 14 May 2016 06:21:16 +0000 (14:21 +0800)]
Parser: Add missing vector relational functions for double type.
Rex Xu [Wed, 27 Apr 2016 10:48:17 +0000 (18:48 +0800)]
SPV: Handle matrix's OpFConvert vector by vector.
John Kessenich [Fri, 13 May 2016 15:33:42 +0000 (09:33 -0600)]
HLSL: Add function call syntax and AST building.
John Kessenich [Thu, 12 May 2016 22:51:15 +0000 (16:51 -0600)]
Merge pull request #278 from greg-lunarg/greg-mr3
Build: fix for -Werror=non-virtual-dtor for Android system builds
John Kessenich [Thu, 12 May 2016 20:22:56 +0000 (14:22 -0600)]
Merge pull request #276 from amdrexu/bugfix
Parser: Redeclare gl_ClipDistance/gl_CullDistance should update their array sizes.
John Kessenich [Thu, 12 May 2016 20:18:13 +0000 (14:18 -0600)]
Merge pull request #277 from amdrexu/bugfix3
SPV: Add capability ImageGatherExtended if necessary.
GregF [Wed, 11 May 2016 20:46:48 +0000 (14:46 -0600)]
fix for -Werror=non-virtual-dtor for Android system builds
Rex Xu [Wed, 11 May 2016 08:38:50 +0000 (16:38 +0800)]
SPV: Add capability ImageGatherExtended if necessary.
Rex Xu [Wed, 11 May 2016 07:50:41 +0000 (15:50 +0800)]
Parser: Redeclare gl_ClipDistance/gl_CullDistance should update their array sizes.
John Kessenich [Tue, 10 May 2016 18:30:26 +0000 (12:30 -0600)]
Merge pull request #274 from antiagainst/stoul-strtoul
Use strtoul instead of stoul for Android.
Lei Zhang [Tue, 10 May 2016 17:38:08 +0000 (13:38 -0400)]
Use strtoul instead of stoul for Android.
John Kessenich [Tue, 10 May 2016 17:37:03 +0000 (11:37 -0600)]
Merge pull request #273 from antiagainst/appveyor-readme-status
Add badge status for Appveyor build in README.
Lei Zhang [Tue, 10 May 2016 17:04:55 +0000 (13:04 -0400)]
Add badge status for Appveyor build in README.
John Kessenich [Tue, 10 May 2016 15:38:37 +0000 (09:38 -0600)]
Merge pull request #272 from antiagainst/appveyor
Configuration for Windows buildbot & fix a bug
Lei Zhang [Tue, 10 May 2016 14:22:48 +0000 (10:22 -0400)]
Use std::string for TBD/missing functionality reporting.
We can have multiple instances of the same string, so comparing
const char* is not guaranteed working.
Fixed the failure on VS 2013 with Debug build.
Lei Zhang [Tue, 10 May 2016 13:55:05 +0000 (09:55 -0400)]
Add test configuration for Appveyor.
John Kessenich [Tue, 10 May 2016 02:18:33 +0000 (20:18 -0600)]
Merge pull request #222 from Qining/support-precise
Full stack: Support *precise* qualifier
John Kessenich [Tue, 10 May 2016 02:17:40 +0000 (20:17 -0600)]
Merge pull request #270 from scyganINTEL/bitfield_buildins
Use proper precision qualifiers for bitfield build-in functions on ES
John Kessenich [Tue, 10 May 2016 02:16:19 +0000 (20:16 -0600)]
Merge pull request #271 from greg-lunarg/greg-mr2
fix check for non-positive array size
qining [Tue, 10 May 2016 01:38:42 +0000 (21:38 -0400)]
remove double underscore
qining [Tue, 10 May 2016 01:18:33 +0000 (21:18 -0400)]
Rebase to
d3d3ce7160001846ede74978954e67f4f9fd84e4,update comments, rename a member variable name, fix format issue
GregF [Mon, 9 May 2016 23:07:04 +0000 (17:07 -0600)]
fix check for non-positive array size
scygan [Mon, 9 May 2016 15:51:25 +0000 (17:51 +0200)]
Use proper precision qualifiers for bitfield build-in functions on ES
This change causes ES shaders to precision qualifiers for build-in functions as defined in ESSL spec. It especially mattersfor functions that are defined as highp or taking a highp.
Fixes vulkanCTS dEQP-VK.glsl.builtin.function.integer.bitfieldreverse.*, where bitfieldReverse() retval was wrongly marked as RelaxedPrecision.
Note: floatBitsToInt/floatBitsToUInt precision is also broken, but in different way - so it is not addressed here.
qining [Sat, 7 May 2016 01:52:28 +0000 (21:52 -0400)]
integer type operation should not be noContraction
qining [Sat, 7 May 2016 00:00:44 +0000 (20:00 -0400)]
simplified the symbol definition collector code, add assert()
qining [Fri, 6 May 2016 22:56:33 +0000 (18:56 -0400)]
add a test for matrix, fix a variable name
qining [Fri, 6 May 2016 21:25:16 +0000 (17:25 -0400)]
Resolve comments
1. Sink adding noContraction decoration to createBinaryOperation() and
createUnaryOperation().
2. Fix comments.
3. Remove the #define of my delimiter, use global constant char.
qining [Fri, 6 May 2016 02:34:52 +0000 (22:34 -0400)]
Removed the redundant functionalities in the assignee checking traverser
qining [Thu, 5 May 2016 21:47:27 +0000 (17:47 -0400)]
Fix the test of precise output function parameter
Rebase to
5cc344d8ce09a6d35ff88b9ea9f351062d779081 and update the
expected test result.
qining [Wed, 4 May 2016 21:34:38 +0000 (17:34 -0400)]
Precise and noContraction propagation
Reimplement the whole workflow to make that: precise'ness of struct
members won't spread to other non-precise members of the same struct
instance.
Approach:
1. Build the map from symbols to their defining nodes. And for each
object node (StructIndex, DirectIndex, Symbol nodes, etc), generates an
accesschain path. Different AST nodes that indicating a same object
should have the same accesschain path.
2. Along the building phase in step 1, collect the initial set of
'precise' (AST qualifier: 'noContraction') objects' accesschain paths.
3. Start with the initial set of 'precise' accesschain paths, use it as
a worklist, do as the following steps until the worklist is empty:
1) Pop an accesschain path from worklist.
2) Get the symbol part from the accesschain path.
3) Find the defining nodes of that symbol.
4) For each defining node, check whether it is defining a 'precise'
object, or its assignee has nested 'precise' object. Get the
incremental path from assignee to its nested 'precise' object (if
any).
5) Traverse the right side of the defining node, obtain the
accesschain paths of the corresponding involved 'precise' objects.
Update the worklist with those new objects' accesschain paths.
Label involved operations with 'noContraction'.
In each step, whenever we find the parent object of an nested object is
'precise' (has 'noContraction' qualifier), we let the nested object
inherit the 'precise'ness from its parent object.
John Kessenich [Fri, 6 May 2016 19:06:11 +0000 (13:06 -0600)]
Comments only.
scygan [Fri, 6 May 2016 14:54:54 +0000 (16:54 +0200)]
SPIR-V do not decorate: members of plain structs with location; non-top level members with interp.
This fixes some vulkanCTS tests that use struct arrays as a member of in/out interface blocks.
From Vulkan spec:
"If it is a not a Block, then the structure type must have a Location decoration. Its members are assigned consecutive locations in their declaration order, with the first member assigned to the location specified for the structure type. >>>>> The members, and their nested types, must not themselves have Location decorations <<<<"
From SPIR-V spec:
"When applied to structure-type members, the Decorations Noperspective, Flat, Patch, Centroid, and Sample can only be applied to the top-level members of the structure type. (Nested objects' types cannot be structures whose members are decorated with these decorations.)"
John Kessenich [Fri, 6 May 2016 06:08:03 +0000 (00:08 -0600)]
README: Editorial update.
John Kessenich [Thu, 5 May 2016 22:45:40 +0000 (16:45 -0600)]
SPV: Non-functional: modularize createInvocationsOperation() from the previous commit.
John Kessenich [Thu, 5 May 2016 22:33:04 +0000 (16:33 -0600)]
Merge branch 'amdrexu-feature2'
John Kessenich [Thu, 5 May 2016 22:32:39 +0000 (16:32 -0600)]
Merge branch 'feature2' of https://github.com/amdrexu/glslang into amdrexu-feature2
John Kessenich [Thu, 5 May 2016 19:46:36 +0000 (13:46 -0600)]
Merge pull request #268 from AWoloszyn/update-cmake
CMake: Updated to better organize folders and options.
John Kessenich [Thu, 5 May 2016 19:36:55 +0000 (13:36 -0600)]
Front-End: precise: capture noContraction on output parameter declarations.
John Kessenich [Thu, 5 May 2016 18:59:56 +0000 (12:59 -0600)]
Merge pull request #266 from dekimir/kfixstoll
Use strtoll, as stoll is unavailable on Android.
Andrew Woloszyn [Thu, 5 May 2016 18:58:26 +0000 (14:58 -0400)]
Install the test executable alongside glslangValidator
Andrew Woloszyn [Thu, 5 May 2016 18:45:53 +0000 (14:45 -0400)]
Updated cmake to better organize folders and options.
This adds solution folders that properly group gtest/glslang/hlsl.
This also marks gtest options as advanced so they don't show up
in cmake-gui by default.
John Kessenich [Thu, 5 May 2016 18:05:06 +0000 (12:05 -0600)]
Merge branch 'amdrexu-feature'
John Kessenich [Thu, 5 May 2016 18:04:22 +0000 (12:04 -0600)]
Merge branch 'feature' of https://github.com/amdrexu/glslang into amdrexu-feature
Dejan Mircevski [Thu, 5 May 2016 15:51:27 +0000 (11:51 -0400)]
Use strtoll, as stoll is unavailable on Android.
John Kessenich [Thu, 5 May 2016 17:23:58 +0000 (11:23 -0600)]
Merge pull request #257 from antiagainst/ostrstream
Avoid printing to stdout directly in library functions.
John Kessenich [Thu, 5 May 2016 16:27:25 +0000 (10:27 -0600)]
Merge pull request #261 from antiagainst/make-tests-clear
README: Explain test organization and deduplication.
Lei Zhang [Thu, 5 May 2016 14:44:26 +0000 (10:44 -0400)]
Improve README steps for building and testing glslang.
Lei Zhang [Wed, 4 May 2016 18:22:56 +0000 (14:22 -0400)]
Explain organization and build steps for source code and tests.
Lei Zhang [Wed, 4 May 2016 19:55:59 +0000 (15:55 -0400)]
Create a new logger class for all messages w.r.t. SPIR-V build.
Lei Zhang [Mon, 2 May 2016 22:11:54 +0000 (18:11 -0400)]
Avoid printing to stdout directly in library functions.
Previously GlslangToSpv() reported missing/TBD functionalities
by directly writing to stdout using printf. That could cause
problems to callers of GlslangToSpv(). This patch cleans up
the error reporting logic in GlslangToSpv(), TGlslangToSpvTraverser,
and spv::Builder a little bit to use ostringstream.
Also fixed the usage of GlslangToSpv() in GTest fixtures to
capture warnings/errors reported when translating AST to SPIR-V.
Rex Xu [Thu, 5 May 2016 12:38:33 +0000 (20:38 +0800)]
Implement the extension GL_ARB_shader_group_vote.
Rex Xu [Thu, 14 Apr 2016 08:53:07 +0000 (16:53 +0800)]
Implement the extension GL_ARB_shader_ballot
Add new built-in variables and functions to the parser (SPIR-V tokens are missing).
John Kessenich [Wed, 4 May 2016 21:35:36 +0000 (15:35 -0600)]
Merge pull request #263 from antiagainst/cmake-minimum-required
CMake: Remove duplicated cmake_minimum_required() calls.
Lei Zhang [Wed, 4 May 2016 21:01:36 +0000 (17:01 -0400)]
Remove duplicated cmake_minimum_required() calls.
John Kessenich [Wed, 4 May 2016 19:24:47 +0000 (13:24 -0600)]
Front-end precise: Propagate noContraction up the AST when dereferencing structs.
This should be the last commit in this sequence to form the base of the work
in pull request #222.
John Kessenich [Wed, 4 May 2016 18:36:14 +0000 (12:36 -0600)]
Parser: Precise: Recognize 'precise', tag types, and do related semantic checking.
This partly overlaps pull request #222, we have divided the work on this one.
John Kessenich [Wed, 4 May 2016 06:12:10 +0000 (00:12 -0600)]
Bison: Non-functional: Move to revision 3.0.4.
This hopefully prevents obsucuring actual changes in a future commit.
Also, adds a script to update the grammar.
John Kessenich [Wed, 4 May 2016 18:54:41 +0000 (12:54 -0600)]
Merge pull request #262 from antiagainst/remove-obselete-src
Remove the obselete and incorrect LinusDoAll.bash.
Lei Zhang [Wed, 4 May 2016 18:53:34 +0000 (14:53 -0400)]
Remove the obselete and incorrect LinusDoAll.bash.
John Kessenich [Wed, 4 May 2016 18:48:17 +0000 (12:48 -0600)]
Merge pull request #260 from antiagainst/cmake-version
CMake: Bump minimum required CMake version to 2.8.12.
Lei Zhang [Wed, 4 May 2016 17:06:15 +0000 (13:06 -0400)]
Bump minimum required CMake version to 2.8.12.
CMake 2.8.12 added support for target_include_directories(), among
other features, and we would like to use it.
John Kessenich [Wed, 4 May 2016 16:27:53 +0000 (10:27 -0600)]
Merge pull request #258 from antiagainst/travis
Testing: Add configuration for Travis to test on Linux and Mac OS X.
Lei Zhang [Wed, 4 May 2016 15:29:21 +0000 (11:29 -0400)]
Add configuration for Travis to test on Linux and Mac OS X.
John Kessenich [Wed, 4 May 2016 05:17:20 +0000 (23:17 -0600)]
HLSL: Add (almost) full expression grammar: Binary, unary (pre/post-fix), assign, ...
John Kessenich [Wed, 4 May 2016 04:49:24 +0000 (22:49 -0600)]
HLSL: Separate out token stream handling from grammar recognition.