John Kessenich
9855bdad00
GLSL: Promote HLSL entry-point renaming code to be used by GLSL as well.
...
Fixes #1045 .
2017-09-12 09:40:54 -06:00
David Srbecký
2c5b3d64af
Add support for GL_OES_EGL_image_external_essl3
2017-09-05 14:56:26 +01:00
John Kessenich
82e95a3aa5
SPV: Add auto location mapping of non-opaque non-block uniform variables.
...
Fix #1019 .
2017-08-26 15:47:25 -06:00
Rex Xu
129799a709
Implement extension GL_AMD_shader_image_load_store_lod
2017-08-24 06:56:39 +08:00
John Kessenich
53863a3a90
GLSL: Implement version 320 for ES.
2017-07-23 13:54:15 -06:00
John Kessenich
67eb497002
SPV/OpenGL: Require locations on non-opaque uniform variables.
2017-07-21 13:37:46 -06:00
Gabríel Arthúr Pétursson
b5d9c11e1a
Fix NULL pointer dereference in TParseContext::builtInOpCheck
2017-07-15 15:22:50 +00:00
John Kessenich
9645f78293
Merge pull request #965 from chaoc/spv-khr-post-depth-coverage
...
Implement SPV_KHR_post_depth_coverage
2017-07-05 14:48:19 -06:00
chaoc
c120452754
Implement SPV_KHR_post_depth_coverage
...
Added support for both extension GL_ARB_post_depth_coverage and GL_EXT_post_depth_coverage.
2017-07-05 12:27:15 -07:00
David Srbecky
5513d9d0d8
Multiview extension: Accept layout(num_views) qualifier
2017-07-03 15:51:40 +01:00
John Kessenich
89400ea73e
GLSL: validation of early_fragment_tests, others, on an object.
...
Some layout qualifiers must not be on an object and had a TBD for testing
them: early_fragment_tests, cw/ccw, points, point_mode, and
fractional_even_spacing/fractional_odd_spacing/equal_spacing.
2017-06-29 10:46:47 -06:00
John Kessenich
4be4aebdcd
Infrastructure: Non-functional: Move to rich description of environment.
...
This is for input languages, client APIs, code to generate, etc.
2017-06-26 14:49:11 -06:00
John Kessenich
82ae8c31e0
HLSL: Fix #924 : Convert between two different arrays with cast.
2017-06-13 23:13:10 -06:00
Rex Xu
cabbb788b4
Implement extension GL_AMD_gpu_shader_int16
...
- Add int16 types (int16_t, uint16_t, i16vec, u16vec).
- Add int16 support to GLSL operators.
- Add int16 type conversions (to int16, from int16).
- Add int16 built-in functions.
2017-06-09 17:11:23 +08:00
John Kessenich
3fcb42cfa6
GLSL: Fix #853 : Only outer dimension of array can be specialization constant.
2017-06-08 12:26:49 -06:00
John Kessenich
d314ecfbe3
GLSL: Correct missing "not" from error message about non writeonly images.
2017-06-08 10:36:45 -06:00
John Kessenich
c5f2ab965f
GLSL: Disallow unsized arrays of atomic_uint.
...
This tracks Khronos-private specification bug 15945.
2017-06-08 10:07:14 -06:00
John Kessenich
885443c788
Build: reset for multi-threaded test error, that reported a single missing character.
2017-06-07 19:03:11 -06:00
John Kessenich
14d65beb06
GLSL: Fix Khronos private Bugzilla 15973: local sizes can't be 0.
2017-06-07 18:53:33 -06:00
John Kessenich
9b2531ba23
Infrastructure: Move nesting counters, etc., to base class.
...
This lets all languages share the same definitions.
2017-06-06 19:53:24 -06:00
Jeremy Hayes
549764b5ec
Build: Fix linux
...
I believe this is a repeat of 12d6936 .
2017-06-06 15:52:50 -06:00
Rex Xu
225e0fcadd
Implement the extension GL_AMD_texture_gather_bias_lod
2017-06-05 16:41:06 +08:00
John Kessenich
94c18a84cd
GLSL: Fix bug setting component=0 for an auto-location assignment.
...
Setting component=0 is later taken to mean the shader did so, which
is not always legal. It should instead set the component as not set
by the shader.
2017-06-04 13:17:20 -06:00
John Kessenich
8de7e7bf14
GLSL: Error when using location on an arrayed block.
...
This implements a recent change to the GLSL specification to enforce
this ill-defined situation.
2017-06-04 13:05:50 -06:00
Rex Xu
0848cc0725
Parser: Add missing codes for float16
2017-06-01 19:59:20 +08:00
John Kessenich
7c9129bcb7
SPV: Fix #904 : Correctly check for built-in block redeclations for location check.
2017-05-24 23:10:28 -06:00
John Kessenich
1d585ac8bd
SPV: Correctly enforce 'location' presence on in/out blocks.
...
Blocks have this on members, not the object.
2017-05-20 12:15:41 -06:00
John Kessenich
71facdf435
SPV: Give error on not assigning locations to I/O.
...
Also, provides an option to auto-assign locations.
Existing tests use this option, to avoid the error message,
however, it is not fully implemented yet.
2017-05-18 15:07:05 -06:00
John Kessenich
670271890d
SPV: Support test #pragma for generating the StorageBuffer storage class.
...
Longer term, this storage class should be generated based on the mode
of compilation.
2017-04-19 18:34:49 -06:00
John Kessenich
2184c2f21a
Fix #287 : pin down the io-array size before checking for out of range index.
2017-04-03 14:29:20 -06:00
John Kessenich
4dc835c369
Non-functional: Round of adding 'const', related to more efficient getFullNamespaceName().
2017-03-30 10:16:22 -06:00
John Kessenich
aa3c64c214
Fix #800 (mostly): set of Linux warnings.
2017-03-28 09:52:38 -06: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
5a042c0686
GLSL: Fix #741 : rationalize per-block vs. per-member offset checking.
2017-02-28 14:13:48 -07:00
Jason Ekstrand
f44d89a398
Implement GL_EXT_shader_image_load_formatted
2017-02-17 13:36:25 -08:00
John Kessenich
7225a1cb1e
Support align/offset for all versions GLSL/ESSL targeting SPIR-V.
2017-02-13 09:09:04 -07:00
John Kessenich
02467d8d94
HLSL: Wrap the entry-point; need to write 'in' args, and support 'inout' args.
...
This needs some render testing, but is destined to be part of master.
This also leads to a variety of other simplifications.
- IO are global symbols, so only need one list of linkage nodes (deferred)
- no longer need parse-context-wide 'inEntryPoint' state, entry-point is localized
- several parts of splitting/flattening are now localized
2017-02-06 22:58:32 -07:00
John Kessenich
62c3e400cf
Fix bug from PR #678 : NV_EXTENSIONS deleted implicit array sizing.
2017-01-26 22:03:57 -07:00
Henrik Rydgard
bec5fc898a
Fix build if NV_EXTENSIONS is not set
2017-01-23 16:27:08 +01:00
chaoc
771d89fc36
support SPV_NV_viewport_array2 and SPV_NV_stereo_view_rendering
2017-01-20 16:48:26 -08:00
John Kessenich
e48b8d74e2
Infrastructure: remove potential memory leaks.
2017-01-19 15:30:56 -07:00
John Kessenich
c142c88967
Front-ends: Non-functional: Rationalize vector and matrix swizzles.
...
This reduces code duplication in a few ways, and better encapsulates
vector swizzle representation.
2017-01-13 19:35:29 -07:00
John Kessenich
927608b393
Non-functional: White space after "//", mostly for copyrights.
2017-01-06 12:34:14 -07:00
John Kessenich
ecba76fe73
Non-Functional: Whitespace, comments, replace accidentally deleted comment.
...
- fixed ParseHelper.cpp newlines (crlf -> lf)
- removed trailing white space in most source files
- fix some spelling issues
- extra blank lines
- tabs to spaces
- replace #include comment about no location
2017-01-06 11:24:14 -07:00
John Kessenich
bc5196c003
SPV: Fix issue #369 , don't support gl_NumSamples -> SPIR-V.
2017-01-02 17:01:21 -07:00
John Kessenich
aa6d56298d
HLSL: Handle const with no initializer. Fixes issue #651 .
2016-12-30 16:42:57 -07:00
chaoc
6e5acae144
Add support for SPV_NV_geometry_shader_passthrough
2016-12-20 13:28:52 -08:00
chaoc
0ad6a4e60d
Add support for SPV_NV_sample_mask_override_coverage
2016-12-19 16:29:34 -08:00
steve-lunarg
05f75142d6
HLSL: opcode specific promotion rules for interlocked ops
...
PR #577 addresses most but not all of the intrinsic promotion problems.
This PR resolves all known cases in the remainder.
Interlocked ops need special promotion rules because at the time
of function selection, the first argument has not been converted
to a buffer object. It's just an int or uint, but you don't want
to convert THAT argument, because that implies converting the
buffer object itself. Rather, you can convert other arguments,
but want to stay in the same "family" of functions. E.g, if
the first interlocked arg is a uint, use only the uint family,
never the int family, you can convert the other args as you please.
This PR allows making such opcode and arg specific choices by
passing the op and arg to the convertible lambda. The code in
the new test "hlsl.promote.atomic.frag" would not compile without
this change, but it must compile.
Also, it provides better handling of downconversions (to "worse"
types), which are permitted in HLSL. The existing method of
selecting upconversions is unchanged, but if that doesn't find
any valid ones, then it will allow downconversions. In effect
this always uses an upconversion if there is one.
2016-12-07 12:00:32 -07:00
John Kessenich
9df6aa5361
GLSL: Allow desktop shaders to call functions from outside main().
...
Fixes issue #239 .
2016-12-05 21:36:48 -07:00