1920 Commits

Author SHA1 Message Date
John Kessenich
e751bca75c Fix #777: don't parse .suffix if <stage> is provided.
Adding a test for this also uncovered an extraneous \r in the runtests script,
fixed now.
2017-03-16 11:30:20 -06:00
John Kessenich
26013595fd Merge pull request #776 from amdrexu/bugfix
SPV: Fix unexpected declarations of capability and extension
2017-03-16 09:54:00 -06:00
Rex Xu
5e317ffe40 SPV: Fix unexpected declarations of capability and extension 2017-03-16 23:02:39 +08:00
John Kessenich
36b218de91 HLSL: Fix #771: add inline keyword. 2017-03-15 09:05:14 -06:00
John Kessenich
95e736c83b Merge pull request #767 from DragoonX6/master
Fix building on MinGW-w64
2017-03-15 08:45:50 -06:00
John Kessenich
2dd643ff03 Merge branch 'TiemoJung-semantic_handling' 2017-03-14 22:44:24 -06:00
John Kessenich
2dc50ff372 Merge branch 'semantic_handling' of https://github.com/TiemoJung/glslang into TiemoJung-semantic_handling 2017-03-14 21:49:42 -06:00
John Kessenich
71c100d7c0 GLSL output: Removed fixed-size buffer; fixes #769.
Makes some white-space differences in most output, plus a few cases
where more could have been put out but was cut short by the previous
fix-sized buffer.
2017-03-14 19:51:29 -06:00
John Kessenich
c08fb8ab9c Full stack: properly implement GL_EXT_device_group and GL_EXT_multiview. 2017-03-14 16:45:30 -06:00
John Kessenich
78cfba97e1 Fix location of #defines for core and compatibility profile.
These were recently added for all profiles, versus just desktop.
2017-03-14 15:19:32 -06:00
John Kessenich
601b7fa4b9 Revert previous check-in, until knowing what the spec. is and whether the test failure is related. 2017-03-13 22:49:36 -06:00
John Kessenich
7a44a31dee SPV: Address #759: make ViewIndex and DeviceIndex by 'in', not 'uniform'. 2017-03-13 15:43:26 -06:00
John Kessenich
946e0a6d8c Merge pull request #768 from amdrexu/bugfix
HLSL: Additional channel value for textureGatherXXX().
2017-03-13 15:31:11 -06:00
Rex Xu
d41a696c30 HLSL: Additional channel value for textureGatherXXX().
When mapping HLSL gather intrinsics to GLSL textureGatherXXX() built-in
function, the channel selection value is only valid for non-shadow samplers.
2017-03-13 17:07:18 +08:00
DragoonX6
8155934be6 Fix building on MinGW-w64
Some HLSL to Spirv tests fail.
2017-03-12 04:54:37 +01:00
John Kessenich
b16f7e6819 HLSL: Member-functions: capture body token stream for deferred syntax/semantics.
This is needed for accessing types/variables within a member function body that are
not known until after the struct is finished being declared. However, that funtionality
is not yet present, this is just the deferred processing, which is working for
static member functions.
2017-03-11 19:37:29 -07:00
John Kessenich
088d52bac2 HLSL: Non-functional: consolidate function declarator information. 2017-03-11 19:37:29 -07:00
John Kessenich
c04c6a4067 Merge pull request #762 from LukasBanana/master
Added 'GL_core_profile' and 'GL_compatibility_profile' to macro expansion
2017-03-11 14:16:58 -07:00
John Kessenich
54ee28f4d0 HLSL: Add scoping operator, accept static member functions, and support calling them. 2017-03-11 14:13:00 -07:00
John Kessenich
5f12d2f752 HLSL: non-functional: simplify handleBuiltInMethod() to isBuiltInMethod(). 2017-03-11 10:15:47 -07:00
Lukas Hermanns
1fbc6e6ca1 Added 'GL_core_profile' and 'GL_compatibility_profile' macro definition to preamble.
Added version check (version >= 150) for GL_(core/compatibility)_profile macros.

Added GL_core_profile standard macro check to "150.vert" test file.

Fixed version check for GL_core_profile macros, and removed bad token character from 150.vert test.

Updated 150.vert.out test base-result with google-test suite.
2017-03-11 12:34:46 +01:00
John Kessenich
523e20dc02 PP: Recognize the '::' token, and translate appropriately to GLSL/HLSL token. 2017-03-10 18:03:43 -07:00
John Kessenich
6212e86faa Merge pull request #764 from steve-lunarg/imagequery-sign
Preserve signedness in SPIR-V image query ops
2017-03-10 15:35:12 -07:00
steve-lunarg
0b5c2ae70e Preserve signedness in SPV image query ops
The AST->SPIRV translation of image queries was dropping signedness,
causing some validation troubles.
2017-03-10 12:51:59 -07:00
John Kessenich
757bc87445 Merge pull request #763 from steve-lunarg/nullstruct-preservation
HLSL: preserve empty structures after splitting
2017-03-10 09:16:06 -07:00
steve-lunarg
4198b8bfc4 WIP: HLSL: preserve empty structures after splitting 2017-03-09 19:10:57 -07:00
John Kessenich
6e1d50a7a2 HLSL: Accept SV_Cull/ClipDistanceN, by refactoring the way semantics are mapped. 2017-03-09 14:37:32 -07:00
John Kessenich
229a6f7f7b Merge pull request #761 from baldurk/vs2010-compile-fixes
Compile fixes for VS2010
2017-03-09 11:28:21 -07:00
John Kessenich
79f8bf0dcd Merge pull request #760 from steve-lunarg/gathercmpred
HLSL: Enable GatherCmpRed.  Green/Blue/Alpha cannot be supported.
2017-03-09 11:13:31 -07:00
baldurk
5d5db80d35 Compile fixes for VS2010
* Removed range-based for
* Added explicit return type to non-trivial lambda
* Added explicit scope for tInterstageIoData
2017-03-09 17:48:59 +00:00
steve-lunarg
d00b026111 Enable GatherCmpRed. Green/Blue/Alpha cannot be supported.
This implements GatherCmpRed in terms of OpImageDrefGather.

