Jeremy Hayes
7a914ce926
Implement NonSemantic.Shader.DebugInfo.100
...
See https://github.com/KhronosGroup/SPIRV-Registry .
2022-08-26 16:17:54 -06:00
Harlen
cc86f0d13f
Fix strict aliasing violation
2022-08-26 13:26:56 -03:00
Andrea Pappacoda
1b32fc8eb2
build: install glslang-config.cmake to libdir
...
As glslang ships architecture dependant files, the Config file should be
installed to libdir, not datadir. See
https://github.com/KhronosGroup/glslang/pull/2989#discussion_r955367103
for more details.
Here's the diff between the install tree before and after this patch:
$ diff <(tree install-datadir) <(tree install)
1c1
< install-datadir
---
> install
74,99c74,98
< ├── lib
< │ ├── cmake
< │ │ ├── glslang-default-resource-limitsTargets.cmake
< │ │ ├── glslangTargets.cmake
< │ │ ├── glslangValidatorTargets.cmake
< │ │ ├── HLSLTargets.cmake
< │ │ ├── OGLCompilerTargets.cmake
< │ │ ├── OSDependentTargets.cmake
< │ │ ├── spirv-remapTargets.cmake
< │ │ ├── SPIRVTargets.cmake
< │ │ └── SPVRemapperTargets.cmake
< │ ├── libGenericCodeGen.a
< │ ├── libglslang.a
< │ ├── libglslang-default-resource-limits.a
< │ ├── libHLSL.a
< │ ├── libMachineIndependent.a
< │ ├── libOGLCompiler.a
< │ ├── libOSDependent.a
< │ ├── libSPIRV.a
< │ └── libSPVRemapper.a
< └── share
< └── glslang
< ├── glslang-config.cmake
< ├── glslang-config-version.cmake
< ├── glslang-targets.cmake
< └── glslang-targets-debug.cmake
---
> └── lib
> ├── cmake
> │ ├── glslang-default-resource-limitsTargets.cmake
> │ ├── glslangTargets.cmake
> │ ├── glslangValidatorTargets.cmake
> │ ├── HLSLTargets.cmake
> │ ├── OGLCompilerTargets.cmake
> │ ├── OSDependentTargets.cmake
> │ ├── spirv-remapTargets.cmake
> │ ├── SPIRVTargets.cmake
> │ └── SPVRemapperTargets.cmake
> ├── glslang
> │ ├── glslang-config.cmake
> │ ├── glslang-config-version.cmake
> │ ├── glslang-targets.cmake
> │ └── glslang-targets-debug.cmake
> ├── libGenericCodeGen.a
> ├── libglslang.a
> ├── libglslang-default-resource-limits.a
> ├── libHLSL.a
> ├── libMachineIndependent.a
> ├── libOGLCompiler.a
> ├── libOSDependent.a
> ├── libSPIRV.a
> └── libSPVRemapper.a
101c100
< 15 directories, 83 files
---
> 14 directories, 83 files
2022-08-25 23:15:14 +02:00
MACHIZAUD Andréa
fb64704060
Add unified glslang CMake config collecting glslang-targets targets ( #2989 )
2022-08-02 18:16:03 -06:00
Greg Fischer
22d39cd684
Merge pull request #2977 from AMD-dwang/AMD_shader_early_and_late_fragment_tests
...
Add SPV_AMD_shader_early_and_late_fragment_tests
2022-07-27 11:23:16 -06:00
dwang102
070863af69
Add SPV_AMD_shader_early_and_late_fragment_tests
2022-07-18 14:20:18 +08:00
Jeremy Hayes
8bdc3d4d31
Emit Int64Atomics for imageAtomicStore
...
This covers a corner case wherein imageAtomicStore is used exclusively.
The proxy type for imageAtomicStore is inferred from the image type.
Fix #2975 .
2022-07-14 17:37:52 -06:00
Greg Fischer
c1ae2f33b5
Do not generate samplerBuffer for spirv1.6 and beyond
...
This type was removed from spirv1.6. If samplerBuffer is specified in
GLSL, generate textureBuffer. If samplerBuffer type is constructed,
just return the buffer.
Fixes #2956
2022-06-21 17:42:53 -06:00
James0124
ea024d2bfc
CInterface: Add OpSource support.
...
Add interface for `TIntermediate::addSourceText` and `TIntermediate::setSourceFile`.
2022-06-07 01:13:21 +09:00
Greg Fischer
9e2b914722
Restore legacy interface for remap()
...
Fixes ABI breakage caused by #2933
2022-06-01 16:40:29 -06:00
Andrea Faulds
6cdae46314
Avoid duplicate BuiltIn variables for ray tracing matrices ( fix #2921 )
...
Fixes an issue where invalid SPIR-V was generated when
gl_ObjectToWorldEXT and gl_ObjectToWorld3x4EXT, or
gl_WorldToObjectEXT and gl_WorldToObject3x4EXT, were used in the same
shader. The SPIR-V specification requires that there be at most one
OpVariable decorated with a given BuiltIn value.
2022-06-01 10:43:13 +02:00
Greg Fischer
316f12ac1d
Merge pull request #2950 from qingyuanzNV/insert_opline_before_opfunction2
...
Generate OpLine Before OpFunction
2022-05-31 13:25:22 -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
stusmith
ebf45697be
Add support for VK_EXT_fragment_shader_barycentric
2022-05-25 13:02:02 +01:00
Qingyuan Zheng
279c28e70a
generate OpLine before OpFunction
2022-05-23 23:05:43 -07:00
David Neto
ea7e64cf50
Remove unused variable
2022-05-19 13:27:12 -04:00
Greg Fischer
2f5bc0b741
Merge pull request #2933 from AaronHaganAMD/whitelist
...
Add whitelist filtering for debug comments in SPIRV-Remap.
2022-05-11 13:45:33 -06:00
ahagan
b5aae62731
Add whitelist filtering for debug comments in SPIRV-Remap.
2022-05-11 12:08:25 -04:00
Marius Bjorge
3015d00ee0
Adding support for GL_EXT_ray_cull_mask
2022-05-05 12:56:04 +02:00
Greg Fischer
b7968b7dbc
Generate Int8, Int16 and Float16 capabilities for constants
...
Fixes #2905
2022-03-25 14:36:01 -06:00
Greg Fischer
f25ca1ec5e
Merge pull request #2912 from greg-lunarg/edic1
...
Add eliminate-dead-input-components to -Os
2022-03-24 13:43:40 -06:00
Greg Fischer
abbdf63cbe
Add eliminate-dead-input-components to -Os
2022-03-24 13:22:44 -06:00
Biswapriyo Nath
e80f2f8760
cmake: Install SPVRemapper runtime library
...
This installs SPVRemapper.dll file which was missing previously.
2022-03-15 19:26:57 +05:30
Greg Fischer
69565b1884
Fix size_t to int warning
2022-01-27 11:51:04 -07:00
Greg Fischer
9ebd8ff6c1
Add Vulkan 1.3 support
...
Also update known goods to Vulkan 1.3 support
Also re-enable SPIR-V 1.6 tests with vulkan1.3 target
Also re-cache SPIRV 1.6 header which somehow regressed back to 1.5
2022-01-26 17:57:31 -07:00
Jeremy Hayes
294c8f1d51
Fix GCC sign-compare warnings
2022-01-04 19:55:41 -07:00
Greg Fischer
df609a01b3
Merge pull request #2800 from mhillenbrand/string_literal_endianness
...
Fix encoding/decoding of string literals for big-endian systems
2022-01-03 17:57:38 -07:00
Greg Fischer
7a49192d23
Add support for spirv1.6
...
Add command line support which enables the following behavior:
- Remap discard
Map discard to DemoteToHelperInvocation for HLSL shaders. Map to
OpTerminateInvocation for GLSL shaders.
- Decorate HelperInvocation with Volatile
- Use localSizeId for execution mode
WorkGroupSize is deprecated in spirv1.6
Also update known goods to SPIRV 1.6
2021-12-16 15:01:42 -07:00
Greg Fischer
a0f98ad401
Pickup header for SPIR-V 1.6
2021-12-16 13:44:54 -07:00
Ashwin Lele
e306f02927
Do not output location decoration for certain variables in ray tracing storage
...
classes.
2021-12-06 13:09:03 -08:00
Rex Xu
fe54126c05
Fix an issue of spirv_by_reference
...
When using this qualifier for a parameter, we make it as a pointer.
However, the function TranslateStorageClass() is therefore called and
the storage class should only be set to Function when it is invoked
to translate parameter types rather than actual argument types.
2021-11-23 16:40:45 +08:00
Rex Xu
3e9e60af86
Remove the test spv.intrinsicsSpecConst
...
According to current SPIR-V spec, we couldn't write a valid case that
references OpExecutionModeId and OpDecorateId.
2021-11-22 21:33:36 +08:00
Rex Xu
bee91eb479
Fix an issue of spirv_type used in local variable definitions
...
We previously use createOp() in SPV builder to create type declaration.
However, all type declarations should be placed in const-type-variable
declaration section. And duplicated type defintions ought to be avoided.
We now make a method in SPV builder to perform this operation with a
more general solution: makeGenericType().
2021-11-18 20:17:04 +08:00
Greg Fischer
77415296b2
Update to latest spirv-headers
2021-11-11 08:43:30 -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
Greg Fischer
38fd9221db
Merge pull request #2777 from amdrexu/bugfix
...
Make modifications of GL_EXT_spirv_intrinsics
2021-10-21 12:59:22 -06:00
Greg Fischer
82b2668d58
Allow 8/16-bit integer as array index
...
Also enable 8/16 bit int capability in SPIR-V in such cases.
Also enable 64 bit capabilities when used in operations.
Fixes #2779
2021-10-20 15:15:30 -06:00
Rex Xu
07aec25f82
Make modifications of GL_EXT_spirv_intrinsics
...
1. spirv_execution_mode_id and spirv_decorate_id could support
specialization constants. The original implementation always
assume only normal frontend constants are valid. It is not true.
2. spirv_type donesn't support type_specifier as an option of
spirv_type_parameter. At present, only constant_expression is the
valid option.
2021-10-15 20:22:36 +08:00
Chris Forbes
dd097e5adb
Untangle use of core glslang version enums in SpvPostProcess
...
This is the only thing requiring GlslangToSpv.h to be included here.
Change-Id: I72e9e278aa1e6d717e83f9dbf11e089aafe2eb0e
2021-10-14 08:43:34 -07:00
Nathaniel Cesario
c8ef4f8a9f
cmake: Remove "conditions" from endif
...
See https://cmake.org/cmake/help/latest/command/endif.html and
https://cmake.org/cmake/help/latest/command/if.html .
If the else/endif condition does not match the if condition verbatim,
an error is produced on some versions of cmake. This change removes
these "legacy conditions."
2021-09-30 11:00:09 -06:00
Greg Fischer
fb0e4983e4
Merge pull request #2767 from greg-lunarg/i2763
...
Fix unreachable code in getSampledType()
2021-09-23 10:41:34 -06:00
Greg Fischer
3d03b7822e
Scalarize vector readFirstInvocationARB ( #2766 )
...
Fixes #2761
2021-09-23 10:40:43 -06:00
Greg Fischer
4ea41b650d
Fix unreachable code in getSampledType()
...
Fixed #2763
2021-09-22 15:16:30 -06:00
Jeremy Hayes
012436d680
Fix GCC warnings
...
Fix -Wsign-compare warnings.
Fix -Wunused-parameter warnings.
2021-08-31 16:40:35 -06:00
alelenv
da8027a9df
Merge branch 'KhronosGroup:master' into rt_motion
2021-08-10 12:02:09 -07:00
alelenv
fc60f77aa2
Add support for GL_NV_ray_tracing_motion_blur.
2021-08-10 10:40:28 -07:00
Greg Fischer
9f18258e41
Fix seperate stores to swizzled lvalue.
...
Seen with += and ++ ops on swizzled lvalues. Was using stale access chain.
Fixes 2725.
2021-08-09 17:58:57 -06:00
Greg Fischer
d433cccb8a
Merge pull request #2702 from jeremy-lunarg/hayes-2518
...
Generate separate stores for partially swizzled memory stores
2021-07-28 16:49:27 -06:00
Jeremy Hayes
6d5b40f051
Generate separate stores for partially swizzled memory stores
...
Full vector and fully specified vector swizzle stores are not affected by this change, only partial swizzles ie swizzles with fewer components than the vector being stored to.
Previously the vector being stored to loaded and any components not specified in the swizzle were used to create a full store to the vector.
While this change generates more SPIR-V instructions, it is necessary for correctness.
Fixes #2518 .
2021-07-28 14:55:45 -06:00