platform/upstream/glslang.git
2 years agoFix variable scoping of do-while
Greg Fischer [Fri, 24 Sep 2021 16:12:37 +0000 (10:12 -0600)]
Fix variable scoping of do-while

Fixes #2744

2 years agoMerge pull request #2767 from greg-lunarg/i2763
Greg Fischer [Thu, 23 Sep 2021 16:41:34 +0000 (10:41 -0600)]
Merge pull request #2767 from greg-lunarg/i2763

Fix unreachable code in getSampledType()

2 years agoScalarize vector readFirstInvocationARB (#2766)
Greg Fischer [Thu, 23 Sep 2021 16:40:43 +0000 (10:40 -0600)]
Scalarize vector readFirstInvocationARB (#2766)

Fixes #2761

2 years agoFix unreachable code in getSampledType()
Greg Fischer [Wed, 22 Sep 2021 21:12:49 +0000 (15:12 -0600)]
Fix unreachable code in getSampledType()

Fixed #2763

2 years agoAuto push constant blocks (#2764)
Malcolm Bechard [Wed, 22 Sep 2021 17:41:10 +0000 (13:41 -0400)]
Auto push constant blocks (#2764)

* add ability to upgrade uniform block to push constants assuming it fits within the size limit imposed by the caller
* allow selecting the packing for the auto push constants
* check the size using the potential layout packing of the push constants

2 years agoMerge pull request #2685 from kevin-mccullough/FixIsIoResizeArrayTesselationStageHandling
Greg Fischer [Tue, 21 Sep 2021 22:29:30 +0000 (16:29 -0600)]
Merge pull request #2685 from kevin-mccullough/FixIsIoResizeArrayTesselationStageHandling

Fix isIoResizeArray() tessellation stage handling

2 years agoMerge pull request #2762 from greg-lunarg/2757
Greg Fischer [Mon, 20 Sep 2021 16:14:47 +0000 (10:14 -0600)]
Merge pull request #2762 from greg-lunarg/2757

Fix SPIR-V for HLSL SampleBias

2 years agoFix SPIR-V for SampleBias
Greg Fischer [Fri, 17 Sep 2021 23:14:36 +0000 (17:14 -0600)]
Fix SPIR-V for SampleBias

Fixes #2757

2 years agoMerge pull request #2759 from mbechard/vkRelaxed-RetargetID
Greg Fischer [Fri, 17 Sep 2021 19:58:48 +0000 (13:58 -0600)]
Merge pull request #2759 from mbechard/vkRelaxed-RetargetID

GL_EXT_vulkan_glsl_relaxed - retarget gl_VertexID to gl_VertexIndex

2 years agoMerge pull request #2756 from mbechard/vkRelaxed-AvoidDuplicateUniform
Greg Fischer [Fri, 17 Sep 2021 19:58:04 +0000 (13:58 -0600)]
Merge pull request #2756 from mbechard/vkRelaxed-AvoidDuplicateUniform

GL_EXT_vulkan_glsl_relaxed - avoid growing the global uniform block with duplicates

2 years agoGL_EXT_vulkan_glsl_relaxed - retarget gl_VertexID to gl_VertexIndex
Malcolm Bechard [Thu, 16 Sep 2021 21:40:49 +0000 (17:40 -0400)]
GL_EXT_vulkan_glsl_relaxed - retarget gl_VertexID to gl_VertexIndex

instead of allowing for multiple declarations of the variable in the
resulting SPIR-V, instead use a retargeted mechanism to cause references
to gl_VertexID and gl_InstanceID to use the gl_VertexIndex and
gl_InstanceIndex symbol.

2 years agoavoid growing the global uniform block with duplicates
Malcolm Bechard [Thu, 16 Sep 2021 03:39:02 +0000 (23:39 -0400)]
avoid growing the global uniform block with duplicates

When using GL_EXT_vulkan_glsl_relaxed, check to see if a
uniform already exists in the block uniform block, and if so,
ensure they are the same type. Otherwise, avoid growing the block
with a duplicate.

2 years agoMerge pull request #2745 from jeremy-lunarg/hayes-fix-warnings
Greg Fischer [Wed, 15 Sep 2021 17:09:14 +0000 (11:09 -0600)]
Merge pull request #2745 from jeremy-lunarg/hayes-fix-warnings

Fix GCC warnings

2 years agoMerge pull request #2752 from InsertAReallyCreativeNameHere/master
Greg Fischer [Wed, 15 Sep 2021 16:57:44 +0000 (10:57 -0600)]
Merge pull request #2752 from InsertAReallyCreativeNameHere/master

Change MINGW_HAS_SECURE_API checks.

2 years agoMerge pull request #2755 from greg-lunarg/2748
Greg Fischer [Wed, 15 Sep 2021 15:42:34 +0000 (09:42 -0600)]
Merge pull request #2755 from greg-lunarg/2748

Run update_precision() on array and matrix constructors.

2 years agoRun update_precision() on array and matrix constructors.
Greg Fischer [Tue, 14 Sep 2021 18:17:58 +0000 (12:17 -0600)]
Run update_precision() on array and matrix constructors.

2 years agoChange MINGW_HAS_SECURE_API checks.
InsertAReallyCreativeNameHere [Wed, 8 Sep 2021 20:43:23 +0000 (06:43 +1000)]
Change MINGW_HAS_SECURE_API checks.

MINGW_HAS_SECURE_API can be defined as 0, but this will be ignored here without this change.
Without these *_s "safe" functions, this code will also build on Windows XP.

2 years agoMerge pull request #2747 from greg-lunarg/i2740
Greg Fischer [Thu, 2 Sep 2021 22:11:37 +0000 (16:11 -0600)]
Merge pull request #2747 from greg-lunarg/i2740

Perform update_precision on constructors and converts

2 years agoPerform update_precision on constructors and converts
Greg Fischer [Thu, 2 Sep 2021 16:49:46 +0000 (10:49 -0600)]
Perform update_precision on constructors and converts

Fixes #2740

2 years agoFix GCC warnings
Jeremy Hayes [Mon, 9 Aug 2021 20:41:50 +0000 (14:41 -0600)]
Fix GCC warnings

Fix -Wsign-compare warnings.
Fix -Wunused-parameter warnings.

2 years agoMerge pull request #2738 from greg-lunarg/kg119
Greg Fischer [Wed, 25 Aug 2021 21:21:08 +0000 (15:21 -0600)]
Merge pull request #2738 from greg-lunarg/kg119

Update known goods and CHANGES for 11.6.0

2 years agoUpdate known goods and CHANGES for 11.6.0
Greg Fischer [Wed, 25 Aug 2021 19:32:27 +0000 (13:32 -0600)]
Update known goods and CHANGES for 11.6.0

2 years agoMerge pull request #2718 from ZhiqianXia/AtomicOpsARB
Greg Fischer [Wed, 18 Aug 2021 18:59:27 +0000 (12:59 -0600)]
Merge pull request #2718 from ZhiqianXia/AtomicOpsARB

Support the atomic_counter_xxxARB  built-in functons at #extension GL_ARB_shader_atomic_counter_ops.

2 years agoMerge pull request #2731 from alelenv/rt_motion
Greg Fischer [Fri, 13 Aug 2021 15:48:37 +0000 (09:48 -0600)]
Merge pull request #2731 from alelenv/rt_motion

Add support for GL_NV_ray_tracing_motion_blur.

2 years agoUpdate known_good for SPV_NV_ray_tracing_motion_blur.
alelenv [Thu, 12 Aug 2021 16:57:22 +0000 (09:57 -0700)]
Update known_good for SPV_NV_ray_tracing_motion_blur.

2 years agoMerge branch 'KhronosGroup:master' into rt_motion
alelenv [Tue, 10 Aug 2021 19:02:09 +0000 (12:02 -0700)]
Merge branch 'KhronosGroup:master' into rt_motion

2 years agoAdd support for GL_NV_ray_tracing_motion_blur.
alelenv [Tue, 10 Aug 2021 17:40:28 +0000 (10:40 -0700)]
Add support for GL_NV_ray_tracing_motion_blur.

2 years agoMerge pull request #2726 from TheMindVirus/master
Greg Fischer [Tue, 10 Aug 2021 07:01:39 +0000 (01:01 -0600)]
Merge pull request #2726 from TheMindVirus/master

Update CMakeLists.txt

2 years agoMerge pull request #2729 from greg-lunarg/2725
Greg Fischer [Tue, 10 Aug 2021 06:53:01 +0000 (00:53 -0600)]
Merge pull request #2729 from greg-lunarg/2725

Fix seperate stores to swizzled lvalue.

2 years agoFix seperate stores to swizzled lvalue.
Greg Fischer [Mon, 9 Aug 2021 23:52:40 +0000 (17:52 -0600)]
Fix seperate stores to swizzled lvalue.

Seen with += and ++ ops on swizzled lvalues. Was using stale access chain.

Fixes 2725.

2 years agoUpdate CMakeLists.txt
Alastair Cota [Sun, 8 Aug 2021 16:00:26 +0000 (17:00 +0100)]
Update CMakeLists.txt

Checked REGEX REPLACE for consistency failure

2 years agoSupport Extension GL_ARB_shader_atomic_counter_ops and relative intrisic functions.
ZhiqianXia [Thu, 8 Jul 2021 03:12:05 +0000 (11:12 +0800)]
Support Extension GL_ARB_shader_atomic_counter_ops and relative intrisic functions.

refs:
https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_shader_atomic_counter_ops.txt

Signed-off-by: ZhiqianXia <xzq0528@outlook.com>
2 years agoMerge pull request #2716 from greg-lunarg/i2689
Greg Fischer [Sun, 1 Aug 2021 06:13:10 +0000 (00:13 -0600)]
Merge pull request #2716 from greg-lunarg/i2689

Add support for pragma STDGL invariant(all)

2 years agoAdd support for pragma STDGL invariant(all)
Greg Fischer [Thu, 29 Jul 2021 20:58:10 +0000 (14:58 -0600)]
Add support for pragma STDGL invariant(all)

Fixes #2689

2 years agoMerge pull request #2715 from greg-lunarg/i2714
Greg Fischer [Fri, 30 Jul 2021 22:12:21 +0000 (16:12 -0600)]
Merge pull request #2715 from greg-lunarg/i2714

Allow layout(std430) uniform with GL_EXT_scalar_block_layout

2 years agoMerge pull request #2690 from AndreyMlashkin/make_msvc_runtime_override_optional
Greg Fischer [Fri, 30 Jul 2021 18:03:27 +0000 (12:03 -0600)]
Merge pull request #2690 from AndreyMlashkin/make_msvc_runtime_override_optional

add possibility to not override runtime of MSVC

2 years agoAllow layout(std430) uniform with GL_EXT_scalar_block_layout
Greg Fischer [Fri, 30 Jul 2021 17:11:16 +0000 (11:11 -0600)]
Allow layout(std430) uniform with GL_EXT_scalar_block_layout

2 years agocorrect ident
andrei.malashkin [Fri, 30 Jul 2021 07:12:45 +0000 (09:12 +0200)]
correct ident

2 years agoMerge pull request #2691 from ZhiqianXia/BugPoint
Greg Fischer [Thu, 29 Jul 2021 20:51:44 +0000 (14:51 -0600)]
Merge pull request #2691 from ZhiqianXia/BugPoint

Atomic memory function can only be used for shader storage block member or shared variable.

2 years agoMerge branch 'master' into BugPoint
Greg Fischer [Thu, 29 Jul 2021 20:48:24 +0000 (14:48 -0600)]
Merge branch 'master' into BugPoint

2 years agoMerge pull request #2700 from ZhiqianXia/u2i
Greg Fischer [Thu, 29 Jul 2021 20:10:40 +0000 (14:10 -0600)]
Merge pull request #2700 from ZhiqianXia/u2i

Support Uint to Int implicit conversions at #extension GL_ARB_gpu_shader5.

2 years agoMerge pull request #2702 from jeremy-lunarg/hayes-2518
Greg Fischer [Wed, 28 Jul 2021 22:49:27 +0000 (16:49 -0600)]
Merge pull request #2702 from jeremy-lunarg/hayes-2518

Generate separate stores for partially swizzled memory stores

2 years agoGenerate separate stores for partially swizzled memory stores
Jeremy Hayes [Fri, 16 Jul 2021 21:07:16 +0000 (15:07 -0600)]
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.

2 years agoFix OpImageRead result type when compiling HLSL (#2706)
Nathan Reed [Wed, 28 Jul 2021 15:29:17 +0000 (08:29 -0700)]
Fix OpImageRead result type when compiling HLSL (#2706)

Fix OpImageRead result type when compiling HLSL

- Per the Vulkan spec, OpImageRead must return a 4-component vector always. When compiling HLSL, loads from a RWTexture of a template type with < 4 components would incorrectly generate an OpImageRead with a < 4 component result, resulting in validation errors.
- This was previously fixed for OpImageFetch in commit 4425f24; this commit does the same thing for OpImageRead.
- Added associated tests and expanded existing image fetch tests to check all the different types of textures, in both float and int incarnations, for completeness.
- Update other HLSL tests involving OpImageRead

2 years agoMerge pull request #2705 from pkasting/master
Greg Fischer [Wed, 28 Jul 2021 15:27:03 +0000 (09:27 -0600)]
Merge pull request #2705 from pkasting/master

Fix some instances of -Wunused-but-set-variable.

2 years agoMerge pull request #2704 from YunHsiao/master
Greg Fischer [Tue, 27 Jul 2021 21:03:35 +0000 (15:03 -0600)]
Merge pull request #2704 from YunHsiao/master

Fix per-set argument parsing in standalone

2 years agoFix some instances of -Wunused-but-set-variable.
Peter Kasting [Mon, 26 Jul 2021 14:34:37 +0000 (07:34 -0700)]
Fix some instances of -Wunused-but-set-variable.

Bug: chromium:1203071

2 years agoFix per-set argument parsing in standalone
Yun Hsiao Wu [Mon, 26 Jul 2021 08:21:12 +0000 (16:21 +0800)]
Fix per-set argument parsing in standalone

2 years agoSupport Uint to Int implicit conversions at #extension GL_ARB_gpu_shader5.
ZhiqianXia [Mon, 19 Jul 2021 09:24:28 +0000 (17:24 +0800)]
Support Uint to Int implicit conversions at #extension GL_ARB_gpu_shader5.

Signed-off-by: ZhiqianXia <xzq0528@outlook.com>
2 years agoMerge pull request #2695 from ShabbyX/fix-bool-array-in-uniform-load
Greg Fischer [Fri, 16 Jul 2021 14:40:37 +0000 (08:40 -0600)]
Merge pull request #2695 from ShabbyX/fix-bool-array-in-uniform-load

Fix loading bool arrays from interface blocks

2 years agoFix loading bool arrays from interface blocks
Shahbaz Youssefi [Fri, 16 Jul 2021 02:00:51 +0000 (22:00 -0400)]
Fix loading bool arrays from interface blocks

SPIR-V disallows bool in interface blocks, which is emulated with uint.
When loading a bool variable (through accessChainLoad()), it's converted
from uint to bool if it came from an interface block.

This was handled for bool and bvecN, but not for bool arrays.  This
change implements the conversion for bool arrays.

Closes #2694

2 years agomake AND to upper case
andrei.malashkin [Wed, 14 Jul 2021 05:33:02 +0000 (09:33 +0400)]
make AND to upper case

2 years agoadd possibility to not override runtime of MSVC
andrei.malashkin [Mon, 12 Jul 2021 16:08:15 +0000 (20:08 +0400)]
add possibility to not override runtime of MSVC

2 years agoAtomic memory function can only be used for shader storage block member or shared...
ZhiqianXia [Mon, 12 Jul 2021 08:57:25 +0000 (16:57 +0800)]
Atomic memory function can only be used for shader storage block member or shared variable.

Signed-off-by: ZhiqianXia <xzq0528@outlook.com>
3 years agoFix isIoResizeArray() tessellation stage handling
Kevin McCullough [Tue, 6 Jul 2021 18:50:48 +0000 (11:50 -0700)]
Fix isIoResizeArray() tessellation stage handling

3 years agoMerge pull request #2688 from KhronosGroup/revert-2643-master
Greg Fischer [Thu, 8 Jul 2021 21:15:55 +0000 (15:15 -0600)]
Merge pull request #2688 from KhronosGroup/revert-2643-master

Revert "Atomic memory function can only be used for shader storage block member or shared variable."

3 years agoRevert "Atomic memory function can only be used for shader storage block member or...
Greg Fischer [Thu, 8 Jul 2021 19:10:58 +0000 (13:10 -0600)]
Revert "Atomic memory function can only be used for shader storage block member or shared variable."

3 years agoMerge pull request #2684 from ZhiqianXia/Dev
Greg Fischer [Wed, 7 Jul 2021 21:08:55 +0000 (15:08 -0600)]
Merge pull request #2684 from ZhiqianXia/Dev

Add support for gl_MaxVaryingVectors for ogl.

3 years agoMerge pull request #2643 from ZhiqianXia/master
Greg Fischer [Wed, 7 Jul 2021 20:27:10 +0000 (14:27 -0600)]
Merge pull request #2643 from ZhiqianXia/master

Atomic memory function can only be used for shader storage block member or shared variable.

3 years agoAdd support for gl_MaxVaryingVectors for ogl.
ZhiqianXia [Wed, 7 Jul 2021 07:32:52 +0000 (15:32 +0800)]
Add support for gl_MaxVaryingVectors for ogl.

3 years agoMerge branch 'KhronosGroup:master' into master
ZhiqianXia [Wed, 7 Jul 2021 06:12:33 +0000 (14:12 +0800)]
Merge branch 'KhronosGroup:master' into master

3 years agoMerge pull request #2671 from greg-lunarg/kg118
Greg Fischer [Wed, 23 Jun 2021 20:25:17 +0000 (14:25 -0600)]
Merge pull request #2671 from greg-lunarg/kg118

Update known goods and CHANGES for 11.5.0

3 years agoUpdate known goods and CHANGES for 11.5.0
Greg Fischer [Wed, 23 Jun 2021 19:47:39 +0000 (13:47 -0600)]
Update known goods and CHANGES for 11.5.0

3 years agoMerge pull request #2670 from dneto0/fix-android-mk
Greg Fischer [Wed, 23 Jun 2021 16:46:28 +0000 (10:46 -0600)]
Merge pull request #2670 from dneto0/fix-android-mk

Android.mk: Add SpirvIntrinsics.cpp

3 years agoAndroid.mk: Add SpirvIntrinsics.cpp
David Neto [Wed, 23 Jun 2021 01:57:05 +0000 (21:57 -0400)]
Android.mk: Add SpirvIntrinsics.cpp

It was missing, and was breaking the build for Android.mk.

3 years agoMerge pull request #2669 from sudonatalie/remove-unused-var
Greg Fischer [Thu, 17 Jun 2021 21:29:34 +0000 (15:29 -0600)]
Merge pull request #2669 from sudonatalie/remove-unused-var

Remove unused variable Num_string_literal_EXTs

3 years agoMerge pull request #2664 from mbechard/master
Greg Fischer [Thu, 17 Jun 2021 20:49:02 +0000 (14:49 -0600)]
Merge pull request #2664 from mbechard/master

only declare compatibility gl_ variables in compatibility mode

3 years agoRemove unused variable Num_string_literal_EXTs
Natalie Chouinard [Thu, 17 Jun 2021 18:10:10 +0000 (11:10 -0700)]
Remove unused variable Num_string_literal_EXTs

Remove an unused variable that causes build failures in downstream
repository.

3 years agoMerge pull request #2668 from cmarcelo/GLSL_EXT_shader_atomic_float2
Greg Fischer [Thu, 17 Jun 2021 17:27:47 +0000 (11:27 -0600)]
Merge pull request #2668 from cmarcelo/GLSL_EXT_shader_atomic_float2

Implement GLSL_EXT_shader_atomic_float2

3 years agoMerge pull request #2625 from amdrexu/feature
Greg Fischer [Wed, 16 Jun 2021 20:52:35 +0000 (14:52 -0600)]
Merge pull request #2625 from amdrexu/feature

Implement the extension GL_EXT_spirv_intrinsics

3 years agoMerge pull request #2667 from greg-lunarg/i2666
Greg Fischer [Wed, 16 Jun 2021 17:54:07 +0000 (11:54 -0600)]
Merge pull request #2667 from greg-lunarg/i2666

Remove output variables from compute regression tests

3 years agoImplement GLSL_EXT_shader_atomic_float2
Jason Ekstrand [Wed, 13 Jan 2021 20:36:17 +0000 (14:36 -0600)]
Implement GLSL_EXT_shader_atomic_float2

3 years agoRemove output variables from compute regression tests
Greg Fischer [Tue, 15 Jun 2021 21:56:27 +0000 (15:56 -0600)]
Remove output variables from compute regression tests

Output variables in GLCompute shaders is not supported in Vulkan.
Recent upgrade of spirv-tools revealed this problem.

3 years agoMerge pull request #2666 from alan-baker/update-tools
Greg Fischer [Tue, 15 Jun 2021 21:00:58 +0000 (15:00 -0600)]
Merge pull request #2666 from alan-baker/update-tools

Update SPIRV-Tools and SPIRV-Headers

3 years agoUpdate test expectations
Alan Baker [Tue, 15 Jun 2021 15:13:35 +0000 (11:13 -0400)]
Update test expectations

3 years agoUpdate known good SPIRV-Tools and SPIRV-Headers
Alan Baker [Tue, 15 Jun 2021 15:11:58 +0000 (11:11 -0400)]
Update known good SPIRV-Tools and SPIRV-Headers

3 years agoMerge pull request #2665 from JustSid/master
Greg Fischer [Mon, 14 Jun 2021 16:35:29 +0000 (10:35 -0600)]
Merge pull request #2665 from JustSid/master

Fix SPIR-V remapper not remapping OpExtInst instruction set IDs

3 years agoFixed SPIR-V remapper not remapping OpExtInst instruction set IDs
Sidney Just [Sat, 12 Jun 2021 22:30:36 +0000 (15:30 -0700)]
Fixed SPIR-V remapper not remapping OpExtInst instruction set IDs

3 years agoonly declare compatibility gl_ variables in compatibility mode
Malcolm Bechard [Fri, 11 Jun 2021 01:42:46 +0000 (21:42 -0400)]
only declare compatibility gl_ variables in compatibility mode

avoid declaring them in GLSL 1.50+ if core profile is chosen by the
version statement

fixes #2663

3 years agoMerge pull request #2662 from greg-lunarg/spec1
Greg Fischer [Wed, 9 Jun 2021 19:09:28 +0000 (13:09 -0600)]
Merge pull request #2662 from greg-lunarg/spec1

Add support for float spec const vector initialization

3 years agoAdd support for float spec const vector initialization
Greg Fischer [Wed, 9 Jun 2021 01:10:48 +0000 (19:10 -0600)]
Add support for float spec const vector initialization

Fixes #2025

3 years agoImplement the extension GL_EXT_spirv_intrinsics
Rex Xu [Sun, 25 Apr 2021 08:52:35 +0000 (16:52 +0800)]
Implement the extension GL_EXT_spirv_intrinsics

- Add support of SPIR-V execution mode qualifiers.
- Add support of SPIR-V storage class qualifier.
- Add support of SPIR-V decorate qualifiers.
- Add support of SPIR-V type specifier.
- Add support of SPIR-V intruction qualifiers.
- Add support of spirv_by_reference/spirv_literal parameter qualifier.
- Add shader stage macros introduced by this extension.

3 years agoMerge pull request #2661 from jaebaek/update_spirv_tools_and_unit_tests
Greg Fischer [Tue, 8 Jun 2021 21:20:46 +0000 (15:20 -0600)]
Merge pull request #2661 from jaebaek/update_spirv_tools_and_unit_tests

Update spirv tools and unit tests

3 years agoFix unit test failures
Jaebaek Seo [Tue, 8 Jun 2021 14:39:55 +0000 (10:39 -0400)]
Fix unit test failures

3 years agoUpdate known_good.json for SPIRV-Tools
Jaebaek Seo [Tue, 8 Jun 2021 13:47:29 +0000 (09:47 -0400)]
Update known_good.json for SPIRV-Tools

3 years agoMerge pull request #2659 from alan-baker/subgroup-uniform-control-flow
Greg Fischer [Mon, 7 Jun 2021 20:14:22 +0000 (14:14 -0600)]
Merge pull request #2659 from alan-baker/subgroup-uniform-control-flow

Implement GL_EXT_subgroup_uniform_control_flow.

3 years agoImplement GL_EXT_subgroup_uniform_control_flow.
John Kessenich [Fri, 5 Jun 2020 10:15:43 +0000 (04:15 -0600)]
Implement GL_EXT_subgroup_uniform_control_flow.

3 years agoMerge pull request #2653 from syntheticmagus/selectionBlockSetters
Greg Fischer [Fri, 4 Jun 2021 18:08:29 +0000 (12:08 -0600)]
Merge pull request #2653 from syntheticmagus/selectionBlockSetters

Add setters for true and false blocks of selection nodes, copying the pattern already used for the condition.

3 years agoMerge pull request #2656 from ShabbyX/fix-oob
Greg Fischer [Fri, 4 Jun 2021 17:00:27 +0000 (11:00 -0600)]
Merge pull request #2656 from ShabbyX/fix-oob

Fix OOB write in matrix constructor

3 years agoMerge pull request #2655 from ShabbyX/fix-ubsan
Greg Fischer [Fri, 4 Jun 2021 16:45:48 +0000 (10:45 -0600)]
Merge pull request #2655 from ShabbyX/fix-ubsan

Fix UBSAN error with negating 0x8000'0000

3 years agoFix UBSAN error with negating 0x8000'0000
Shahbaz Youssefi [Wed, 2 Jun 2021 02:02:49 +0000 (22:02 -0400)]
Fix UBSAN error with negating 0x8000'0000

Signed-off-by: Shahbaz Youssefi <ShabbyX@gmail.com>
3 years agoFix OOB write in matrix constructor
Shahbaz Youssefi [Thu, 3 Jun 2021 17:42:57 +0000 (13:42 -0400)]
Fix OOB write in matrix constructor

In a matrix constructor that takes a number of components, as many
components as necessary must be taken, with the rest discarded, as GLSL
allows more components than necessary to be specified.  For example, the
following:

    mat4 m4 = mat4(v4, v4.yzwx, v4.zwx, v4.zwxy, v4.wxyz);

is equivalent to:

    mat4 m4 = mat4(v4, v4.yzwx, v4.zwx, v4.zwxy, v4.w);

glslang takes the components from the constructor and builds the single
components of the matrix in a 2D array before constructing the matrix
itself.  It however did not check for extra parameters and was thus
writing OOB to said 2D array.  This is fixed in this change

Signed-off-by: Shahbaz Youssefi <shabbyx@gmail.com>
3 years agoAdd setters for true and false blocks of selection nodes, copying the pattern already...
syntheticmagus [Sat, 29 May 2021 01:24:59 +0000 (18:24 -0700)]
Add setters for true and false blocks of selection nodes, copying the pattern already used for the condition.

3 years agoMerge pull request #2651 from greg-lunarg/rel0
Greg Fischer [Thu, 27 May 2021 20:11:46 +0000 (14:11 -0600)]
Merge pull request #2651 from greg-lunarg/rel0

Add missing libs to release

3 years agoAdd missing libs to release
Greg Fischer [Wed, 26 May 2021 22:14:23 +0000 (16:14 -0600)]
Add missing libs to release

GenericCodeGen, MachineIndependent and glslang-default-resource-limits

Fixes #2648

3 years agoMerge pull request #2647 from greg-lunarg/arg2
Greg Fischer [Thu, 20 May 2021 19:45:51 +0000 (13:45 -0600)]
Merge pull request #2647 from greg-lunarg/arg2

Do true SPV type check for function array arg linkage

3 years agoDo true SPV type check for function array arg linkage
Greg Fischer [Thu, 20 May 2021 15:17:53 +0000 (09:17 -0600)]
Do true SPV type check for function array arg linkage

Previous check was missing type difference between uniform array
actual arg with stride decoration and the formal arg without. Now
does logical or component-wise copy where needed.

Fixes #2637

3 years agoMerge pull request #2646 from johnstiles-google/parseconst
Greg Fischer [Tue, 18 May 2021 17:00:08 +0000 (11:00 -0600)]
Merge pull request #2646 from johnstiles-google/parseconst

Fix mat4x2(scalar) constructor.

3 years agoFix mat4x2(scalar) constructor.
John Stiles [Tue, 18 May 2021 16:13:41 +0000 (12:13 -0400)]
Fix mat4x2(scalar) constructor.

3 years agoAtomic memory function can only be used for shader storage block member or shared...
ZhiqianXia [Wed, 12 May 2021 12:07:52 +0000 (20:07 +0800)]
Atomic memory function can only be used for shader storage block member or shared variable.

The glsl spec says:A shader will fail to compile if the value passed to the mem argument of an atomic memory function does not
correspond to a buffer or shared variable.