Rex Xu
5fbbadca4e
Add support for SPV AMD extensions
2017-06-21 15:08:07 -04:00
David Neto
dbc2049aa3
Add SPIR-V 1.2 support, for OpenCL 2.2
2017-05-15 17:10:07 -04:00
David Neto
4be6abe30d
Fix spelling in SPV_AMD_gcn_shader support
2017-04-03 14:59:18 -04:00
David Neto
7fe8a57a5b
Support SPV_AMD_gcn_shader
...
Supported in assembler, disassembler, and binary parser.
The validator does not check SPV_AMD_gcn_shader validation rules
beyond parsing the extension.
Adds generic support for generating instruction tables for vendor
extensions.
Adds generic support for extensions the validator should recognize
(but not check) but which aren't derived from the SPIR-V core
grammar file.
Fixes https://github.com/KhronosGroup/SPIRV-Tools/issues/594
2017-03-23 16:32:35 -04:00
David Neto
9fc8658ef3
Relicense SPIRV-Tools under Apache 2.0
...
Fixes https://github.com/KhronosGroup/SPIRV-Tools/issues/383
Finalize v2016.4
2016-09-02 10:00:29 -04:00
David Neto
c296701964
Add target envs for OpenCL, OpenGL
...
Covers: OpenCL 2.1, OpenCL 2.2
Covers: OpenGL 4.0, OpenGL 4.1, OpenGL 4.2, OpenGL 4.3, OpenGL 4.5.
The OpenGL environments assume the use of GL_ARB_gl_spirv, of course.
2016-08-05 18:19:30 -04:00
Lei Zhang
10dba91781
Use SPIR-V headers from the KhronosGroup/SPIRV-Headers repo.
2016-06-10 08:48:37 -04:00
Lei Zhang
ca1bf94c90
Use a single definition of ARRAY_SIZE to simplify code.
2016-04-27 17:05:24 -04:00
Dejan Mircevski
cb3c49ef82
Add SPIR-V 1.1 grammar.
...
Switch to SPIR-V 1.1 as default.
Introduce SPV_ENV_UNIVERSAL_1_1.
Add "1_0" to the internal variable names.
Add spv_target_env to spv*GetTable().
2016-04-18 10:45:57 -04:00
Dejan Mircevski
e26fdc6bd1
Mark SPIR-V grammar files as 1.0.
...
Factor the CMake generate_grammar_tables invocation into a function
parameterized on the version.
2016-04-18 10:00:01 -04:00
Lei Zhang
80e416ce91
Use JSON grammar files to generate extended instruction sets.
2016-04-04 16:13:06 -04:00
Lei Zhang
6fa3f8aad9
Remove dependency on SPIR-V headers in libspirv.h.
...
For fulfilling this purpose, the |opcode| field in the
|spv_parsed_instruction_t| struct is changed to of type uint16_t.
Also add functions to query the information of a given SPIR-V
target environment.
2016-04-04 10:34:28 -04:00
David Neto
d1bb51dbb0
Some GLSL extended instructions depend on capabilities.
2016-02-17 13:37:30 -05:00
David Neto
58c4e1d57a
Add GLSL instructions NMin, NMax, NClamp
...
These appear first in GLSL.std.450 in 1.0 Rev3
2016-02-17 13:35:13 -05:00
Dejan Mircevski
b6fe02fc39
Extend copyright to 2016.
2016-01-07 13:44:22 -05:00
David Neto
ba73a7cee5
Fix conversion warnings reported by GCC.
2016-01-06 17:36:33 -05:00
Lei Zhang
2a0b773b27
Add missing copyright.
2015-11-12 09:43:03 -05:00
Lei Zhang
7a222e4abf
Move info table related structs into table.h.
2015-11-12 09:42:58 -05:00
Lei Zhang
1a0334edee
Run clang-format to enforce Google style globally.
...
Note that we are more strict than Google style for one aspect:
pointer/reference indicators are adjacent to their types, not
their variables.
find . -name "*.h" -exec clang-format -i {} \;
find . -name "*.cpp" -exec clang-format -i {} \;
2015-11-10 15:56:47 -05:00
David Neto
1bb8b70341
Use literal integers for OpenCL extended instructions.
2015-10-26 12:55:33 -04:00
David Neto
21c4ad4b22
Add OpenCL extended instructions.
...
Versions 1.2, 2.0, and 2.1 all use the same
extended instruction list.
Updated the source code patch for the SPIR-V doc generator,
so it can both generate the core syntax table, and also the
OpenCL extended instructions table.
Tested the Math and Common functions.
TODO: test the remaining entries.
2015-10-26 12:55:33 -04:00
David Neto
dbaf40718a
Update to Rev32 headers. Part 1.
...
Just enough fixes to code make it build and pass tests.
Core changes:
- Fix spelling for: NoPerspective, NonWritable, NonReadable,
- Remove NoStaticUse, RelaxedMask
GLSL changes:
- Fixed spelling for: InverseSqrt, FaceForward, MatrixInverse,
SmoothStep, FindILsb, FindSMsb, FindUMsb
- Replace Mix with IMix and FMix
- Remove AddCarry, SubBorrow, MulExtended
Replace header OpenCLLib.h with OpenCL.std.h
TODO:
- Regenerate the core instruction syntax table (source/opcode.inc)
- Add test coverage for new enums and instructions.
2015-10-26 12:55:33 -04:00
Lei Zhang
4005670363
Limit the use of spvCheck and spvCheckReturn to validator.
...
spvCheck is indeed just an if-statement. Defining such a macro
doesn't help much.
2015-10-26 12:55:33 -04:00
Lei Zhang
5b73214223
Add GLSL std450 extended instruction 72-80.
2015-10-26 12:52:01 -04:00
Dejan Mircevski
afdbd2d303
Add std450 instructions 53-64.
2015-10-26 12:52:01 -04:00
Lei Zhang
3cb589639d
Add GLSL std450 extended instruction 65-71.
2015-10-26 12:52:01 -04:00
Lei Zhang
2d879b9334
Simplify macro names used for GLSL std450 extended instruction table.
2015-10-26 12:52:01 -04:00
Dejan Mircevski
c48fcce978
Add std450 instructions 49-52.
2015-10-26 12:52:01 -04:00
Lei Zhang
dca65b3f8c
Reformat GLSL std450 extended instruction table.
...
Also add test for Smoothstep.
2015-10-26 12:52:01 -04:00
Lei Zhang
e5ae7f677f
Add GLSL std450 instructions 35-48.
2015-10-26 12:52:01 -04:00
Dejan Mircevski
a5c171544b
Add std450 instructions 25-34.
2015-10-26 12:52:01 -04:00
Andrew Woloszyn
1d2a87ed1b
Added the initial set of glsl450 instructions.
...
Also rewrote the extended-instruction tests so that they would actually
make sure that the instruction actually appears in the output.
2015-08-24 15:04:49 -04:00
Lei Zhang
884c833889
Substitute GLSL450Lib.h with GLSL.std.450.h of revision 31.
2015-08-17 09:08:31 -04:00
Kenneth Benzie (Benie)
83e5a29b06
Code drop of the Codeplay spirv-tools source.
...
This commit contains the source for the SPIRV static library, spirv-as,
spirv-dis, and spirv-val tools.
2015-05-22 18:26:19 +01:00