Greg Fischer [Thu, 24 Mar 2022 22:39:34 +0000 (16:39 -0600)]
Update glsl.versionOverride.geom
Change original shader to version 110
Greg Fischer [Thu, 24 Mar 2022 22:37:42 +0000 (16:37 -0600)]
Update glsl.versionOverride.frag
Change original shader to version 110
Greg Fischer [Thu, 24 Mar 2022 22:36:48 +0000 (16:36 -0600)]
Update glsl.versionOverride.comp
Change original shader to version 110
Hai Nguyen [Mon, 10 Jan 2022 14:56:54 +0000 (09:56 -0500)]
Added missing test result
Hai Nguyen [Mon, 10 Jan 2022 14:43:44 +0000 (09:43 -0500)]
Added initial tests for --glsl-version
- Added compilation tests for shader stages using a different
version at each stage.
Hai Nguyen [Sun, 2 Jan 2022 00:02:14 +0000 (19:02 -0500)]
Revisions to GLSL version override
- Reverted public function interface changes for C++.
- Added override member variable to TShader.
- Added accessor TShader::setOverrideVersion.
- Reverted changes to tests.
Hai Nguyen [Sat, 1 Jan 2022 09:44:06 +0000 (04:44 -0500)]
Updated gtests preprocess()and parse() calls with arg for new parameter
Hai Nguyen [Sat, 1 Jan 2022 09:18:41 +0000 (04:18 -0500)]
Added GLSL version override interface and CLI
This change list allows a user to override the GLSL version from the
command line or through the C and C++ interfaces. This will override the
override happens in ProcessDeferred() before DeduceVersionProfile() so
the process should still error out if the version is insufficient for
the shader code.
- Added --glsl-version <version> to CLI.
- Added parameter to route glslVersion as override version to
preprocessor and parse functions to C++ interface.
- Updated C interface with function to override GLSL version.
Greg Fischer [Thu, 16 Dec 2021 22:32:54 +0000 (15:32 -0700)]
Merge pull request #2845 from greg-lunarg/sup1.6
Add support for spirv1.6
Greg Fischer [Thu, 2 Sep 2021 23:37:39 +0000 (17:37 -0600)]
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
Greg Fischer [Thu, 16 Dec 2021 21:48:18 +0000 (14:48 -0700)]
Merge pull request #2844 from greg-lunarg/hdr1.6
Pickup header for SPIR-V 1.6
Greg Fischer [Thu, 16 Dec 2021 18:37:39 +0000 (11:37 -0700)]
Pickup header for SPIR-V 1.6
Greg Fischer [Thu, 9 Dec 2021 18:45:32 +0000 (11:45 -0700)]
Merge pull request #2840 from alelenv/no_location2
Do not output location decoration for certain variables in ray tracing storage classes.
Greg Fischer [Tue, 7 Dec 2021 23:12:05 +0000 (16:12 -0700)]
Merge pull request #2836 from chaoticbob/vulkan_rules_relaxed
Vulkan rules relaxed for glslang C interface
Greg Fischer [Tue, 7 Dec 2021 23:10:28 +0000 (16:10 -0700)]
Merge pull request #2841 from greg-lunarg/i2244a
Fix --hlsl-dx-position-w to work for SV_Position embedded in struct
Greg Fischer [Tue, 7 Dec 2021 21:33:09 +0000 (14:33 -0700)]
Fix --hlsl-dx-position-w to work for SV_Position embedded in struct
Fixes #2244
Ashwin Lele [Mon, 6 Dec 2021 21:09:03 +0000 (13:09 -0800)]
Do not output location decoration for certain variables in ray tracing storage
classes.
Greg Fischer [Thu, 2 Dec 2021 16:48:16 +0000 (09:48 -0700)]
Merge pull request #2838 from jeremy-lunarg/hayes-remove-badge
Remove unnecessary badge
Jeremy Hayes [Wed, 1 Dec 2021 18:40:11 +0000 (11:40 -0700)]
Remove unnecessary badge
I had copy/pasted this badge without really thinking about it's
usefulness. It is unnecessary.
Hai Nguyen [Wed, 1 Dec 2021 17:32:02 +0000 (12:32 -0500)]
Fixed copy/paste error
Hai Nguyen [Wed, 1 Dec 2021 08:55:59 +0000 (03:55 -0500)]
Changed Vulkan rules relaxed to use shader options
- Removed vulkan_rules_relaxed from glslang_input_s
- Added GLSLANG_SHADER_VULKAN_RULES_RELAXED to glslang_shader_options_t
- Modified glslang_shader_set_options to handle new enum value
- Corrected enum value for GLSLANG_SHADER_AUTO_MAP_LOCATIONS
Greg Fischer [Tue, 30 Nov 2021 21:10:58 +0000 (14:10 -0700)]
Merge pull request #2830 from jeremy-lunarg/hayes-migrate-travis-to-github-actions
Migrate travis to github actions
Hai Nguyen [Tue, 30 Nov 2021 09:55:25 +0000 (04:55 -0500)]
Vulkan rules relaxed for glslang C interface
- Added vulkan_rules_relaxed flag to glslang_input_t to turn on Vulkan
rules relaxed during shader creation.
Hai Nguyen [Mon, 29 Nov 2021 21:23:01 +0000 (16:23 -0500)]
Support for automap options and resource binding shift (#2834)
* Support for automap options
- Added glslang_shader_options_t with enums for auto map bindings and
auto map locations.
- Added options param to glslang_shader_parse.
- Modified glslang_shader_parse to call appropriate auto map function if
auto map bits are set.
* Refactored auto map for C interface
- Added glslang_shader_set_options to independently set options instead
of being a param on an existing function.
- Added glslang_program_map_io to call mapIO so auto map location
actually works.
* Added support for shifting resource bindings
- Added resource binding shift functions to match C++ interface
* Uncommented preprocessor call that was commented out for debugging
Greg Fischer [Mon, 29 Nov 2021 21:20:51 +0000 (14:20 -0700)]
Merge pull request #2832 from amdrexu/bugfix
Fix validation failures of test cases regarding GL_EXT_spirv_intrinsics
Rex Xu [Wed, 24 Nov 2021 09:37:52 +0000 (17:37 +0800)]
Fix validation failures of test cases regarding GL_EXT_spirv_intrinsics
1. The test cases of OpReadClockKHR is invalid. The return type is
unsigned integer rather than signed integer.
2. When SPIR-V decorate or SPIR-V type is specified, we should avoid
auto location mapping because the semantics are totally decided by
SPIR-V tokens.
Greg Fischer [Wed, 24 Nov 2021 21:16:45 +0000 (14:16 -0700)]
Merge pull request #2720 from ZhiqianXia/GL_ARB_fragment_coord_conventions
Support the #extension GL_ARB_fragment_coord_conventions.
Greg Fischer [Wed, 24 Nov 2021 18:52:08 +0000 (11:52 -0700)]
Merge branch 'master' into GL_ARB_fragment_coord_conventions
Greg Fischer [Tue, 23 Nov 2021 20:39:57 +0000 (13:39 -0700)]
Merge pull request #2831 from amdrexu/bugfix
Fix an issue of spirv_by_reference
Rex Xu [Tue, 23 Nov 2021 08:40:45 +0000 (16:40 +0800)]
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.
Jeremy Hayes [Fri, 17 Sep 2021 20:06:48 +0000 (14:06 -0600)]
Migrate travis to github actions
Greg Fischer [Mon, 22 Nov 2021 22:21:33 +0000 (15:21 -0700)]
Merge pull request #2723 from ZhiqianXia/textureQueryLOD
Support the textureQueryLOD at #extension GL_ARB_texture_query_lod.
Greg Fischer [Mon, 22 Nov 2021 17:39:03 +0000 (10:39 -0700)]
Merge branch 'master' into textureQueryLOD
Greg Fischer [Mon, 22 Nov 2021 17:36:12 +0000 (10:36 -0700)]
Merge pull request #2829 from amdrexu/bugfix2
Remove the test spv.intrinsicsSpecConst
Rex Xu [Mon, 22 Nov 2021 12:05:06 +0000 (20:05 +0800)]
Remove the test spv.intrinsicsSpecConst
According to current SPIR-V spec, we couldn't write a valid case that
references OpExecutionModeId and OpDecorateId.
Greg Fischer [Fri, 19 Nov 2021 22:19:27 +0000 (15:19 -0700)]
Merge pull request #2782 from kevin-mccullough/FixIomapperSeperableShaderValidation
Fix issue with separable shader validation in iomapper
Greg Fischer [Thu, 18 Nov 2021 18:20:02 +0000 (11:20 -0700)]
Merge pull request #2826 from amdrexu/bugfix
Fix an issue of spirv_type used in local variable definitions
Greg Fischer [Thu, 18 Nov 2021 17:18:22 +0000 (10:18 -0700)]
Merge pull request #2811 from mbechard/master
remove unneeded extra constructions now that pool allocation is fixed
Rex Xu [Wed, 17 Nov 2021 15:32:27 +0000 (23:32 +0800)]
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().
Malcolm Bechard [Mon, 15 Nov 2021 15:44:08 +0000 (10:44 -0500)]
remove unneeded extra constructions now that pool allocation is fixed
Kevin McCullough [Wed, 13 Oct 2021 22:32:38 +0000 (15:32 -0700)]
Fix issue with separable shader validation in iomapper
Greg Fischer [Wed, 17 Nov 2021 22:26:19 +0000 (15:26 -0700)]
Merge pull request #2824 from alan-baker/update-tools
Update SPIRV-Tools
Greg Fischer [Wed, 17 Nov 2021 16:55:17 +0000 (09:55 -0700)]
Merge pull request #2825 from greg-lunarg/i2244
Add --hlsl-dx-position-w option
Greg Fischer [Wed, 17 Nov 2021 01:42:12 +0000 (18:42 -0700)]
Add --hlsl-dx-position-w option
This reciprocates the w component of SV_Position in HLSL fragment shaders
to provide DirectX compatibility for HLSL shaders in Vulkan.
Fixes #2244
Alan Baker [Wed, 17 Nov 2021 00:03:12 +0000 (19:03 -0500)]
Update SPIRV-Tools
* Fix test expectations
Greg Fischer [Tue, 16 Nov 2021 18:20:42 +0000 (11:20 -0700)]
Merge pull request #2823 from kda/master
Initialize member TSymbol::uniqueId.
Kevin Athey [Tue, 16 Nov 2021 00:33:08 +0000 (16:33 -0800)]
Initialize member TSymbol::uniqueId.
Greg Fischer [Mon, 15 Nov 2021 21:49:53 +0000 (14:49 -0700)]
Merge pull request #2821 from greg-lunarg/conv0
[RFC] add more negative float conversions to test constantUnaryConversion.comp and remove the undefined ones
Marius Hillenbrand [Mon, 15 Nov 2021 15:31:50 +0000 (16:31 +0100)]
remove undefined conversions from test constantUnaryConversion.comp
Remove remaining conversions from negative float64_t to unsigned
integers, which are undefined behavior.
As a result, this test will also succeed on platforms that implement
those conversions differently than x86. That addresses one of the issues
in #2815.
Marius Hillenbrand [Mon, 15 Nov 2021 15:30:15 +0000 (16:30 +0100)]
add negative float conversions to test constantUnaryConversion.comp
Add conversions from negative float16_t and float32_t to bool, all
signed integer types (i.e., including those in
GL_EXT_shader_explicit_arithmetic_types), and all float types (from the
same extension) to extend coverage.
Note that converting negative float values to unsigned integers is
undefined behavior. Thus, we exclude them.
Greg Fischer [Mon, 15 Nov 2021 20:28:53 +0000 (13:28 -0700)]
Merge pull request #2806 from ZhiqianXia/bestFunctionMatching
#extension GL_ARB_gpu_shader5 support the implicit conversion ,
Greg Fischer [Mon, 15 Nov 2021 17:52:12 +0000 (10:52 -0700)]
Merge pull request #2818 from mhillenbrand/promoteConstantUnion_signed_char
TIntermediate::promoteConstantUnion(): fix conversion to int8
Greg Fischer [Sat, 13 Nov 2021 02:16:35 +0000 (19:16 -0700)]
Merge pull request #2819 from greg-lunarg/i2812
Fix struct type sharing
Greg Fischer [Sat, 13 Nov 2021 00:38:11 +0000 (17:38 -0700)]
Merge pull request #2814 from mhillenbrand/isinf_isnan2
Use intermOut.cpp's IsNan and IsInfinity for parse-time constant folding (updated)
Greg Fischer [Fri, 12 Nov 2021 23:54:22 +0000 (16:54 -0700)]
Fix struct type sharing
Fixes #2812
Greg Fischer [Fri, 12 Nov 2021 14:42:16 +0000 (07:42 -0700)]
Merge pull request #2817 from greg-lunarg/sdk0
Revert port GL_EXT_shader_realtime_clock to GL_EXT_spirv_intrinsics
Marius Hillenbrand [Wed, 10 Nov 2021 17:10:58 +0000 (18:10 +0100)]
TIntermediate::promoteConstantUnion(): fix conversion to int8
The signedness of type char is implementation-defined in C++. The
conversion to (signed) int8 currently uses a cast to char, which is
undefined for negative values when the type char is implemented as
unsigned. Thus, fix to cast to "signed char", which has the intended
semantic on all implementations.
Fixes #2807
Greg Fischer [Fri, 12 Nov 2021 01:48:05 +0000 (18:48 -0700)]
Revert port of GL_EXT_shader_realtime_clock to GL_EXT_spirv_intrinsics
Could not be found by glslang library interface. Blocking SDK build.
Greg Fischer [Thu, 11 Nov 2021 22:14:06 +0000 (15:14 -0700)]
Merge pull request #2816 from greg-lunarg/v11.7.0
Release 11.7.0
Greg Fischer [Thu, 11 Nov 2021 18:12:01 +0000 (11:12 -0700)]
Merge pull request #2813 from greg-lunarg/kg120
Update to latest spirv-headers
Greg Fischer [Thu, 11 Nov 2021 16:08:05 +0000 (09:08 -0700)]
Release 11.7.0
Marius Hillenbrand [Tue, 9 Nov 2021 15:31:22 +0000 (16:31 +0100)]
Use intermOut.cpp's IsNan and IsInfinity for parse-time constant folding (updated)
There were two implementations of isInf() and isNan(), in Constant.cpp
and in intermOut.cpp. The former only works on little-endian systems,
the latter is a wrapper for library functions and works regardless of
endianness. Move the second version into Common.h and adopt it in both
places. Thereby avoid the duplication and fix for big-endian systems.
A previous commit with the same intent and purpose had missed a required
header for builds on Windows.
On s390x, this fixes the test case
Glsl/CompileToAstTest.FromFile/constFold_frag.
Fixes #2802
Greg Fischer [Thu, 11 Nov 2021 15:43:30 +0000 (08:43 -0700)]
Update to latest spirv-headers
Greg Fischer [Thu, 11 Nov 2021 15:18:59 +0000 (08:18 -0700)]
Merge pull request #2810 from greg-lunarg/push1
Generate error for binding on push_constant
Greg Fischer [Wed, 10 Nov 2021 22:59:10 +0000 (15:59 -0700)]
Merge pull request #2809 from KhronosGroup/revert-2803-isinf_isnan
Revert "Use intermOut.cpp's IsNan and IsInfinity for parse-time constant folding"
Greg Fischer [Wed, 10 Nov 2021 22:03:07 +0000 (15:03 -0700)]
Generate error for binding on push_constant
Greg Fischer [Wed, 10 Nov 2021 21:13:37 +0000 (14:13 -0700)]
Revert "Use intermOut.cpp's IsNan and IsInfinity for parse-time constant folding"
Greg Fischer [Wed, 10 Nov 2021 17:01:54 +0000 (10:01 -0700)]
Merge pull request #2805 from greg-lunarg/push0
Fix test spv.1.4.OpEntryPoint.frag
ZhiqianXia [Mon, 2 Aug 2021 05:24:11 +0000 (13:24 +0800)]
Support the #extension GL_ARB_fragment_coord_conventions.
Signed-off-by: ZhiqianXia <xzq0528@outlook.com>
ZhiqianXia [Mon, 2 Aug 2021 08:41:21 +0000 (16:41 +0800)]
#extension GL_ARB_gpu_shader5 support the implicit conversion ,
So the best function matching algorithm should be actived.
Signed-off-by: ZhiqianXia <xzq0528@outlook.com>
Greg Fischer [Tue, 9 Nov 2021 22:46:08 +0000 (15:46 -0700)]
Fix test spv.1.4.OpEntryPoint.frag
Cannot apply binding qualifier to push_constant
Greg Fischer [Tue, 9 Nov 2021 20:44:32 +0000 (13:44 -0700)]
Merge pull request #2781 from kevin-mccullough/FixLinkTimeValidationForGl_PerVertex
Fix incorrect link time validation for unused gl_PerVertex members
Greg Fischer [Tue, 9 Nov 2021 18:43:38 +0000 (11:43 -0700)]
Merge pull request #2801 from haasn/thread_safety
Thread safety fixes
Greg Fischer [Tue, 9 Nov 2021 18:08:41 +0000 (11:08 -0700)]
Merge pull request #2803 from mhillenbrand/isinf_isnan
Use intermOut.cpp's IsNan and IsInfinity for parse-time constant folding
Marius Hillenbrand [Tue, 9 Nov 2021 15:31:22 +0000 (16:31 +0100)]
Use intermOut.cpp's IsNan and IsInfinity for parse-time constant folding
There were two implementations of isInf() and isNan(), in Constant.cpp
and in intermOut.cpp. The former only works on little-endian systems,
the latter is a wrapper for library functions and works regardless of
endianness. Move the second version into Common.h and adopt it in both
places. Thereby avoid the duplication and fix for big-endian systems.
On s390x, this fixes the test case
Glsl/CompileToAstTest.FromFile/constFold_frag.
Fixes #2802
Greg Fischer [Tue, 9 Nov 2021 01:47:27 +0000 (18:47 -0700)]
Merge pull request #2799 from cyanreg/master
Add support for targeting Vulkan 1.2 in the C API
Greg Fischer [Tue, 9 Nov 2021 01:29:53 +0000 (18:29 -0700)]
Merge pull request #2798 from alan-baker/update-tools
Update tools
Kevin McCullough [Wed, 13 Oct 2021 22:28:45 +0000 (15:28 -0700)]
Fix incorrect link time validation for unused gl_PerVertex members
Greg Fischer [Mon, 8 Nov 2021 18:32:46 +0000 (11:32 -0700)]
Merge pull request #2722 from ZhiqianXia/GL_ARB_draw_instanced
Support the #extension GL_ARB_draw_instanced.
Niklas Haas [Mon, 8 Nov 2021 13:58:50 +0000 (14:58 +0100)]
Don't release global mutex before initialize/finalize is done
Otherwise this can race with other threads for access to the fields it's
supposed to be initializing/finalizing.
For example, imagine another thread is calling ShInitialize() while the
first thread is calling ShFinalize() - the finalize function would
destroy the state at the same time as the initialize function is trying
to initialize it.
Holding on to the global lock for the entire function prevents all of
these failure modes.
Niklas Haas [Mon, 8 Nov 2021 13:47:32 +0000 (14:47 +0100)]
Initialize global mutex in a thread-safe manner
Currently, ShInitialize() and friends call glslang::InitGlobalLock()
which *overwrites* the global mutex. As such, even though it ostensibly
takes a mutex, this function is actually completely thread-unsafe.
Fix it by using pthread_once to ensure the mutex is only initialized
once, and then never again.
Lynne [Mon, 8 Nov 2021 09:48:38 +0000 (10:48 +0100)]
Add support for targeting Vulkan 1.2 in the C API
ZhiqianXia [Mon, 2 Aug 2021 06:52:11 +0000 (14:52 +0800)]
Support the #extension GL_ARB_draw_instanced.
Signed-off-by: ZhiqianXia <xzq0528@outlook.com>
Alan Baker [Fri, 5 Nov 2021 18:33:46 +0000 (14:33 -0400)]
Update test expectations
Alan Baker [Fri, 5 Nov 2021 18:33:31 +0000 (14:33 -0400)]
Update SPIRV-Tools and SPIRV-Headers
Greg Fischer [Tue, 2 Nov 2021 17:03:45 +0000 (11:03 -0600)]
Merge pull request #2719 from ZhiqianXia/GL_EXT_shader_integer_mix
Add the preamble for GL_EXT_shader_integer_mix
ZhiqianXia [Mon, 2 Aug 2021 03:10:33 +0000 (11:10 +0800)]
Add the GL_EXT_shader_integer_mix Preamble for glsl.
Signed-off-by: ZhiqianXia <xzq0528@outlook.com>
Greg Fischer [Mon, 1 Nov 2021 16:19:09 +0000 (10:19 -0600)]
Merge pull request #2712 from ZhiqianXia/switch_error
glslang should report a error for Feature: last case/default label not followed by statements'.
ZhiqianXia [Thu, 29 Jul 2021 02:01:40 +0000 (10:01 +0800)]
To be compatible with Feature: 'last case/default label not followed by statements'.
Signed-off-by: ZhiqianXia <xzq0528@outlook.com>
Greg Fischer [Wed, 27 Oct 2021 19:28:57 +0000 (13:28 -0600)]
Merge pull request #2796 from greg-lunarg/i2793
Remove support for double trig, pow, exp and log
Greg Fischer [Wed, 27 Oct 2021 17:59:26 +0000 (11:59 -0600)]
Remove support for double trig, pow, exp and log
These are not supported in core GLSL or under any extension
Fixes 2793
Greg Fischer [Tue, 26 Oct 2021 16:52:19 +0000 (10:52 -0600)]
Merge pull request #2792 from jeremy-lunarg/hayes-2760
Return new allocator for copied containers
Jeremy Hayes [Tue, 5 Oct 2021 04:10:00 +0000 (22:10 -0600)]
Return new allocator for copied containers
Fix #2760.
Implement the optional function select_on_container_copy_contruction to
return a default-contructed allocator for containers that are
copy-constructed. This gives copy-constructed containers a pool
allocator for the current thead.
There may be a similar problem with the copy contructor which takes
allocators of type "Other" but, in practice, there is only one place
where this is being used and the allocators are always the same. (i.e.
executing from the same thread)
Greg Fischer [Fri, 22 Oct 2021 20:44:10 +0000 (14:44 -0600)]
Merge pull request #2780 from kevin-mccullough/FixCrossStageCheck
Fix cross-stage check to allow subsequent stage to use previous stage's binding
Greg Fischer [Thu, 21 Oct 2021 18:59:22 +0000 (12:59 -0600)]
Merge pull request #2777 from amdrexu/bugfix
Make modifications of GL_EXT_spirv_intrinsics
Greg Fischer [Thu, 21 Oct 2021 00:26:59 +0000 (18:26 -0600)]
Merge pull request #2787 from greg-lunarg/i2779
Allow 8/16-bit integer as array index
Greg Fischer [Wed, 20 Oct 2021 22:28:11 +0000 (16:28 -0600)]
Merge pull request #2788 from alelenv/iomapper_sr_fix
Skip auto decorating shader record buffer blocks with 'set' and 'binding'.
Greg Fischer [Wed, 20 Oct 2021 21:17:21 +0000 (15:17 -0600)]
Merge pull request #2789 from greg-lunarg/i2785
Accept gl_ViewportMask in version 430 and later
Greg Fischer [Tue, 19 Oct 2021 00:28:01 +0000 (18:28 -0600)]
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
Greg Fischer [Wed, 20 Oct 2021 19:48:22 +0000 (13:48 -0600)]
Accept gl_ViewportMask in version 430 and later
Was previously accepted only in 450 or later.
Fixes #2785