Jeremy Hayes
7a914ce926
Implement NonSemantic.Shader.DebugInfo.100
...
See https://github.com/KhronosGroup/SPIRV-Registry .
2022-08-26 16:17:54 -06:00
Qingyuan Zheng
61d244145d
avoid using make_unique for c++11 compatibility
2022-05-31 10:40:25 -07:00
Qingyuan Zheng
b6df89b470
use unique_ptr to avoid calling deleted move ctor
2022-05-30 23:08:50 -07:00
Qingyuan Zheng
279c28e70a
generate OpLine before OpFunction
2022-05-23 23:05:43 -07:00
Marius Hillenbrand
78ce7e567f
Fix encoding/decoding of string literals for big-endian systems
...
Per SPIR-V spec, a string literal's UTF-8 octets are encoded packed into
words with little-endian convention. Explicitly perform that encoding
instead of assuming that the host system is little-endian.
Note that this change requires corresponding fixes in SPIRV-Tools.
Fixes #202
2021-11-08 14:12:01 +01:00
Jesse Hall
74e8f05b9f
Implement GL_EXT_terminate_invocation ( #2454 )
...
* Implement GL_EXT_terminate_invocation.
* terminateInvocation: declare the SPV extension
* Update test results for spirv-tools and bison version bumps
Co-authored-by: John Kessenich <cepheus@frii.com>
2020-11-09 09:30:01 -07:00
Rémi Verschelde
69d0c1acc2
Remove executable bits from code/data files ( #2420 )
2020-10-12 10:08:47 -06:00
John Kessenich
435dd8028b
SPV: RelaxedPrecision: Generalize fix #2293 to cover more operations.
...
This simplifies and enforces use of precision in many more places,
to help avoid accidental loss of RelaxedPrecision through intermediate
operations. Known fixes are:
- ?:
- function return values with mis-matched precision
- precision of function return values when a copy was needed to fix types
2020-06-30 02:44:52 -06:00
John Kessenich
4df10335e6
SPV: Partially address #2293 : correct "const in" precision matching.
...
Track whether formal parameters declare reduced precision and match
that with arguments, and if they differ, make a copy to promote the
precision.
2020-06-26 08:37:06 -06:00
John Kessenich
1fff362355
Build warning: Fix #2167 : Remove nested reuse of 'unreachable'.
2020-04-01 00:46:57 -06:00
Ryan Harrison
0552c0acc8
Remove std::move that is breaking chromium roll
...
This is causing the following error:
moving a temporary object prevents copy elision
[-Werror,-Wpessimizing-move]
2019-11-04 16:23:11 -05:00
John Kessenich
31c3370d83
Bump up the generator version, which is exposed in SPV test results.
2019-11-02 21:26:40 -06:00
David Neto
8c3d5b4b6c
SPIR-V: Aggressively prune unreachable merge, continue target
...
More aggressively prune unreachable code as follows.
When no control flow edges reach a merge block or continue target:
- delete their contents so that:
- a merge block becomes OpLabel, then OpUnreachable
- a continue target becomes OpLabel, then an OpBranch back to the
loop header
- any basic block which is dominated by such a merge block or continue
target is removed as well.
- decorations targeting the removed instructions are removed.
Enables the SPIR-V builder post-processing step the GLSLANG_WEB case.
2019-10-29 15:33:54 -04:00
Shahbaz Youssefi
6cca0e983e
Remove extraneous semicolons
...
They cause a warning (-Wextra-semi) that can lead to a compile error
(-Werror).
2019-06-25 13:20:16 -04:00
Jeff Bolz
4605e2ed2b
Implement GL_NV_cooperative_matrix
2019-02-25 23:42:59 -06: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
John Kessenich
97068d8b30
Merge pull request #1465 from otakuto/remove-execute-permissions
...
Remove execute permissions
2018-08-31 08:14:47 -07:00
John Kessenich
31aa3d6019
SPV: only declare the pure 8/16-bit capabilities when needed.
...
Only when operations stray outside the 8/16-bit storage-capabilities
are the general (pure 8/16-bit) capabilities needed.
2018-08-16 15:54:21 -06:00
John Kessenich
149afc3930
SPV: More corrections of <id> versus "immediate" operands.
2018-08-14 13:31:43 -06:00
John Kessenich
228e964bcc
SPV: Correct SPIR-V operands for <id> versus immediate.
2018-08-13 21:37:59 -06:00
otakuto
d03da06ac1
Remove execute permissions
2018-08-07 03:16:20 +09:00
John Kessenich
d3ed90be3a
Fix #944 : Convert argument type to match formal parameter type.
2018-05-04 11:43:03 -06:00
John Kessenich
2505057af8
SPV: Memory model: Reduce set of memory-semantic bits requested for "all".
2017-12-16 00:34:08 -07:00
John Kessenich
8297936dd6
SPV: Change barrier emission to conform to Khronos decisions.
...
The memory model group agreed to these definitions for how
to map GLSL barrier, memoryBarrier, etc. With HLSL following suit.
2017-12-16 00:30:10 -07:00
LoopDawg
2baa774259
Linux build warning fix
...
* Remove complaint about unused function parameter in resolveUniformLocation()
* Remove complaint about defined but not used variable in spvIR.h
2017-08-31 18:09:58 -06:00
John Kessenich
121853f4df
SPV: Add OpSource shader source code and file name.
2017-05-31 17:14:15 -06:00
John Kessenich
3778979cd4
HLSL: non-static member functions: track and find active anonymous 'this' scopes and members.
...
Thanks to @steve-lunarg for his input and discussions on handling member functions.
2017-03-21 23:56:40 -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
John Kessenich
4016e38bea
Build: Switch to Rev. 6 of headers, removing "BadValue" enum stuff.
...
Note: Technically, this is glslang's modified private copy of official headers.
Official headers will appear in other places, like
https://github.com/KhronosGroup/SPIRV-Headers .
2016-07-15 11:55:34 -06:00
John Kessenich
c51287d744
SPV: Update to spec. decisions (and issue #205 ) for barrier().
...
A barrier (ESSL/GLSL) or OpControlBarrier when in a tessellation control
shader also means doing memory synchronization for output variables.
2016-06-14 19:50:26 -06:00
John Kessenich
d3d3ce7160
Comments only.
2016-05-06 13:06:11 -06:00
qining
da39733f28
Remove decoration of undefined IDs
...
Fix issue #185 by removing OpDecorate instructions whose target IDs are
defined in unreachable blocks and thus not dumped in the generated
SPIR-V code.
2016-03-09 19:54:03 -05:00
John Kessenich
4889167430
SPV: Use a more accurate MemorySemanticsAllMemory mask.
2016-01-22 10:15:03 -07:00
Dejan Mircevski
ed55bcd9f8
Don't remove SPIR-V blocks before codegen.
...
A removed block releases its instructions, so Module::idToInstruction
suddenly contains dangling references. The original motivation for
block removal was to skip some unreachable blocks, but that's already
achieved by InReadableOrder.cpp.
Also updated stale comments.
2016-01-19 21:18:14 -05:00
Dejan Mircevski
e7f6cac1bd
Merge branch 'topo' into loopgen-after-readable-order
2016-01-19 16:47:41 -05:00
Dejan Mircevski
34bc6c3896
Explicitly initialize Instruction::block.
2016-01-19 14:08:32 -05:00
Dejan Mircevski
fa242904b0
Make Instruction::getBlock() const.
2016-01-19 11:31:55 -05:00
Dejan Mircevski
377f0cab26
Fix merge issues.
2016-01-19 10:17:33 -05:00
Dejan Mircevski
38d039d063
Rework inReadableOrder() as a recursive descent.
...
Add a test for unreachable merge block.
Update test results with the new order: mainly delaying merge blocks and
removing unreachable ones.
2016-01-19 10:14:50 -05:00
Dejan Mircevski
44bfb0d0cd
Implement inReadableOrder().
2016-01-19 10:11:34 -05:00
Dejan Mircevski
5fe789b4af
Add Block::successors.
2016-01-19 10:10:15 -05:00
Andrew Woloszyn
b7946d16bb
Free memory associated with SPIR-V generation.
2016-01-18 10:29:41 -05:00
Dejan Mircevski
dba2826328
Merge branch 'master' of github.com:google/glslang into loopgen
...
Change-Id: Ie8236430bb9e30a9be2e0c1573c42183c2f4d0d4
2016-01-11 16:26:18 -05:00
Dejan Mircevski
e537b8b488
Fix unreachable-block removal.
...
Add a test for loop without a condition.
Change-Id: Idd7fc462218a84b1e745207e2975a3f2897d30a0
2016-01-10 19:37:00 -05:00
John Kessenich
e00e72ded1
SPV: Protect getStorageClass() with a test that the thing is pointer.
2015-12-08 20:48:49 -07:00
John Kessenich
55e7d11ce8
SPIR-V: Move from Version .99 Rev 31 to Version 1.0, Rev 2.
2015-11-15 22:31:41 -07:00
John Kessenich
5e4b1242bf
Move to revision 31 of SPIR-V.
2015-08-06 22:55:01 -06:00
John Kessenich
140f3df134
Final round for line endings.
2015-06-26 16:58:36 -06:00