There appears to be no way to implement the Green/Blue/Apha forms: see #673.
2017-03-09 08:59:45 -07:00
John Kessenich
88e88e59cb HLSL: Non-functional: Remove dead .length() code. 2017-03-08 21:16:35 -07:00
John Kessenich
516d92d3c5 HLSL: Non-functional: Drive existing method recognition by syntax, not by name.
This (and previous commit) is a better foundation to build real methods on.
2017-03-08 20:09:03 -07:00
John Kessenich
78388726eb HLSL: Non-functional: Don't process function name/parameters before expected a function declaration. 2017-03-08 18:53:51 -07:00
John Kessenich
b7201f8ee6 Merge pull request #756 from steve-lunarg/getdimensions-fix
HLSL: use LOD form of ImageQuerySize when needed.
2017-03-07 20:57:49 -07:00
John Kessenich
ca71d946d7 HLSL: Grammar: Generalize accepting a declaration to accept an aggregate of subtrees.
This is slightly cleaner today for entry-point wrapping, which sometimes made
two subtrees for a function definition instead of just one subtree.  It will be
critical though for recognizing a struct with multiple member functions.
2017-03-07 20:44:09 -07:00
steve-lunarg
3ce4536ac8 HLSL: use LOD form of ImageQuerySize when needed.
The non-LOD form of image size query is prohibited in certain cases:
see the OpImageQuerySize and OpImageQuerySizeLod sections of the SPIR-V
spec for details.  Sometimes we were generating the non-LOD form when
we should have been using the LOD form.  Sometimes the LOD form is required
even if the underlying HLSL query did not supply a MIP level itself,
in which case level 0 is now queried.
2017-03-07 19:30:25 -07:00
John Kessenich
057df2935a HLSL: Fix #754: recognize type casts in if-statements separately from declarations. 2017-03-06 18:18:37 -07:00
John Kessenich
621c0e3d69 Merge pull request #755 from steve-lunarg/sb-orderfix
HLSL: Fix ordering defect if global SB decl after fn param
2017-03-06 17:56:56 -07:00
steve-lunarg
40efe5cee8 WIP: HLSL: Fix ordering defect if global SB decl after fn param
This change propagates the storage qualifier from the buffer object to its contained
array type so that isStructBufferType() realizes it is one.  That propagation was
happening before only for global variable declarations, so compilation defects would
result if the use of a function parameter happened before a global declaration.

This fixes that case, whether or not there ever is a global declaration, and
regardless of the relative order.

This changes the hlsl.structbuffer.fn.frag test to exercise the alternate order.

There are no differences to generated SPIR-V for the cases which successfully compiled before.
2017-03-06 12:08:41 -07:00
John Kessenich
33f85b6e59 SPV: Allow push constant buffers to not have an instance name. 2017-03-06 08:51:35 -07:00
John Kessenich
789086a820 HLSL: Test for issue #699. 2017-03-03 18:19:03 -07:00
John Kessenich
322cb1922e Merge pull request #750 from dgkoch/rename_KHX_to_EXT
Rename KHX_multiview/device_group to EXT_multiview/device to match the released specs
2017-03-03 17:23:53 -07:00
John Kessenich
27ffb29908 HLSL: Add 'class' keyword as (so far) synonym for 'struct'. 2017-03-03 17:01:01 -07:00
Daniel Koch
efc972799d Rename KHX to EXT to match the released specs
GL_KHX_multiview and GL_KHX_device_group don't exist,
they were released as GL_EXT_multiview and GL_EXT_device_group.
2017-03-03 18:40:48 -05:00
John Kessenich
c18cae2145 Merge pull request #748 from dgkoch/dgkoch_build_fixes2
More build fixes
2017-03-03 09:20:43 -07:00
Daniel Koch
d9b7a850a8 More build fixes
Fix another build warning on some platforms

Use an explicit cast from size_t to int to avoid warning.
2017-03-03 10:35:02 -05:00
John Kessenich
854fe24786 HLSL: Fix #747: accept 'struct' in front of previously user-defined type name. 2017-03-02 14:30:59 -07:00
John Kessenich
0479437a5c SPV: Fix #739: OpSelect can only operate on scalars and vectors. 2017-03-01 13:49:11 -07:00
John Kessenich
173c0c01a6 Merge pull request #744 from realitix/sanitize_sh_link
Sanitize ShaderLang.h
2017-03-01 13:17:24 -07:00