Chao Chen
3a1379667d
0003-Add-support-for-SPV_NV_shader_image_footprint
2018-09-19 13:07:42 -07:00
Chao Chen
beae2251b7
Add-support-for-SPV_NV_compute_shader_derivatives
2018-09-19 13:07:42 -07:00
Chao Chen
9eada4b971
Add-support-for-SPV_NV_fragment_shader_barycentric
2018-09-19 13:07:42 -07:00
John Kessenich
d122a72852
Build: Fix some warnings.
2018-09-18 03:43:30 -06:00
John Kessenich
afe0c66f65
SPV: Fix #1487 : Only declare AMD int16/half_float extensions when needed.
2018-09-10 18:10:51 -06:00
Jeff Bolz
36831c9bad
GL_KHR_memory_scope_semantics
2018-09-06 20:36:14 -05: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
4e11b615db
SPV: Turn off the default validation done by the SPIRV-Tools optimizer.
...
Also use the glslang namespace qualifier consistently and validate after
legalization, not before. (But most tests don't legalize.)
2018-08-30 16:59:13 -06:00
John Kessenich
c340425bb2
SPV: Add option for controling when the SPIRV-Tools validator is used.
2018-08-23 15:29:08 -06:00
John Kessenich
717c80a9de
SPV: Isolate SPIRV-tools glue to its own file.
2018-08-23 15:17:10 -06:00
John Kessenich
cc14f2d329
SPV: Add SPIRV-Tools validator. This needs the latest SPIR-Tools.
2018-08-23 13:46:48 -06:00
John Kessenich
e7df8e0b76
Non-functional: Rationalize some existing use of SPIRV-Tools.
2018-08-22 17:12:46 -06:00
David Neto
9fd2a8cdfc
Use our own SPIRV-Tools message stringifier
...
Stop including an internal SPIRV-Tools header. It has been
deleted.
Fixes #1477
2018-08-20 10:36:27 -04: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
c4510e5ebc
Merge pull request #1466 from Kangz/warning_fixes
...
Fix -Wignored-qualifier and -Wunused-variable warnings
2018-08-09 12:49:56 -07:00
Corentin Wallez
e70614223f
Fix -Wignored-qualifier and -Wunused-variable warnings
2018-08-09 14:54:33 +02:00
otakuto
d03da06ac1
Remove execute permissions
2018-08-07 03:16:20 +09:00
John Kessenich
f04c51b3bd
Non-Functional: Add postprocess as more robust way to add capabilities
...
When capabilities are needed for specific SPIR-V instructions, it is
fragile to do so based on GLSL/AST usage; it should be based on actual
instructions they got translated to.
2018-08-03 15:56:12 -06:00
Jeff Bolz
c140b96892
Add missing OpExtension SPV_EXT_descriptor_indexing for dynamic indexing capabilities
2018-07-12 16:51:18 -05:00
John Kessenich
312dcfb070
Implement GL_EXT_shader_16bit_storage and GL_EXT_shader_8bit_storage extensions.
...
These introduce limited support for 8/16-bit types such that they can only be accessed in buffer memory and converted to/from 32-bit types.
Contributed from Khronos-internal work.
2018-07-03 13:51:31 -06:00
John Kessenich
ad7645f4f5
Fix #1360 : uint->int width conversions must still be typed as uint.
2018-06-04 20:09:30 -06:00
John Kessenich
14b85d3ff3
Fix #1395 : GLSL volatile maps to SPIR-V Volatile and Coherent.
...
The major version number was bumped in the previous commit to support
this.
2018-06-04 15:36:03 -06:00
John Kessenich
d6c975572e
Change the major revision number for next commit.
2018-06-04 15:33:31 -06:00
GregF
b0c42b2884
Update spirv-tools known-good.
...
Includes:
Fold FMix feeding Extract, and use the simplification pass.
2018-05-31 16:17:18 -06:00
Rex Xu
b4a2a6cf94
Fix issue #1376 : SPV_AMD_gpu_shader_half_float is not emitted under
...
vulkan1.1
Interpolation functions, using 16-bit interpolants, should always emit
this extension string regardless of vulkan enviornment version.
2018-05-17 13:51:28 +08:00
John Kessenich
1831087e48
SPV: Fix #1374 : For an SSBO 16-bit access, only emit StorageUniformBufferBlock16 capability.
2018-05-14 22:08:53 -06:00
John Kessenich
d3ed90be3a
Fix #944 : Convert argument type to match formal parameter type.
2018-05-04 11:43:03 -06:00
Rex Xu
7c88aff1a9
Specify SPV_AMD_gpu_shader_int16 extension string when frexp() takes 16-bit
...
exp operand
2018-04-14 21:40:49 +08:00
St0fF
a1184ddd48
fix further MSVC 2012 build issues
...
MSVC 2012 does not allow initializer lists - replaced with corrresponding CTor calls.
2018-04-09 21:08:14 +02:00
John Kessenich
f52b63812a
Fix #1331 : Emit SPV_GOOGLE_hlsl_functionality1 for counters.
...
It was missing when there were no semantics.
2018-04-05 19:35:38 -06:00
John Kessenich
5611c6d27b
GLSL/SPV: Implement SPV_EXT_descriptor_indexing and GL_EXT_nonuniform_qualifier
2018-04-05 11:25:02 -06:00
Jeff Bolz
2abe9a4d34
Implement GL_NV_shader_subgroup_partitioned
2018-03-29 22:52:17 -05:00
GregF
fb03a55e0f
Only print legalization warning if optimizer disabled
2018-03-29 13:17:54 -06:00
John Kessenich
7be36647fc
Merge pull request #1319 from KhronosGroup/array-rationalization
...
Array rationalization
2018-03-28 23:26:27 -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
GregF
4bede9eb00
Disable DCE by Remapper through glslangValidator...
...
...now that spirv-opt is capable enough.
2018-03-27 10:15:51 -06:00
John Kessenich
643e57cddf
Merge pull request #1313 from greg-lunarg/kg15
...
Update SPIRV-Tools known good.
2018-03-27 00:46:18 -06:00
greg-lunarg
0b46c1edbf
Merge branch 'master' into kg15
2018-03-26 12:20:43 -06:00
GregF
eecb874c35
Update SPIRV-Tools known good.
...
Also update spirv-opt recipes.
2018-03-26 12:11:55 -06:00
John Kessenich
859b0342b8
Types: Fix #1290 : Rationalize and correct "mixed" style array dimensioning.
...
There a couple functional problems, which when reduced down also led to
some good simplifications and rationalization. So, this commit:
- corrects "mixed" functionality: int[A] f[B] -> f[B][A]
- correct multi-identifier decls: int[A] f[B], g[C] -> f and g are independently sized.
- increases symmetry between different places in the code that do this
- makes fewer ways to do the same thing; several methods are just gone now
- makes more clear when something is copied or shared
2018-03-26 00:38:53 -06:00
John Kessenich
5d610ee1dc
Implement SPV_GOOGLE_hlsl_functionality1.
...
Enabled via -fhlsl_functionality1
2018-03-16 20:21:44 -06:00
Neil Roberts
eddb1318ae
Use the correct type for the constant for matrix/scalar division
...
When a matrix is divided by a scalar it tries to take the reciprocal
of the scalar to convert the operation into a multiply. However it was
always doing this by making a 32-bit constant. If the scalar is a
double then this would end up making an FDiv instruction with
different types in the operands.
This patch adds a helper method called makeFpConstant which makes a
floating-point constant of the given type. The code to take the
reciprocal now uses it to make the same type as the result.
Fixes https://github.com/KhronosGroup/glslang/issues/1278
2018-03-13 13:50:56 +01:00
John Kessenich
ac3707921e
Revert the commits that change OpArrayLength type and bumped the version number.
...
Now, version 5.* is all connected to making the uint type, which doesn't quite work.
Generator versions 4 and 6 do not do this.
2018-03-07 11:48:25 -07:00
John Kessenich
66011cb2c2
SPV: Implement Vulkan 1.1 features and extensions.
2018-03-06 16:12:04 -07:00
John Kessenich
c6c80a6e48
Versioning: Address #1255 : Move to semantic versioning.
...
Still missing is automation and final decisions on mechanisms in general.
2018-03-05 22:23:17 -07:00
John Kessenich
0216f24f0e
SPV: Bump up the generator number.
2018-03-03 11:47:07 -07:00
Rex Xu
1e5d7b0b27
Implement the extension GL_AMD_gpu_shader_half_float_fetch
...
- Support new opaque types: f16sampler*, f16image*, f16subpassInput*.
- Add new built-in GLSL texture/image functions.
2018-03-02 16:48:03 +08: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
4bee531fc1
HLSL: Fix #1249 : Always execute both sides of ternary "?:".
...
This is semantically required by HLSL, and frequently results in using
OpSelect instead of control flow.
2018-02-20 21:32:33 -07:00