Commit Graph

1883 Commits

Author SHA1 Message Date
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
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
John Kessenich
9c3f7b60ae Merge pull request #746 from dgkoch/dgkoch_build_fixes
Fix build warnings on some platforms
2017-03-01 13:14:51 -07:00
John Kessenich
efeefd9833 Build: Another fix for issue #718: implement the hidden methods of tFinalize. 2017-03-01 13:12:26 -07:00
Daniel Koch
197082ca34 Fix build warnings on some platforms
Use an explicit cast from size_t to int to avoid errors like the following:
glslang\glslang\MachineIndependent\preprocessor\Pp.cpp(1053) : error C2220: warning treated as error - no 'object' file generated
glslang\glslang\MachineIndependent\preprocessor\Pp.cpp(1053) : warning C4267: '=' : conversion from 'size_t' to 'int', possible loss of data

affects Pp.cpp, hlslParseHelper.cpp.

Initialize local variable to get rid of warningsa about potentially
uninitialized variables:
glslang\hlsl\hlslparsehelper.cpp(3667) : error C2220: warning treated as error - no 'object' file generated
glslang\hlsl\hlslparsehelper.cpp(3667) : warning C4701: potentially uninitialized local variable 'builtIn' used

affects hlslParseHelper.cpp
2017-03-01 09:50:42 -05:00
Jean-Sebastien Bevilacqua
bc3fdcc8bd Sanitize ShaderLang.h
ShaderLang.h contains declaration for `ShLink` function which is never
defined.

See this grep output:

$grep -Hrn 'ShLink'
glslang/Public/ShaderLang.h:206:SH_IMPORT_EXPORT int ShLink(
glslang/Public/ShaderLang.h:214:SH_IMPORT_EXPORT int ShLinkExt(
glslang/MachineIndependent/ShaderLang.cpp:1268:int ShLinkExt(
2017-03-01 09:23:14 +01:00
John Kessenich
3494d71cfa PP: Fix issue #738: don't assert on characters within a string. 2017-02-28 19:39:51 -07:00
John Kessenich
fb22b69fc6 PP: Partially address issue #738: handle premature end of argument when token pasting. 2017-02-28 18:06:39 -07:00
John Kessenich
45c1b5b980 Merge pull request #742 from steve-lunarg/f16tof32-typefix
HLSL: small fix for index type in f16tof32 opcode
2017-02-28 16:18:24 -07:00
steve-lunarg
fdbfb65ec7 HLSL: small fix for index type in f16tof32 opcode
The f16tof32 opcode was indexing a vector with a float 0, rather
than an int 0.  It may have made no functional difference due to the
identical bit pattern, but code looking at the type could be
confused.
2017-02-28 14:15:32 -07:00
John Kessenich
5a042c0686 GLSL: Fix #741: rationalize per-block vs. per-member offset checking. 2017-02-28 14:13:48 -07:00
John Kessenich
69a2c69649 Merge pull request #736 from steve-lunarg/structbuffer-params
HLSL: add structuredbuffer pass by reference in fn params
2017-02-28 13:10:51 -07:00
John Kessenich
b67b4a7072 PP: Address #737: accept 'h'/'H' floating-point suffix more broadly. 2017-02-28 12:58:11 -07:00
John Kessenich
f67f9d7e4d Merge pull request #740 from steve-lunarg/f16tof32
HLSL: add f16tof32 and f32tof16 decompositions.
2017-02-28 09:54:38 -07:00
steve-lunarg
86b510efd1 WIP: HLSL: add f16tof32 and f32tof16 decompositions. 2017-02-27 15:19:49 -07:00
John Kessenich
42e33c9bec SPV: Update SPV header to official Rev. 10 of 1.0, and fix the consequences of doing so. 2017-02-27 01:50:28 -07:00
John Kessenich
6c8aaacd28 SPV: Implement new extensions GL_KHX_device_group and GL_KHX_multiview.
These correspond to SPV_KHR_device_group and SPV_KHR_multiview.
Also, bring tests up to date with Khronos internals, and some misc. related changes.
2017-02-27 01:20:51 -07:00
steve-lunarg
dd8287a109 WIP: HLSL: add structuredbuffer pass by reference in fn params
This PR adds the ability to pass structuredbuffer types by reference
as function parameters.

It also changes the representation of structuredbuffers from anonymous
blocks with named members, to named blocks with pseudonymous members.
That should not be an externally visible change.
2017-02-26 11:13:42 -07:00
John Kessenich
4a57dced66 SPV: Handle nested opaque types as function parameters. 2017-02-24 19:22:54 -07:00
John Kessenich
7491234713 Merge pull request #734 from steve-lunarg/ssbo-reflection
Add reflection queries for thread local size.  Add ssbo auto-binding.
2017-02-22 17:12:09 -07:00
John Kessenich
cb34945e3b Merge pull request #733 from amdrexu/bugfix
SPV: Unexpected declarations of capabilities from NV extensions.
2017-02-22 17:11:00 -07:00
steve-lunarg
932bb5cc4e Add reflection queries for thread local size and ssbo auto-binding
New command line option --shift-ssbo-binding mirrors --shift-ubo-binding, etc.

New reflection query getLocalSize(int dim) queries local size, e.g, CS threads.
2017-02-22 09:40:28 -07:00
Rex Xu
3e783f9b49 SPV: Unexpected declarations of capabilities from NV extensions. 2017-02-22 16:44:48 +08:00
John Kessenich
2fbe08c763 Merge pull request #725 from steve-lunarg/structurebuffer
HLSL: implement 4 (of 6) structuredbuffer types
2017-02-21 17:01:37 -07:00
steve-lunarg
5da1f038d8 HLSL: implement 4 (of 6) structuredbuffer types
This is a partial implemention of structurebuffers supporting:

* structured buffer types of:
*   StructuredBuffer
*   RWStructuredBuffer
*   ByteAddressBuffer
*   RWByteAddressBuffer

* Atomic operations on RWByteAddressBuffer

* Load/Load[234], Store/Store[234], GetDimensions methods (where allowed by type)

* globallycoherent flag

But NOT yet supporting:

* AppendStructuredBuffer / ConsumeStructuredBuffer types
* IncrementCounter/DecrementCounter methods

Please note: the stride returned by GetDimensions is as calculated by glslang for std430,
and may not match other environments in all cases.
2017-02-21 15:51:49 -07:00
John Kessenich
c8aed91524 Merge pull request #732 from dneto0/fix-overrides
Add override where needed by clang++
2017-02-21 13:09:05 -07:00
David Neto
4c64a40d41 Add override where needed by clang++
Otherwise we get an error when we have both
-Werror and -Winconsistent-missing-override.
This is required for building with NDK r14 betas
2017-02-21 14:41:15 -05:00
John Kessenich
8f674e821e Fix issue #676: emit error message on failure to open spv file. 2017-02-18 09:45:40 -07:00
John Kessenich
0302bdf04a SPV: Fix #723: construct vectors from matrices. 2017-02-17 19:06:21 -07:00
John Kessenich
36852b838d Merge pull request #727 from jekstrand/image-load-formatted
Implement GL_EXT_shader_image_load_formatted
2017-02-17 17:40:26 -07:00
John Kessenich
f2b276031b Merge pull request #729 from gwihlidal/master
HLSL - Support for SV_GroupIndex
2017-02-17 17:39:32 -07:00
Jason Ekstrand
f44d89a398 Implement GL_EXT_shader_image_load_formatted 2017-02-17 13:36:25 -08:00
Graham Wihlidal
6f332f3ac6 Warning fixes 2017-02-17 19:05:14 +01:00
Graham Wihlidal
005120cce8 HLSL - Support for SV_GroupIndex 2017-02-17 19:03:25 +01:00
Graham Wihlidal
b0cfcb5c64 Merge pull request #1 from KhronosGroup/master
Update from master
2017-02-17 18:41:31 +01:00
John Kessenich
b0561d934c Merge pull request #720 from flaviobortot/master
Added --vn option to generate a C header file containing a variable a…
2017-02-17 09:34:08 -07:00
John Kessenich
54f3ab7d47 Merge pull request #728 from MaciejJesionowskiAMD/fix-mismatched-subgroup-vote-string
Fix mismatched doc string for SPV_KHR_subgroup_vote
2017-02-17 09:11:41 -07:00
Maciej Jesionowski
5227b6decb Fix mismatched doc string for SPV_KHR_subgroup_vote
Text for opcodes OpSubgroupAllKHR and OpSubgroupAnyKHR was swapped.
2017-02-17 13:45:29 +01:00