Commit Graph

1150 Commits

Author SHA1 Message Date
John Kessenich
bedde872b6 Merge pull request #285 from baldurk/vs2010-fixes
VS2010 compilation fixes
2016-05-17 00:31:36 -06:00
John Kessenich
ebb505355d 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.
2016-05-16 19:32:59 -06:00
John Kessenich
e5f29393da Tests: Add a set of gtest-file-based HLSL tests. 2016-05-16 17:39:50 -06:00
baldurk
6b32ae18fa Compile fix - if _MSC_VER is undefined, _MSC_VER < 1700 is true! 2016-05-17 01:38:56 +02:00
baldurk
a8018b8ee5 [VS2010] Define strtoll() and atoll() functions 2016-05-17 01:28:44 +02:00
baldurk
bf2c88b6d1 [VS2010] Locally define std::to_string on VS2010 as well as android 2016-05-17 01:24:04 +02:00
baldurk
ab44ba757e [VS2010] Remove use of ranged-for loops 2016-05-17 01:20:30 +02:00
baldurk
c1d81cb171 [VS2010] Remove use of "= default" and "= delete" 2016-05-17 01:20:25 +02:00
baldurk
786cf4dc48 [VS2010] Change "using X = Y;" to "typedef Y X;" 2016-05-17 01:20:12 +02:00
John Kessenich
e0a24778dd Merge pull request #284 from antiagainst/gtest-hlsl
Tests: Add support for testing file-based HLSL source code in GTest.
2016-05-16 16:56:40 -06:00
John Kessenich
7a27de6dd1 Merge pull request #253 from amdrexu/bugfix2
SPV: Handle matrix's OpFConvert vector by vector.
2016-05-16 16:49:20 -06:00
John Kessenich
7fde8bc2a9 Merge pull request #281 from amdrexu/bugfix
Parser: Add missing vector relational functions for double type.
2016-05-16 16:47:51 -06:00
John Kessenich
b9e97430d2 Merge pull request #282 from baldurk/android-warning-fix
Build: Minor android compile warning fix
2016-05-16 16:47:01 -06:00
Lei Zhang
d6f0ed2c81 Add support for testing file-based HLSL source code in GTest. 2016-05-16 12:51:13 -04:00
baldurk
f2d75f76e5 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.
2016-05-14 14:57:41 +02:00
Rex Xu
62dda787c7 Parser: Add missing vector relational functions for double type. 2016-05-14 14:21:16 +08:00
Rex Xu
73e3ce78f4 SPV: Handle matrix's OpFConvert vector by vector. 2016-05-14 09:20:52 +08:00
John Kessenich
4678ca9dac HLSL: Add function call syntax and AST building. 2016-05-13 09:33:42 -06:00
John Kessenich
9db3117e38 Merge pull request #278 from greg-lunarg/greg-mr3
Build: fix for -Werror=non-virtual-dtor for Android system builds
2016-05-12 16:51:15 -06:00
John Kessenich
36962c7ab7 Merge pull request #276 from amdrexu/bugfix
Parser: Redeclare gl_ClipDistance/gl_CullDistance should update their array sizes.
2016-05-12 14:22:56 -06:00
John Kessenich
9f0cbdc22a Merge pull request #277 from amdrexu/bugfix3
SPV: Add capability ImageGatherExtended if necessary.
2016-05-12 14:18:13 -06:00
GregF
2713ed735d fix for -Werror=non-virtual-dtor for Android system builds 2016-05-11 14:46:48 -06:00
Rex Xu
5839031759 SPV: Add capability ImageGatherExtended if necessary. 2016-05-11 16:38:50 +08:00
Rex Xu
827b23b8a1 Parser: Redeclare gl_ClipDistance/gl_CullDistance should update their array sizes. 2016-05-11 15:50:41 +08:00
John Kessenich
fc6ac78567 Merge pull request #274 from antiagainst/stoul-strtoul
Use strtoul instead of stoul for Android.
2016-05-10 12:30:26 -06:00
Lei Zhang
20daa7f64a Use strtoul instead of stoul for Android. 2016-05-10 13:38:08 -04:00
John Kessenich
b2bd53b0ac Merge pull request #273 from antiagainst/appveyor-readme-status
Add badge status for Appveyor build in README.
2016-05-10 11:37:03 -06:00
Lei Zhang
0e101c9613 Add badge status for Appveyor build in README. 2016-05-10 13:04:55 -04:00
John Kessenich
210c6bf4d8 Merge pull request #272 from antiagainst/appveyor
Configuration for Windows buildbot & fix a bug
2016-05-10 09:38:37 -06:00
Lei Zhang
cb3236d9f9 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.
2016-05-10 10:52:32 -04:00
Lei Zhang
f36d6e350e Add test configuration for Appveyor. 2016-05-10 10:52:32 -04:00
John Kessenich
3357d870e4 Merge pull request #222 from Qining/support-precise
Full stack: Support *precise* qualifier
2016-05-09 20:18:33 -06:00
John Kessenich
7b3096a93d Merge pull request #270 from scyganINTEL/bitfield_buildins
Use proper precision qualifiers for bitfield build-in functions on ES
2016-05-09 20:17:40 -06:00
John Kessenich
dc4c9a70bd Merge pull request #271 from greg-lunarg/greg-mr2
fix check for non-positive array size
2016-05-09 20:16:19 -06:00
qining
e543cc35e9 remove double underscore 2016-05-09 21:38:42 -04:00
qining
bb0ac54660 Rebase to d3d3ce7160001846ede74978954e67f4f9fd84e4,update comments, rename a member variable name, fix format issue 2016-05-09 21:19:39 -04:00
GregF
5bdf49cdc8 fix check for non-positive array size 2016-05-09 17:07:04 -06:00
scygan
9c56d84b73 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.
2016-05-09 17:51:25 +02:00
qining
5bec2b5619 integer type operation should not be noContraction 2016-05-09 10:46:40 -04:00
qining
34d257184a simplified the symbol definition collector code, add assert() 2016-05-09 10:46:40 -04:00
qining
0c96db5a4c add a test for matrix, fix a variable name 2016-05-09 10:46:40 -04:00
qining
25262b3fd9 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.
2016-05-09 10:46:40 -04:00
qining
015150e4b3 Removed the redundant functionalities in the assignee checking traverser 2016-05-09 10:46:40 -04:00
qining
1a0d93f416 Fix the test of precise output function parameter
Rebase to 5cc344d8ce and update the
expected test result.
2016-05-09 10:46:40 -04:00
qining
9220dbb078 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.
2016-05-09 10:46:40 -04:00
John Kessenich
d3d3ce7160 Comments only. 2016-05-06 13:06:11 -06:00
John Kessenich
3bdf24267c README: Editorial update. 2016-05-06 00:08:03 -06:00
John Kessenich
91cef52f63 SPV: Non-functional: modularize createInvocationsOperation() from the previous commit. 2016-05-05 16:45:40 -06:00
John Kessenich
213d4be142 Merge branch 'amdrexu-feature2' 2016-05-05 16:33:04 -06:00
John Kessenich
baa9fa5df7 Merge branch 'feature2' of https://github.com/amdrexu/glslang into amdrexu-feature2 2016-05-05 16:32:39 -06:00