John Kessenich
f4ba25e009
HLSL: Non-functional: the symbol field of a token was in practice unused; remove it.
...
Another precurser to getting member non-static functions working.
2017-03-21 18:36:04 -06:00
John Kessenich
5a8390696d
Merge pull request #782 from steve-lunarg/builtin-methods-prefix
...
HLSL: use prefix for builtin functions names to avoid namespace colli…
2017-03-19 23:49:55 -06:00
John Kessenich
1dd65ca398
Merge pull request #779 from steve-lunarg/buffer-unsampled-fix
...
HLSL: Buffer types should be unsampled.
2017-03-19 23:46:03 -06:00
steve-lunarg
e7d0752a33
HLSL: use prefix for builtin functions names to avoid namespace collisions
...
It would have been possible for globally scoped user functions to collide
with builtin method names. This adds a prefix to avoid polluting the
namespace.
Ideally this would be an invalid character to use in user identifiers, but
as that requires changing the scanner, for the moment it's an unlikely yet
valid prefix.
2017-03-19 18:22:11 -06:00
John Kessenich
4960baaf66
HLSL: Basic turn on of non-static member functions.
...
Still need: pass by reference in SPIR-V and symbol-table level
for accessing 'this' members from member functions.
2017-03-19 18:09:59 -06:00
John Kessenich
dfbdd9eb20
HLSL: Add implicit-this tracking to TFunction.
2017-03-19 13:10:28 -06:00
John Kessenich
f3d88bd498
HLSL non-functional: Generalize namespace nesting.
...
Also use this to move deferred member-function-body parsing to a better
place.
This should also be well poised for implementing the 'namespace' keyword.
2017-03-19 13:01:58 -06:00
steve-lunarg
d3947d232a
WIP: HLSL: propagate readonly qualifier for buffer types
2017-03-19 12:40:12 -06:00
steve-lunarg
cf2e7275e8
WIP: HLSL: Buffer types should be unsampled.
...
RWBuffer objects were generating (properly) unsampled resoures, while
Buffer objects were not. This fixes that.
2017-03-17 13:19:42 -06:00
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