John Kessenich
75b0316f6a
Build: Add missing string.h include.
2016-07-08 23:13:38 -06:00
John Kessenich
7f349c73db
Build: Remove causes of pedantic warnings. Addresses issue #352 and PR #242 .
2016-07-08 22:09:10 -06:00
John Kessenich
b501a7501c
Front end: Fix issue #374 : put a limit on how big a type name can get.
2016-07-08 14:49:48 -06:00
John Kessenich
91e4aa5900
SPV: Further refine OpenGL vs. Vulkan differences for SPIR-V.
...
Includes adding test cases to verify the differences.
2016-07-07 19:27:15 -06:00
John Kessenich
2d0cc786f3
SPV: Turn on atomic-storage functionality for SPIR-V.
...
This is used by OpenGL, but not Vulkan.
Includes:
- atomicCounter, atomicIncrement, atomicCounterDecrement
- atomic_uint layout-offset checking
- AtomicStorage capability
2016-07-07 17:40:35 -06:00
John Kessenich
266b1d3e84
Merge pull request #363 from cdwfs/vertex_instance_id
...
Suggest gl_[Vertex,Instance]Index when gl_[Vertex,Instance]ID is encountered in Vulkan GLSL
2016-06-30 18:15:24 -06:00
John Kessenich
f5dcdf0123
Front-end: Don't lower precision of bit operations taking highp inputs.
...
See issue #350 for detail. This may be an ESSL specification issue.
2016-06-30 16:46:24 -06:00
Cort Stratton
85028e1469
When parsing Vulkan GLSL, suggest gl_VertexIndex/gl_InstanceIndex instead of gl_VertexID/gl_InstanceID.
2016-06-30 12:51:10 -07:00
John Kessenich
187254b92c
Merge pull request #357 from steve-lunarg/intrinsics
...
HLSL: Add asdouble, fma, & mad intrinsics
2016-06-29 10:50:33 -06:00
John Kessenich
bc17b0a96a
Front-end: Add missing rule for function-return implicit type conversion check.
...
Basic (component) type conversion was done, but checking that the composite
was correct was not being done.
Fixes issue #353 .
2016-06-28 23:56:31 -06:00
John Kessenich
b10feabc95
Front-end: Non-functional: Move return-value handling from .y to .cpp.
...
This is to make the real change needed in the next commit easier.
2016-06-28 23:54:36 -06:00
John Kessenich
1011971981
Front-end: Handle simultaneous use of SPIR-V or non-SPIR-V.
...
Symbol table sharing has different sets of symbols for different
versions. This needs to take into account that SPIR-V has different
symbols than non-SPIR-V.
2016-06-28 16:16:43 -06:00
LoopDawg
1b7fd0f7b7
Add asdouble, fma, & mad intrinsics and change profile to allow doubles when parsing prototypes
2016-06-28 15:38:38 -06:00
John Kessenich
e5a807276f
Merge pull request #349 from steve-lunarg/intrinsics
...
HLSL: Add lerp, fix sincos ret, add ret type tests, non-square mats, tx semantics
2016-06-28 15:34:11 -06:00
Maciej Jesionowski
bbbcb5b2eb
Front-end: allow max size built-in arrays like gl_ClipDistance
...
Fixed off-by-one error with gl_MaxClipDistances and similar limits.
2016-06-27 12:44:15 +02:00
LoopDawg
4624a02e21
Add lerp, fix sincos return type, ret type tests, non-square mats, HLSL->AST tx semantics
2016-06-21 10:10:48 -06:00
LoopDawg
6e72fddaa2
Add HLSL memory barrier intrinsics, fix dst, add lit & EvaluateAttributeSnapped
2016-06-20 09:53:59 -06:00
John Kessenich
21f1286f57
Front-end: Implement GL_EXT_shader_non_constant_global_initializers.
...
This lets ES shaders use non-constant initializers for non-constant globals.
2016-06-17 12:43:31 -06:00
John Kessenich
b901ade058
SPV: Non-functional: Condense SPV-related versioning, and rationalize all uses.
2016-06-16 23:31:29 -06:00
John Kessenich
ac666e7368
Front-end ESSL: require precision declarations for images.
2016-06-14 22:12:20 -06:00
John Kessenich
9000bd5eb6
Front-end: Make ES floatBitsToInt/intBitsToFloat/etc. all be highp.
2016-06-14 20:38:58 -06:00
John Kessenich
01de90bb1c
Merge pull request #339 from steve-lunarg/intrinsics
...
HLSL: Implement atomic ops, bit conversions, fix minor intrinsics bugs
2016-06-14 10:56:50 -06:00
David Neto
ec1476b706
Tracking allocator must use const key
...
Fixes TMap template.
This is required to build with newer libc++ versions that have a static
assert on const-ness of value_type
2016-06-14 12:15:59 -04:00
LoopDawg
589107095c
Implement atomic ops, bit conversions, fix fwidth stage mask, fix saturate dest modifier.
2016-06-13 20:50:36 -06:00
John Kessenich
cd784bc561
Merge pull request #337 from steve-lunarg/intrinsics
...
HLSL: Add decompositions for some intrinsics.
2016-06-13 08:54:45 -06:00
Nekotekina
5dd29c8a97
Compilation fix (mingw64)
2016-06-13 11:25:18 +03:00
LoopDawg
592860cae5
Add decompositions for some HLSL intrinsics.
2016-06-10 17:11:18 -06:00
Jason Ekstrand
228546a8af
Types: Add an isOpaque() helper
2016-06-08 17:22:43 -07:00
John Kessenich
95d85ce0ca
Merge pull request #331 from jherico/jherico-patch-1
...
Build: Fix Ubuntu 16.10 build
2016-06-07 18:07:12 -06:00
Brad Davis
880bf36cac
Fix Ubuntu 16.10 build
2016-06-07 16:23:44 -07:00
John Kessenich
80cb324ff6
Front-end: Fix issue #146 : which versions allow double in/out.
2016-06-05 18:52:05 -06:00
John Kessenich
133253b6ee
Front-end: Fix issue #147 : ensure layout(index=N) has N in [0,1].
2016-06-05 17:25:34 -06:00
John Kessenich
119f8f6906
HLSL: Flesh out the loop grammar and productions.
2016-06-05 15:44:07 -06:00
LoopDawg
4b67732c13
Initial implementation of direct-mapped subset of HLSL intrinsics with type subset.
...
This checkin implements about half of the HLSL intrinsics for a subset of their
entire type support (but a useful subset). The uncommented lines in
TBuiltInParseablesHlsl::identifyBuiltIns shows which are connected.
2016-06-03 08:28:29 -06:00
John Kessenich
548c3adecd
Front-end: Complete GL_ARB_compute_shader, previous commit was missing new barriers.
...
This amends the previous commit, which ommitted barriers in version 420 for compute shader.
2016-05-30 19:38:39 -06:00
John Kessenich
d94c003fb7
Front-end: Complete GL_ARB_compute_shader implementation.
...
Core compute shaders were working, but the extension wasn't implemented.
2016-05-30 19:29:40 -06:00
John Kessenich
0f5e3ad23c
Fix issue #313 : Catch internal attempts to modify built-in symbols that don't exist.
...
Also beefed up support for running compute shaders is #version 420, but this
work is only partially done.
2016-05-29 18:24:31 -06:00
John Kessenich
5a7f0eff69
Merge pull request #230 from dekimir/incresconst
...
Make two more IncludeResult members const.
2016-05-25 17:43:54 -06:00
Thomas Perl
7bfd08d21c
Check for linking multiple ES shaders to the same stage
2016-05-25 09:26:43 +02:00
Thomas Perl
b40a6d6b40
Use version/profile from first compilation stage
...
When linking multiple compilation units per shader stage,
the code creates a new intermediate, but fails to set its
version and profile.
This change makes it so that the new intermediate inherits
the version and profile of the first compilation unit, so
that two ES SL compilation units can be combined.
2016-05-24 13:24:24 +02:00
John Kessenich
0c968f9d0e
Merge pull request #306 from johnkslang/finish-spec-const-semantics
...
Vulkan: Finish semantics for what creates spec-const-semantics.
2016-05-23 23:37:39 -06:00
John Kessenich
d82c906378
Vulkan: Finish semantics for what creates spec-const-semantics.
...
Note: This required adding a new test mode to see the AST for vulkan tests.
This also required reworking some deeper parts of type creation, regarding
when storage qualification and constness is deduced bottom-up or dictated
top-down.
2016-05-23 23:10:18 -06:00
LoopDawg
0ae28ea647
Add base class TParseables for intrinsic / builtin generation.
...
Add stubbed HLSL derivation. GLSL derivation is still called TBuiltIns,
for historical compatibility.
2016-05-23 15:44:53 -06:00
John Kessenich
2921e0c54a
KHR_vulkan_glsl: name mangle distinguish pure textures.
...
Fixes issue #252 .
2016-05-20 16:59:27 -06:00
John Kessenich
393d74f068
Merge pull request #300 from Qining/fix-slow-down-in-no-contraction-propagation
...
Fix the slow down in noContraction propagation
2016-05-20 13:44:07 -06:00
qining
507308b26d
remove redundant 'return false'
2016-05-20 14:30:38 -04:00
John Kessenich
8d72f1a2c4
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.
2016-05-20 12:14:39 -06:00
qining
e5712a2549
Fix the slow down in noContraction propagation
2016-05-20 14:11:28 -04:00
Thomas Perl
00852b12d9
Remove declaration for ShGetPhysicalAttributeBindings
...
The function ShGetPhysicalAttributeBindings() is declared in the
header, but not defined (or referenced) anywhere in the codebase.
2016-05-19 22:19:58 +02:00
John Kessenich
b5cfd79f0a
Merge pull request #288 from thp/attribute-reflection
...
Reflection: Add support for querying vertex attributes in reflection API
2016-05-19 10:13:08 -06:00