John Kessenich
bfc21ff1a9
Web: Change a bunch of HLSL methods from dynamic to compile-time known.
...
This saves about 7K.
By changing just a few methods to be compile-time known, a bunch of
scattered code becomes DCE.
2019-08-20 23:21:55 -06:00
Jeff Bolz
758c93364c
Add support for GL_EXT_buffer_reference2
2019-05-01 16:13:26 -05:00
Rex Xu
eaf31ab98c
Add 8-bit/16-bit transform feedback support for future use
2019-02-03 23:31:32 +08:00
Rex Xu
75c5603ada
Fix xfb_stride incorrectness( #1654 )
...
Add int64 support in XFB. Change containsDouble to contains64BitType. Make
it more general.
2019-01-14 12:02:58 +08:00
Jeff Bolz
9f2aec49e9
GL_EXT_buffer_reference
2019-01-07 12:36:13 -06:00
John Kessenich
b23d232ec5
Licensing. Fixes #958 . Add licenes file and update copyrights.
2018-12-14 10:47:35 -07:00
Jeff Bolz
7da39ed968
Implement GL_EXT_scalar_block_layout
2018-11-14 09:30:53 -06:00
Ashwin Lele
ff1783db87
Multiple features and misc fixes for final raytracing non experimental version.
2018-10-31 07:55:24 -07:00
John Kessenich
c374030e80
Merge pull request #1523 from sparmarNV/fix-SPV_NV_mesh_shader
...
Allow redeclaration of builtin interface blocks in mesh shader
2018-10-04 23:46:21 -06:00
Chao Chen
07ef0e4c84
For GL_NV_geometry_shader_passthrough extension, the Inferred output primitive for ElgTriangles should be ElgTriangleStrip.
...
Also removed unnecessary relax for GL_NV_geometry_shader_passthrough in link validate
2018-10-04 18:39:27 -07:00
Sahil Parmar
035cbbe3d0
Allow redeclaration of builtin interface blocks in mesh shader
...
Apart from allowing redeclaration of gl_MeshPerVertexNV and gl_MeshPerPrimitiveNV blocks, this change also -
- Resize clip/cull perview distances based on static index use
- Error out use of both single-view and per-view builtins
- Add new gtests with redeclared blocks and edit existing test output
- Fix couple of typos
2018-10-04 16:39:18 -07:00
Chao Chen
b50c02ef53
Add-support-for-SPV_NVX_raytracing
2018-09-19 13:07:43 -07:00
Chao Chen
3c3669904c
Add-support-for-SPV_NV_mesh_shader
2018-09-19 13:07:43 -07:00
Jeff Bolz
36831c9bad
GL_KHR_memory_scope_semantics
2018-09-06 20:36:14 -05:00
otakuto
d03da06ac1
Remove execute permissions
2018-08-07 03:16:20 +09:00
John Kessenich
b617e14acb
Link: Merge all the settings in TIntermediate.
...
Fixes #1309 .
2018-07-20 12:34:59 -06:00
John Kessenich
41436ad204
Link/SPV: Correct symbol IDs on merging ASTs to a single coherent space
...
This is one step in providing full linker functionality for creating
correct SPIR-V from multiple compilation units for the same stage.
(This was the only remaining "hard" part. The rest should be simple.)
2018-07-18 18:07:41 -06:00
John Kessenich
0f8d43e505
GLSL/Vulkan: Enforce no location aliasing in vertex inputs.
2018-04-12 11:37:57 -06:00
John Kessenich
5a867acad5
Linker: Fix #1329 : correctly merge unsized arrays, and fix link tests.
2018-04-01 21:22:34 -06:00
John Kessenich
ead8622484
Non-functional. Rationalizations enabling future generalizations:
...
- Use much simpler method to update implicit array sizes.
The previous overly complicated method was error prone.
- Rationalize all use of unsized arrays.
- Combine decorations when generating SPIR-V, to simplify
adding extensions.
2018-03-28 18:01:20 -06:00
Neil Roberts
2d53904999
Take into account the number of locations taken up by a uniform
...
When assigning uniform locations it now takes into account the number
of locations occupied by the type. For uniforms, all types except
arrays and structs take up one location. For arrays the base location
count is multiplied by the array dimensions and for structs it is the
sum of the locations of each member.
2018-03-21 12:03:39 +01:00
John Kessenich
66011cb2c2
SPV: Implement Vulkan 1.1 features and extensions.
2018-03-06 16:12:04 -07:00
John Kessenich
c5215791f5
IO mapper: Fix #1261 : Supply location mapper with size computer.
...
This factored computeTypeLocationSize() out of needing the TIntermediate contents,
and uses it to show how to know how many locations an object needs.
However, it still does not do cross stage, or mixed location/no-location
analysis.
2018-02-27 13:31:48 -07:00
John Kessenich
d55fe86512
HLSL: Fix #1257 : layout float1, int1, etc., as scalars.
2018-02-27 00:48:17 -07: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
John Kessenich
da9eb815b3
HLSL: Don't pin down which tessellation stage must error check input primitive.
2017-06-26 17:56:54 -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
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
4f1403ed1b
SPV: Fix #807 : use --hlsl-offsets to allow hlsl-style offsets in a buffer.
...
Corresponds to the EShMsgHlslOffsets flag in messages.
Works for both GLSL and HLSL.
2017-04-05 17:38:20 -06:00
steve-lunarg
e741249b72
HLSL: pass tessellation execution modes through to SPIR-V
...
The SPIR-V generator had assumed tessellation modes such as
primitive type and vertex order would only appear in tess eval
(domain) shaders. SPIR-V allows either, and HLSL allows and
possibly requires them to be in the hull shader.
This change:
1. Passes them through for either tessellation stage, and,
2. Does not set up defaults in the domain stage for HLSl compilation,
to avoid conflicting definitions.
2017-03-31 11:47:18 -06: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
chaoc
6e5acae144
Add support for SPV_NV_geometry_shader_passthrough
2016-12-20 13:28:52 -08:00
John Kessenich
906cc21816
Linker: Eliminate uncalled functions, because they can be ill-defined.
...
Fixes issue #610 . Also provides a testing option to keep uncalled functions.
2016-12-09 19:22:20 -07:00
John Kessenich
bf6d7f43fd
Linker: Track the mangled entry-point name along with the non-mangled one.
2016-12-09 17:29:07 -07:00
John Kessenich
4b6ce415ef
GLSL Linker: Track entry point across compilation units.
...
This wasn't needed until the recent generalization of "main" to "entry point",
so makes some HLSL-specific code be generic now, for GLSL functional correctness.
2016-12-09 17:14:27 -07:00
John Kessenich
6a60c2f9ea
Linker: Walk the call graph to report an error on missing bodies.
2016-12-08 23:22:21 -07:00
John Kessenich
1c98904014
Fix crash by returning early from finalCheck() if there is no tree to process.
2016-11-27 17:32:19 -07:00
John Kessenich
e50dc536ff
Warn on HLSL not finding entry point. Issue #588 .
2016-11-26 13:45:18 -07:00
Rex Xu
c9e3c3c941
Parser: Implement extension GL_AMD_gpu_shader_half_float.
...
- Add built-in types: float16_t, f16vec, f16mat.
- Add support of half float constant: hf, HF.
- Extend built-in floating-point operators: +, -, *, /, ++, --, +=, -=,
*=, /=, ==, !=, >=, <=, >, <.
- Add support of type conversions: float16_t -> XXX, XXX -> float16_t.
- Add new built-in functions.
2016-09-30 16:13:06 +08:00
John Kessenich
2572b19e94
HLSL: Turn on reflection, with basic test file, to catch regressions.
...
This is not a claim that reflection is working right, only a way to
see it is occurring and catch any regression.
2016-09-19 23:12:48 -06:00
John Kessenich
eee9d536bc
Track separate entry-point names and mangled names...
...
... and use each in the correct way at consumption sites.
This completes issue #513 .
2016-09-19 18:09:30 -06:00
John Kessenich
6fccb3cd75
Non-functional: Sweep through the stack for consistent with "main" and entry point.
...
Partially addresses issue #513 .
2016-09-19 16:01:41 -06:00
John Kessenich
426542ba57
Front-end: Fix issue #443 : dvec3 uses only 2 components of second location.
2016-08-08 15:34:00 -06:00
John Kessenich
414f735443
Front-end: Fix issue #409 , check for implicitly-sized binding arrays.
2016-07-27 14:55:06 -06:00
John Kessenich
c8f6903b1d
Front-end: Fix default layout(component) widths and correct for doubles.
...
Replaces PR #372 .
2016-07-21 15:43:00 -06:00
John Kessenich
bc9e1d118a
Infrastructure: Remove bad characters from file.
2016-07-21 15:41:10 -06:00
Thomas Perl
7bfd08d21c
Check for linking multiple ES shaders to the same stage
2016-05-25 09:26:43 +02:00
Rex Xu
3d9165fde4
Parser: Redeclaration of gl_CullDistance is disallowed mistakenly.
2016-05-19 12:26:27 +08:00
John Kessenich
17f0786418
Parser: Precise: Recognize 'precise', tag types, and do related semantic checking.
...
This partly overlaps pull request #222 , we have divided the work on this one.
2016-05-04 12:54:56 -06:00