summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/bgfx/3rdparty/glslang
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/bgfx/3rdparty/glslang')
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/.appveyor.yml1
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/.travis.yml1
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/BUILD.bazel245
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/BUILD.gn29
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/CMakeLists.txt49
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/OGLCompilersDLL/CMakeLists.txt3
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/README.md2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/SPIRV/CMakeLists.txt21
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/SPIRV/GLSL.ext.KHR.h1
-rwxr-xr-x[-rw-r--r--]3rdparty/bgfx/3rdparty/glslang/SPIRV/GlslangToSpv.cpp244
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/SPIRV/InReadableOrder.cpp44
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/SPIRV/SpvBuilder.h13
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/SPIRV/SpvPostProcess.cpp49
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/SPIRV/SpvTools.cpp3
-rwxr-xr-x3rdparty/bgfx/3rdparty/glslang/SPIRV/spvIR.h51
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/StandAlone/CMakeLists.txt19
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/StandAlone/StandAlone.cpp2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/130.frag9
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/330.frag15
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.aliasOpaque.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.flattenOpaque.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.flattenOpaqueInit.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.flattenOpaqueInitMix.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.flattenSubset.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.flattenSubset2.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.partialFlattenLocal.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.partialFlattenMixed.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/130.frag.out11
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/330.frag.out12
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/compoundsuffix.frag.hlsl2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/glsl.450.subgroup.frag.out442
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/glsl.entryPointRename.vert.bad.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/glsl.entryPointRename.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/glspv.esversion.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/glspv.version.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.PointSize.geom.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.PointSize.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.aliasOpaque.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.amend.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.array.flatten.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.array.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.array.implicit-size.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.array.multidim.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.assoc.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.attribute.expression.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.attribute.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.attributeC11.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.attributeGlobalBuffer.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.basic.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.basic.geom.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.boolConv.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.buffer.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.calculatelod.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.cast.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.cbuffer-identifier.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.charLit.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clip.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-1.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-1.geom.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-1.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-2.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-2.geom.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-2.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-3.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-3.geom.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-3.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-4.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-4.geom.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-4.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-5.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-5.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-6.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-6.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-7.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-7.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-8.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-8.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-9.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-9.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.color.hull.tesc.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.comparison.vec.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.conditional.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.constantbuffer.frag.out5
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.constructArray.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.constructexpr.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.constructimat.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.coverage.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.dashI.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.deadFunctionMissingBody.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.depthGreater.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.depthLess.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.discard.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.doLoop.frag.out539
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.domain.1.tese.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.domain.2.tese.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.domain.3.tese.out2
-rwxr-xr-x3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.earlydepthstencil.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.emptystruct.init.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.emptystructreturn.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.emptystructreturn.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.entry-in.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.entry-out.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.entry.rename.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.explicitDescriptorSet-2.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.explicitDescriptorSet.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.flatten.return.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.flattenOpaque.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.flattenOpaqueInit.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.flattenOpaqueInitMix.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.flattenSubset.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.flattenSubset2.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.float1.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.float4.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.forLoop.frag.out1463
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.format.rwtexture.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.fraggeom.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gather.array.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gather.basic.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gather.basic.dx10.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gather.offset.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gathercmpRGBA.offset.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.getdimensions.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.getdimensions.dx10.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.getsampleposition.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.global-const-init.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.groupid.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gs-hs-mix.tesc.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.hlslOffset.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.hull.1.tesc.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.hull.2.tesc.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.hull.3.tesc.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.hull.4.tesc.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.hull.ctrlpt-1.tesc.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.hull.ctrlpt-2.tesc.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.hull.void.tesc.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.identifier.sample.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.if.frag.out624
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.imagefetch-subvec4.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.implicitBool.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.include.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.inf.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.init.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.init2.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.inoutquals.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.int.dot.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsic.frexp.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsic.frexp.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.barriers.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.d3dcolortoubyte4.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.double.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.evalfns.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.f1632.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.f3216.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.lit.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.negative.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.negative.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.promote.down.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.promote.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.isfinite.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.layout.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.layoutOverride.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.2dms.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.array.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.basic.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.basic.dx10.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.buffer.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.offset.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.logical.binary.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.logical.binary.vec.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.logical.unary.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.logicalConvert.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.loopattr.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.matNx1.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.matType.bool.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.matType.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.matType.int.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.matpack-1.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.matpack-pragma.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.matrixSwizzle.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.matrixindex.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.max.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.memberFunCall.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.mintypes.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.mip.operator.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.mul-truncate.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.multiDescriptorSet.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.multiEntry.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.multiReturn.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.namespace.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.noSemantic.functionality1.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.nonint-index.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.nonstaticMemberFunction.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.numericsuffixes.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.numthreads.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.opaque-type-bug.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.overload.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.params.default.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.partialFlattenLocal.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.partialFlattenMixed.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.partialInit.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.pp.line.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.pp.line2.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.pp.line3.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.pp.line4.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.pp.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.precedence.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.precedence2.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.precise.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.preprocessor.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.promote.atomic.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.promote.binary.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.promote.vec1.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.promotions.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.rw.atomics.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.rw.bracket.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.rw.register.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.rw.scalar.bracket.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.rw.swizzle.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.rw.vec2.bracket.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.sample.array.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.sample.basic.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.sample.dx9.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.sample.dx9.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.sample.offset.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplebias.array.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmp.dualmode.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.scalar-length.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.scalar2matrix.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.scalarCast.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.scope.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.self_cast.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.semantic-1.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.semantic.geom.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.semantic.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.semicolons.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.shapeConv.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.shapeConvRet.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.sin.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.snorm.uav.comp.out2
-rwxr-xr-x3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.specConstant.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.staticFuncInit.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.staticMemberFunction.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.store.rwbyteaddressbuffer.type.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.string.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.stringtoken.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.struct.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.struct.split-1.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.struct.split.array.geom.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.struct.split.assign.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.struct.split.call.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.struct.split.nested.geom.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.struct.split.trivial.geom.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.struct.split.trivial.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structIoFourWay.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structStructName.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structarray.flatten.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structarray.flatten.geom.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.append.fn.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.append.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.atomics.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.byte.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.coherent.frag.out5
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.floatidx.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.fn.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.fn2.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.frag.out5
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.incdec.frag.hlslfun1.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.incdec.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.rw.frag.out5
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.rwbyte.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structin.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.subpass.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.switch.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.swizzle.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.synthesizeInput.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.target.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.targetStruct1.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.targetStruct2.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.templatetypes.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.texture.struct.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.texture.subvec4.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.texturebuffer.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.this.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.tristream-append.geom.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.tx.bracket.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.tx.overload.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.type.half.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.type.identifier.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.type.type.conversion.valid.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.typeGraphCopy.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.typedef.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.void.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.wavebroadcast.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.waveprefix.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.wavequad.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.wavequery.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.wavequery.frag.out5
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.wavereduction.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.wavevote.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.whileLoop.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.y-negate-1.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.y-negate-2.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.y-negate-3.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/link1.vk.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.basic.dcefunc.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.basic.everything.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.basic.none.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.basic.strip.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.hlsl.sample.basic.none.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.hlsl.templatetypes.none.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.if.everything.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.if.none.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.similar_1a.everything.frag.out9
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.similar_1a.none.frag.out5
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.similar_1b.everything.frag.out9
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.similar_1b.none.frag.out5
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.specconst.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.switch.everything.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.switch.none.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.uniformarray.everything.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.uniformarray.none.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/size2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.3.8bitstorage-ssbo.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.3.8bitstorage-ubo.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.3.coopmat.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.LoopControl.frag.out2
-rwxr-xr-x3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.NonWritable.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.OpCopyLogical.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.OpCopyLogical.funcall.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.OpCopyLogicalBool.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.OpEntryPoint.frag.out2
-rwxr-xr-x3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.OpSelect.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.constructComposite.comp.out2
-rwxr-xr-x3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.image.frag.out2
-rwxr-xr-x3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.sparseTexture.frag.out2
-rwxr-xr-x3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.texture.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.100ops.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.130.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.140.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.150.geom.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.150.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.16bitstorage-int.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.16bitstorage-uint.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.16bitstorage.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.16bitxfb.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.300BuiltIns.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.300layout.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.300layout.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.300layoutp.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.310.bitcast.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.310.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.320.meshShaderUserDefined.mesh.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.330.geom.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.400.frag.nanclamp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.400.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.400.tesc.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.400.tese.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.420.geom.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.430.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.430.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.450.geom.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.450.noRedecl.tesc.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.450.tesc.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.460.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.460.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.460.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.8bitstorage-int.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.8bitstorage-ssbo.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.8bitstorage-ubo.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.8bitstorage-uint.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.AnyHitShader.rahit.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.AofA.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.ClosestHitShader.rchit.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.GeometryShaderPassthrough.geom.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.IntersectShader.rint.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.MissShader.rmiss.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.OVR_multiview.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.Operations.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.RayCallable.rcall.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.RayConstants.rgen.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.RayGenShader.rgen.out2
-rwxr-xr-x3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.RayGenShader11.rgen.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.RayGenShaderArray.rgen.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.accessChain.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.aggOps.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.always-discard.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.always-discard2.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.arbPostDepthCoverage.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.atomic.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.atomicInt64.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.barrier.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bitCast.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bool.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.boolInBlock.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.branch-return.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.buffer.autoassign.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle1.frag.out4
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle10.frag.out4
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle11.frag.out4
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle12.frag.out4
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle13.frag.out4
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle14.frag.out4
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle15.frag.out4
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle16.frag.out4
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle18.frag.out4
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle2.frag.out4
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle3.frag.out4
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle4.frag.out4
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle5.frag.out4
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle6.frag.out4
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle7.frag.out4
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle8.frag.out4
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle9.frag.out4
-rwxr-xr-x3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandleUvec2.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.builtInXFB.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.computeShaderDerivatives.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.computeShaderDerivatives2.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.conditionalDemote.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.conditionalDiscard.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.constConstruct.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.constStruct.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.constructComposite.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.controlFlowAttributes.frag.out395
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.conversion.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.coopmat.comp.out4
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dataOut.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dataOutIndirect.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dataOutIndirect.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dead-after-continue.vert.out54
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dead-after-discard.frag.out31
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dead-after-loop-break.vert.out67
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dead-after-return.vert.out29
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dead-after-switch-break.vert.out40
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dead-complex-continue-after-return.vert.out55
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dead-complex-merge-after-return.vert.out51
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.debugInfo.1.1.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.debugInfo.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.deepRvalue.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.depthOut.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.deviceGroup.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.discard-dce.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.do-simple.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.do-while-continue-break.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.doWhileLoop.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.double.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.drawParams.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.earlyReturnDiscard.frag.out4
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.explicittypes.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.extPostDepthCoverage.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.float16.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.float16Fetch.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.float16convertonlyarith.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.float16convertonlystorage.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.float32.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.float64.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.flowControl.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.for-complex-condition.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.for-continue-break.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.for-nobody.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.for-notest.vert.out4
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.for-simple.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.forLoop.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.forwardFun.frag.out5
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.fragmentDensity-es.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.fragmentDensity.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.fragmentShaderBarycentric.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.fragmentShaderBarycentric2.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.fsi.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.fullyCovered.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.functionCall.frag.out5
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.functionNestedOpaque.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.functionParameterTypes.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.functionSemantics.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.glFragColor.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.glsl.register.autoassign.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.glsl.register.noautoassign.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.hlslDebugInfo.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.hlslOffsets.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.image.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.imageLoadStoreLod.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.int16.amd.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.int16.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.int32.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.int64.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.int8.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.intOps.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.intcoopmat.comp.out4
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.interpOps.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.layoutNested.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.length.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.localAggregates.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.loops.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.loopsArtificial.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.matFun.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.matrix.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.matrix2.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.memoryQualifier.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.memoryScopeSemantics.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.merge-unreachable.frag.out4
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshShaderBuiltins.mesh.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshShaderPerViewBuiltins.mesh.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshShaderPerViewUserDefined.mesh.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshShaderRedeclBuiltins.mesh.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshShaderRedeclPerViewBuiltins.mesh.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshShaderSharedMem.mesh.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshShaderTaskMem.mesh.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshShaderUserDefined.mesh.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshTaskShader.task.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.multiStruct.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.multiStructFuncall.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.multiView.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.multiviewPerViewAttributes.tesc.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.multiviewPerViewAttributes.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.newTexture.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.noBuiltInLoc.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.noDeadDecorations.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.noWorkgroup.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.nonSquare.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.nonuniform.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.nonuniform2.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.offsets.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.paramMemory.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.perprimitiveNV.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.pp.line.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.precise.tesc.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.precise.tese.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.precision.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.precisionNonESSamp.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.prepost.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.privateVariableTypes.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.pushConstant.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.pushConstantAnon.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.qualifiers.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.queryL.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.rankShift.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.register.autoassign-2.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.register.autoassign.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.register.noautoassign.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.register.subpass.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.rw.autoassign.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.sample.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.sampleId.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.sampleMaskOverrideCoverage.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.samplePosition.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.samplerlessTextureFunctions.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.scalarlayout.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.scalarlayoutfloat16.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.separate.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.set.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shaderBallot.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shaderBallotAMD.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shaderDrawParams.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shaderFragMaskAMD.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shaderGroupVote.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shaderImageFootprint.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shaderStencilExport.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shadingRate.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shiftOps.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shortCircuit.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.simpleFunctionCall.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.simpleMat.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.smBuiltins.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.smBuiltins.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.sparseTexture.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.sparseTextureClamp.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.specConst.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.specConstant.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.specConstant.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.specConstantComposite.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.specConstantOperations.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.ssbo.autoassign.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.ssboAlias.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.stereoViewRendering.tesc.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.stereoViewRendering.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.storageBuffer.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.structAssignment.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.structDeref.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.structure.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroup.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroup.geom.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroup.tesc.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroup.tese.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroup.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupArithmetic.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupBallot.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupBasic.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupClustered.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupExtendedTypesArithmetic.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupExtendedTypesBallot.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupExtendedTypesClustered.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupExtendedTypesPartitioned.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupExtendedTypesQuad.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupExtendedTypesShuffle.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupExtendedTypesShuffleRelative.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupExtendedTypesVote.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupPartitioned.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupQuad.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupShuffle.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupShuffleRelative.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupVote.comp.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subpass.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.switch.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.swizzle.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.swizzleInversion.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.test.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.test.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.texture.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.texture.sampler.transform.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.texture.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.textureBuffer.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.textureGatherBiasLod.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.types.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.uint.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.uniformArray.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.unit1.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.variableArrayIndex.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.varyingArray.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.varyingArrayIndirect.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.vecMatConstruct.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.viewportArray2.tesc.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.viewportArray2.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.voidFunction.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.volatileAtomic.comp.out40
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.vulkan110.int16.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.vulkan110.storageBuffer.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.while-continue-break.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.while-simple.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.whileLoop.frag.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.xfb.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.xfb2.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.xfb3.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.xfbOffsetOnBlockMembersAssignment.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.xfbOffsetOnStructMembersAssignment.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.xfbOverlapOffsetCheckWithBlockAndMember.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.xfbStrideJustOnce.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/vulkan.ast.vert.out2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/web.comp.out157
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/baseResults/web.separate.frag.out178
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/glsl.450.subgroup.frag4
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/hlsl.doLoop.frag24
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/hlsl.forLoop.frag50
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/hlsl.if.frag26
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/runtests23
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/spv.controlFlowAttributes.frag11
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/spv.dead-after-continue.vert14
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/spv.dead-after-discard.frag10
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/spv.dead-after-loop-break.vert19
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/spv.dead-after-return.vert10
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/spv.dead-after-switch-break.vert15
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/spv.dead-complex-continue-after-return.vert19
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/spv.dead-complex-merge-after-return.vert23
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/spv.volatileAtomic.comp8
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/web.comp50
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/web.separate.frag63
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/web.testlist2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/WORKSPACE27
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/glslang/CMakeLists.txt9
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/glslang/Include/Types.h68
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/glslang/Include/intermediate.h3
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/glslang/Include/revision.h2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/Initialize.cpp315
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/Intermediate.cpp154
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/ParseHelper.cpp63
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/ParseHelper.h2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/Scan.cpp109
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/ShaderLang.cpp17
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/Versions.cpp4
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/Versions.h1
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/glslang.m4258
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/glslang.y256
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/glslang_tab.cpp1902
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/glslang_tab.cpp.h484
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/iomapper.h12
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/linkValidate.cpp6
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/localintermediate.h53
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/reflection.cpp2
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/glslang/OSDependent/Unix/CMakeLists.txt3
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/glslang/OSDependent/Windows/CMakeLists.txt3
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/glslang/Public/ShaderLang.h4
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/gtests/CMakeLists.txt3
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/gtests/Spv.FromFile.cpp26
-rwxr-xr-x3rdparty/bgfx/3rdparty/glslang/gtests/TestFixture.h6
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/hlsl/CMakeLists.txt5
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/known_good.json4
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/kokoro/linux-clang-release-bazel/build.sh60
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/kokoro/linux-clang-release-bazel/continuous.cfg35
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/kokoro/linux-clang-release-bazel/presubmit.cfg35
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/kokoro/macos-clang-release-bazel/build.sh60
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/kokoro/macos-clang-release-bazel/continuous.cfg35
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/kokoro/macos-clang-release-bazel/presubmit.cfg35
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/kokoro/windows-msvc-2015-release-bazel/build.bat75
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/kokoro/windows-msvc-2015-release-bazel/continuous.cfg35
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/kokoro/windows-msvc-2015-release-bazel/presubmit.cfg35
735 files changed, 6680 insertions, 4259 deletions
diff --git a/3rdparty/bgfx/3rdparty/glslang/.appveyor.yml b/3rdparty/bgfx/3rdparty/glslang/.appveyor.yml
index e7c428275b6..32e8f2bde35 100644
--- a/3rdparty/bgfx/3rdparty/glslang/.appveyor.yml
+++ b/3rdparty/bgfx/3rdparty/glslang/.appveyor.yml
@@ -66,7 +66,6 @@ after_test:
bin\glslangValidator.exe
bin\spirv-remap.exe
include\glslang\*
- include\SPIRV\*
lib\glslang%SUFFIX%.lib
lib\HLSL%SUFFIX%.lib
lib\OGLCompiler%SUFFIX%.lib
diff --git a/3rdparty/bgfx/3rdparty/glslang/.travis.yml b/3rdparty/bgfx/3rdparty/glslang/.travis.yml
index 2478912177c..1fa3fc01cda 100644
--- a/3rdparty/bgfx/3rdparty/glslang/.travis.yml
+++ b/3rdparty/bgfx/3rdparty/glslang/.travis.yml
@@ -99,7 +99,6 @@ after_success:
zip ${TARBALL}
bin/glslangValidator
include/glslang/*
- include/SPIRV/*
lib/libglslang${SUFFIX}.a
lib/libHLSL${SUFFIX}.a
lib/libOGLCompiler${SUFFIX}.a
diff --git a/3rdparty/bgfx/3rdparty/glslang/BUILD.bazel b/3rdparty/bgfx/3rdparty/glslang/BUILD.bazel
new file mode 100644
index 00000000000..cc18aa268e0
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/glslang/BUILD.bazel
@@ -0,0 +1,245 @@
+package(
+ default_visibility = ["//visibility:public"],
+)
+
+# Description:
+#
+# Khronos reference front-end for GLSL and ESSL, and sample SPIR-V generator.
+
+licenses(["notice"])
+
+exports_files(["LICENSE"])
+
+COMMON_COPTS = select({
+ "@bazel_tools//src/conditions:windows": [""],
+ "//conditions:default": [
+ "-Wall",
+ "-Wuninitialized",
+ "-Wunused",
+ "-Wunused-local-typedefs",
+ "-Wunused-parameter",
+ "-Wunused-value",
+ "-Wunused-variable",
+ "-Wno-reorder",
+ "-std=c++11",
+ "-fvisibility=hidden",
+ "-fvisibility-inlines-hidden",
+ "-fno-exceptions",
+ "-fno-rtti",
+ ],
+})
+
+cc_library(
+ name = "glslang",
+ srcs = glob(
+ [
+ "glslang/GenericCodeGen/*.cpp",
+ "glslang/MachineIndependent/*.cpp",
+ "glslang/MachineIndependent/preprocessor/*.cpp",
+ "hlsl/*.cpp",
+ ],
+ exclude = [
+ "glslang/MachineIndependent/pch.cpp",
+ "glslang/MachineIndependent/pch.h",
+ "hlsl/pch.cpp",
+ "hlsl/pch.h",
+ ],
+ ) + [
+ "OGLCompilersDLL/InitializeDll.cpp",
+ ] + select({
+ "@bazel_tools//src/conditions:windows":
+ ["glslang/OSDependent/Windows/ossource.cpp"],
+ "//conditions:default":
+ ["glslang/OSDependent/Unix/ossource.cpp"],
+ }),
+ hdrs = glob([
+ "glslang/Include/*.h",
+ "glslang/MachineIndependent/*.h",
+ "glslang/MachineIndependent/preprocessor/*.h",
+ "hlsl/*.h",
+ ]) + [
+ "OGLCompilersDLL/InitializeDll.h",
+ "StandAlone/DirStackFileIncluder.h",
+ "glslang/OSDependent/osinclude.h",
+ "glslang/Public/ShaderLang.h",
+ ],
+ copts = COMMON_COPTS,
+ defines = [
+ "AMD_EXTENSIONS",
+ "ENABLE_HLSL=0",
+ "ENABLE_OPT=0",
+ "NV_EXTENSIONS",
+ ],
+ linkopts = select({
+ "@bazel_tools//src/conditions:windows": [""],
+ "//conditions:default": ["-lm", "-lpthread"],
+ }),
+ linkstatic = 1,
+)
+
+genrule(
+ name = "export_spirv_headers",
+ srcs = [
+ "SPIRV/GLSL.ext.AMD.h",
+ "SPIRV/GLSL.ext.EXT.h",
+ "SPIRV/GLSL.ext.KHR.h",
+ "SPIRV/GLSL.ext.NV.h",
+ "SPIRV/GLSL.std.450.h",
+ "SPIRV/spirv.hpp",
+ ],
+ outs = [
+ "include/SPIRV/GLSL.ext.AMD.h",
+ "include/SPIRV/GLSL.ext.EXT.h",
+ "include/SPIRV/GLSL.ext.KHR.h",
+ "include/SPIRV/GLSL.ext.NV.h",
+ "include/SPIRV/GLSL.std.450.h",
+ "include/SPIRV/spirv.hpp",
+ ],
+ cmd = "mkdir -p $(@D)/include/SPIRV && cp $(SRCS) $(@D)/include/SPIRV/",
+)
+
+cc_library(
+ name = "SPIRV_headers",
+ hdrs = [":export_spirv_headers"],
+ copts = COMMON_COPTS,
+ includes = [
+ "include",
+ "include/SPIRV",
+ ],
+ linkstatic = 1,
+)
+
+cc_library(
+ name = "SPIRV",
+ srcs = glob(
+ ["SPIRV/*.cpp"],
+ exclude = [
+ "SPIRV/SpvTools.cpp",
+ ],
+ ),
+ hdrs = [
+ "SPIRV/GlslangToSpv.h",
+ "SPIRV/Logger.h",
+ "SPIRV/SPVRemapper.h",
+ "SPIRV/SpvBuilder.h",
+ "SPIRV/SpvTools.h",
+ "SPIRV/bitutils.h",
+ "SPIRV/disassemble.h",
+ "SPIRV/doc.h",
+ "SPIRV/hex_float.h",
+ "SPIRV/spvIR.h",
+ ],
+ copts = COMMON_COPTS,
+ includes = ["SPIRV"],
+ linkopts = select({
+ "@bazel_tools//src/conditions:windows": [""],
+ "//conditions:default": ["-lm"],
+ }),
+ linkstatic = 1,
+ deps = [
+ ":SPIRV_headers",
+ ":glslang",
+ ],
+)
+
+cc_library(
+ name = "glslang-default-resource-limits",
+ srcs = ["StandAlone/ResourceLimits.cpp"],
+ hdrs = ["StandAlone/ResourceLimits.h"],
+ copts = COMMON_COPTS,
+ linkstatic = 1,
+ deps = [":glslang"],
+)
+
+cc_binary(
+ name = "glslangValidator",
+ srcs = [
+ "StandAlone/StandAlone.cpp",
+ "StandAlone/Worklist.h",
+ ],
+ copts = COMMON_COPTS,
+ deps = [
+ ":SPIRV",
+ ":glslang",
+ ":glslang-default-resource-limits",
+ ],
+)
+
+cc_binary(
+ name = "spirv-remap",
+ srcs = ["StandAlone/spirv-remap.cpp"],
+ copts = COMMON_COPTS,
+ deps = [
+ ":SPIRV",
+ ":glslang",
+ ":glslang-default-resource-limits",
+ ],
+)
+
+filegroup(
+ name = "test_files",
+ srcs = glob(
+ ["Test/**"],
+ exclude = [
+ "Test/bump",
+ "Test/glslangValidator",
+ "Test/runtests",
+ ],
+ ),
+)
+
+cc_library(
+ name = "glslang_test_lib",
+ testonly = 1,
+ srcs = [
+ "gtests/HexFloat.cpp",
+ "gtests/Initializer.h",
+ "gtests/Settings.cpp",
+ "gtests/Settings.h",
+ "gtests/TestFixture.cpp",
+ "gtests/TestFixture.h",
+ "gtests/main.cpp",
+ ],
+ copts = COMMON_COPTS,
+ data = [":test_files"],
+ defines = select({
+ # Unfortunately we can't use $(location) in cc_library at the moment.
+ # See https://github.com/bazelbuild/bazel/issues/1023
+ # So we'll specify the path manually.
+ "@bazel_tools//src/conditions:windows":
+ ["GLSLANG_TEST_DIRECTORY='\"../../../../../Test\"'"],
+ "//conditions:default":
+ ["GLSLANG_TEST_DIRECTORY='\"Test\"'"],
+ }),
+ linkstatic = 1,
+ deps = [
+ ":SPIRV",
+ ":glslang",
+ ":glslang-default-resource-limits",
+ "@com_google_googletest//:gtest",
+ ],
+)
+
+GLSLANG_TESTS = glob(
+ ["gtests/*.FromFile.cpp"],
+ # Since we are not building the SPIRV-Tools dependency, the following tests
+ # cannot be performed.
+ exclude = [
+ "gtests/Hlsl.FromFile.cpp",
+ "gtests/Spv.FromFile.cpp",
+ ],
+)
+
+[cc_test(
+ name = test_file.replace("gtests/", "").replace(".FromFile.cpp", "") + "_test",
+ srcs = [test_file],
+ copts = COMMON_COPTS,
+ data = [
+ ":test_files",
+ ],
+ deps = [
+ ":SPIRV",
+ ":glslang",
+ ":glslang_test_lib",
+ ],
+) for test_file in GLSLANG_TESTS]
diff --git a/3rdparty/bgfx/3rdparty/glslang/BUILD.gn b/3rdparty/bgfx/3rdparty/glslang/BUILD.gn
index 55f21ad01ad..098d7de663b 100644
--- a/3rdparty/bgfx/3rdparty/glslang/BUILD.gn
+++ b/3rdparty/bgfx/3rdparty/glslang/BUILD.gn
@@ -33,6 +33,19 @@
import("//build_overrides/glslang.gni")
+# Both Chromium and Fuchsia use by default a set of warning errors
+# that is far too strict to compile this project. These are also
+# typically appended after |cflags|, overriding target-specific
+# definitions. To work around this, determine which configs to
+# add and remove in order to succesfully build the project.
+if (defined(is_fuchsia_tree) && is_fuchsia_tree) {
+ _configs_to_remove = [ "//build/config:default_warnings" ]
+ _configs_to_add = []
+} else {
+ _configs_to_remove = [ "//build/config/compiler:chromium_code" ]
+ _configs_to_add = [ "//build/config/compiler:no_chromium_code" ]
+}
+
spirv_tools_dir = glslang_spirv_tools_dir
config("glslang_public") {
@@ -47,8 +60,10 @@ source_set("glslang_sources") {
sources = [
"OGLCompilersDLL/InitializeDll.cpp",
"OGLCompilersDLL/InitializeDll.h",
+ "SPIRV/GLSL.ext.AMD.h",
"SPIRV/GLSL.ext.EXT.h",
"SPIRV/GLSL.ext.KHR.h",
+ "SPIRV/GLSL.ext.NV.h",
"SPIRV/GLSL.std.450.h",
"SPIRV/GlslangToSpv.cpp",
"SPIRV/GlslangToSpv.h",
@@ -159,7 +174,7 @@ source_set("glslang_sources") {
}
if (is_clang) {
- cflags_cc = [
+ cflags = [
"-Wno-extra-semi",
"-Wno-ignored-qualifiers",
"-Wno-implicit-fallthrough",
@@ -181,6 +196,9 @@ source_set("glslang_sources") {
"${spirv_tools_dir}:spvtools_opt",
"${spirv_tools_dir}:spvtools_val",
]
+
+ configs -= _configs_to_remove
+ configs += _configs_to_add
}
source_set("glslang_default_resource_limits_sources") {
@@ -192,6 +210,9 @@ source_set("glslang_default_resource_limits_sources") {
":glslang_sources",
]
public_configs = [ ":glslang_public" ]
+
+ configs -= _configs_to_remove
+ configs += _configs_to_add
}
executable("glslang_validator") {
@@ -207,6 +228,9 @@ executable("glslang_validator") {
":glslang_default_resource_limits_sources",
":glslang_sources",
]
+
+ configs -= _configs_to_remove
+ configs += _configs_to_add
}
executable("spirv-remap") {
@@ -217,4 +241,7 @@ executable("spirv-remap") {
deps = [
":glslang_sources",
]
+
+ configs -= _configs_to_remove
+ configs += _configs_to_add
}
diff --git a/3rdparty/bgfx/3rdparty/glslang/CMakeLists.txt b/3rdparty/bgfx/3rdparty/glslang/CMakeLists.txt
index c2adeb033d2..d6fc8d42aa5 100644
--- a/3rdparty/bgfx/3rdparty/glslang/CMakeLists.txt
+++ b/3rdparty/bgfx/3rdparty/glslang/CMakeLists.txt
@@ -6,6 +6,9 @@ if (POLICY CMP0048)
endif()
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
+# Enable compile commands database
+set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
+
# Adhere to GNU filesystem layout conventions
include(GNUInstallDirs)
@@ -13,6 +16,7 @@ include(GNUInstallDirs)
include(CMakeDependentOption)
option(BUILD_SHARED_LIBS "Build Shared Libraries" OFF)
+option(BUILD_EXTERNAL "Build external dependencies in /External" ON)
set(LIB_TYPE STATIC)
@@ -36,6 +40,8 @@ option(ENABLE_EMSCRIPTEN_ENVIRONMENT_NODE "If using Emscripten, builds to run on
CMAKE_DEPENDENT_OPTION(ENABLE_HLSL "Enables HLSL input support" ON "NOT ENABLE_GLSLANG_WEB" OFF)
option(ENABLE_OPT "Enables spirv-opt capability if present" ON)
+option(ENABLE_PCH "Enables Precompiled header" ON)
+option(ENABLE_CTEST "Enables testing" ON)
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT AND WIN32)
set(CMAKE_INSTALL_PREFIX "install" CACHE STRING "..." FORCE)
@@ -51,7 +57,7 @@ endif()
# Precompiled header macro. Parameters are source file list and filename for pch cpp file.
macro(glslang_pch SRCS PCHCPP)
- if(MSVC AND CMAKE_GENERATOR MATCHES "^Visual Studio")
+ if(MSVC AND CMAKE_GENERATOR MATCHES "^Visual Studio" AND ENABLE_PCH)
set(PCH_NAME "$(IntDir)\\pch.pch")
# make source files use/depend on PCH_NAME
set_source_files_properties(${${SRCS}} PROPERTIES COMPILE_FLAGS "/Yupch.h /FIpch.h /Fp${PCH_NAME} /Zm300" OBJECT_DEPENDS "${PCH_NAME}")
@@ -62,8 +68,10 @@ macro(glslang_pch SRCS PCHCPP)
endmacro(glslang_pch)
project(glslang)
-# make testing optional
-include(CTest)
+
+if(ENABLE_CTEST)
+ include(CTest)
+endif()
if(ENABLE_HLSL)
add_definitions(-DENABLE_HLSL)
@@ -148,12 +156,12 @@ endfunction(glslang_set_link_args)
# CMake needs to find the right version of python, right from the beginning,
# otherwise, it will find the wrong version and fail later
-if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/External)
+if(BUILD_EXTERNAL AND IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/External)
find_package(PythonInterp 3 REQUIRED)
-endif()
-# We depend on these for later projects, so they should come first.
-add_subdirectory(External)
+ # We depend on these for later projects, so they should come first.
+ add_subdirectory(External)
+endif()
if(NOT TARGET SPIRV-Tools-opt)
set(ENABLE_OPT OFF)
@@ -178,4 +186,29 @@ add_subdirectory(SPIRV)
if(ENABLE_HLSL)
add_subdirectory(hlsl)
endif(ENABLE_HLSL)
-add_subdirectory(gtests)
+if(ENABLE_CTEST)
+ add_subdirectory(gtests)
+endif()
+
+if(BUILD_TESTING)
+ # glslang-testsuite runs a bash script on Windows.
+ # Make sure to use '-o igncr' flag to ignore carriage returns (\r).
+ set(IGNORE_CR_FLAG "")
+ if(WIN32)
+ set(IGNORE_CR_FLAG -o igncr)
+ endif()
+
+ if (CMAKE_CONFIGURATION_TYPES)
+ set(RESULTS_PATH ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIGURATION>/localResults)
+ set(VALIDATOR_PATH ${CMAKE_CURRENT_BINARY_DIR}/StandAlone/$<CONFIGURATION>/glslangValidator)
+ set(REMAP_PATH ${CMAKE_CURRENT_BINARY_DIR}/StandAlone/$<CONFIGURATION>/spirv-remap)
+ else(CMAKE_CONFIGURATION_TYPES)
+ set(RESULTS_PATH ${CMAKE_CURRENT_BINARY_DIR}/localResults)
+ set(VALIDATOR_PATH ${CMAKE_CURRENT_BINARY_DIR}/StandAlone/glslangValidator)
+ set(REMAP_PATH ${CMAKE_CURRENT_BINARY_DIR}/StandAlone/spirv-remap)
+ endif(CMAKE_CONFIGURATION_TYPES)
+
+ add_test(NAME glslang-testsuite
+ COMMAND bash ${IGNORE_CR_FLAG} runtests ${RESULTS_PATH} ${VALIDATOR_PATH} ${REMAP_PATH}
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Test/)
+endif(BUILD_TESTING)
diff --git a/3rdparty/bgfx/3rdparty/glslang/OGLCompilersDLL/CMakeLists.txt b/3rdparty/bgfx/3rdparty/glslang/OGLCompilersDLL/CMakeLists.txt
index 5bb3f0ee696..af4ab587dcd 100644
--- a/3rdparty/bgfx/3rdparty/glslang/OGLCompilersDLL/CMakeLists.txt
+++ b/3rdparty/bgfx/3rdparty/glslang/OGLCompilersDLL/CMakeLists.txt
@@ -9,6 +9,7 @@ if(WIN32)
endif(WIN32)
if(ENABLE_GLSLANG_INSTALL)
- install(TARGETS OGLCompiler
+ install(TARGETS OGLCompiler EXPORT OGLCompilerTargets
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ install(EXPORT OGLCompilerTargets DESTINATION lib/cmake)
endif(ENABLE_GLSLANG_INSTALL)
diff --git a/3rdparty/bgfx/3rdparty/glslang/README.md b/3rdparty/bgfx/3rdparty/glslang/README.md
index 67aee9df41d..f5651e1d4bd 100644
--- a/3rdparty/bgfx/3rdparty/glslang/README.md
+++ b/3rdparty/bgfx/3rdparty/glslang/README.md
@@ -307,7 +307,7 @@ See `ShaderLang.h` and the usage of it in `StandAlone/StandAlone.cpp` for more
details. There is a block comment giving more detail above the calls for
`setEnvInput, setEnvClient, and setEnvTarget`.
-### C Functional Interface (orignal)
+### C Functional Interface (original)
This interface is in roughly the first 2/3 of `ShaderLang.h`, and referred to
as the `Sh*()` interface, as all the entry points start `Sh`.
diff --git a/3rdparty/bgfx/3rdparty/glslang/SPIRV/CMakeLists.txt b/3rdparty/bgfx/3rdparty/glslang/SPIRV/CMakeLists.txt
index 94d2ebebb3c..e25ec0a13f5 100644
--- a/3rdparty/bgfx/3rdparty/glslang/SPIRV/CMakeLists.txt
+++ b/3rdparty/bgfx/3rdparty/glslang/SPIRV/CMakeLists.txt
@@ -36,7 +36,9 @@ set(SPVREMAP_HEADERS
add_library(SPIRV ${LIB_TYPE} ${SOURCES} ${HEADERS})
set_property(TARGET SPIRV PROPERTY FOLDER glslang)
set_property(TARGET SPIRV PROPERTY POSITION_INDEPENDENT_CODE ON)
-target_include_directories(SPIRV PUBLIC ..)
+target_include_directories(SPIRV PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..>
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
if (ENABLE_SPVREMAPPER)
add_library(SPVRemapper ${LIB_TYPE} ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS})
@@ -57,7 +59,9 @@ if(ENABLE_OPT)
PRIVATE ${spirv-tools_SOURCE_DIR}/source
)
target_link_libraries(SPIRV glslang SPIRV-Tools-opt)
- target_include_directories(SPIRV PUBLIC ../External)
+ target_include_directories(SPIRV PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../External>
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/External>)
else()
target_link_libraries(SPIRV glslang)
endif(ENABLE_OPT)
@@ -70,22 +74,25 @@ endif(WIN32)
if(ENABLE_GLSLANG_INSTALL)
if(BUILD_SHARED_LIBS)
if (ENABLE_SPVREMAPPER)
- install(TARGETS SPVRemapper
+ install(TARGETS SPVRemapper EXPORT SPVRemapperTargets
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif()
- install(TARGETS SPIRV
+ install(TARGETS SPIRV EXPORT SPIRVTargets
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
else()
if (ENABLE_SPVREMAPPER)
- install(TARGETS SPVRemapper
+ install(TARGETS SPVRemapper EXPORT SPVRemapperTargets
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif()
- install(TARGETS SPIRV
+ install(TARGETS SPIRV EXPORT SPIRVTargets
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif()
+
+ install(EXPORT SPVRemapperTargets DESTINATION lib/cmake)
+ install(EXPORT SPIRVTargets DESTINATION lib/cmake)
- install(FILES ${HEADERS} ${SPVREMAP_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/SPIRV/)
+ install(FILES ${HEADERS} ${SPVREMAP_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/glslang/SPIRV/)
endif(ENABLE_GLSLANG_INSTALL)
diff --git a/3rdparty/bgfx/3rdparty/glslang/SPIRV/GLSL.ext.KHR.h b/3rdparty/bgfx/3rdparty/glslang/SPIRV/GLSL.ext.KHR.h
index ac26a054072..e58e836a8d8 100644
--- a/3rdparty/bgfx/3rdparty/glslang/SPIRV/GLSL.ext.KHR.h
+++ b/3rdparty/bgfx/3rdparty/glslang/SPIRV/GLSL.ext.KHR.h
@@ -40,6 +40,7 @@ static const char* const E_SPV_KHR_8bit_storage = "SPV_KHR_8bit_
static const char* const E_SPV_KHR_storage_buffer_storage_class = "SPV_KHR_storage_buffer_storage_class";
static const char* const E_SPV_KHR_post_depth_coverage = "SPV_KHR_post_depth_coverage";
static const char* const E_SPV_KHR_vulkan_memory_model = "SPV_KHR_vulkan_memory_model";
+static const char* const E_SPV_EXT_physical_storage_buffer = "SPV_EXT_physical_storage_buffer";
static const char* const E_SPV_KHR_physical_storage_buffer = "SPV_KHR_physical_storage_buffer";
static const char* const E_SPV_EXT_fragment_shader_interlock = "SPV_EXT_fragment_shader_interlock";
static const char* const E_SPV_KHR_shader_clock = "SPV_KHR_shader_clock";
diff --git a/3rdparty/bgfx/3rdparty/glslang/SPIRV/GlslangToSpv.cpp b/3rdparty/bgfx/3rdparty/glslang/SPIRV/GlslangToSpv.cpp
index afb405e40b7..ad16396fcfa 100644..100755
--- a/3rdparty/bgfx/3rdparty/glslang/SPIRV/GlslangToSpv.cpp
+++ b/3rdparty/bgfx/3rdparty/glslang/SPIRV/GlslangToSpv.cpp
@@ -100,11 +100,11 @@ struct OpDecorations {
spv::Decoration precision;
#ifdef GLSLANG_WEB
- void addNoContraction(spv::Builder&, spv::Id) const { };
- void addNonUniform(spv::Builder&, spv::Id) const { };
+ void addNoContraction(spv::Builder&, spv::Id) const { }
+ void addNonUniform(spv::Builder&, spv::Id) const { }
#else
- void addNoContraction(spv::Builder& builder, spv::Id t) { builder.addDecoration(t, noContraction); };
- void addNonUniform(spv::Builder& builder, spv::Id t) { builder.addDecoration(t, nonUniform); };
+ void addNoContraction(spv::Builder& builder, spv::Id t) { builder.addDecoration(t, noContraction); }
+ void addNonUniform(spv::Builder& builder, spv::Id t) { builder.addDecoration(t, nonUniform); }
protected:
spv::Decoration noContraction;
spv::Decoration nonUniform;
@@ -292,8 +292,8 @@ spv::ExecutionModel TranslateExecutionModel(EShLanguage stage)
switch (stage) {
case EShLangVertex: return spv::ExecutionModelVertex;
case EShLangFragment: return spv::ExecutionModelFragment;
-#ifndef GLSLANG_WEB
case EShLangCompute: return spv::ExecutionModelGLCompute;
+#ifndef GLSLANG_WEB
case EShLangTessControl: return spv::ExecutionModelTessellationControl;
case EShLangTessEvaluation: return spv::ExecutionModelTessellationEvaluation;
case EShLangGeometry: return spv::ExecutionModelGeometry;
@@ -374,22 +374,20 @@ spv::Decoration TranslateBlockDecoration(const glslang::TType& type, bool useSto
// Translate glslang type to SPIR-V memory decorations.
void TranslateMemoryDecoration(const glslang::TQualifier& qualifier, std::vector<spv::Decoration>& memory, bool useVulkanMemoryModel)
{
-#ifndef GLSLANG_WEB
if (!useVulkanMemoryModel) {
- if (qualifier.coherent)
+ if (qualifier.isCoherent())
memory.push_back(spv::DecorationCoherent);
- if (qualifier.volatil) {
+ if (qualifier.isVolatile()) {
memory.push_back(spv::DecorationVolatile);
memory.push_back(spv::DecorationCoherent);
}
}
- if (qualifier.restrict)
+ if (qualifier.isRestrict())
memory.push_back(spv::DecorationRestrict);
if (qualifier.isReadOnly())
memory.push_back(spv::DecorationNonWritable);
if (qualifier.isWriteOnly())
memory.push_back(spv::DecorationNonReadable);
-#endif
}
// Translate glslang type to SPIR-V layout decorations.
@@ -673,6 +671,13 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI
case glslang::EbvFace: return spv::BuiltInFrontFacing;
case glslang::EbvFragDepth: return spv::BuiltInFragDepth;
+ case glslang::EbvNumWorkGroups: return spv::BuiltInNumWorkgroups;
+ case glslang::EbvWorkGroupSize: return spv::BuiltInWorkgroupSize;
+ case glslang::EbvWorkGroupId: return spv::BuiltInWorkgroupId;
+ case glslang::EbvLocalInvocationId: return spv::BuiltInLocalInvocationId;
+ case glslang::EbvLocalInvocationIndex: return spv::BuiltInLocalInvocationIndex;
+ case glslang::EbvGlobalInvocationId: return spv::BuiltInGlobalInvocationId;
+
#ifndef GLSLANG_WEB
// These *Distance capabilities logically belong here, but if the member is declared and
// then never used, consumers of SPIR-V prefer the capability not be declared.
@@ -757,12 +762,6 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI
case glslang::EbvTessCoord: return spv::BuiltInTessCoord;
case glslang::EbvPatchVertices: return spv::BuiltInPatchVertices;
case glslang::EbvHelperInvocation: return spv::BuiltInHelperInvocation;
- case glslang::EbvNumWorkGroups: return spv::BuiltInNumWorkgroups;
- case glslang::EbvWorkGroupSize: return spv::BuiltInWorkgroupSize;
- case glslang::EbvWorkGroupId: return spv::BuiltInWorkgroupId;
- case glslang::EbvLocalInvocationId: return spv::BuiltInLocalInvocationId;
- case glslang::EbvLocalInvocationIndex: return spv::BuiltInLocalInvocationIndex;
- case glslang::EbvGlobalInvocationId: return spv::BuiltInGlobalInvocationId;
case glslang::EbvSubGroupSize:
builder.addExtension(spv::E_SPV_KHR_shader_ballot);
@@ -1203,8 +1202,8 @@ spv::StorageClass TGlslangToSpvTraverser::TranslateStorageClass(const glslang::T
case glslang::EvqGlobal: return spv::StorageClassPrivate;
case glslang::EvqConstReadOnly: return spv::StorageClassFunction;
case glslang::EvqTemporary: return spv::StorageClassFunction;
-#ifndef GLSLANG_WEB
case glslang::EvqShared: return spv::StorageClassWorkgroup;
+#ifndef GLSLANG_WEB
case glslang::EvqPayloadNV: return spv::StorageClassRayPayloadNV;
case glslang::EvqPayloadInNV: return spv::StorageClassIncomingRayPayloadNV;
case glslang::EvqHitAttrNV: return spv::StorageClassHitAttributeNV;
@@ -1399,7 +1398,7 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(unsigned int spvVersion, const gl
if (glslangIntermediate->usingPhysicalStorageBuffer()) {
addressingModel = spv::AddressingModelPhysicalStorageBuffer64EXT;
- builder.addIncorporatedExtension(spv::E_SPV_KHR_physical_storage_buffer, spv::Spv_1_5);
+ builder.addIncorporatedExtension(spv::E_SPV_EXT_physical_storage_buffer, spv::Spv_1_5);
builder.addCapability(spv::CapabilityPhysicalStorageBufferAddressesEXT);
};
if (glslangIntermediate->usingVulkanMemoryModel()) {
@@ -1465,13 +1464,20 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(unsigned int spvVersion, const gl
if (mode != spv::ExecutionModeMax)
builder.addExecutionMode(shaderEntry, (spv::ExecutionMode)mode);
switch (glslangIntermediate->getInterlockOrdering()) {
- case glslang::EioPixelInterlockOrdered: mode = spv::ExecutionModePixelInterlockOrderedEXT; break;
- case glslang::EioPixelInterlockUnordered: mode = spv::ExecutionModePixelInterlockUnorderedEXT; break;
- case glslang::EioSampleInterlockOrdered: mode = spv::ExecutionModeSampleInterlockOrderedEXT; break;
- case glslang::EioSampleInterlockUnordered: mode = spv::ExecutionModeSampleInterlockUnorderedEXT; break;
- case glslang::EioShadingRateInterlockOrdered: mode = spv::ExecutionModeShadingRateInterlockOrderedEXT; break;
- case glslang::EioShadingRateInterlockUnordered: mode = spv::ExecutionModeShadingRateInterlockUnorderedEXT; break;
- default: mode = spv::ExecutionModeMax; break;
+ case glslang::EioPixelInterlockOrdered: mode = spv::ExecutionModePixelInterlockOrderedEXT;
+ break;
+ case glslang::EioPixelInterlockUnordered: mode = spv::ExecutionModePixelInterlockUnorderedEXT;
+ break;
+ case glslang::EioSampleInterlockOrdered: mode = spv::ExecutionModeSampleInterlockOrderedEXT;
+ break;
+ case glslang::EioSampleInterlockUnordered: mode = spv::ExecutionModeSampleInterlockUnorderedEXT;
+ break;
+ case glslang::EioShadingRateInterlockOrdered: mode = spv::ExecutionModeShadingRateInterlockOrderedEXT;
+ break;
+ case glslang::EioShadingRateInterlockUnordered: mode = spv::ExecutionModeShadingRateInterlockUnorderedEXT;
+ break;
+ default: mode = spv::ExecutionModeMax;
+ break;
}
if (mode != spv::ExecutionModeMax) {
builder.addExecutionMode(shaderEntry, (spv::ExecutionMode)mode);
@@ -1489,7 +1495,6 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(unsigned int spvVersion, const gl
#endif
break;
-#ifndef GLSLANG_WEB
case EShLangCompute:
builder.addCapability(spv::CapabilityShader);
builder.addExecutionMode(shaderEntry, spv::ExecutionModeLocalSize, glslangIntermediate->getLocalSize(0),
@@ -1505,6 +1510,7 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(unsigned int spvVersion, const gl
builder.addExtension(spv::E_SPV_NV_compute_shader_derivatives);
}
break;
+#ifndef GLSLANG_WEB
case EShLangTessEvaluation:
case EShLangTessControl:
builder.addCapability(spv::CapabilityTessellation);
@@ -1624,11 +1630,11 @@ void TGlslangToSpvTraverser::finishSpv()
for (auto it = iOSet.cbegin(); it != iOSet.cend(); ++it)
entryPoint->addIdOperand(*it);
-#ifndef GLSLANG_WEB
- // Add capabilities, extensions, remove unneeded decorations, etc.,
+ // Add capabilities, extensions, remove unneeded decorations, etc.,
// based on the resulting SPIR-V.
+ // Note: WebGPU code generation must have the opportunity to aggressively
+ // prune unreachable merge blocks and continue targets.
builder.postProcess();
-#endif
}
// Write the SPV into 'out'.
@@ -2546,7 +2552,6 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
binOp = glslang::EOpMod;
break;
-#ifndef GLSLANG_WEB
case glslang::EOpEmitVertex:
case glslang::EOpEndPrimitive:
case glslang::EOpBarrier:
@@ -2570,10 +2575,6 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
// These all have 0 operands and will naturally finish up in the code below for 0 operands
break;
- case glslang::EOpAtomicStore:
- noReturnValue = true;
- // fallthrough
- case glslang::EOpAtomicLoad:
case glslang::EOpAtomicAdd:
case glslang::EOpAtomicMin:
case glslang::EOpAtomicMax:
@@ -2585,6 +2586,14 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
atomic = true;
break;
+#ifndef GLSLANG_WEB
+ case glslang::EOpAtomicStore:
+ noReturnValue = true;
+ // fallthrough
+ case glslang::EOpAtomicLoad:
+ atomic = true;
+ break;
+
case glslang::EOpAtomicCounterAdd:
case glslang::EOpAtomicCounterSubtract:
case glslang::EOpAtomicCounterMin:
@@ -2667,6 +2676,19 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
if (arg == 1)
lvalue = true;
break;
+
+ case glslang::EOpAtomicAdd:
+ case glslang::EOpAtomicMin:
+ case glslang::EOpAtomicMax:
+ case glslang::EOpAtomicAnd:
+ case glslang::EOpAtomicOr:
+ case glslang::EOpAtomicXor:
+ case glslang::EOpAtomicExchange:
+ case glslang::EOpAtomicCompSwap:
+ if (arg == 0)
+ lvalue = true;
+ break;
+
#ifndef GLSLANG_WEB
case glslang::EOpFrexp:
if (arg == 1)
@@ -2685,14 +2707,6 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
invertedType = convertGlslangToSpvType(glslangOperands[0]->getAsBinaryNode()->getLeft()->getType());
}
break;
- case glslang::EOpAtomicAdd:
- case glslang::EOpAtomicMin:
- case glslang::EOpAtomicMax:
- case glslang::EOpAtomicAnd:
- case glslang::EOpAtomicOr:
- case glslang::EOpAtomicXor:
- case glslang::EOpAtomicExchange:
- case glslang::EOpAtomicCompSwap:
case glslang::EOpAtomicLoad:
case glslang::EOpAtomicStore:
case glslang::EOpAtomicCounterAdd:
@@ -2818,12 +2832,12 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
builder.createNoResultOp(spv::OpCooperativeMatrixStoreNV, idImmOps);
result = 0;
- } else if (atomic) {
- // Handle all atomics
- result = createAtomicOperation(node->getOp(), precision, resultType(), operands, node->getBasicType(), lvalueCoherentFlags);
} else
#endif
- {
+ if (atomic) {
+ // Handle all atomics
+ result = createAtomicOperation(node->getOp(), precision, resultType(), operands, node->getBasicType(), lvalueCoherentFlags);
+ } else {
// Pass through to generic operations.
switch (glslangOperands.size()) {
case 0:
@@ -3535,8 +3549,8 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
builder.addIncorporatedExtension("SPV_EXT_descriptor_indexing", spv::Spv_1_5);
builder.addCapability(spv::CapabilityRuntimeDescriptorArrayEXT);
}
- spvType = builder.makeRuntimeArray(spvType);
#endif
+ spvType = builder.makeRuntimeArray(spvType);
}
if (stride > 0)
builder.addDecoration(spvType, spv::DecorationArrayStride, stride);
@@ -3701,6 +3715,7 @@ void TGlslangToSpvTraverser::decorateStructType(const glslang::TType& type,
for (unsigned int i = 0; i < memory.size(); ++i)
builder.addMemberDecoration(spvType, member, memory[i]);
}
+
#endif
// Location assignment was already completed correctly by the front end,
@@ -4159,9 +4174,11 @@ void TGlslangToSpvTraverser::makeFunctions(const glslang::TIntermSequence& glslF
// memory and use RestrictPointer/AliasedPointer.
if (originalParam(type.getQualifier().storage, type, false) ||
!writableParam(type.getQualifier().storage)) {
- decorations.push_back(type.getQualifier().restrict ? spv::DecorationRestrict : spv::DecorationAliased);
+ decorations.push_back(type.getQualifier().isRestrict() ? spv::DecorationRestrict :
+ spv::DecorationAliased);
} else {
- decorations.push_back(type.getQualifier().restrict ? spv::DecorationRestrictPointerEXT : spv::DecorationAliasedPointerEXT);
+ decorations.push_back(type.getQualifier().isRestrict() ? spv::DecorationRestrictPointerEXT :
+ spv::DecorationAliasedPointerEXT);
}
}
};
@@ -4969,6 +4986,7 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO
}
}
+#ifndef GLSLANG_WEB
// nonprivate
if (imageType.getQualifier().nonprivate) {
params.nonprivate = true;
@@ -4978,6 +4996,7 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO
if (imageType.getQualifier().volatil) {
params.volatil = true;
}
+#endif
std::vector<spv::Id> result( 1,
builder.createTextureCall(precision, resultType(), sparse, cracked.fetch, cracked.proj, cracked.gather,
@@ -6275,6 +6294,9 @@ spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, OpDecora
break;
case glslang::EOpConvPtrToUvec2:
case glslang::EOpConvUvec2ToPtr:
+ if (builder.isVector(operand))
+ builder.promoteIncorporatedExtension(spv::E_SPV_EXT_physical_storage_buffer,
+ spv::E_SPV_KHR_physical_storage_buffer, spv::Spv_1_5);
convOp = spv::OpBitcast;
break;
#endif
@@ -6398,7 +6420,7 @@ spv::Id TGlslangToSpvTraverser::createAtomicOperation(glslang::TOperator op, spv
scopeId = builder.makeUintConstant(spv::ScopeDevice);
}
// semantics default to relaxed
- spv::Id semanticsId = builder.makeUintConstant(lvalueCoherentFlags.isVolatile() ?
+ spv::Id semanticsId = builder.makeUintConstant(lvalueCoherentFlags.isVolatile() && glslangIntermediate->usingVulkanMemoryModel() ?
spv::MemorySemanticsVolatileMask :
spv::MemorySemanticsMaskNone);
spv::Id semanticsId2 = semanticsId;
@@ -7167,6 +7189,48 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv::
case glslang::EOpRefract:
libCall = spv::GLSLstd450Refract;
break;
+ case glslang::EOpBarrier:
+ {
+ // This is for the extended controlBarrier function, with four operands.
+ // The unextended barrier() goes through createNoArgOperation.
+ assert(operands.size() == 4);
+ unsigned int executionScope = builder.getConstantScalar(operands[0]);
+ unsigned int memoryScope = builder.getConstantScalar(operands[1]);
+ unsigned int semantics = builder.getConstantScalar(operands[2]) | builder.getConstantScalar(operands[3]);
+ builder.createControlBarrier((spv::Scope)executionScope, (spv::Scope)memoryScope, (spv::MemorySemanticsMask)semantics);
+ if (semantics & (spv::MemorySemanticsMakeAvailableKHRMask |
+ spv::MemorySemanticsMakeVisibleKHRMask |
+ spv::MemorySemanticsOutputMemoryKHRMask |
+ spv::MemorySemanticsVolatileMask)) {
+ builder.addCapability(spv::CapabilityVulkanMemoryModelKHR);
+ }
+ if (glslangIntermediate->usingVulkanMemoryModel() && (executionScope == spv::ScopeDevice || memoryScope == spv::ScopeDevice)) {
+ builder.addCapability(spv::CapabilityVulkanMemoryModelDeviceScopeKHR);
+ }
+ return 0;
+ }
+ break;
+ case glslang::EOpMemoryBarrier:
+ {
+ // This is for the extended memoryBarrier function, with three operands.
+ // The unextended memoryBarrier() goes through createNoArgOperation.
+ assert(operands.size() == 3);
+ unsigned int memoryScope = builder.getConstantScalar(operands[0]);
+ unsigned int semantics = builder.getConstantScalar(operands[1]) | builder.getConstantScalar(operands[2]);
+ builder.createMemoryBarrier((spv::Scope)memoryScope, (spv::MemorySemanticsMask)semantics);
+ if (semantics & (spv::MemorySemanticsMakeAvailableKHRMask |
+ spv::MemorySemanticsMakeVisibleKHRMask |
+ spv::MemorySemanticsOutputMemoryKHRMask |
+ spv::MemorySemanticsVolatileMask)) {
+ builder.addCapability(spv::CapabilityVulkanMemoryModelKHR);
+ }
+ if (glslangIntermediate->usingVulkanMemoryModel() && memoryScope == spv::ScopeDevice) {
+ builder.addCapability(spv::CapabilityVulkanMemoryModelDeviceScopeKHR);
+ }
+ return 0;
+ }
+ break;
+
#ifndef GLSLANG_WEB
case glslang::EOpInterpolateAtSample:
if (typeProxy == glslang::EbtFloat16)
@@ -7325,47 +7389,6 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv::
extBuiltins = getExtBuiltins(spv::E_SPV_AMD_shader_explicit_vertex_parameter);
libCall = spv::InterpolateAtVertexAMD;
break;
- case glslang::EOpBarrier:
- {
- // This is for the extended controlBarrier function, with four operands.
- // The unextended barrier() goes through createNoArgOperation.
- assert(operands.size() == 4);
- unsigned int executionScope = builder.getConstantScalar(operands[0]);
- unsigned int memoryScope = builder.getConstantScalar(operands[1]);
- unsigned int semantics = builder.getConstantScalar(operands[2]) | builder.getConstantScalar(operands[3]);
- builder.createControlBarrier((spv::Scope)executionScope, (spv::Scope)memoryScope, (spv::MemorySemanticsMask)semantics);
- if (semantics & (spv::MemorySemanticsMakeAvailableKHRMask |
- spv::MemorySemanticsMakeVisibleKHRMask |
- spv::MemorySemanticsOutputMemoryKHRMask |
- spv::MemorySemanticsVolatileMask)) {
- builder.addCapability(spv::CapabilityVulkanMemoryModelKHR);
- }
- if (glslangIntermediate->usingVulkanMemoryModel() && (executionScope == spv::ScopeDevice || memoryScope == spv::ScopeDevice)) {
- builder.addCapability(spv::CapabilityVulkanMemoryModelDeviceScopeKHR);
- }
- return 0;
- }
- break;
- case glslang::EOpMemoryBarrier:
- {
- // This is for the extended memoryBarrier function, with three operands.
- // The unextended memoryBarrier() goes through createNoArgOperation.
- assert(operands.size() == 3);
- unsigned int memoryScope = builder.getConstantScalar(operands[0]);
- unsigned int semantics = builder.getConstantScalar(operands[1]) | builder.getConstantScalar(operands[2]);
- builder.createMemoryBarrier((spv::Scope)memoryScope, (spv::MemorySemanticsMask)semantics);
- if (semantics & (spv::MemorySemanticsMakeAvailableKHRMask |
- spv::MemorySemanticsMakeVisibleKHRMask |
- spv::MemorySemanticsOutputMemoryKHRMask |
- spv::MemorySemanticsVolatileMask)) {
- builder.addCapability(spv::CapabilityVulkanMemoryModelKHR);
- }
- if (glslangIntermediate->usingVulkanMemoryModel() && memoryScope == spv::ScopeDevice) {
- builder.addCapability(spv::CapabilityVulkanMemoryModelDeviceScopeKHR);
- }
- return 0;
- }
- break;
case glslang::EOpReportIntersectionNV:
{
@@ -7473,17 +7496,10 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv::
// Intrinsics with no arguments (or no return value, and no precision).
spv::Id TGlslangToSpvTraverser::createNoArgOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId)
{
-#ifndef GLSLANG_WEB
// GLSL memory barriers use queuefamily scope in new model, device scope in old model
spv::Scope memoryBarrierScope = glslangIntermediate->usingVulkanMemoryModel() ? spv::ScopeQueueFamilyKHR : spv::ScopeDevice;
switch (op) {
- case glslang::EOpEmitVertex:
- builder.createNoResultOp(spv::OpEmitVertex);
- return 0;
- case glslang::EOpEndPrimitive:
- builder.createNoResultOp(spv::OpEndPrimitive);
- return 0;
case glslang::EOpBarrier:
if (glslangIntermediate->getStage() == EShLangTessControl) {
if (glslangIntermediate->usingVulkanMemoryModel()) {
@@ -7504,18 +7520,10 @@ spv::Id TGlslangToSpvTraverser::createNoArgOperation(glslang::TOperator op, spv:
builder.createMemoryBarrier(memoryBarrierScope, spv::MemorySemanticsAllMemory |
spv::MemorySemanticsAcquireReleaseMask);
return 0;
- case glslang::EOpMemoryBarrierAtomicCounter:
- builder.createMemoryBarrier(memoryBarrierScope, spv::MemorySemanticsAtomicCounterMemoryMask |
- spv::MemorySemanticsAcquireReleaseMask);
- return 0;
case glslang::EOpMemoryBarrierBuffer:
builder.createMemoryBarrier(memoryBarrierScope, spv::MemorySemanticsUniformMemoryMask |
spv::MemorySemanticsAcquireReleaseMask);
return 0;
- case glslang::EOpMemoryBarrierImage:
- builder.createMemoryBarrier(memoryBarrierScope, spv::MemorySemanticsImageMemoryMask |
- spv::MemorySemanticsAcquireReleaseMask);
- return 0;
case glslang::EOpMemoryBarrierShared:
builder.createMemoryBarrier(memoryBarrierScope, spv::MemorySemanticsWorkgroupMemoryMask |
spv::MemorySemanticsAcquireReleaseMask);
@@ -7524,6 +7532,15 @@ spv::Id TGlslangToSpvTraverser::createNoArgOperation(glslang::TOperator op, spv:
builder.createMemoryBarrier(spv::ScopeWorkgroup, spv::MemorySemanticsAllMemory |
spv::MemorySemanticsAcquireReleaseMask);
return 0;
+#ifndef GLSLANG_WEB
+ case glslang::EOpMemoryBarrierAtomicCounter:
+ builder.createMemoryBarrier(memoryBarrierScope, spv::MemorySemanticsAtomicCounterMemoryMask |
+ spv::MemorySemanticsAcquireReleaseMask);
+ return 0;
+ case glslang::EOpMemoryBarrierImage:
+ builder.createMemoryBarrier(memoryBarrierScope, spv::MemorySemanticsImageMemoryMask |
+ spv::MemorySemanticsAcquireReleaseMask);
+ return 0;
case glslang::EOpAllMemoryBarrierWithGroupSync:
builder.createControlBarrier(spv::ScopeWorkgroup, spv::ScopeDevice,
spv::MemorySemanticsAllMemory |
@@ -7568,6 +7585,14 @@ spv::Id TGlslangToSpvTraverser::createNoArgOperation(glslang::TOperator op, spv:
builder.createMemoryBarrier(spv::ScopeSubgroup, spv::MemorySemanticsWorkgroupMemoryMask |
spv::MemorySemanticsAcquireReleaseMask);
return spv::NoResult;
+
+ case glslang::EOpEmitVertex:
+ builder.createNoResultOp(spv::OpEmitVertex);
+ return 0;
+ case glslang::EOpEndPrimitive:
+ builder.createNoResultOp(spv::OpEndPrimitive);
+ return 0;
+
case glslang::EOpSubgroupElect: {
std::vector<spv::Id> operands;
return createSubgroupOperation(op, typeId, operands, glslang::EbtVoid);
@@ -7615,10 +7640,10 @@ spv::Id TGlslangToSpvTraverser::createNoArgOperation(glslang::TOperator op, spv:
builder.addCapability(spv::CapabilityShaderClockKHR);
return builder.createOp(spv::OpReadClockKHR, typeId, args);
}
+#endif
default:
break;
}
-#endif
logger->missingFunctionality("unknown operation with no arguments");
@@ -7823,7 +7848,6 @@ spv::Id TGlslangToSpvTraverser::createSpvConstant(const glslang::TIntermTyped& n
// We now know we have a specialization constant to build
-#ifndef GLSLANG_WEB
// gl_WorkGroupSize is a special case until the front-end handles hierarchical specialization constants,
// even then, it's specialization ids are handled by special case syntax in GLSL: layout(local_size_x = ...
if (node.getType().getQualifier().builtIn == glslang::EbvWorkGroupSize) {
@@ -7838,7 +7862,6 @@ spv::Id TGlslangToSpvTraverser::createSpvConstant(const glslang::TIntermTyped& n
}
return builder.makeCompositeConstant(builder.makeVectorType(builder.makeUintType(32), 3), dimConstId, true);
}
-#endif
// An AST node labelled as specialization constant should be a symbol node.
// Its initializer should either be a sub tree with constant nodes, or a constant union array.
@@ -8174,7 +8197,8 @@ int GetSpirvGeneratorVersion()
// return 5; // make OpArrayLength result type be an int with signedness of 0
// return 6; // revert version 5 change, which makes a different (new) kind of incorrect code,
// versions 4 and 6 each generate OpArrayLength as it has long been done
- return 7; // GLSL volatile keyword maps to both SPIR-V decorations Volatile and Coherent
+ // return 7; // GLSL volatile keyword maps to both SPIR-V decorations Volatile and Coherent
+ return 8; // switch to new dead block eliminator; use OpUnreachable
}
// Write SPIR-V out to a binary file
diff --git a/3rdparty/bgfx/3rdparty/glslang/SPIRV/InReadableOrder.cpp b/3rdparty/bgfx/3rdparty/glslang/SPIRV/InReadableOrder.cpp
index 52b29613a45..9d9410be93c 100644
--- a/3rdparty/bgfx/3rdparty/glslang/SPIRV/InReadableOrder.cpp
+++ b/3rdparty/bgfx/3rdparty/glslang/SPIRV/InReadableOrder.cpp
@@ -61,17 +61,22 @@ namespace {
// Use by calling visit() on the root block.
class ReadableOrderTraverser {
public:
- explicit ReadableOrderTraverser(std::function<void(Block*)> callback) : callback_(callback) {}
+ ReadableOrderTraverser(std::function<void(Block*, spv::ReachReason, Block*)> callback)
+ : callback_(callback) {}
// Visits the block if it hasn't been visited already and isn't currently
- // being delayed. Invokes callback(block), then descends into its
+ // being delayed. Invokes callback(block, why, header), then descends into its
// successors. Delays merge-block and continue-block processing until all
- // the branches have been completed.
- void visit(Block* block)
+ // the branches have been completed. If |block| is an unreachable merge block or
+ // an unreachable continue target, then |header| is the corresponding header block.
+ void visit(Block* block, spv::ReachReason why, Block* header)
{
assert(block);
+ if (why == spv::ReachViaControlFlow) {
+ reachableViaControlFlow_.insert(block);
+ }
if (visited_.count(block) || delayed_.count(block))
return;
- callback_(block);
+ callback_(block, why, header);
visited_.insert(block);
Block* mergeBlock = nullptr;
Block* continueBlock = nullptr;
@@ -87,27 +92,40 @@ public:
delayed_.insert(continueBlock);
}
}
- const auto successors = block->getSuccessors();
- for (auto it = successors.cbegin(); it != successors.cend(); ++it)
- visit(*it);
+ if (why == spv::ReachViaControlFlow) {
+ const auto& successors = block->getSuccessors();
+ for (auto it = successors.cbegin(); it != successors.cend(); ++it)
+ visit(*it, why, nullptr);
+ }
if (continueBlock) {
+ const spv::ReachReason continueWhy =
+ (reachableViaControlFlow_.count(continueBlock) > 0)
+ ? spv::ReachViaControlFlow
+ : spv::ReachDeadContinue;
delayed_.erase(continueBlock);
- visit(continueBlock);
+ visit(continueBlock, continueWhy, block);
}
if (mergeBlock) {
+ const spv::ReachReason mergeWhy =
+ (reachableViaControlFlow_.count(mergeBlock) > 0)
+ ? spv::ReachViaControlFlow
+ : spv::ReachDeadMerge;
delayed_.erase(mergeBlock);
- visit(mergeBlock);
+ visit(mergeBlock, mergeWhy, block);
}
}
private:
- std::function<void(Block*)> callback_;
+ std::function<void(Block*, spv::ReachReason, Block*)> callback_;
// Whether a block has already been visited or is being delayed.
std::unordered_set<Block *> visited_, delayed_;
+
+ // The set of blocks that actually are reached via control flow.
+ std::unordered_set<Block *> reachableViaControlFlow_;
};
}
-void spv::inReadableOrder(Block* root, std::function<void(Block*)> callback)
+void spv::inReadableOrder(Block* root, std::function<void(Block*, spv::ReachReason, Block*)> callback)
{
- ReadableOrderTraverser(callback).visit(root);
+ ReadableOrderTraverser(callback).visit(root, spv::ReachViaControlFlow, nullptr);
}
diff --git a/3rdparty/bgfx/3rdparty/glslang/SPIRV/SpvBuilder.h b/3rdparty/bgfx/3rdparty/glslang/SPIRV/SpvBuilder.h
index bef7d3db1d3..8d8f34baaa8 100644
--- a/3rdparty/bgfx/3rdparty/glslang/SPIRV/SpvBuilder.h
+++ b/3rdparty/bgfx/3rdparty/glslang/SPIRV/SpvBuilder.h
@@ -106,11 +106,20 @@ public:
void addModuleProcessed(const std::string& p) { moduleProcesses.push_back(p.c_str()); }
void setEmitOpLines() { emitOpLines = true; }
void addExtension(const char* ext) { extensions.insert(ext); }
+ void removeExtension(const char* ext)
+ {
+ extensions.erase(ext);
+ }
void addIncorporatedExtension(const char* ext, SpvVersion incorporatedVersion)
{
if (getSpvVersion() < static_cast<unsigned>(incorporatedVersion))
addExtension(ext);
}
+ void promoteIncorporatedExtension(const char* baseExt, const char* promoExt, SpvVersion incorporatedVersion)
+ {
+ removeExtension(baseExt);
+ addIncorporatedExtension(promoExt, incorporatedVersion);
+ }
void addInclude(const std::string& name, const std::string& text)
{
spv::Id incId = getStringId(name);
@@ -674,14 +683,12 @@ public:
// based on the type of the base and the chain of dereferences.
Id accessChainGetInferredType();
- // Add capabilities, extensions, remove unneeded decorations, etc.,
+ // Add capabilities, extensions, remove unneeded decorations, etc.,
// based on the resulting SPIR-V.
void postProcess();
// Hook to visit each instruction in a block in a function
void postProcess(Instruction&);
- // Hook to visit each instruction in a reachable block in a function.
- void postProcessReachable(const Instruction&);
// Hook to visit each non-32-bit sized float/int operation in a block.
void postProcessType(const Instruction&, spv::Id typeId);
diff --git a/3rdparty/bgfx/3rdparty/glslang/SPIRV/SpvPostProcess.cpp b/3rdparty/bgfx/3rdparty/glslang/SPIRV/SpvPostProcess.cpp
index 832ee3ef73c..86fad580a2a 100644
--- a/3rdparty/bgfx/3rdparty/glslang/SPIRV/SpvPostProcess.cpp
+++ b/3rdparty/bgfx/3rdparty/glslang/SPIRV/SpvPostProcess.cpp
@@ -39,6 +39,7 @@
#include <cassert>
#include <cstdlib>
+#include <unordered_map>
#include <unordered_set>
#include <algorithm>
@@ -319,16 +320,14 @@ void Builder::postProcess(Instruction& inst)
}
}
-// Called for each instruction in a reachable block.
-void Builder::postProcessReachable(const Instruction&)
-{
- // did have code here, but questionable to do so without deleting the instructions
-}
-
// comment in header
void Builder::postProcess()
{
+ // reachableBlocks is the set of blockss reached via control flow, or which are
+ // unreachable continue targert or unreachable merge.
std::unordered_set<const Block*> reachableBlocks;
+ std::unordered_map<Block*, Block*> headerForUnreachableContinue;
+ std::unordered_set<Block*> unreachableMerges;
std::unordered_set<Id> unreachableDefinitions;
// Collect IDs defined in unreachable blocks. For each function, label the
// reachable blocks first. Then for each unreachable block, collect the
@@ -336,16 +335,41 @@ void Builder::postProcess()
for (auto fi = module.getFunctions().cbegin(); fi != module.getFunctions().cend(); fi++) {
Function* f = *fi;
Block* entry = f->getEntryBlock();
- inReadableOrder(entry, [&reachableBlocks](const Block* b) { reachableBlocks.insert(b); });
+ inReadableOrder(entry,
+ [&reachableBlocks, &unreachableMerges, &headerForUnreachableContinue]
+ (Block* b, ReachReason why, Block* header) {
+ reachableBlocks.insert(b);
+ if (why == ReachDeadContinue) headerForUnreachableContinue[b] = header;
+ if (why == ReachDeadMerge) unreachableMerges.insert(b);
+ });
for (auto bi = f->getBlocks().cbegin(); bi != f->getBlocks().cend(); bi++) {
Block* b = *bi;
- if (reachableBlocks.count(b) == 0) {
- for (auto ii = b->getInstructions().cbegin(); ii != b->getInstructions().cend(); ii++)
+ if (unreachableMerges.count(b) != 0 || headerForUnreachableContinue.count(b) != 0) {
+ auto ii = b->getInstructions().cbegin();
+ ++ii; // Keep potential decorations on the label.
+ for (; ii != b->getInstructions().cend(); ++ii)
+ unreachableDefinitions.insert(ii->get()->getResultId());
+ } else if (reachableBlocks.count(b) == 0) {
+ // The normal case for unreachable code. All definitions are considered dead.
+ for (auto ii = b->getInstructions().cbegin(); ii != b->getInstructions().cend(); ++ii)
unreachableDefinitions.insert(ii->get()->getResultId());
}
}
}
+ // Modify unreachable merge blocks and unreachable continue targets.
+ // Delete their contents.
+ for (auto mergeIter = unreachableMerges.begin(); mergeIter != unreachableMerges.end(); ++mergeIter) {
+ (*mergeIter)->rewriteAsCanonicalUnreachableMerge();
+ }
+ for (auto continueIter = headerForUnreachableContinue.begin();
+ continueIter != headerForUnreachableContinue.end();
+ ++continueIter) {
+ Block* continue_target = continueIter->first;
+ Block* header = continueIter->second;
+ continue_target->rewriteAsCanonicalUnreachableContinue(header);
+ }
+
// Remove unneeded decorations, for unreachable instructions
decorations.erase(std::remove_if(decorations.begin(), decorations.end(),
[&unreachableDefinitions](std::unique_ptr<Instruction>& I) -> bool {
@@ -374,13 +398,6 @@ void Builder::postProcess()
}
}
- // process all reachable instructions...
- for (auto bi = reachableBlocks.cbegin(); bi != reachableBlocks.cend(); ++bi) {
- const Block* block = *bi;
- const auto function = [this](const std::unique_ptr<Instruction>& inst) { postProcessReachable(*inst.get()); };
- std::for_each(block->getInstructions().begin(), block->getInstructions().end(), function);
- }
-
// process all block-contained instructions
for (auto fi = module.getFunctions().cbegin(); fi != module.getFunctions().cend(); fi++) {
Function* f = *fi;
diff --git a/3rdparty/bgfx/3rdparty/glslang/SPIRV/SpvTools.cpp b/3rdparty/bgfx/3rdparty/glslang/SPIRV/SpvTools.cpp
index 698f154a39f..7c3b0391927 100644
--- a/3rdparty/bgfx/3rdparty/glslang/SPIRV/SpvTools.cpp
+++ b/3rdparty/bgfx/3rdparty/glslang/SPIRV/SpvTools.cpp
@@ -173,6 +173,7 @@ void SpirvToolsLegalize(const glslang::TIntermediate&, std::vector<unsigned int>
if (options->generateDebugInfo) {
optimizer.RegisterPass(spvtools::CreatePropagateLineInfoPass());
}
+ optimizer.RegisterPass(spvtools::CreateWrapOpKillPass());
optimizer.RegisterPass(spvtools::CreateDeadBranchElimPass());
optimizer.RegisterPass(spvtools::CreateMergeReturnPass());
optimizer.RegisterPass(spvtools::CreateInlineExhaustivePass());
@@ -196,8 +197,6 @@ void SpirvToolsLegalize(const glslang::TIntermediate&, std::vector<unsigned int>
optimizer.RegisterPass(spvtools::CreateDeadInsertElimPass());
if (options->optimizeSize) {
optimizer.RegisterPass(spvtools::CreateRedundancyEliminationPass());
- // TODO(greg-lunarg): Add this when AMD driver issues are resolved
- // optimizer.RegisterPass(CreateCommonUniformElimPass());
}
optimizer.RegisterPass(spvtools::CreateAggressiveDCEPass());
optimizer.RegisterPass(spvtools::CreateCFGCleanupPass());
diff --git a/3rdparty/bgfx/3rdparty/glslang/SPIRV/spvIR.h b/3rdparty/bgfx/3rdparty/glslang/SPIRV/spvIR.h
index 7e2d4bc1452..994224d1fbe 100755
--- a/3rdparty/bgfx/3rdparty/glslang/SPIRV/spvIR.h
+++ b/3rdparty/bgfx/3rdparty/glslang/SPIRV/spvIR.h
@@ -226,6 +226,36 @@ public:
return nullptr;
}
+ // Change this block into a canonical dead merge block. Delete instructions
+ // as necessary. A canonical dead merge block has only an OpLabel and an
+ // OpUnreachable.
+ void rewriteAsCanonicalUnreachableMerge() {
+ assert(localVariables.empty());
+ // Delete all instructions except for the label.
+ assert(instructions.size() > 0);
+ instructions.resize(1);
+ successors.clear();
+ Instruction* unreachable = new Instruction(OpUnreachable);
+ addInstruction(std::unique_ptr<Instruction>(unreachable));
+ }
+ // Change this block into a canonical dead continue target branching to the
+ // given header ID. Delete instructions as necessary. A canonical dead continue
+ // target has only an OpLabel and an unconditional branch back to the corresponding
+ // header.
+ void rewriteAsCanonicalUnreachableContinue(Block* header) {
+ assert(localVariables.empty());
+ // Delete all instructions except for the label.
+ assert(instructions.size() > 0);
+ instructions.resize(1);
+ successors.clear();
+ // Add OpBranch back to the header.
+ assert(header != nullptr);
+ Instruction* branch = new Instruction(OpBranch);
+ branch->addIdOperand(header->getId());
+ addInstruction(std::move(std::unique_ptr<Instruction>(branch)));
+ successors.push_back(header);
+ }
+
bool isTerminated() const
{
switch (instructions.back()->getOpCode()) {
@@ -235,6 +265,7 @@ public:
case OpKill:
case OpReturn:
case OpReturnValue:
+ case OpUnreachable:
return true;
default:
return false;
@@ -268,10 +299,24 @@ protected:
bool unreachable;
};
+// The different reasons for reaching a block in the inReadableOrder traversal.
+enum ReachReason {
+ // Reachable from the entry block via transfers of control, i.e. branches.
+ ReachViaControlFlow = 0,
+ // A continue target that is not reachable via control flow.
+ ReachDeadContinue,
+ // A merge block that is not reachable via control flow.
+ ReachDeadMerge
+};
+
// Traverses the control-flow graph rooted at root in an order suited for
// readable code generation. Invokes callback at every node in the traversal
-// order.
-void inReadableOrder(Block* root, std::function<void(Block*)> callback);
+// order. The callback arguments are:
+// - the block,
+// - the reason we reached the block,
+// - if the reason was that block is an unreachable continue or unreachable merge block
+// then the last parameter is the corresponding header block.
+void inReadableOrder(Block* root, std::function<void(Block*, ReachReason, Block* header)> callback);
//
// SPIR-V IR Function.
@@ -321,7 +366,7 @@ public:
parameterInstructions[p]->dump(out);
// Blocks
- inReadableOrder(blocks[0], [&out](const Block* b) { b->dump(out); });
+ inReadableOrder(blocks[0], [&out](const Block* b, ReachReason, Block*) { b->dump(out); });
Instruction end(0, 0, OpFunctionEnd);
end.dump(out);
}
diff --git a/3rdparty/bgfx/3rdparty/glslang/StandAlone/CMakeLists.txt b/3rdparty/bgfx/3rdparty/glslang/StandAlone/CMakeLists.txt
index 5cea53d9f64..0878965c1f1 100644
--- a/3rdparty/bgfx/3rdparty/glslang/StandAlone/CMakeLists.txt
+++ b/3rdparty/bgfx/3rdparty/glslang/StandAlone/CMakeLists.txt
@@ -4,8 +4,9 @@ set_property(TARGET glslang-default-resource-limits PROPERTY FOLDER glslang)
set_property(TARGET glslang-default-resource-limits PROPERTY POSITION_INDEPENDENT_CODE ON)
target_include_directories(glslang-default-resource-limits
- PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
- PUBLIC ${PROJECT_SOURCE_DIR})
+ PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
+ PUBLIC $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}>)
+
set(SOURCES StandAlone.cpp DirStackFileIncluder.h)
set(REMAPPER_SOURCES spirv-remap.cpp)
@@ -33,21 +34,27 @@ endif(WIN32)
target_link_libraries(glslangValidator ${LIBRARIES})
target_link_libraries(spirv-remap ${LIBRARIES})
-target_include_directories(glslangValidator PUBLIC ../External)
+target_include_directories(glslangValidator PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../External>
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/External>)
if(WIN32)
source_group("Source" FILES ${SOURCES})
endif(WIN32)
if(ENABLE_GLSLANG_INSTALL)
- install(TARGETS glslangValidator
+ install(TARGETS glslangValidator EXPORT glslangValidatorTargets
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
- install(TARGETS spirv-remap
+ install(TARGETS spirv-remap EXPORT spirv-remapTargets
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+
+ install(EXPORT glslangValidatorTargets DESTINATION lib/cmake)
+ install(EXPORT spirv-remapTargets DESTINATION lib/cmake)
if(BUILD_SHARED_LIBS)
- install(TARGETS glslang-default-resource-limits
+ install(TARGETS glslang-default-resource-limits EXPORT glslang-default-resource-limitsTargets
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ install(EXPORT glslang-default-resource-limitsTargets DESTINATION lib/cmake)
endif()
endif(ENABLE_GLSLANG_INSTALL)
diff --git a/3rdparty/bgfx/3rdparty/glslang/StandAlone/StandAlone.cpp b/3rdparty/bgfx/3rdparty/glslang/StandAlone/StandAlone.cpp
index 4be3a4f4785..07479321967 100644
--- a/3rdparty/bgfx/3rdparty/glslang/StandAlone/StandAlone.cpp
+++ b/3rdparty/bgfx/3rdparty/glslang/StandAlone/StandAlone.cpp
@@ -988,7 +988,7 @@ void CompileAndLinkShaderUnits(std::vector<ShaderCompUnit> compUnits)
// Set base bindings
shader->setShiftBinding(res, baseBinding[res][compUnit.stage]);
-
+
// Set bindings for particular resource sets
// TODO: use a range based for loop here, when available in all environments.
for (auto i = baseBindingForSet[res][compUnit.stage].begin();
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/130.frag b/3rdparty/bgfx/3rdparty/glslang/Test/130.frag
index 3e394110b55..8a5bfd522c7 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/130.frag
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/130.frag
@@ -167,3 +167,12 @@ void qux2()
}
layout(early_fragment_tests) out; // ERROR
+
+#extension GL_ARB_explicit_uniform_location : enable
+
+layout(location = 3) uniform vec4 ucolor0; // ERROR: explicit attrib location is also required for version < 330
+
+#extension GL_ARB_explicit_attrib_location : enable
+
+layout(location = 4) uniform vec4 ucolor1;
+
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/330.frag b/3rdparty/bgfx/3rdparty/glslang/Test/330.frag
index 9afa8f82697..a7ca87cdbfc 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/330.frag
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/330.frag
@@ -149,4 +149,17 @@ void fooKeyMem()
KeyMem.precise;
}
-layout(location=28, index=2) out vec4 outIndex2; // ERROR index out of range \ No newline at end of file
+layout(location=28, index=2) out vec4 outIndex2; // ERROR index out of range
+
+layout(location=4) uniform vec4 ucolor0; // ERROR: extension is not enabled
+
+#extension GL_ARB_explicit_uniform_location : enable
+
+layout(location=5) uniform vec4 ucolor1;
+
+layout(location=6) uniform ColorsBuffer // ERROR: location cannot be applied in uniform buffer block
+{
+ vec4 colors[128];
+} colorsBuffer;
+
+
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.aliasOpaque.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.aliasOpaque.frag.out
index 2e58bdd0755..887e4acd0f8 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.aliasOpaque.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.aliasOpaque.frag.out
@@ -1,6 +1,6 @@
hlsl.aliasOpaque.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 87
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.flattenOpaque.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.flattenOpaque.frag.out
index d334b7e6e1c..ad9e6c10c93 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.flattenOpaque.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.flattenOpaque.frag.out
@@ -1,6 +1,6 @@
hlsl.flattenOpaque.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 185
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.flattenOpaqueInit.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.flattenOpaqueInit.vert.out
index 921cb96a95e..6ed8da216b6 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.flattenOpaqueInit.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.flattenOpaqueInit.vert.out
@@ -1,6 +1,6 @@
hlsl.flattenOpaqueInit.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 134
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.flattenOpaqueInitMix.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.flattenOpaqueInitMix.vert.out
index 39770f45977..81ab5e60245 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.flattenOpaqueInitMix.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.flattenOpaqueInitMix.vert.out
@@ -1,6 +1,6 @@
hlsl.flattenOpaqueInitMix.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 97
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.flattenSubset.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.flattenSubset.frag.out
index 4628479ad60..562070d6b01 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.flattenSubset.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.flattenSubset.frag.out
@@ -1,6 +1,6 @@
hlsl.flattenSubset.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 66
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.flattenSubset2.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.flattenSubset2.frag.out
index 0d7ab5603f5..5cc280bff54 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.flattenSubset2.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.flattenSubset2.frag.out
@@ -1,6 +1,6 @@
hlsl.flattenSubset2.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 53
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.partialFlattenLocal.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.partialFlattenLocal.vert.out
index 27482b34d84..f4c9c5abe8a 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.partialFlattenLocal.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.partialFlattenLocal.vert.out
@@ -1,6 +1,6 @@
hlsl.partialFlattenLocal.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 158
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.partialFlattenMixed.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.partialFlattenMixed.vert.out
index e54fb7efa35..7be570bd5a5 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.partialFlattenMixed.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseLegalResults/hlsl.partialFlattenMixed.vert.out
@@ -1,6 +1,6 @@
hlsl.partialFlattenMixed.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 36
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/130.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/130.frag.out
index 81d055befea..0af9ab9f694 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/130.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/130.frag.out
@@ -29,10 +29,13 @@ ERROR: 0:153: 'early_fragment_tests' : not supported for this version or the ena
ERROR: 0:154: 'image load store' : not supported for this version or the enabled extensions
ERROR: 0:154: 'iimage2D' : Reserved word.
ERROR: 0:169: 'early_fragment_tests' : can only apply to 'in'
-ERROR: 28 compilation errors. No code generated.
+ERROR: 0:173: 'location qualifier on uniform or buffer' : not supported for this version or the enabled extensions
+ERROR: 29 compilation errors. No code generated.
Shader version: 130
+Requested GL_ARB_explicit_attrib_location
+Requested GL_ARB_explicit_uniform_location
Requested GL_ARB_gpu_shader5
Requested GL_ARB_separate_shader_objects
Requested GL_ARB_shader_image_load_store
@@ -402,12 +405,16 @@ ERROR: node is still EOpNull!
0:? 'gl_FogFragCoord' ( smooth in float)
0:? 'iimg2Dbad' (layout( r32i) uniform iimage2D)
0:? 'iimg2D' (layout( r32i) uniform iimage2D)
+0:? 'ucolor0' (layout( location=3) uniform 4-component vector of float)
+0:? 'ucolor1' (layout( location=4) uniform 4-component vector of float)
Linked fragment stage:
Shader version: 130
+Requested GL_ARB_explicit_attrib_location
+Requested GL_ARB_explicit_uniform_location
Requested GL_ARB_gpu_shader5
Requested GL_ARB_separate_shader_objects
Requested GL_ARB_shader_image_load_store
@@ -457,4 +464,6 @@ ERROR: node is still EOpNull!
0:? 'gl_FogFragCoord' ( smooth in float)
0:? 'iimg2Dbad' (layout( r32i) uniform iimage2D)
0:? 'iimg2D' (layout( r32i) uniform iimage2D)
+0:? 'ucolor0' (layout( location=3) uniform 4-component vector of float)
+0:? 'ucolor1' (layout( location=4) uniform 4-component vector of float)
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/330.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/330.frag.out
index 36ba7a2b3c6..bb2770f569e 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/330.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/330.frag.out
@@ -40,11 +40,14 @@ ERROR: 0:140: 'assign' : cannot convert from ' const float' to ' temp 2-compone
ERROR: 0:141: 'textureQueryLod' : no matching overloaded function found
ERROR: 0:141: 'assign' : cannot convert from ' const float' to ' temp 2-component vector of float'
ERROR: 0:152: 'index' : value must be 0 or 1
-ERROR: 41 compilation errors. No code generated.
+ERROR: 0:154: 'location qualifier on uniform or buffer' : not supported for this version or the enabled extensions
+ERROR: 0:160: 'location' : cannot apply to uniform or buffer block
+ERROR: 43 compilation errors. No code generated.
Shader version: 330
Requested GL_ARB_enhanced_layouts
+Requested GL_ARB_explicit_uniform_location
Requested GL_ARB_separate_shader_objects
ERROR: node is still EOpNull!
0:8 Function Definition: main( ( global void)
@@ -126,6 +129,9 @@ ERROR: node is still EOpNull!
0:? 'precise' ( global int)
0:? 'KeyMem' ( global structure{ global int precise})
0:? 'outIndex2' (layout( location=28 index=0) out 4-component vector of float)
+0:? 'ucolor0' (layout( location=4) uniform 4-component vector of float)
+0:? 'ucolor1' (layout( location=5) uniform 4-component vector of float)
+0:? 'colorsBuffer' (layout( location=6 column_major shared) uniform block{layout( column_major shared) uniform 128-element array of 4-component vector of float colors})
Linked fragment stage:
@@ -135,6 +141,7 @@ ERROR: Linking fragment stage: Cannot use both gl_FragColor and gl_FragData
Shader version: 330
Requested GL_ARB_enhanced_layouts
+Requested GL_ARB_explicit_uniform_location
Requested GL_ARB_separate_shader_objects
ERROR: node is still EOpNull!
0:8 Function Definition: main( ( global void)
@@ -191,4 +198,7 @@ ERROR: node is still EOpNull!
0:? 'precise' ( global int)
0:? 'KeyMem' ( global structure{ global int precise})
0:? 'outIndex2' (layout( location=28 index=0) out 4-component vector of float)
+0:? 'ucolor0' (layout( location=4) uniform 4-component vector of float)
+0:? 'ucolor1' (layout( location=5) uniform 4-component vector of float)
+0:? 'colorsBuffer' (layout( location=6 column_major shared) uniform block{layout( column_major shared) uniform 128-element array of 4-component vector of float colors})
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/compoundsuffix.frag.hlsl b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/compoundsuffix.frag.hlsl
index f47c97dc8e6..650d1d0b8fd 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/compoundsuffix.frag.hlsl
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/compoundsuffix.frag.hlsl
@@ -1,6 +1,6 @@
compoundsuffix.frag.hlsl
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 22
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/glsl.450.subgroup.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/glsl.450.subgroup.frag.out
index e61523e9027..817abb244cf 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/glsl.450.subgroup.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/glsl.450.subgroup.frag.out
@@ -85,11 +85,13 @@ ERROR: 0:95: 'subgroupPartitionedExclusiveMaxNV' : required extension not reques
ERROR: 0:96: 'subgroupPartitionedExclusiveAndNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:97: 'subgroupPartitionedExclusiveOrNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
ERROR: 0:98: 'subgroupPartitionedExclusiveXorNV' : required extension not requested: GL_NV_shader_subgroup_partitioned
-ERROR: 0:232: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins
-ERROR: 0:233: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins
-ERROR: 0:234: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins
-ERROR: 0:235: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins
-ERROR: 90 compilation errors. No code generated.
+ERROR: 0:124: 'id' : argument must be compile-time constant
+ERROR: 0:199: 'id' : argument must be compile-time constant
+ERROR: 0:236: 'gl_WarpsPerSMNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:237: 'gl_SMCountNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:238: 'gl_WarpIDNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 0:239: 'gl_SMIDNV' : required extension not requested: GL_NV_shader_sm_builtins
+ERROR: 92 compilation errors. No code generated.
Shader version: 450
@@ -352,270 +354,278 @@ ERROR: node is still EOpNull!
0:116 Function Definition: ballot_works(vf4; ( global void)
0:116 Function Parameters:
0:116 'f4' ( in 4-component vector of float)
-0:117 Sequence
-0:117 'gl_SubgroupEqMask' ( flat in 4-component vector of uint SubgroupEqMask)
-0:118 'gl_SubgroupGeMask' ( flat in 4-component vector of uint SubgroupGeMask)
-0:119 'gl_SubgroupGtMask' ( flat in 4-component vector of uint SubgroupGtMask)
-0:120 'gl_SubgroupLeMask' ( flat in 4-component vector of uint SubgroupLeMask)
-0:121 'gl_SubgroupLtMask' ( flat in 4-component vector of uint SubgroupLtMask)
-0:122 subgroupBroadcast ( global 4-component vector of float)
-0:122 'f4' ( in 4-component vector of float)
-0:122 Constant:
-0:122 0 (const uint)
-0:123 subgroupBroadcastFirst ( global 4-component vector of float)
+0:? Sequence
+0:118 'gl_SubgroupEqMask' ( flat in 4-component vector of uint SubgroupEqMask)
+0:119 'gl_SubgroupGeMask' ( flat in 4-component vector of uint SubgroupGeMask)
+0:120 'gl_SubgroupGtMask' ( flat in 4-component vector of uint SubgroupGtMask)
+0:121 'gl_SubgroupLeMask' ( flat in 4-component vector of uint SubgroupLeMask)
+0:122 'gl_SubgroupLtMask' ( flat in 4-component vector of uint SubgroupLtMask)
+0:123 subgroupBroadcast ( global 4-component vector of float)
0:123 'f4' ( in 4-component vector of float)
-0:124 Sequence
-0:124 move second child to first child ( temp 4-component vector of uint)
-0:124 'ballot' ( temp 4-component vector of uint)
-0:124 subgroupBallot ( global 4-component vector of uint)
-0:124 Constant:
-0:124 false (const bool)
-0:125 subgroupInverseBallot ( global bool)
-0:125 Constant:
-0:125 1 (const uint)
-0:125 1 (const uint)
-0:125 1 (const uint)
-0:125 1 (const uint)
-0:126 subgroupBallotBitExtract ( global bool)
-0:126 'ballot' ( temp 4-component vector of uint)
-0:126 Constant:
-0:126 0 (const uint)
-0:127 subgroupBallotBitCount ( global uint)
-0:127 'ballot' ( temp 4-component vector of uint)
-0:128 subgroupBallotInclusiveBitCount ( global uint)
+0:123 Constant:
+0:123 0 (const uint)
+0:124 subgroupBroadcast ( global 4-component vector of float)
+0:124 'f4' ( in 4-component vector of float)
+0:124 Convert int to uint ( temp uint)
+0:124 'i' ( temp int)
+0:125 subgroupBroadcastFirst ( global 4-component vector of float)
+0:125 'f4' ( in 4-component vector of float)
+0:126 Sequence
+0:126 move second child to first child ( temp 4-component vector of uint)
+0:126 'ballot' ( temp 4-component vector of uint)
+0:126 subgroupBallot ( global 4-component vector of uint)
+0:126 Constant:
+0:126 false (const bool)
+0:127 subgroupInverseBallot ( global bool)
+0:127 Constant:
+0:127 1 (const uint)
+0:127 1 (const uint)
+0:127 1 (const uint)
+0:127 1 (const uint)
+0:128 subgroupBallotBitExtract ( global bool)
0:128 'ballot' ( temp 4-component vector of uint)
-0:129 subgroupBallotExclusiveBitCount ( global uint)
+0:128 Constant:
+0:128 0 (const uint)
+0:129 subgroupBallotBitCount ( global uint)
0:129 'ballot' ( temp 4-component vector of uint)
-0:130 subgroupBallotFindLSB ( global uint)
+0:130 subgroupBallotInclusiveBitCount ( global uint)
0:130 'ballot' ( temp 4-component vector of uint)
-0:131 subgroupBallotFindMSB ( global uint)
+0:131 subgroupBallotExclusiveBitCount ( global uint)
0:131 'ballot' ( temp 4-component vector of uint)
-0:135 Function Definition: vote_works(vf4; ( global void)
-0:135 Function Parameters:
-0:135 'f4' ( in 4-component vector of float)
-0:137 Sequence
-0:137 subgroupAll ( global bool)
-0:137 Constant:
-0:137 true (const bool)
-0:138 subgroupAny ( global bool)
-0:138 Constant:
-0:138 false (const bool)
-0:139 subgroupAllEqual ( global bool)
-0:139 'f4' ( in 4-component vector of float)
-0:144 Function Definition: shuffle_works(vf4; ( global void)
-0:144 Function Parameters:
-0:144 'f4' ( in 4-component vector of float)
-0:146 Sequence
-0:146 subgroupShuffle ( global 4-component vector of float)
-0:146 'f4' ( in 4-component vector of float)
-0:146 Constant:
-0:146 0 (const uint)
-0:147 subgroupShuffleXor ( global 4-component vector of float)
-0:147 'f4' ( in 4-component vector of float)
-0:147 Constant:
-0:147 1 (const uint)
-0:148 subgroupShuffleUp ( global 4-component vector of float)
+0:132 subgroupBallotFindLSB ( global uint)
+0:132 'ballot' ( temp 4-component vector of uint)
+0:133 subgroupBallotFindMSB ( global uint)
+0:133 'ballot' ( temp 4-component vector of uint)
+0:137 Function Definition: vote_works(vf4; ( global void)
+0:137 Function Parameters:
+0:137 'f4' ( in 4-component vector of float)
+0:139 Sequence
+0:139 subgroupAll ( global bool)
+0:139 Constant:
+0:139 true (const bool)
+0:140 subgroupAny ( global bool)
+0:140 Constant:
+0:140 false (const bool)
+0:141 subgroupAllEqual ( global bool)
+0:141 'f4' ( in 4-component vector of float)
+0:146 Function Definition: shuffle_works(vf4; ( global void)
+0:146 Function Parameters:
+0:146 'f4' ( in 4-component vector of float)
+0:148 Sequence
+0:148 subgroupShuffle ( global 4-component vector of float)
0:148 'f4' ( in 4-component vector of float)
0:148 Constant:
-0:148 1 (const uint)
-0:149 subgroupShuffleDown ( global 4-component vector of float)
+0:148 0 (const uint)
+0:149 subgroupShuffleXor ( global 4-component vector of float)
0:149 'f4' ( in 4-component vector of float)
0:149 Constant:
0:149 1 (const uint)
-0:153 Function Definition: arith_works(vf4; ( global void)
-0:153 Function Parameters:
-0:153 'f4' ( in 4-component vector of float)
+0:150 subgroupShuffleUp ( global 4-component vector of float)
+0:150 'f4' ( in 4-component vector of float)
+0:150 Constant:
+0:150 1 (const uint)
+0:151 subgroupShuffleDown ( global 4-component vector of float)
+0:151 'f4' ( in 4-component vector of float)
+0:151 Constant:
+0:151 1 (const uint)
+0:155 Function Definition: arith_works(vf4; ( global void)
+0:155 Function Parameters:
+0:155 'f4' ( in 4-component vector of float)
0:? Sequence
-0:156 subgroupAdd ( global 4-component vector of float)
-0:156 'f4' ( in 4-component vector of float)
-0:157 subgroupMul ( global 4-component vector of float)
-0:157 'f4' ( in 4-component vector of float)
-0:158 subgroupMin ( global 4-component vector of float)
+0:158 subgroupAdd ( global 4-component vector of float)
0:158 'f4' ( in 4-component vector of float)
-0:159 subgroupMax ( global 4-component vector of float)
+0:159 subgroupMul ( global 4-component vector of float)
0:159 'f4' ( in 4-component vector of float)
-0:160 subgroupAnd ( global 4-component vector of uint)
-0:160 'ballot' ( temp 4-component vector of uint)
-0:161 subgroupOr ( global 4-component vector of uint)
-0:161 'ballot' ( temp 4-component vector of uint)
-0:162 subgroupXor ( global 4-component vector of uint)
+0:160 subgroupMin ( global 4-component vector of float)
+0:160 'f4' ( in 4-component vector of float)
+0:161 subgroupMax ( global 4-component vector of float)
+0:161 'f4' ( in 4-component vector of float)
+0:162 subgroupAnd ( global 4-component vector of uint)
0:162 'ballot' ( temp 4-component vector of uint)
-0:163 subgroupInclusiveAdd ( global 4-component vector of float)
-0:163 'f4' ( in 4-component vector of float)
-0:164 subgroupInclusiveMul ( global 4-component vector of float)
-0:164 'f4' ( in 4-component vector of float)
-0:165 subgroupInclusiveMin ( global 4-component vector of float)
+0:163 subgroupOr ( global 4-component vector of uint)
+0:163 'ballot' ( temp 4-component vector of uint)
+0:164 subgroupXor ( global 4-component vector of uint)
+0:164 'ballot' ( temp 4-component vector of uint)
+0:165 subgroupInclusiveAdd ( global 4-component vector of float)
0:165 'f4' ( in 4-component vector of float)
-0:166 subgroupInclusiveMax ( global 4-component vector of float)
+0:166 subgroupInclusiveMul ( global 4-component vector of float)
0:166 'f4' ( in 4-component vector of float)
-0:167 subgroupInclusiveAnd ( global 4-component vector of uint)
-0:167 'ballot' ( temp 4-component vector of uint)
-0:168 subgroupInclusiveOr ( global 4-component vector of uint)
-0:168 'ballot' ( temp 4-component vector of uint)
-0:169 subgroupInclusiveXor ( global 4-component vector of uint)
+0:167 subgroupInclusiveMin ( global 4-component vector of float)
+0:167 'f4' ( in 4-component vector of float)
+0:168 subgroupInclusiveMax ( global 4-component vector of float)
+0:168 'f4' ( in 4-component vector of float)
+0:169 subgroupInclusiveAnd ( global 4-component vector of uint)
0:169 'ballot' ( temp 4-component vector of uint)
-0:170 subgroupExclusiveAdd ( global 4-component vector of float)
-0:170 'f4' ( in 4-component vector of float)
-0:171 subgroupExclusiveMul ( global 4-component vector of float)
-0:171 'f4' ( in 4-component vector of float)
-0:172 subgroupExclusiveMin ( global 4-component vector of float)
+0:170 subgroupInclusiveOr ( global 4-component vector of uint)
+0:170 'ballot' ( temp 4-component vector of uint)
+0:171 subgroupInclusiveXor ( global 4-component vector of uint)
+0:171 'ballot' ( temp 4-component vector of uint)
+0:172 subgroupExclusiveAdd ( global 4-component vector of float)
0:172 'f4' ( in 4-component vector of float)
-0:173 subgroupExclusiveMax ( global 4-component vector of float)
+0:173 subgroupExclusiveMul ( global 4-component vector of float)
0:173 'f4' ( in 4-component vector of float)
-0:174 subgroupExclusiveAnd ( global 4-component vector of uint)
-0:174 'ballot' ( temp 4-component vector of uint)
-0:175 subgroupExclusiveOr ( global 4-component vector of uint)
-0:175 'ballot' ( temp 4-component vector of uint)
-0:176 subgroupExclusiveXor ( global 4-component vector of uint)
+0:174 subgroupExclusiveMin ( global 4-component vector of float)
+0:174 'f4' ( in 4-component vector of float)
+0:175 subgroupExclusiveMax ( global 4-component vector of float)
+0:175 'f4' ( in 4-component vector of float)
+0:176 subgroupExclusiveAnd ( global 4-component vector of uint)
0:176 'ballot' ( temp 4-component vector of uint)
-0:180 Function Definition: clustered_works(vf4; ( global void)
-0:180 Function Parameters:
-0:180 'f4' ( in 4-component vector of float)
-0:182 Sequence
-0:182 Sequence
-0:182 move second child to first child ( temp 4-component vector of uint)
-0:182 'ballot' ( temp 4-component vector of uint)
-0:182 Constant:
-0:182 85 (const uint)
-0:182 0 (const uint)
-0:182 0 (const uint)
-0:182 0 (const uint)
-0:183 subgroupClusteredAdd ( global 4-component vector of float)
-0:183 'f4' ( in 4-component vector of float)
-0:183 Constant:
-0:183 2 (const uint)
-0:184 subgroupClusteredMul ( global 4-component vector of float)
-0:184 'f4' ( in 4-component vector of float)
-0:184 Constant:
-0:184 2 (const uint)
-0:185 subgroupClusteredMin ( global 4-component vector of float)
+0:177 subgroupExclusiveOr ( global 4-component vector of uint)
+0:177 'ballot' ( temp 4-component vector of uint)
+0:178 subgroupExclusiveXor ( global 4-component vector of uint)
+0:178 'ballot' ( temp 4-component vector of uint)
+0:182 Function Definition: clustered_works(vf4; ( global void)
+0:182 Function Parameters:
+0:182 'f4' ( in 4-component vector of float)
+0:184 Sequence
+0:184 Sequence
+0:184 move second child to first child ( temp 4-component vector of uint)
+0:184 'ballot' ( temp 4-component vector of uint)
+0:184 Constant:
+0:184 85 (const uint)
+0:184 0 (const uint)
+0:184 0 (const uint)
+0:184 0 (const uint)
+0:185 subgroupClusteredAdd ( global 4-component vector of float)
0:185 'f4' ( in 4-component vector of float)
0:185 Constant:
0:185 2 (const uint)
-0:186 subgroupClusteredMax ( global 4-component vector of float)
+0:186 subgroupClusteredMul ( global 4-component vector of float)
0:186 'f4' ( in 4-component vector of float)
0:186 Constant:
0:186 2 (const uint)
-0:187 subgroupClusteredAnd ( global 4-component vector of uint)
-0:187 'ballot' ( temp 4-component vector of uint)
+0:187 subgroupClusteredMin ( global 4-component vector of float)
+0:187 'f4' ( in 4-component vector of float)
0:187 Constant:
0:187 2 (const uint)
-0:188 subgroupClusteredOr ( global 4-component vector of uint)
-0:188 'ballot' ( temp 4-component vector of uint)
+0:188 subgroupClusteredMax ( global 4-component vector of float)
+0:188 'f4' ( in 4-component vector of float)
0:188 Constant:
0:188 2 (const uint)
-0:189 subgroupClusteredXor ( global 4-component vector of uint)
+0:189 subgroupClusteredAnd ( global 4-component vector of uint)
0:189 'ballot' ( temp 4-component vector of uint)
0:189 Constant:
0:189 2 (const uint)
-0:193 Function Definition: quad_works(vf4; ( global void)
-0:193 Function Parameters:
-0:193 'f4' ( in 4-component vector of float)
-0:195 Sequence
-0:195 subgroupQuadBroadcast ( global 4-component vector of float)
-0:195 'f4' ( in 4-component vector of float)
-0:195 Constant:
-0:195 0 (const uint)
-0:196 subgroupQuadSwapHorizontal ( global 4-component vector of float)
-0:196 'f4' ( in 4-component vector of float)
-0:197 subgroupQuadSwapVertical ( global 4-component vector of float)
-0:197 'f4' ( in 4-component vector of float)
-0:198 subgroupQuadSwapDiagonal ( global 4-component vector of float)
+0:190 subgroupClusteredOr ( global 4-component vector of uint)
+0:190 'ballot' ( temp 4-component vector of uint)
+0:190 Constant:
+0:190 2 (const uint)
+0:191 subgroupClusteredXor ( global 4-component vector of uint)
+0:191 'ballot' ( temp 4-component vector of uint)
+0:191 Constant:
+0:191 2 (const uint)
+0:195 Function Definition: quad_works(vf4; ( global void)
+0:195 Function Parameters:
+0:195 'f4' ( in 4-component vector of float)
+0:? Sequence
+0:198 subgroupQuadBroadcast ( global 4-component vector of float)
0:198 'f4' ( in 4-component vector of float)
-0:202 Function Definition: partitioned_works(vf4; ( global void)
-0:202 Function Parameters:
-0:202 'f4' ( in 4-component vector of float)
-0:204 Sequence
-0:204 Sequence
-0:204 move second child to first child ( temp 4-component vector of uint)
-0:204 'parti' ( temp 4-component vector of uint)
-0:204 subgroupPartitionNV ( global 4-component vector of uint)
-0:204 'f4' ( in 4-component vector of float)
-0:205 Sequence
-0:205 move second child to first child ( temp 4-component vector of uint)
-0:205 'ballot' ( temp 4-component vector of uint)
-0:205 Constant:
-0:205 85 (const uint)
-0:205 0 (const uint)
-0:205 0 (const uint)
-0:205 0 (const uint)
-0:206 subgroupPartitionedAddNV ( global 4-component vector of float)
-0:206 'f4' ( in 4-component vector of float)
-0:206 'parti' ( temp 4-component vector of uint)
-0:207 subgroupPartitionedMulNV ( global 4-component vector of float)
-0:207 'f4' ( in 4-component vector of float)
-0:207 'parti' ( temp 4-component vector of uint)
-0:208 subgroupPartitionedMinNV ( global 4-component vector of float)
-0:208 'f4' ( in 4-component vector of float)
-0:208 'parti' ( temp 4-component vector of uint)
-0:209 subgroupPartitionedMaxNV ( global 4-component vector of float)
-0:209 'f4' ( in 4-component vector of float)
-0:209 'parti' ( temp 4-component vector of uint)
-0:210 subgroupPartitionedAndNV ( global 4-component vector of uint)
-0:210 'ballot' ( temp 4-component vector of uint)
+0:198 Constant:
+0:198 0 (const uint)
+0:199 subgroupQuadBroadcast ( global 4-component vector of float)
+0:199 'f4' ( in 4-component vector of float)
+0:199 Convert int to uint ( temp uint)
+0:199 'i' ( temp int)
+0:200 subgroupQuadSwapHorizontal ( global 4-component vector of float)
+0:200 'f4' ( in 4-component vector of float)
+0:201 subgroupQuadSwapVertical ( global 4-component vector of float)
+0:201 'f4' ( in 4-component vector of float)
+0:202 subgroupQuadSwapDiagonal ( global 4-component vector of float)
+0:202 'f4' ( in 4-component vector of float)
+0:206 Function Definition: partitioned_works(vf4; ( global void)
+0:206 Function Parameters:
+0:206 'f4' ( in 4-component vector of float)
+0:208 Sequence
+0:208 Sequence
+0:208 move second child to first child ( temp 4-component vector of uint)
+0:208 'parti' ( temp 4-component vector of uint)
+0:208 subgroupPartitionNV ( global 4-component vector of uint)
+0:208 'f4' ( in 4-component vector of float)
+0:209 Sequence
+0:209 move second child to first child ( temp 4-component vector of uint)
+0:209 'ballot' ( temp 4-component vector of uint)
+0:209 Constant:
+0:209 85 (const uint)
+0:209 0 (const uint)
+0:209 0 (const uint)
+0:209 0 (const uint)
+0:210 subgroupPartitionedAddNV ( global 4-component vector of float)
+0:210 'f4' ( in 4-component vector of float)
0:210 'parti' ( temp 4-component vector of uint)
-0:211 subgroupPartitionedOrNV ( global 4-component vector of uint)
-0:211 'ballot' ( temp 4-component vector of uint)
+0:211 subgroupPartitionedMulNV ( global 4-component vector of float)
+0:211 'f4' ( in 4-component vector of float)
0:211 'parti' ( temp 4-component vector of uint)
-0:212 subgroupPartitionedXorNV ( global 4-component vector of uint)
-0:212 'ballot' ( temp 4-component vector of uint)
+0:212 subgroupPartitionedMinNV ( global 4-component vector of float)
+0:212 'f4' ( in 4-component vector of float)
0:212 'parti' ( temp 4-component vector of uint)
-0:213 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
+0:213 subgroupPartitionedMaxNV ( global 4-component vector of float)
0:213 'f4' ( in 4-component vector of float)
0:213 'parti' ( temp 4-component vector of uint)
-0:214 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float)
-0:214 'f4' ( in 4-component vector of float)
+0:214 subgroupPartitionedAndNV ( global 4-component vector of uint)
+0:214 'ballot' ( temp 4-component vector of uint)
0:214 'parti' ( temp 4-component vector of uint)
-0:215 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float)
-0:215 'f4' ( in 4-component vector of float)
+0:215 subgroupPartitionedOrNV ( global 4-component vector of uint)
+0:215 'ballot' ( temp 4-component vector of uint)
0:215 'parti' ( temp 4-component vector of uint)
-0:216 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float)
-0:216 'f4' ( in 4-component vector of float)
+0:216 subgroupPartitionedXorNV ( global 4-component vector of uint)
+0:216 'ballot' ( temp 4-component vector of uint)
0:216 'parti' ( temp 4-component vector of uint)
-0:217 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
-0:217 'ballot' ( temp 4-component vector of uint)
+0:217 subgroupPartitionedInclusiveAddNV ( global 4-component vector of float)
+0:217 'f4' ( in 4-component vector of float)
0:217 'parti' ( temp 4-component vector of uint)
-0:218 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint)
-0:218 'ballot' ( temp 4-component vector of uint)
+0:218 subgroupPartitionedInclusiveMulNV ( global 4-component vector of float)
+0:218 'f4' ( in 4-component vector of float)
0:218 'parti' ( temp 4-component vector of uint)
-0:219 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint)
-0:219 'ballot' ( temp 4-component vector of uint)
+0:219 subgroupPartitionedInclusiveMinNV ( global 4-component vector of float)
+0:219 'f4' ( in 4-component vector of float)
0:219 'parti' ( temp 4-component vector of uint)
-0:220 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float)
+0:220 subgroupPartitionedInclusiveMaxNV ( global 4-component vector of float)
0:220 'f4' ( in 4-component vector of float)
0:220 'parti' ( temp 4-component vector of uint)
-0:221 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float)
-0:221 'f4' ( in 4-component vector of float)
+0:221 subgroupPartitionedInclusiveAndNV ( global 4-component vector of uint)
+0:221 'ballot' ( temp 4-component vector of uint)
0:221 'parti' ( temp 4-component vector of uint)
-0:222 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float)
-0:222 'f4' ( in 4-component vector of float)
+0:222 subgroupPartitionedInclusiveOrNV ( global 4-component vector of uint)
+0:222 'ballot' ( temp 4-component vector of uint)
0:222 'parti' ( temp 4-component vector of uint)
-0:223 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float)
-0:223 'f4' ( in 4-component vector of float)
+0:223 subgroupPartitionedInclusiveXorNV ( global 4-component vector of uint)
+0:223 'ballot' ( temp 4-component vector of uint)
0:223 'parti' ( temp 4-component vector of uint)
-0:224 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint)
-0:224 'ballot' ( temp 4-component vector of uint)
+0:224 subgroupPartitionedExclusiveAddNV ( global 4-component vector of float)
+0:224 'f4' ( in 4-component vector of float)
0:224 'parti' ( temp 4-component vector of uint)
-0:225 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint)
-0:225 'ballot' ( temp 4-component vector of uint)
+0:225 subgroupPartitionedExclusiveMulNV ( global 4-component vector of float)
+0:225 'f4' ( in 4-component vector of float)
0:225 'parti' ( temp 4-component vector of uint)
-0:226 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
-0:226 'ballot' ( temp 4-component vector of uint)
+0:226 subgroupPartitionedExclusiveMinNV ( global 4-component vector of float)
+0:226 'f4' ( in 4-component vector of float)
0:226 'parti' ( temp 4-component vector of uint)
-0:230 Function Definition: sm_builtins_err( ( global void)
-0:230 Function Parameters:
-0:232 Sequence
-0:232 'gl_WarpsPerSMNV' ( flat in uint WarpsPerSMNV)
-0:233 'gl_SMCountNV' ( flat in uint SMCountNV)
-0:234 'gl_WarpIDNV' ( flat in uint WarpIDNV)
-0:235 'gl_SMIDNV' ( flat in uint SMIDNV)
-0:242 Function Definition: sm_builtins( ( global void)
-0:242 Function Parameters:
-0:244 Sequence
-0:244 'gl_WarpsPerSMNV' ( flat in uint WarpsPerSMNV)
-0:245 'gl_SMCountNV' ( flat in uint SMCountNV)
-0:246 'gl_WarpIDNV' ( flat in uint WarpIDNV)
-0:247 'gl_SMIDNV' ( flat in uint SMIDNV)
+0:227 subgroupPartitionedExclusiveMaxNV ( global 4-component vector of float)
+0:227 'f4' ( in 4-component vector of float)
+0:227 'parti' ( temp 4-component vector of uint)
+0:228 subgroupPartitionedExclusiveAndNV ( global 4-component vector of uint)
+0:228 'ballot' ( temp 4-component vector of uint)
+0:228 'parti' ( temp 4-component vector of uint)
+0:229 subgroupPartitionedExclusiveOrNV ( global 4-component vector of uint)
+0:229 'ballot' ( temp 4-component vector of uint)
+0:229 'parti' ( temp 4-component vector of uint)
+0:230 subgroupPartitionedExclusiveXorNV ( global 4-component vector of uint)
+0:230 'ballot' ( temp 4-component vector of uint)
+0:230 'parti' ( temp 4-component vector of uint)
+0:234 Function Definition: sm_builtins_err( ( global void)
+0:234 Function Parameters:
+0:236 Sequence
+0:236 'gl_WarpsPerSMNV' ( flat in uint WarpsPerSMNV)
+0:237 'gl_SMCountNV' ( flat in uint SMCountNV)
+0:238 'gl_WarpIDNV' ( flat in uint WarpIDNV)
+0:239 'gl_SMIDNV' ( flat in uint SMIDNV)
+0:246 Function Definition: sm_builtins( ( global void)
+0:246 Function Parameters:
+0:248 Sequence
+0:248 'gl_WarpsPerSMNV' ( flat in uint WarpsPerSMNV)
+0:249 'gl_SMCountNV' ( flat in uint SMCountNV)
+0:250 'gl_WarpIDNV' ( flat in uint WarpIDNV)
+0:251 'gl_SMIDNV' ( flat in uint SMIDNV)
0:? Linker Objects
0:? 'data' (layout( location=0) out 4-component vector of uint)
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/glsl.entryPointRename.vert.bad.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/glsl.entryPointRename.vert.bad.out
index c7ea97e043a..7b99bbe8bdc 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/glsl.entryPointRename.vert.bad.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/glsl.entryPointRename.vert.bad.out
@@ -2,7 +2,7 @@ glsl.entryPointRename.vert
ERROR: Source entry point must be "main"
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 20
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/glsl.entryPointRename.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/glsl.entryPointRename.vert.out
index 3dbe13bae9d..3044deec327 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/glsl.entryPointRename.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/glsl.entryPointRename.vert.out
@@ -1,6 +1,6 @@
glsl.entryPointRename.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 20
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/glspv.esversion.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/glspv.esversion.vert.out
index 395d7f37b23..9f92513362a 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/glspv.esversion.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/glspv.esversion.vert.out
@@ -1,6 +1,6 @@
glspv.esversion.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 10
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/glspv.version.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/glspv.version.frag.out
index 4a45b5bfd1f..42c73ddb670 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/glspv.version.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/glspv.version.frag.out
@@ -2,7 +2,7 @@ glspv.version.frag
ERROR: #version: compilation for SPIR-V does not support the compatibility profile
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 6
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.PointSize.geom.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.PointSize.geom.out
index 77cdc7db712..80fee613c38 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.PointSize.geom.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.PointSize.geom.out
@@ -71,7 +71,7 @@ output primitive = line_strip
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 36
Capability Geometry
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.PointSize.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.PointSize.vert.out
index bda0030e1c4..2390a5af9de 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.PointSize.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.PointSize.vert.out
@@ -38,7 +38,7 @@ Shader version: 500
0:? '@entryPointOutput' ( out float PointSize)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 16
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.aliasOpaque.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.aliasOpaque.frag.out
index 63d29fa4c2b..d22bac6b819 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.aliasOpaque.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.aliasOpaque.frag.out
@@ -143,7 +143,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 64
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.amend.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.amend.frag.out
index e273abeb2f2..7fd07270d4e 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.amend.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.amend.frag.out
@@ -160,7 +160,7 @@ gl_FragCoord origin is upper left
0:? 'm' ( global 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 57
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.array.flatten.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.array.flatten.frag.out
index 80d51539d19..4c2a8c1130d 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.array.flatten.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.array.flatten.frag.out
@@ -345,7 +345,7 @@ gl_FragCoord origin is upper left
0:? 'ps_output.color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 143
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.array.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.array.frag.out
index 2e706d76c94..7178102761a 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.array.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.array.frag.out
@@ -290,7 +290,7 @@ gl_FragCoord origin is upper left
0:? 'input' (layout( location=1) in 3-element array of 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 126
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.array.implicit-size.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.array.implicit-size.frag.out
index 9af6fed287d..402807e956e 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.array.implicit-size.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.array.implicit-size.frag.out
@@ -163,7 +163,7 @@ gl_FragCoord origin is upper left
0:? 'g_mystruct' ( global 2-element array of structure{ temp int i, temp float f})
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 72
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.array.multidim.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.array.multidim.frag.out
index 94629996f0c..6c852c37af6 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.array.multidim.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.array.multidim.frag.out
@@ -134,7 +134,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 57
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.assoc.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.assoc.frag.out
index 562a8633432..2002b0df29e 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.assoc.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.assoc.frag.out
@@ -132,7 +132,7 @@ gl_FragCoord origin is upper left
0:? 'a5' (layout( location=4) in 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 58
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.attribute.expression.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.attribute.expression.comp.out
index 1b3ffdbc4ba..1ff212381b1 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.attribute.expression.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.attribute.expression.comp.out
@@ -82,7 +82,7 @@ local_size = (4, 6, 8)
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 39
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.attribute.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.attribute.frag.out
index 44e963e0fd6..2290cd80776 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.attribute.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.attribute.frag.out
@@ -50,7 +50,7 @@ gl_FragCoord origin is upper left
0:? 'input' (layout( location=0) in 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 24
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.attributeC11.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.attributeC11.frag.out
index 47dd96a7c76..14bdcdddeeb 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.attributeC11.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.attributeC11.frag.out
@@ -95,7 +95,7 @@ gl_FragCoord origin is upper left
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 51
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.attributeGlobalBuffer.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.attributeGlobalBuffer.frag.out
index e3784473f86..a486d1e904f 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.attributeGlobalBuffer.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.attributeGlobalBuffer.frag.out
@@ -56,7 +56,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 28
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.basic.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.basic.comp.out
index d84642e9a4e..fb26bc312a6 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.basic.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.basic.comp.out
@@ -64,7 +64,7 @@ local_size = (1, 1, 1)
0:? 'gti' ( in 3-component vector of int LocalInvocationID)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 38
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.basic.geom.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.basic.geom.out
index f4116d4e81f..ee123d44c26 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.basic.geom.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.basic.geom.out
@@ -188,7 +188,7 @@ output primitive = line_strip
0:? 'OutputStream.something' (layout( location=1) out int)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 68
Capability Geometry
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.boolConv.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.boolConv.vert.out
index d88955fae23..8762faf43fd 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.boolConv.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.boolConv.vert.out
@@ -204,7 +204,7 @@ Shader version: 500
0:? '@entryPointOutput' ( out 4-component vector of float Position)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 99
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.buffer.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.buffer.frag.out
index 25a7963004c..e41c02d962e 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.buffer.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.buffer.frag.out
@@ -147,7 +147,7 @@ gl_FragCoord origin is upper left
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 73
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.calculatelod.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.calculatelod.dx10.frag.out
index f3278834923..698350cbc08 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.calculatelod.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.calculatelod.dx10.frag.out
@@ -358,7 +358,7 @@ using depth_any
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 148
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out
index 85dafcc7000..e4bcb61d7d8 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out
@@ -358,7 +358,7 @@ using depth_any
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 148
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.cast.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.cast.frag.out
index 0aa11bead63..aa657f376a7 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.cast.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.cast.frag.out
@@ -70,7 +70,7 @@ gl_FragCoord origin is upper left
0:? 'input' (layout( location=0) in 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 34
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.cbuffer-identifier.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.cbuffer-identifier.vert.out
index f7225f844b1..5cec136e84f 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.cbuffer-identifier.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.cbuffer-identifier.vert.out
@@ -250,7 +250,7 @@ Shader version: 500
0:? 'input.Norm' (layout( location=1) in 3-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 93
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.charLit.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.charLit.vert.out
index b09fc81f405..4846f8f22c0 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.charLit.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.charLit.vert.out
@@ -146,7 +146,7 @@ Shader version: 500
0:? '@entryPointOutput' ( out 4-component vector of float Position)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 58
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clip.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clip.frag.out
index dbf99bf5a01..a0ebb745cc7 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clip.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clip.frag.out
@@ -74,7 +74,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 30
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-1.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-1.frag.out
index f223ddc4f75..4382505250b 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-1.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-1.frag.out
@@ -98,7 +98,7 @@ gl_FragCoord origin is upper left
0:? 'cull' ( in 1-element array of float CullDistance)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 53
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-1.geom.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-1.geom.out
index 144b8775e25..5348359812d 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-1.geom.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-1.geom.out
@@ -550,7 +550,7 @@ output primitive = line_strip
0:? 'OutputStream.clip' ( out 2-element array of float ClipDistance)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 118
Capability Geometry
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-1.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-1.vert.out
index d1d1370a9f4..7d8b49f8d97 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-1.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-1.vert.out
@@ -108,7 +108,7 @@ Shader version: 500
0:? 'cull' ( out 1-element array of float CullDistance)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 46
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-2.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-2.frag.out
index 64604ebb99c..d1da7bc2bbc 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-2.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-2.frag.out
@@ -290,7 +290,7 @@ gl_FragCoord origin is upper left
0:? 'cull' ( in 4-element array of float CullDistance)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 84
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-2.geom.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-2.geom.out
index a8abd02f215..bdee84f8f50 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-2.geom.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-2.geom.out
@@ -724,7 +724,7 @@ output primitive = line_strip
0:? 'OutputStream.clip' ( out 4-element array of float ClipDistance)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 128
Capability Geometry
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-2.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-2.vert.out
index 397a25d7cf8..77bd23d48ec 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-2.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-2.vert.out
@@ -420,7 +420,7 @@ Shader version: 500
0:? 'cull' ( out 4-element array of float CullDistance)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 89
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-3.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-3.frag.out
index 3b5082e8705..c7eda56f481 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-3.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-3.frag.out
@@ -98,7 +98,7 @@ gl_FragCoord origin is upper left
0:? 'cull' ( in 2-element array of float CullDistance)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 53
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-3.geom.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-3.geom.out
index f8ba5c6d503..2e6b5f64a3c 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-3.geom.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-3.geom.out
@@ -630,7 +630,7 @@ output primitive = line_strip
0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 127
Capability Geometry
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-3.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-3.vert.out
index 01afd1797ea..c9289a53d3d 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-3.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-3.vert.out
@@ -136,7 +136,7 @@ Shader version: 500
0:? 'cull' ( out 2-element array of float CullDistance)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 51
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-4.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-4.frag.out
index 95f81c9560b..8a46b157d13 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-4.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-4.frag.out
@@ -174,7 +174,7 @@ gl_FragCoord origin is upper left
0:? 'v.ClipRect' ( in 4-element array of float ClipDistance)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 57
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-4.geom.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-4.geom.out
index 1096e02c25e..31d32051d1d 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-4.geom.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-4.geom.out
@@ -612,7 +612,7 @@ output primitive = line_strip
0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 130
Capability Geometry
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-4.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-4.vert.out
index d05fae41d73..7fca9d4e36e 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-4.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-4.vert.out
@@ -270,7 +270,7 @@ Shader version: 500
0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 72
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-5.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-5.frag.out
index afdd4c4d7d5..f0adb05bc23 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-5.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-5.frag.out
@@ -232,7 +232,7 @@ gl_FragCoord origin is upper left
0:? 'v.ClipRect' ( in 4-element array of float ClipDistance)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 62
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-5.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-5.vert.out
index 3e8f1fe771c..264c22c2ed1 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-5.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-5.vert.out
@@ -318,7 +318,7 @@ Shader version: 500
0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 73
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-6.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-6.frag.out
index 3ee8065aad3..49c225a20b9 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-6.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-6.frag.out
@@ -282,7 +282,7 @@ gl_FragCoord origin is upper left
0:? 'v.clip1' ( in 8-element array of float ClipDistance)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 79
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-6.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-6.vert.out
index a386d0ac584..024d0285bd9 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-6.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-6.vert.out
@@ -428,7 +428,7 @@ Shader version: 500
0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 86
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-7.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-7.frag.out
index 94b6a791fc3..5ff568e708a 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-7.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-7.frag.out
@@ -270,7 +270,7 @@ gl_FragCoord origin is upper left
0:? 'v.clip1' ( in 8-element array of float ClipDistance)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 78
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-7.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-7.vert.out
index 87e34bd8ac3..24eced891b3 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-7.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-7.vert.out
@@ -384,7 +384,7 @@ Shader version: 500
0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 81
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-8.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-8.frag.out
index 98c9505c86f..f4e55acb3a2 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-8.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-8.frag.out
@@ -186,7 +186,7 @@ gl_FragCoord origin is upper left
0:? 'v.clip1' ( in 4-element array of float ClipDistance)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 65
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-8.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-8.vert.out
index 88800e3c4e4..456e11f5e46 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-8.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-8.vert.out
@@ -240,7 +240,7 @@ Shader version: 500
0:? '@entryPointOutput.clip1' ( out 4-element array of float ClipDistance)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 62
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-9.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-9.frag.out
index ff7f261902f..0a17eafa94d 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-9.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-9.frag.out
@@ -144,7 +144,7 @@ gl_FragCoord origin is upper left
0:? 'clip0' ( in 4-element array of float ClipDistance)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 68
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-9.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-9.vert.out
index 2d0c9b02e22..61b996fb4ec 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-9.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.clipdistance-9.vert.out
@@ -194,7 +194,7 @@ Shader version: 500
0:? 'clip0' ( out 4-element array of float ClipDistance)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 67
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.color.hull.tesc.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.color.hull.tesc.out
index 72e0b7e7633..c5be8e401ed 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.color.hull.tesc.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.color.hull.tesc.out
@@ -356,7 +356,7 @@ triangle order = cw
0:? '@patchConstantOutput.inside' ( patch out 2-element array of float TessLevelInner)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 127
Capability Tessellation
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.comparison.vec.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.comparison.vec.frag.out
index ff73e17831a..5936c9a9e9d 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.comparison.vec.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.comparison.vec.frag.out
@@ -262,7 +262,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 96
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.conditional.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.conditional.frag.out
index 7df88e7fc3e..e23d49c99b7 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.conditional.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.conditional.frag.out
@@ -522,7 +522,7 @@ gl_FragCoord origin is upper left
0:? 'input' (layout( location=0) in 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 206
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.constantbuffer.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.constantbuffer.frag.out
index fa8881db54e..48d849b4802 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.constantbuffer.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.constantbuffer.frag.out
@@ -133,7 +133,7 @@ gl_FragCoord origin is upper left
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 66
Capability Shader
@@ -240,6 +240,5 @@ Validation failed
60: 7(fvec4) CompositeConstruct 59 59 59 59
ReturnValue 60
30: Label
- 62: 7(fvec4) Undef
- ReturnValue 62
+ Unreachable
FunctionEnd
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.constructArray.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.constructArray.vert.out
index 6e18ad9713b..8ba41bc92ae 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.constructArray.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.constructArray.vert.out
@@ -268,7 +268,7 @@ Shader version: 500
0:? '@entryPointOutput' ( out 4-component vector of float Position)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 89
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.constructexpr.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.constructexpr.frag.out
index 227c7e17389..085821abfc5 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.constructexpr.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.constructexpr.frag.out
@@ -104,7 +104,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 40
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.constructimat.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.constructimat.frag.out
index 075dabb58bb..a5014db4358 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.constructimat.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.constructimat.frag.out
@@ -545,7 +545,7 @@ gl_FragCoord origin is upper left
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 98
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.coverage.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.coverage.frag.out
index 691d64368c9..a14807350c1 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.coverage.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.coverage.frag.out
@@ -119,7 +119,7 @@ gl_FragCoord origin is upper left
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 52
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.dashI.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.dashI.vert.out
index eb9406b274e..d5e7e20901a 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.dashI.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.dashI.vert.out
@@ -1,6 +1,6 @@
hlsl.dashI.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 40
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.deadFunctionMissingBody.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.deadFunctionMissingBody.vert.out
index 2bc08dabb89..559708d1237 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.deadFunctionMissingBody.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.deadFunctionMissingBody.vert.out
@@ -1,6 +1,6 @@
hlsl.deadFunctionMissingBody.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 18
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.depthGreater.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.depthGreater.frag.out
index df6311f6642..70928024a0d 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.depthGreater.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.depthGreater.frag.out
@@ -50,7 +50,7 @@ using depth_greater
0:? 'depth' ( out float FragDepth)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 20
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.depthLess.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.depthLess.frag.out
index d2b9d8edb46..275eaf13d8d 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.depthLess.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.depthLess.frag.out
@@ -42,7 +42,7 @@ using depth_less
0:? '@entryPointOutput' ( out float FragDepth)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 16
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.discard.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.discard.frag.out
index cc7c8666092..23ed871b2e0 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.discard.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.discard.frag.out
@@ -108,7 +108,7 @@ gl_FragCoord origin is upper left
0:? 'input' (layout( location=0) in 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 50
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.doLoop.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.doLoop.frag.out
index bb564658a28..2b65a76b039 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.doLoop.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.doLoop.frag.out
@@ -2,68 +2,95 @@ hlsl.doLoop.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
-0:2 Function Definition: @PixelShaderFunction(f1; ( temp 4-component vector of float)
-0:2 Function Parameters:
-0:2 'input' ( in float)
+0:1 Function Definition: f0( ( temp void)
+0:1 Function Parameters:
0:? Sequence
-0:3 Loop with condition not tested first: Unroll
-0:3 Loop Condition
-0:3 Constant:
-0:3 false (const bool)
-0:3 No loop body
-0:4 Loop with condition not tested first: Unroll
-0:4 Loop Condition
-0:4 Constant:
-0:4 false (const bool)
-0:4 No loop body
-0:5 Loop with condition not tested first
-0:5 Loop Condition
-0:5 Compare Greater Than ( temp bool)
-0:5 'input' ( in float)
-0:5 Constant:
-0:5 2.000000
-0:5 Loop Body
-0:? Sequence
-0:5 Branch: Return with expression
-0:5 Construct vec4 ( temp 4-component vector of float)
-0:5 'input' ( in float)
-0:6 Loop with condition not tested first
+0:2 Loop with condition not tested first: Unroll
+0:2 Loop Condition
+0:2 Constant:
+0:2 false (const bool)
+0:2 No loop body
+0:5 Function Definition: f1( ( temp void)
+0:5 Function Parameters:
+0:? Sequence
+0:6 Loop with condition not tested first: Unroll
0:6 Loop Condition
-0:6 Compare Less Than ( temp bool)
-0:6 'input' ( in float)
-0:6 Constant:
-0:6 10.000000
-0:6 Loop Body
-0:6 Pre-Increment ( temp float)
-0:6 'input' ( in float)
-0:7 Loop with condition not tested first
-0:7 Loop Condition
-0:7 Compare Less Than ( temp bool)
-0:7 Pre-Increment ( temp float)
-0:7 'input' ( in float)
-0:7 Constant:
-0:7 10.000000
-0:7 Loop Body
-0:7 Loop with condition tested first
-0:7 Loop Condition
-0:7 Compare Less Than ( temp bool)
-0:7 Pre-Increment ( temp float)
-0:7 'input' ( in float)
-0:7 Constant:
-0:7 10.000000
-0:7 No loop body
-0:8 Branch: Return with expression
-0:8 Construct vec4 ( temp 4-component vector of float)
-0:8 'input' ( in float)
-0:2 Function Definition: PixelShaderFunction( ( temp void)
-0:2 Function Parameters:
+0:6 Constant:
+0:6 false (const bool)
+0:6 No loop body
+0:9 Function Definition: f2(f1; ( temp float)
+0:9 Function Parameters:
+0:9 'input' ( in float)
+0:? Sequence
+0:10 Loop with condition not tested first
+0:10 Loop Condition
+0:10 Compare Greater Than ( temp bool)
+0:10 'input' ( in float)
+0:10 Constant:
+0:10 2.000000
+0:10 Loop Body
+0:? Sequence
+0:10 Branch: Return with expression
+0:10 Construct float ( temp float)
+0:10 Construct vec4 ( temp 4-component vector of float)
+0:10 'input' ( in float)
+0:13 Function Definition: f3(f1; ( temp void)
+0:13 Function Parameters:
+0:13 'input' ( in float)
0:? Sequence
-0:2 move second child to first child ( temp float)
+0:14 Loop with condition not tested first
+0:14 Loop Condition
+0:14 Compare Less Than ( temp bool)
+0:14 'input' ( in float)
+0:14 Constant:
+0:14 10.000000
+0:14 Loop Body
+0:14 Pre-Increment ( temp float)
+0:14 'input' ( in float)
+0:17 Function Definition: f4(f1; ( temp void)
+0:17 Function Parameters:
+0:17 'input' ( in float)
+0:? Sequence
+0:18 Loop with condition not tested first
+0:18 Loop Condition
+0:18 Compare Less Than ( temp bool)
+0:18 Pre-Increment ( temp float)
+0:18 'input' ( in float)
+0:18 Constant:
+0:18 10.000000
+0:18 Loop Body
+0:18 Loop with condition tested first
+0:18 Loop Condition
+0:18 Compare Less Than ( temp bool)
+0:18 Pre-Increment ( temp float)
+0:18 'input' ( in float)
+0:18 Constant:
+0:18 10.000000
+0:18 No loop body
+0:22 Function Definition: @PixelShaderFunction(f1; ( temp 4-component vector of float)
+0:22 Function Parameters:
+0:22 'input' ( in float)
+0:? Sequence
+0:23 Function Call: f0( ( temp void)
+0:24 Function Call: f1( ( temp void)
+0:25 Function Call: f2(f1; ( temp float)
+0:25 'input' ( in float)
+0:26 Function Call: f3(f1; ( temp void)
+0:26 'input' ( in float)
+0:27 Function Call: f4(f1; ( temp void)
+0:27 'input' ( in float)
+0:28 Branch: Return with expression
+0:28 Construct vec4 ( temp 4-component vector of float)
+0:28 'input' ( in float)
+0:22 Function Definition: PixelShaderFunction( ( temp void)
+0:22 Function Parameters:
+0:? Sequence
+0:22 move second child to first child ( temp float)
0:? 'input' ( temp float)
0:? 'input' (layout( location=0) in float)
-0:2 move second child to first child ( temp 4-component vector of float)
+0:22 move second child to first child ( temp 4-component vector of float)
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
-0:2 Function Call: @PixelShaderFunction(f1; ( temp 4-component vector of float)
+0:22 Function Call: @PixelShaderFunction(f1; ( temp 4-component vector of float)
0:? 'input' ( temp float)
0:? Linker Objects
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
@@ -76,196 +103,272 @@ Linked fragment stage:
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
-0:2 Function Definition: @PixelShaderFunction(f1; ( temp 4-component vector of float)
-0:2 Function Parameters:
-0:2 'input' ( in float)
+0:1 Function Definition: f0( ( temp void)
+0:1 Function Parameters:
0:? Sequence
-0:3 Loop with condition not tested first: Unroll
-0:3 Loop Condition
-0:3 Constant:
-0:3 false (const bool)
-0:3 No loop body
-0:4 Loop with condition not tested first: Unroll
-0:4 Loop Condition
-0:4 Constant:
-0:4 false (const bool)
-0:4 No loop body
-0:5 Loop with condition not tested first
-0:5 Loop Condition
-0:5 Compare Greater Than ( temp bool)
-0:5 'input' ( in float)
-0:5 Constant:
-0:5 2.000000
-0:5 Loop Body
-0:? Sequence
-0:5 Branch: Return with expression
-0:5 Construct vec4 ( temp 4-component vector of float)
-0:5 'input' ( in float)
-0:6 Loop with condition not tested first
+0:2 Loop with condition not tested first: Unroll
+0:2 Loop Condition
+0:2 Constant:
+0:2 false (const bool)
+0:2 No loop body
+0:5 Function Definition: f1( ( temp void)
+0:5 Function Parameters:
+0:? Sequence
+0:6 Loop with condition not tested first: Unroll
0:6 Loop Condition
-0:6 Compare Less Than ( temp bool)
-0:6 'input' ( in float)
-0:6 Constant:
-0:6 10.000000
-0:6 Loop Body
-0:6 Pre-Increment ( temp float)
-0:6 'input' ( in float)
-0:7 Loop with condition not tested first
-0:7 Loop Condition
-0:7 Compare Less Than ( temp bool)
-0:7 Pre-Increment ( temp float)
-0:7 'input' ( in float)
-0:7 Constant:
-0:7 10.000000
-0:7 Loop Body
-0:7 Loop with condition tested first
-0:7 Loop Condition
-0:7 Compare Less Than ( temp bool)
-0:7 Pre-Increment ( temp float)
-0:7 'input' ( in float)
-0:7 Constant:
-0:7 10.000000
-0:7 No loop body
-0:8 Branch: Return with expression
-0:8 Construct vec4 ( temp 4-component vector of float)
-0:8 'input' ( in float)
-0:2 Function Definition: PixelShaderFunction( ( temp void)
-0:2 Function Parameters:
+0:6 Constant:
+0:6 false (const bool)
+0:6 No loop body
+0:9 Function Definition: f2(f1; ( temp float)
+0:9 Function Parameters:
+0:9 'input' ( in float)
+0:? Sequence
+0:10 Loop with condition not tested first
+0:10 Loop Condition
+0:10 Compare Greater Than ( temp bool)
+0:10 'input' ( in float)
+0:10 Constant:
+0:10 2.000000
+0:10 Loop Body
+0:? Sequence
+0:10 Branch: Return with expression
+0:10 Construct float ( temp float)
+0:10 Construct vec4 ( temp 4-component vector of float)
+0:10 'input' ( in float)
+0:13 Function Definition: f3(f1; ( temp void)
+0:13 Function Parameters:
+0:13 'input' ( in float)
+0:? Sequence
+0:14 Loop with condition not tested first
+0:14 Loop Condition
+0:14 Compare Less Than ( temp bool)
+0:14 'input' ( in float)
+0:14 Constant:
+0:14 10.000000
+0:14 Loop Body
+0:14 Pre-Increment ( temp float)
+0:14 'input' ( in float)
+0:17 Function Definition: f4(f1; ( temp void)
+0:17 Function Parameters:
+0:17 'input' ( in float)
0:? Sequence
-0:2 move second child to first child ( temp float)
+0:18 Loop with condition not tested first
+0:18 Loop Condition
+0:18 Compare Less Than ( temp bool)
+0:18 Pre-Increment ( temp float)
+0:18 'input' ( in float)
+0:18 Constant:
+0:18 10.000000
+0:18 Loop Body
+0:18 Loop with condition tested first
+0:18 Loop Condition
+0:18 Compare Less Than ( temp bool)
+0:18 Pre-Increment ( temp float)
+0:18 'input' ( in float)
+0:18 Constant:
+0:18 10.000000
+0:18 No loop body
+0:22 Function Definition: @PixelShaderFunction(f1; ( temp 4-component vector of float)
+0:22 Function Parameters:
+0:22 'input' ( in float)
+0:? Sequence
+0:23 Function Call: f0( ( temp void)
+0:24 Function Call: f1( ( temp void)
+0:25 Function Call: f2(f1; ( temp float)
+0:25 'input' ( in float)
+0:26 Function Call: f3(f1; ( temp void)
+0:26 'input' ( in float)
+0:27 Function Call: f4(f1; ( temp void)
+0:27 'input' ( in float)
+0:28 Branch: Return with expression
+0:28 Construct vec4 ( temp 4-component vector of float)
+0:28 'input' ( in float)
+0:22 Function Definition: PixelShaderFunction( ( temp void)
+0:22 Function Parameters:
+0:? Sequence
+0:22 move second child to first child ( temp float)
0:? 'input' ( temp float)
0:? 'input' (layout( location=0) in float)
-0:2 move second child to first child ( temp 4-component vector of float)
+0:22 move second child to first child ( temp 4-component vector of float)
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
-0:2 Function Call: @PixelShaderFunction(f1; ( temp 4-component vector of float)
+0:22 Function Call: @PixelShaderFunction(f1; ( temp 4-component vector of float)
0:? 'input' ( temp float)
0:? Linker Objects
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:? 'input' (layout( location=0) in float)
// Module Version 10000
-// Generated by (magic number): 80007
-// Id's are bound by 71
+// Generated by (magic number): 80008
+// Id's are bound by 99
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
- EntryPoint Fragment 4 "PixelShaderFunction" 64 67
+ EntryPoint Fragment 4 "PixelShaderFunction" 92 95
ExecutionMode 4 OriginUpperLeft
Source HLSL 500
Name 4 "PixelShaderFunction"
- Name 11 "@PixelShaderFunction(f1;"
- Name 10 "input"
- Name 62 "input"
- Name 64 "input"
- Name 67 "@entryPointOutput"
- Name 68 "param"
- Decorate 64(input) Location 0
- Decorate 67(@entryPointOutput) Location 0
+ Name 6 "f0("
+ Name 8 "f1("
+ Name 14 "f2(f1;"
+ Name 13 "input"
+ Name 18 "f3(f1;"
+ Name 17 "input"
+ Name 21 "f4(f1;"
+ Name 20 "input"
+ Name 26 "@PixelShaderFunction(f1;"
+ Name 25 "input"
+ Name 77 "param"
+ Name 80 "param"
+ Name 83 "param"
+ Name 90 "input"
+ Name 92 "input"
+ Name 95 "@entryPointOutput"
+ Name 96 "param"
+ Decorate 92(input) Location 0
+ Decorate 95(@entryPointOutput) Location 0
2: TypeVoid
3: TypeFunction 2
- 6: TypeFloat 32
- 7: TypePointer Function 6(float)
- 8: TypeVector 6(float) 4
- 9: TypeFunction 8(fvec4) 7(ptr)
- 17: TypeBool
- 18: 17(bool) ConstantFalse
- 31: 6(float) Constant 1073741824
- 38: 6(float) Constant 1065353216
- 41: 6(float) Constant 1092616192
- 63: TypePointer Input 6(float)
- 64(input): 63(ptr) Variable Input
- 66: TypePointer Output 8(fvec4)
-67(@entryPointOutput): 66(ptr) Variable Output
+ 10: TypeFloat 32
+ 11: TypePointer Function 10(float)
+ 12: TypeFunction 10(float) 11(ptr)
+ 16: TypeFunction 2 11(ptr)
+ 23: TypeVector 10(float) 4
+ 24: TypeFunction 23(fvec4) 11(ptr)
+ 32: TypeBool
+ 33: 32(bool) ConstantFalse
+ 47: 10(float) Constant 1073741824
+ 55: 10(float) Constant 1065353216
+ 58: 10(float) Constant 1092616192
+ 91: TypePointer Input 10(float)
+ 92(input): 91(ptr) Variable Input
+ 94: TypePointer Output 23(fvec4)
+95(@entryPointOutput): 94(ptr) Variable Output
4(PixelShaderFunction): 2 Function None 3
5: Label
- 62(input): 7(ptr) Variable Function
- 68(param): 7(ptr) Variable Function
- 65: 6(float) Load 64(input)
- Store 62(input) 65
- 69: 6(float) Load 62(input)
- Store 68(param) 69
- 70: 8(fvec4) FunctionCall 11(@PixelShaderFunction(f1;) 68(param)
- Store 67(@entryPointOutput) 70
+ 90(input): 11(ptr) Variable Function
+ 96(param): 11(ptr) Variable Function
+ 93: 10(float) Load 92(input)
+ Store 90(input) 93
+ 97: 10(float) Load 90(input)
+ Store 96(param) 97
+ 98: 23(fvec4) FunctionCall 26(@PixelShaderFunction(f1;) 96(param)
+ Store 95(@entryPointOutput) 98
Return
FunctionEnd
-11(@PixelShaderFunction(f1;): 8(fvec4) Function None 9
- 10(input): 7(ptr) FunctionParameter
- 12: Label
- Branch 13
- 13: Label
- LoopMerge 15 16 Unroll
- Branch 14
- 14: Label
- Branch 16
- 16: Label
- BranchConditional 18 13 15
- 15: Label
- Branch 19
- 19: Label
- LoopMerge 21 22 Unroll
- Branch 20
- 20: Label
- Branch 22
- 22: Label
- BranchConditional 18 19 21
- 21: Label
- Branch 23
- 23: Label
- LoopMerge 25 26 None
- Branch 24
- 24: Label
- 27: 6(float) Load 10(input)
- 28: 8(fvec4) CompositeConstruct 27 27 27 27
- ReturnValue 28
- 26: Label
- 30: 6(float) Load 10(input)
- 32: 17(bool) FOrdGreaterThan 30 31
- BranchConditional 32 23 25
- 25: Label
- Branch 33
- 33: Label
- LoopMerge 35 36 None
+ 6(f0(): 2 Function None 3
+ 7: Label
+ Branch 28
+ 28: Label
+ LoopMerge 30 31 Unroll
+ Branch 29
+ 29: Label
+ Branch 31
+ 31: Label
+ BranchConditional 33 28 30
+ 30: Label
+ Return
+ FunctionEnd
+ 8(f1(): 2 Function None 3
+ 9: Label
Branch 34
34: Label
- 37: 6(float) Load 10(input)
- 39: 6(float) FAdd 37 38
- Store 10(input) 39
- Branch 36
- 36: Label
- 40: 6(float) Load 10(input)
- 42: 17(bool) FOrdLessThan 40 41
- BranchConditional 42 33 35
+ LoopMerge 36 37 Unroll
+ Branch 35
35: Label
- Branch 43
- 43: Label
- LoopMerge 45 46 None
- Branch 44
- 44: Label
- Branch 47
- 47: Label
- LoopMerge 49 50 None
+ Branch 37
+ 37: Label
+ BranchConditional 33 34 36
+ 36: Label
+ Return
+ FunctionEnd
+ 14(f2(f1;): 10(float) Function None 12
+ 13(input): 11(ptr) FunctionParameter
+ 15: Label
+ Branch 38
+ 38: Label
+ LoopMerge 40 41 None
+ Branch 39
+ 39: Label
+ 42: 10(float) Load 13(input)
+ 43: 23(fvec4) CompositeConstruct 42 42 42 42
+ 44: 10(float) CompositeExtract 43 0
+ ReturnValue 44
+ 41: Label
+ Branch 38
+ 40: Label
+ Unreachable
+ FunctionEnd
+ 18(f3(f1;): 2 Function None 16
+ 17(input): 11(ptr) FunctionParameter
+ 19: Label
+ Branch 50
+ 50: Label
+ LoopMerge 52 53 None
Branch 51
51: Label
- 52: 6(float) Load 10(input)
- 53: 6(float) FAdd 52 38
- Store 10(input) 53
- 54: 17(bool) FOrdLessThan 53 41
- BranchConditional 54 48 49
- 48: Label
- Branch 50
- 50: Label
- Branch 47
- 49: Label
- Branch 46
- 46: Label
- 55: 6(float) Load 10(input)
- 56: 6(float) FAdd 55 38
- Store 10(input) 56
- 57: 17(bool) FOrdLessThan 56 41
- BranchConditional 57 43 45
- 45: Label
- 58: 6(float) Load 10(input)
- 59: 8(fvec4) CompositeConstruct 58 58 58 58
- ReturnValue 59
+ 54: 10(float) Load 17(input)
+ 56: 10(float) FAdd 54 55
+ Store 17(input) 56
+ Branch 53
+ 53: Label
+ 57: 10(float) Load 17(input)
+ 59: 32(bool) FOrdLessThan 57 58
+ BranchConditional 59 50 52
+ 52: Label
+ Return
+ FunctionEnd
+ 21(f4(f1;): 2 Function None 16
+ 20(input): 11(ptr) FunctionParameter
+ 22: Label
+ Branch 60
+ 60: Label
+ LoopMerge 62 63 None
+ Branch 61
+ 61: Label
+ Branch 64
+ 64: Label
+ LoopMerge 66 67 None
+ Branch 68
+ 68: Label
+ 69: 10(float) Load 20(input)
+ 70: 10(float) FAdd 69 55
+ Store 20(input) 70
+ 71: 32(bool) FOrdLessThan 70 58
+ BranchConditional 71 65 66
+ 65: Label
+ Branch 67
+ 67: Label
+ Branch 64
+ 66: Label
+ Branch 63
+ 63: Label
+ 72: 10(float) Load 20(input)
+ 73: 10(float) FAdd 72 55
+ Store 20(input) 73
+ 74: 32(bool) FOrdLessThan 73 58
+ BranchConditional 74 60 62
+ 62: Label
+ Return
+ FunctionEnd
+26(@PixelShaderFunction(f1;): 23(fvec4) Function None 24
+ 25(input): 11(ptr) FunctionParameter
+ 27: Label
+ 77(param): 11(ptr) Variable Function
+ 80(param): 11(ptr) Variable Function
+ 83(param): 11(ptr) Variable Function
+ 75: 2 FunctionCall 6(f0()
+ 76: 2 FunctionCall 8(f1()
+ 78: 10(float) Load 25(input)
+ Store 77(param) 78
+ 79: 10(float) FunctionCall 14(f2(f1;) 77(param)
+ 81: 10(float) Load 25(input)
+ Store 80(param) 81
+ 82: 2 FunctionCall 18(f3(f1;) 80(param)
+ 84: 10(float) Load 25(input)
+ Store 83(param) 84
+ 85: 2 FunctionCall 21(f4(f1;) 83(param)
+ 86: 10(float) Load 25(input)
+ 87: 23(fvec4) CompositeConstruct 86 86 86 86
+ ReturnValue 87
FunctionEnd
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.domain.1.tese.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.domain.1.tese.out
index 4bc8bac5e93..0b7b27564c9 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.domain.1.tese.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.domain.1.tese.out
@@ -286,7 +286,7 @@ triangle order = none
0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 103
Capability Tessellation
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.domain.2.tese.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.domain.2.tese.out
index 827f80f7337..e6ec924af8b 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.domain.2.tese.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.domain.2.tese.out
@@ -284,7 +284,7 @@ triangle order = none
0:? 'pcf_data.foo' (layout( location=2) patch in float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 98
Capability Tessellation
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.domain.3.tese.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.domain.3.tese.out
index dd3d502af89..4b8584c9d64 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.domain.3.tese.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.domain.3.tese.out
@@ -264,7 +264,7 @@ triangle order = none
0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 100
Capability Tessellation
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.earlydepthstencil.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.earlydepthstencil.frag.out
index e598a5190ff..f30b89ad2f1 100755
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.earlydepthstencil.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.earlydepthstencil.frag.out
@@ -108,7 +108,7 @@ using early_fragment_tests
0:? 'input.Position' ( in 4-component vector of float FragCoord)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 50
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.emptystruct.init.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.emptystruct.init.vert.out
index 410915cfe80..c3c3aef8a8e 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.emptystruct.init.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.emptystruct.init.vert.out
@@ -60,7 +60,7 @@ Shader version: 500
0:? 'vertexIndex' (layout( location=0) in uint)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 29
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.emptystructreturn.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.emptystructreturn.frag.out
index 1c9953b5f27..bb9c26c3b8b 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.emptystructreturn.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.emptystructreturn.frag.out
@@ -51,7 +51,7 @@ gl_FragCoord origin is upper left
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 27
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.emptystructreturn.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.emptystructreturn.vert.out
index 65d326d45c6..22027bfd7b7 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.emptystructreturn.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.emptystructreturn.vert.out
@@ -49,7 +49,7 @@ Shader version: 500
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 27
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.entry-in.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.entry-in.frag.out
index dc9eea4af90..d65532df973 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.entry-in.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.entry-in.frag.out
@@ -166,7 +166,7 @@ gl_FragCoord origin is upper left
0:? 'i.i2' (layout( location=1) flat in 2-component vector of int)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 74
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.entry-out.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.entry-out.frag.out
index 6ca3011bba5..e1af2846d1e 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.entry-out.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.entry-out.frag.out
@@ -244,7 +244,7 @@ gl_FragCoord origin is upper left
0:? 'out3.i' (layout( location=5) out 2-component vector of int)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 89
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.entry.rename.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.entry.rename.frag.out
index 9e23396a421..b0e958b3bc3 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.entry.rename.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.entry.rename.frag.out
@@ -72,7 +72,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 32
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.explicitDescriptorSet-2.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.explicitDescriptorSet-2.frag.out
index 61367d6cb88..c4e6baf09e9 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.explicitDescriptorSet-2.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.explicitDescriptorSet-2.frag.out
@@ -1,6 +1,6 @@
hlsl.explicitDescriptorSet.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 31
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.explicitDescriptorSet.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.explicitDescriptorSet.frag.out
index 9bc2f019812..9665ad2511d 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.explicitDescriptorSet.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.explicitDescriptorSet.frag.out
@@ -1,6 +1,6 @@
hlsl.explicitDescriptorSet.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 31
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.flatten.return.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.flatten.return.frag.out
index e47fe3ebf0e..bc388f85da0 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.flatten.return.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.flatten.return.frag.out
@@ -118,7 +118,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.other_struct_member3' (layout( location=3) out float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 49
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.flattenOpaque.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.flattenOpaque.frag.out
index 94d02f4933d..688656c1a5d 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.flattenOpaque.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.flattenOpaque.frag.out
@@ -295,7 +295,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 122
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.flattenOpaqueInit.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.flattenOpaqueInit.vert.out
index a5a59442cb2..6d16858719a 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.flattenOpaqueInit.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.flattenOpaqueInit.vert.out
@@ -165,7 +165,7 @@ Shader version: 500
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 82
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.flattenOpaqueInitMix.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.flattenOpaqueInitMix.vert.out
index 5a2aa2a1fb3..62a2e8e7a27 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.flattenOpaqueInitMix.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.flattenOpaqueInitMix.vert.out
@@ -107,7 +107,7 @@ Shader version: 500
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 59
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.flattenSubset.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.flattenSubset.frag.out
index 262a29d6137..f6da1a9efea 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.flattenSubset.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.flattenSubset.frag.out
@@ -115,7 +115,7 @@ gl_FragCoord origin is upper left
0:? 'vpos' (layout( location=0) in 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 54
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.flattenSubset2.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.flattenSubset2.frag.out
index 77dc4cd51d5..40d92a95641 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.flattenSubset2.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.flattenSubset2.frag.out
@@ -149,7 +149,7 @@ gl_FragCoord origin is upper left
0:? 'vpos' (layout( location=0) in 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 56
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.float1.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.float1.frag.out
index 49827dcf8d9..0f7600e0eb3 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.float1.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.float1.frag.out
@@ -65,7 +65,7 @@ gl_FragCoord origin is upper left
0:? 'scalar' ( global float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 27
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.float4.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.float4.frag.out
index 8dc3307846b..8e8c821f454 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.float4.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.float4.frag.out
@@ -42,7 +42,7 @@ gl_FragCoord origin is upper left
0:? 'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float AmbientColor, uniform bool ff1, layout( offset=20) uniform float ff2, layout( binding=0 offset=32) uniform 4-component vector of float ff3, layout( binding=1 offset=48) uniform 4-component vector of float ff4})
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 26
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.forLoop.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.forLoop.frag.out
index 3e835f80d4d..b6c271018af 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.forLoop.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.forLoop.frag.out
@@ -2,197 +2,251 @@ hlsl.forLoop.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
-0:2 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
-0:2 Function Parameters:
-0:2 'input' ( in 4-component vector of float)
+0:1 Function Definition: f0( ( temp void)
+0:1 Function Parameters:
0:? Sequence
0:? Sequence
-0:3 Loop with condition tested first
-0:3 No loop condition
-0:3 No loop body
-0:4 Sequence
-0:4 Pre-Increment ( temp 4-component vector of float)
-0:4 'input' ( in 4-component vector of float)
-0:4 Loop with condition tested first
-0:4 No loop condition
-0:4 No loop body
+0:2 Loop with condition tested first
+0:2 No loop condition
+0:2 No loop body
+0:5 Function Definition: f1(vf4; ( temp void)
+0:5 Function Parameters:
+0:5 'input' ( in 4-component vector of float)
+0:? Sequence
+0:6 Sequence
+0:6 Pre-Increment ( temp 4-component vector of float)
+0:6 'input' ( in 4-component vector of float)
+0:6 Loop with condition tested first
+0:6 No loop condition
+0:6 No loop body
+0:9 Function Definition: f2(vf4; ( temp void)
+0:9 Function Parameters:
+0:9 'input' ( in 4-component vector of float)
+0:? Sequence
0:? Sequence
-0:5 Loop with condition tested first: Unroll
-0:5 Loop Condition
-0:5 any ( temp bool)
-0:5 NotEqual ( temp 4-component vector of bool)
-0:5 'input' ( in 4-component vector of float)
-0:5 'input' ( in 4-component vector of float)
-0:5 No loop body
+0:10 Loop with condition tested first: Unroll
+0:10 Loop Condition
+0:10 any ( temp bool)
+0:10 NotEqual ( temp 4-component vector of bool)
+0:10 'input' ( in 4-component vector of float)
+0:10 'input' ( in 4-component vector of float)
+0:10 No loop body
+0:13 Function Definition: f3(vf4; ( temp float)
+0:13 Function Parameters:
+0:13 'input' ( in 4-component vector of float)
+0:? Sequence
0:? Sequence
-0:6 Loop with condition tested first
-0:6 Loop Condition
-0:6 any ( temp bool)
-0:6 NotEqual ( temp 4-component vector of bool)
-0:6 'input' ( in 4-component vector of float)
-0:6 'input' ( in 4-component vector of float)
-0:6 Loop Body
+0:14 Loop with condition tested first
+0:14 Loop Condition
+0:14 any ( temp bool)
+0:14 NotEqual ( temp 4-component vector of bool)
+0:14 'input' ( in 4-component vector of float)
+0:14 'input' ( in 4-component vector of float)
+0:14 Loop Body
0:? Sequence
-0:6 Branch: Return with expression
-0:6 Negate value ( temp 4-component vector of float)
-0:6 'input' ( in 4-component vector of float)
-0:7 Sequence
-0:7 Pre-Decrement ( temp 4-component vector of float)
-0:7 'input' ( in 4-component vector of float)
-0:7 Loop with condition tested first
-0:7 Loop Condition
-0:7 any ( temp bool)
-0:7 NotEqual ( temp 4-component vector of bool)
-0:7 'input' ( in 4-component vector of float)
-0:7 'input' ( in 4-component vector of float)
-0:7 Loop Body
+0:14 Branch: Return with expression
+0:14 Construct float ( temp float)
+0:14 Negate value ( temp 4-component vector of float)
+0:14 'input' ( in 4-component vector of float)
+0:17 Function Definition: f4(vf4; ( temp float)
+0:17 Function Parameters:
+0:17 'input' ( in 4-component vector of float)
+0:? Sequence
+0:18 Sequence
+0:18 Pre-Decrement ( temp 4-component vector of float)
+0:18 'input' ( in 4-component vector of float)
+0:18 Loop with condition tested first
+0:18 Loop Condition
+0:18 any ( temp bool)
+0:18 NotEqual ( temp 4-component vector of bool)
+0:18 'input' ( in 4-component vector of float)
+0:18 'input' ( in 4-component vector of float)
+0:18 Loop Body
0:? Sequence
-0:7 Branch: Return with expression
-0:7 Negate value ( temp 4-component vector of float)
-0:7 'input' ( in 4-component vector of float)
-0:7 Loop Terminal Expression
-0:7 add second child into first child ( temp 4-component vector of float)
-0:7 'input' ( in 4-component vector of float)
-0:7 Constant:
-0:7 2.000000
+0:18 Branch: Return with expression
+0:18 Construct float ( temp float)
+0:18 Negate value ( temp 4-component vector of float)
+0:18 'input' ( in 4-component vector of float)
+0:18 Loop Terminal Expression
+0:18 add second child into first child ( temp 4-component vector of float)
+0:18 'input' ( in 4-component vector of float)
+0:18 Constant:
+0:18 2.000000
+0:21 Function Definition: f5(vf4; ( temp void)
+0:21 Function Parameters:
+0:21 'input' ( in 4-component vector of float)
+0:? Sequence
0:? Sequence
-0:8 Loop with condition tested first
-0:8 No loop condition
-0:8 Loop Body
-0:8 Test condition and select ( temp void)
-0:8 Condition
-0:8 Compare Greater Than ( temp bool)
-0:8 direct index ( temp float)
-0:8 'input' ( in 4-component vector of float)
-0:8 Constant:
-0:8 0 (const int)
-0:8 Constant:
-0:8 2.000000
-0:8 true case
-0:8 Branch: Break
+0:22 Loop with condition tested first
+0:22 No loop condition
+0:22 Loop Body
+0:22 Test condition and select ( temp void)
+0:22 Condition
+0:22 Compare Greater Than ( temp bool)
+0:22 direct index ( temp float)
+0:22 'input' ( in 4-component vector of float)
+0:22 Constant:
+0:22 0 (const int)
+0:22 Constant:
+0:22 2.000000
+0:22 true case
+0:22 Branch: Break
+0:25 Function Definition: f6(vf4; ( temp void)
+0:25 Function Parameters:
+0:25 'input' ( in 4-component vector of float)
+0:? Sequence
0:? Sequence
-0:9 Loop with condition tested first
-0:9 No loop condition
-0:9 Loop Body
-0:9 Test condition and select ( temp void)
-0:9 Condition
-0:9 Compare Greater Than ( temp bool)
-0:9 direct index ( temp float)
-0:9 'input' ( in 4-component vector of float)
-0:9 Constant:
-0:9 0 (const int)
-0:9 Constant:
-0:9 2.000000
-0:9 true case
-0:9 Branch: Continue
-0:11 Sequence
-0:11 move second child to first child ( temp int)
-0:11 'ii' ( temp int)
-0:11 Constant:
-0:11 -1 (const int)
-0:11 Loop with condition tested first
-0:11 Loop Condition
-0:11 Compare Less Than ( temp bool)
-0:11 'ii' ( temp int)
-0:11 Constant:
-0:11 3 (const int)
-0:11 Loop Body
-0:11 Test condition and select ( temp void)
-0:11 Condition
-0:11 Compare Equal ( temp bool)
-0:11 'ii' ( temp int)
-0:11 Constant:
-0:11 2 (const int)
-0:11 true case
-0:11 Branch: Continue
-0:11 Loop Terminal Expression
-0:11 Pre-Increment ( temp int)
-0:11 'ii' ( temp int)
-0:12 Pre-Decrement ( temp float)
-0:12 'ii' ( temp float)
-0:13 Sequence
-0:13 move second child to first child ( temp int)
-0:13 'first' ( temp int)
-0:13 Constant:
-0:13 0 (const int)
-0:13 move second child to first child ( temp int)
-0:13 'second' ( temp int)
-0:13 Constant:
-0:13 1 (const int)
-0:13 Loop with condition tested first
-0:13 No loop condition
-0:13 Loop Body
-0:13 add ( temp int)
-0:13 'first' ( temp int)
-0:13 'second' ( temp int)
-0:14 Sequence
-0:14 move second child to first child ( temp int)
-0:14 'i' ( temp int)
-0:14 Constant:
-0:14 0 (const int)
-0:14 move second child to first child ( temp int)
-0:14 'count' ( temp int)
-0:14 Convert float to int ( temp int)
-0:14 'ii' ( temp float)
-0:14 Loop with condition tested first
-0:14 Loop Condition
-0:14 Compare Less Than ( temp bool)
-0:14 'i' ( temp int)
-0:14 'count' ( temp int)
-0:14 No loop body
-0:14 Loop Terminal Expression
-0:14 Post-Increment ( temp int)
-0:14 'i' ( temp int)
-0:15 Sequence
-0:15 move second child to first child ( temp float)
-0:15 'first' ( temp float)
-0:15 Constant:
-0:15 0.000000
-0:15 Loop with condition tested first
-0:15 Loop Condition
-0:15 Compare Less Than ( temp bool)
-0:15 'first' ( temp float)
-0:15 direct index ( temp float)
-0:15 'second' ( temp 2-element array of float)
-0:15 Constant:
-0:15 0 (const int)
-0:15 Loop Body
-0:15 add ( temp float)
-0:15 add ( temp float)
-0:15 'first' ( temp float)
-0:15 direct index ( temp float)
-0:15 'second' ( temp 2-element array of float)
-0:15 Constant:
-0:15 1 (const int)
-0:15 'third' ( temp float)
-0:15 Loop Terminal Expression
-0:15 Pre-Increment ( temp float)
-0:15 direct index ( temp float)
-0:15 'second' ( temp 2-element array of float)
-0:15 Constant:
-0:15 1 (const int)
+0:26 Loop with condition tested first
+0:26 No loop condition
+0:26 Loop Body
+0:26 Test condition and select ( temp void)
+0:26 Condition
+0:26 Compare Greater Than ( temp bool)
+0:26 direct index ( temp float)
+0:26 'input' ( in 4-component vector of float)
+0:26 Constant:
+0:26 0 (const int)
+0:26 Constant:
+0:26 2.000000
+0:26 true case
+0:26 Branch: Continue
+0:29 Function Definition: f99( ( temp void)
+0:29 Function Parameters:
+0:? Sequence
+0:30 Sequence
+0:30 move second child to first child ( temp int)
+0:30 'first' ( temp int)
+0:30 Constant:
+0:30 0 (const int)
+0:30 move second child to first child ( temp int)
+0:30 'second' ( temp int)
+0:30 Constant:
+0:30 1 (const int)
+0:30 Loop with condition tested first
+0:30 No loop condition
+0:30 Loop Body
+0:30 add ( temp int)
+0:30 'first' ( temp int)
+0:30 'second' ( temp int)
+0:33 Function Definition: f100(f1; ( temp void)
+0:33 Function Parameters:
+0:33 'ii' ( in float)
+0:? Sequence
0:? Sequence
-0:16 Comma ( temp float)
-0:16 Comma ( temp float)
-0:16 Pre-Decrement ( temp float)
-0:16 'ii' ( temp float)
-0:16 Pre-Decrement ( temp float)
-0:16 'ii' ( temp float)
-0:16 Pre-Decrement ( temp float)
-0:16 'ii' ( temp float)
-0:16 Loop with condition tested first
-0:16 No loop condition
-0:16 Loop Body
-0:16 'ii' ( temp float)
-0:2 Function Definition: PixelShaderFunction( ( temp void)
-0:2 Function Parameters:
+0:34 Comma ( temp float)
+0:34 Comma ( temp float)
+0:34 Pre-Decrement ( temp float)
+0:34 'ii' ( in float)
+0:34 Pre-Decrement ( temp float)
+0:34 'ii' ( in float)
+0:34 Pre-Decrement ( temp float)
+0:34 'ii' ( in float)
+0:34 Loop with condition tested first
+0:34 No loop condition
+0:34 Loop Body
+0:34 'ii' ( in float)
+0:38 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
+0:38 Function Parameters:
+0:38 'input' ( in 4-component vector of float)
+0:? Sequence
+0:39 Function Call: f0( ( temp void)
+0:40 Function Call: f1(vf4; ( temp void)
+0:40 'input' ( in 4-component vector of float)
+0:41 Function Call: f2(vf4; ( temp void)
+0:41 'input' ( in 4-component vector of float)
+0:42 Function Call: f3(vf4; ( temp float)
+0:42 'input' ( in 4-component vector of float)
+0:43 Function Call: f4(vf4; ( temp float)
+0:43 'input' ( in 4-component vector of float)
+0:44 Function Call: f5(vf4; ( temp void)
+0:44 'input' ( in 4-component vector of float)
+0:45 Function Call: f6(vf4; ( temp void)
+0:45 'input' ( in 4-component vector of float)
+0:48 Sequence
+0:48 move second child to first child ( temp int)
+0:48 'ii' ( temp int)
+0:48 Constant:
+0:48 -1 (const int)
+0:48 Loop with condition tested first
+0:48 Loop Condition
+0:48 Compare Less Than ( temp bool)
+0:48 'ii' ( temp int)
+0:48 Constant:
+0:48 3 (const int)
+0:48 Loop Body
+0:48 Test condition and select ( temp void)
+0:48 Condition
+0:48 Compare Equal ( temp bool)
+0:48 'ii' ( temp int)
+0:48 Constant:
+0:48 2 (const int)
+0:48 true case
+0:48 Branch: Continue
+0:48 Loop Terminal Expression
+0:48 Pre-Increment ( temp int)
+0:48 'ii' ( temp int)
+0:49 Pre-Decrement ( temp float)
+0:49 'ii' ( temp float)
+0:51 Function Call: f99( ( temp void)
+0:53 Sequence
+0:53 move second child to first child ( temp int)
+0:53 'i' ( temp int)
+0:53 Constant:
+0:53 0 (const int)
+0:53 move second child to first child ( temp int)
+0:53 'count' ( temp int)
+0:53 Convert float to int ( temp int)
+0:53 'ii' ( temp float)
+0:53 Loop with condition tested first
+0:53 Loop Condition
+0:53 Compare Less Than ( temp bool)
+0:53 'i' ( temp int)
+0:53 'count' ( temp int)
+0:53 No loop body
+0:53 Loop Terminal Expression
+0:53 Post-Increment ( temp int)
+0:53 'i' ( temp int)
+0:54 Sequence
+0:54 move second child to first child ( temp float)
+0:54 'first' ( temp float)
+0:54 Constant:
+0:54 0.000000
+0:54 Loop with condition tested first
+0:54 Loop Condition
+0:54 Compare Less Than ( temp bool)
+0:54 'first' ( temp float)
+0:54 direct index ( temp float)
+0:54 'second' ( temp 2-element array of float)
+0:54 Constant:
+0:54 0 (const int)
+0:54 Loop Body
+0:54 add ( temp float)
+0:54 add ( temp float)
+0:54 'first' ( temp float)
+0:54 direct index ( temp float)
+0:54 'second' ( temp 2-element array of float)
+0:54 Constant:
+0:54 1 (const int)
+0:54 'third' ( temp float)
+0:54 Loop Terminal Expression
+0:54 Pre-Increment ( temp float)
+0:54 direct index ( temp float)
+0:54 'second' ( temp 2-element array of float)
+0:54 Constant:
+0:54 1 (const int)
+0:56 Function Call: f100(f1; ( temp void)
+0:56 'ii' ( temp float)
+0:58 Branch: Return with expression
+0:58 'input' ( in 4-component vector of float)
+0:38 Function Definition: PixelShaderFunction( ( temp void)
+0:38 Function Parameters:
0:? Sequence
-0:2 move second child to first child ( temp 4-component vector of float)
+0:38 move second child to first child ( temp 4-component vector of float)
0:? 'input' ( temp 4-component vector of float)
0:? 'input' (layout( location=0) in 4-component vector of float)
-0:2 move second child to first child ( temp 4-component vector of float)
+0:38 move second child to first child ( temp 4-component vector of float)
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
-0:2 Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
+0:38 Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
0:? 'input' ( temp 4-component vector of float)
0:? Linker Objects
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
@@ -205,501 +259,654 @@ Linked fragment stage:
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
-0:2 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
-0:2 Function Parameters:
-0:2 'input' ( in 4-component vector of float)
+0:1 Function Definition: f0( ( temp void)
+0:1 Function Parameters:
0:? Sequence
0:? Sequence
-0:3 Loop with condition tested first
-0:3 No loop condition
-0:3 No loop body
-0:4 Sequence
-0:4 Pre-Increment ( temp 4-component vector of float)
-0:4 'input' ( in 4-component vector of float)
-0:4 Loop with condition tested first
-0:4 No loop condition
-0:4 No loop body
+0:2 Loop with condition tested first
+0:2 No loop condition
+0:2 No loop body
+0:5 Function Definition: f1(vf4; ( temp void)
+0:5 Function Parameters:
+0:5 'input' ( in 4-component vector of float)
+0:? Sequence
+0:6 Sequence
+0:6 Pre-Increment ( temp 4-component vector of float)
+0:6 'input' ( in 4-component vector of float)
+0:6 Loop with condition tested first
+0:6 No loop condition
+0:6 No loop body
+0:9 Function Definition: f2(vf4; ( temp void)
+0:9 Function Parameters:
+0:9 'input' ( in 4-component vector of float)
+0:? Sequence
0:? Sequence
-0:5 Loop with condition tested first: Unroll
-0:5 Loop Condition
-0:5 any ( temp bool)
-0:5 NotEqual ( temp 4-component vector of bool)
-0:5 'input' ( in 4-component vector of float)
-0:5 'input' ( in 4-component vector of float)
-0:5 No loop body
+0:10 Loop with condition tested first: Unroll
+0:10 Loop Condition
+0:10 any ( temp bool)
+0:10 NotEqual ( temp 4-component vector of bool)
+0:10 'input' ( in 4-component vector of float)
+0:10 'input' ( in 4-component vector of float)
+0:10 No loop body
+0:13 Function Definition: f3(vf4; ( temp float)
+0:13 Function Parameters:
+0:13 'input' ( in 4-component vector of float)
+0:? Sequence
0:? Sequence
-0:6 Loop with condition tested first
-0:6 Loop Condition
-0:6 any ( temp bool)
-0:6 NotEqual ( temp 4-component vector of bool)
-0:6 'input' ( in 4-component vector of float)
-0:6 'input' ( in 4-component vector of float)
-0:6 Loop Body
+0:14 Loop with condition tested first
+0:14 Loop Condition
+0:14 any ( temp bool)
+0:14 NotEqual ( temp 4-component vector of bool)
+0:14 'input' ( in 4-component vector of float)
+0:14 'input' ( in 4-component vector of float)
+0:14 Loop Body
0:? Sequence
-0:6 Branch: Return with expression
-0:6 Negate value ( temp 4-component vector of float)
-0:6 'input' ( in 4-component vector of float)
-0:7 Sequence
-0:7 Pre-Decrement ( temp 4-component vector of float)
-0:7 'input' ( in 4-component vector of float)
-0:7 Loop with condition tested first
-0:7 Loop Condition
-0:7 any ( temp bool)
-0:7 NotEqual ( temp 4-component vector of bool)
-0:7 'input' ( in 4-component vector of float)
-0:7 'input' ( in 4-component vector of float)
-0:7 Loop Body
+0:14 Branch: Return with expression
+0:14 Construct float ( temp float)
+0:14 Negate value ( temp 4-component vector of float)
+0:14 'input' ( in 4-component vector of float)
+0:17 Function Definition: f4(vf4; ( temp float)
+0:17 Function Parameters:
+0:17 'input' ( in 4-component vector of float)
+0:? Sequence
+0:18 Sequence
+0:18 Pre-Decrement ( temp 4-component vector of float)
+0:18 'input' ( in 4-component vector of float)
+0:18 Loop with condition tested first
+0:18 Loop Condition
+0:18 any ( temp bool)
+0:18 NotEqual ( temp 4-component vector of bool)
+0:18 'input' ( in 4-component vector of float)
+0:18 'input' ( in 4-component vector of float)
+0:18 Loop Body
0:? Sequence
-0:7 Branch: Return with expression
-0:7 Negate value ( temp 4-component vector of float)
-0:7 'input' ( in 4-component vector of float)
-0:7 Loop Terminal Expression
-0:7 add second child into first child ( temp 4-component vector of float)
-0:7 'input' ( in 4-component vector of float)
-0:7 Constant:
-0:7 2.000000
+0:18 Branch: Return with expression
+0:18 Construct float ( temp float)
+0:18 Negate value ( temp 4-component vector of float)
+0:18 'input' ( in 4-component vector of float)
+0:18 Loop Terminal Expression
+0:18 add second child into first child ( temp 4-component vector of float)
+0:18 'input' ( in 4-component vector of float)
+0:18 Constant:
+0:18 2.000000
+0:21 Function Definition: f5(vf4; ( temp void)
+0:21 Function Parameters:
+0:21 'input' ( in 4-component vector of float)
+0:? Sequence
0:? Sequence
-0:8 Loop with condition tested first
-0:8 No loop condition
-0:8 Loop Body
-0:8 Test condition and select ( temp void)
-0:8 Condition
-0:8 Compare Greater Than ( temp bool)
-0:8 direct index ( temp float)
-0:8 'input' ( in 4-component vector of float)
-0:8 Constant:
-0:8 0 (const int)
-0:8 Constant:
-0:8 2.000000
-0:8 true case
-0:8 Branch: Break
+0:22 Loop with condition tested first
+0:22 No loop condition
+0:22 Loop Body
+0:22 Test condition and select ( temp void)
+0:22 Condition
+0:22 Compare Greater Than ( temp bool)
+0:22 direct index ( temp float)
+0:22 'input' ( in 4-component vector of float)
+0:22 Constant:
+0:22 0 (const int)
+0:22 Constant:
+0:22 2.000000
+0:22 true case
+0:22 Branch: Break
+0:25 Function Definition: f6(vf4; ( temp void)
+0:25 Function Parameters:
+0:25 'input' ( in 4-component vector of float)
+0:? Sequence
0:? Sequence
-0:9 Loop with condition tested first
-0:9 No loop condition
-0:9 Loop Body
-0:9 Test condition and select ( temp void)
-0:9 Condition
-0:9 Compare Greater Than ( temp bool)
-0:9 direct index ( temp float)
-0:9 'input' ( in 4-component vector of float)
-0:9 Constant:
-0:9 0 (const int)
-0:9 Constant:
-0:9 2.000000
-0:9 true case
-0:9 Branch: Continue
-0:11 Sequence
-0:11 move second child to first child ( temp int)
-0:11 'ii' ( temp int)
-0:11 Constant:
-0:11 -1 (const int)
-0:11 Loop with condition tested first
-0:11 Loop Condition
-0:11 Compare Less Than ( temp bool)
-0:11 'ii' ( temp int)
-0:11 Constant:
-0:11 3 (const int)
-0:11 Loop Body
-0:11 Test condition and select ( temp void)
-0:11 Condition
-0:11 Compare Equal ( temp bool)
-0:11 'ii' ( temp int)
-0:11 Constant:
-0:11 2 (const int)
-0:11 true case
-0:11 Branch: Continue
-0:11 Loop Terminal Expression
-0:11 Pre-Increment ( temp int)
-0:11 'ii' ( temp int)
-0:12 Pre-Decrement ( temp float)
-0:12 'ii' ( temp float)
-0:13 Sequence
-0:13 move second child to first child ( temp int)
-0:13 'first' ( temp int)
-0:13 Constant:
-0:13 0 (const int)
-0:13 move second child to first child ( temp int)
-0:13 'second' ( temp int)
-0:13 Constant:
-0:13 1 (const int)
-0:13 Loop with condition tested first
-0:13 No loop condition
-0:13 Loop Body
-0:13 add ( temp int)
-0:13 'first' ( temp int)
-0:13 'second' ( temp int)
-0:14 Sequence
-0:14 move second child to first child ( temp int)
-0:14 'i' ( temp int)
-0:14 Constant:
-0:14 0 (const int)
-0:14 move second child to first child ( temp int)
-0:14 'count' ( temp int)
-0:14 Convert float to int ( temp int)
-0:14 'ii' ( temp float)
-0:14 Loop with condition tested first
-0:14 Loop Condition
-0:14 Compare Less Than ( temp bool)
-0:14 'i' ( temp int)
-0:14 'count' ( temp int)
-0:14 No loop body
-0:14 Loop Terminal Expression
-0:14 Post-Increment ( temp int)
-0:14 'i' ( temp int)
-0:15 Sequence
-0:15 move second child to first child ( temp float)
-0:15 'first' ( temp float)
-0:15 Constant:
-0:15 0.000000
-0:15 Loop with condition tested first
-0:15 Loop Condition
-0:15 Compare Less Than ( temp bool)
-0:15 'first' ( temp float)
-0:15 direct index ( temp float)
-0:15 'second' ( temp 2-element array of float)
-0:15 Constant:
-0:15 0 (const int)
-0:15 Loop Body
-0:15 add ( temp float)
-0:15 add ( temp float)
-0:15 'first' ( temp float)
-0:15 direct index ( temp float)
-0:15 'second' ( temp 2-element array of float)
-0:15 Constant:
-0:15 1 (const int)
-0:15 'third' ( temp float)
-0:15 Loop Terminal Expression
-0:15 Pre-Increment ( temp float)
-0:15 direct index ( temp float)
-0:15 'second' ( temp 2-element array of float)
-0:15 Constant:
-0:15 1 (const int)
+0:26 Loop with condition tested first
+0:26 No loop condition
+0:26 Loop Body
+0:26 Test condition and select ( temp void)
+0:26 Condition
+0:26 Compare Greater Than ( temp bool)
+0:26 direct index ( temp float)
+0:26 'input' ( in 4-component vector of float)
+0:26 Constant:
+0:26 0 (const int)
+0:26 Constant:
+0:26 2.000000
+0:26 true case
+0:26 Branch: Continue
+0:29 Function Definition: f99( ( temp void)
+0:29 Function Parameters:
+0:? Sequence
+0:30 Sequence
+0:30 move second child to first child ( temp int)
+0:30 'first' ( temp int)
+0:30 Constant:
+0:30 0 (const int)
+0:30 move second child to first child ( temp int)
+0:30 'second' ( temp int)
+0:30 Constant:
+0:30 1 (const int)
+0:30 Loop with condition tested first
+0:30 No loop condition
+0:30 Loop Body
+0:30 add ( temp int)
+0:30 'first' ( temp int)
+0:30 'second' ( temp int)
+0:33 Function Definition: f100(f1; ( temp void)
+0:33 Function Parameters:
+0:33 'ii' ( in float)
+0:? Sequence
0:? Sequence
-0:16 Comma ( temp float)
-0:16 Comma ( temp float)
-0:16 Pre-Decrement ( temp float)
-0:16 'ii' ( temp float)
-0:16 Pre-Decrement ( temp float)
-0:16 'ii' ( temp float)
-0:16 Pre-Decrement ( temp float)
-0:16 'ii' ( temp float)
-0:16 Loop with condition tested first
-0:16 No loop condition
-0:16 Loop Body
-0:16 'ii' ( temp float)
-0:2 Function Definition: PixelShaderFunction( ( temp void)
-0:2 Function Parameters:
+0:34 Comma ( temp float)
+0:34 Comma ( temp float)
+0:34 Pre-Decrement ( temp float)
+0:34 'ii' ( in float)
+0:34 Pre-Decrement ( temp float)
+0:34 'ii' ( in float)
+0:34 Pre-Decrement ( temp float)
+0:34 'ii' ( in float)
+0:34 Loop with condition tested first
+0:34 No loop condition
+0:34 Loop Body
+0:34 'ii' ( in float)
+0:38 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
+0:38 Function Parameters:
+0:38 'input' ( in 4-component vector of float)
+0:? Sequence
+0:39 Function Call: f0( ( temp void)
+0:40 Function Call: f1(vf4; ( temp void)
+0:40 'input' ( in 4-component vector of float)
+0:41 Function Call: f2(vf4; ( temp void)
+0:41 'input' ( in 4-component vector of float)
+0:42 Function Call: f3(vf4; ( temp float)
+0:42 'input' ( in 4-component vector of float)
+0:43 Function Call: f4(vf4; ( temp float)
+0:43 'input' ( in 4-component vector of float)
+0:44 Function Call: f5(vf4; ( temp void)
+0:44 'input' ( in 4-component vector of float)
+0:45 Function Call: f6(vf4; ( temp void)
+0:45 'input' ( in 4-component vector of float)
+0:48 Sequence
+0:48 move second child to first child ( temp int)
+0:48 'ii' ( temp int)
+0:48 Constant:
+0:48 -1 (const int)
+0:48 Loop with condition tested first
+0:48 Loop Condition
+0:48 Compare Less Than ( temp bool)
+0:48 'ii' ( temp int)
+0:48 Constant:
+0:48 3 (const int)
+0:48 Loop Body
+0:48 Test condition and select ( temp void)
+0:48 Condition
+0:48 Compare Equal ( temp bool)
+0:48 'ii' ( temp int)
+0:48 Constant:
+0:48 2 (const int)
+0:48 true case
+0:48 Branch: Continue
+0:48 Loop Terminal Expression
+0:48 Pre-Increment ( temp int)
+0:48 'ii' ( temp int)
+0:49 Pre-Decrement ( temp float)
+0:49 'ii' ( temp float)
+0:51 Function Call: f99( ( temp void)
+0:53 Sequence
+0:53 move second child to first child ( temp int)
+0:53 'i' ( temp int)
+0:53 Constant:
+0:53 0 (const int)
+0:53 move second child to first child ( temp int)
+0:53 'count' ( temp int)
+0:53 Convert float to int ( temp int)
+0:53 'ii' ( temp float)
+0:53 Loop with condition tested first
+0:53 Loop Condition
+0:53 Compare Less Than ( temp bool)
+0:53 'i' ( temp int)
+0:53 'count' ( temp int)
+0:53 No loop body
+0:53 Loop Terminal Expression
+0:53 Post-Increment ( temp int)
+0:53 'i' ( temp int)
+0:54 Sequence
+0:54 move second child to first child ( temp float)
+0:54 'first' ( temp float)
+0:54 Constant:
+0:54 0.000000
+0:54 Loop with condition tested first
+0:54 Loop Condition
+0:54 Compare Less Than ( temp bool)
+0:54 'first' ( temp float)
+0:54 direct index ( temp float)
+0:54 'second' ( temp 2-element array of float)
+0:54 Constant:
+0:54 0 (const int)
+0:54 Loop Body
+0:54 add ( temp float)
+0:54 add ( temp float)
+0:54 'first' ( temp float)
+0:54 direct index ( temp float)
+0:54 'second' ( temp 2-element array of float)
+0:54 Constant:
+0:54 1 (const int)
+0:54 'third' ( temp float)
+0:54 Loop Terminal Expression
+0:54 Pre-Increment ( temp float)
+0:54 direct index ( temp float)
+0:54 'second' ( temp 2-element array of float)
+0:54 Constant:
+0:54 1 (const int)
+0:56 Function Call: f100(f1; ( temp void)
+0:56 'ii' ( temp float)
+0:58 Branch: Return with expression
+0:58 'input' ( in 4-component vector of float)
+0:38 Function Definition: PixelShaderFunction( ( temp void)
+0:38 Function Parameters:
0:? Sequence
-0:2 move second child to first child ( temp 4-component vector of float)
+0:38 move second child to first child ( temp 4-component vector of float)
0:? 'input' ( temp 4-component vector of float)
0:? 'input' (layout( location=0) in 4-component vector of float)
-0:2 move second child to first child ( temp 4-component vector of float)
+0:38 move second child to first child ( temp 4-component vector of float)
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
-0:2 Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
+0:38 Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
0:? 'input' ( temp 4-component vector of float)
0:? Linker Objects
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:? 'input' (layout( location=0) in 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
-// Id's are bound by 183
+// Generated by (magic number): 80008
+// Id's are bound by 240
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
- EntryPoint Fragment 4 "PixelShaderFunction" 176 179
+ EntryPoint Fragment 4 "PixelShaderFunction" 233 236
ExecutionMode 4 OriginUpperLeft
Source HLSL 500
Name 4 "PixelShaderFunction"
- Name 11 "@PixelShaderFunction(vf4;"
- Name 10 "input"
- Name 92 "ii"
- Name 111 "ii"
- Name 114 "first"
- Name 116 "second"
- Name 124 "i"
- Name 125 "count"
- Name 138 "first"
- Name 149 "second"
- Name 157 "third"
- Name 174 "input"
- Name 176 "input"
- Name 179 "@entryPointOutput"
- Name 180 "param"
- Decorate 176(input) Location 0
- Decorate 179(@entryPointOutput) Location 0
+ Name 6 "f0("
+ Name 13 "f1(vf4;"
+ Name 12 "input"
+ Name 16 "f2(vf4;"
+ Name 15 "input"
+ Name 20 "f3(vf4;"
+ Name 19 "input"
+ Name 23 "f4(vf4;"
+ Name 22 "input"
+ Name 26 "f5(vf4;"
+ Name 25 "input"
+ Name 29 "f6(vf4;"
+ Name 28 "input"
+ Name 31 "f99("
+ Name 36 "f100(f1;"
+ Name 35 "ii"
+ Name 40 "@PixelShaderFunction(vf4;"
+ Name 39 "input"
+ Name 124 "first"
+ Name 126 "second"
+ Name 146 "param"
+ Name 149 "param"
+ Name 152 "param"
+ Name 155 "param"
+ Name 158 "param"
+ Name 161 "param"
+ Name 164 "ii"
+ Name 182 "ii"
+ Name 186 "i"
+ Name 187 "count"
+ Name 200 "first"
+ Name 211 "second"
+ Name 219 "third"
+ Name 225 "param"
+ Name 231 "input"
+ Name 233 "input"
+ Name 236 "@entryPointOutput"
+ Name 237 "param"
+ Decorate 233(input) Location 0
+ Decorate 236(@entryPointOutput) Location 0
2: TypeVoid
3: TypeFunction 2
- 6: TypeFloat 32
- 7: TypeVector 6(float) 4
- 8: TypePointer Function 7(fvec4)
- 9: TypeFunction 7(fvec4) 8(ptr)
- 18: 6(float) Constant 1065353216
- 32: TypeBool
- 33: TypeVector 32(bool) 4
- 63: 6(float) Constant 1073741824
- 71: TypeInt 32 0
- 72: 71(int) Constant 0
- 73: TypePointer Function 6(float)
- 90: TypeInt 32 1
- 91: TypePointer Function 90(int)
- 93: 90(int) Constant 4294967295
- 100: 90(int) Constant 3
- 103: 90(int) Constant 2
- 109: 90(int) Constant 1
- 115: 90(int) Constant 0
- 139: 6(float) Constant 0
- 146: 71(int) Constant 2
- 147: TypeArray 6(float) 146
- 148: TypePointer Function 147
- 175: TypePointer Input 7(fvec4)
- 176(input): 175(ptr) Variable Input
- 178: TypePointer Output 7(fvec4)
-179(@entryPointOutput): 178(ptr) Variable Output
+ 8: TypeFloat 32
+ 9: TypeVector 8(float) 4
+ 10: TypePointer Function 9(fvec4)
+ 11: TypeFunction 2 10(ptr)
+ 18: TypeFunction 8(float) 10(ptr)
+ 33: TypePointer Function 8(float)
+ 34: TypeFunction 2 33(ptr)
+ 38: TypeFunction 9(fvec4) 10(ptr)
+ 47: 8(float) Constant 1065353216
+ 61: TypeBool
+ 62: TypeVector 61(bool) 4
+ 95: 8(float) Constant 1073741824
+ 104: TypeInt 32 0
+ 105: 104(int) Constant 0
+ 122: TypeInt 32 1
+ 123: TypePointer Function 122(int)
+ 125: 122(int) Constant 0
+ 127: 122(int) Constant 1
+ 165: 122(int) Constant 4294967295
+ 172: 122(int) Constant 3
+ 175: 122(int) Constant 2
+ 201: 8(float) Constant 0
+ 208: 104(int) Constant 2
+ 209: TypeArray 8(float) 208
+ 210: TypePointer Function 209
+ 232: TypePointer Input 9(fvec4)
+ 233(input): 232(ptr) Variable Input
+ 235: TypePointer Output 9(fvec4)
+236(@entryPointOutput): 235(ptr) Variable Output
4(PixelShaderFunction): 2 Function None 3
5: Label
- 174(input): 8(ptr) Variable Function
- 180(param): 8(ptr) Variable Function
- 177: 7(fvec4) Load 176(input)
- Store 174(input) 177
- 181: 7(fvec4) Load 174(input)
- Store 180(param) 181
- 182: 7(fvec4) FunctionCall 11(@PixelShaderFunction(vf4;) 180(param)
- Store 179(@entryPointOutput) 182
+ 231(input): 10(ptr) Variable Function
+ 237(param): 10(ptr) Variable Function
+ 234: 9(fvec4) Load 233(input)
+ Store 231(input) 234
+ 238: 9(fvec4) Load 231(input)
+ Store 237(param) 238
+ 239: 9(fvec4) FunctionCall 40(@PixelShaderFunction(vf4;) 237(param)
+ Store 236(@entryPointOutput) 239
Return
FunctionEnd
-11(@PixelShaderFunction(vf4;): 7(fvec4) Function None 9
- 10(input): 8(ptr) FunctionParameter
- 12: Label
- 92(ii): 91(ptr) Variable Function
- 111(ii): 73(ptr) Variable Function
- 114(first): 91(ptr) Variable Function
- 116(second): 91(ptr) Variable Function
- 124(i): 91(ptr) Variable Function
- 125(count): 91(ptr) Variable Function
- 138(first): 73(ptr) Variable Function
- 149(second): 148(ptr) Variable Function
- 157(third): 73(ptr) Variable Function
- Branch 13
- 13: Label
- LoopMerge 15 16 None
- Branch 14
+ 6(f0(): 2 Function None 3
+ 7: Label
+ Branch 42
+ 42: Label
+ LoopMerge 44 45 None
+ Branch 43
+ 43: Label
+ Branch 45
+ 45: Label
+ Branch 42
+ 44: Label
+ Unreachable
+ FunctionEnd
+ 13(f1(vf4;): 2 Function None 11
+ 12(input): 10(ptr) FunctionParameter
14: Label
- Branch 16
- 16: Label
- Branch 13
- 15: Label
- 17: 7(fvec4) Load 10(input)
- 19: 7(fvec4) CompositeConstruct 18 18 18 18
- 20: 7(fvec4) FAdd 17 19
- Store 10(input) 20
- Branch 21
- 21: Label
- LoopMerge 23 24 None
- Branch 22
- 22: Label
- Branch 24
- 24: Label
- Branch 21
- 23: Label
- Branch 25
- 25: Label
- LoopMerge 27 28 Unroll
- Branch 29
- 29: Label
- 30: 7(fvec4) Load 10(input)
- 31: 7(fvec4) Load 10(input)
- 34: 33(bvec4) FOrdNotEqual 30 31
- 35: 32(bool) Any 34
- BranchConditional 35 26 27
- 26: Label
- Branch 28
- 28: Label
- Branch 25
- 27: Label
- Branch 36
- 36: Label
- LoopMerge 38 39 None
- Branch 40
- 40: Label
- 41: 7(fvec4) Load 10(input)
- 42: 7(fvec4) Load 10(input)
- 43: 33(bvec4) FOrdNotEqual 41 42
- 44: 32(bool) Any 43
- BranchConditional 44 37 38
- 37: Label
- 45: 7(fvec4) Load 10(input)
- 46: 7(fvec4) FNegate 45
- ReturnValue 46
- 39: Label
- Branch 36
- 38: Label
- 48: 7(fvec4) Load 10(input)
- 49: 7(fvec4) CompositeConstruct 18 18 18 18
- 50: 7(fvec4) FSub 48 49
- Store 10(input) 50
+ 46: 9(fvec4) Load 12(input)
+ 48: 9(fvec4) CompositeConstruct 47 47 47 47
+ 49: 9(fvec4) FAdd 46 48
+ Store 12(input) 49
+ Branch 50
+ 50: Label
+ LoopMerge 52 53 None
Branch 51
51: Label
- LoopMerge 53 54 None
- Branch 55
- 55: Label
- 56: 7(fvec4) Load 10(input)
- 57: 7(fvec4) Load 10(input)
- 58: 33(bvec4) FOrdNotEqual 56 57
- 59: 32(bool) Any 58
- BranchConditional 59 52 53
- 52: Label
- 60: 7(fvec4) Load 10(input)
- 61: 7(fvec4) FNegate 60
- ReturnValue 61
- 54: Label
- 64: 7(fvec4) Load 10(input)
- 65: 7(fvec4) CompositeConstruct 63 63 63 63
- 66: 7(fvec4) FAdd 64 65
- Store 10(input) 66
- Branch 51
+ Branch 53
53: Label
- Branch 67
- 67: Label
- LoopMerge 69 70 None
- Branch 68
- 68: Label
- 74: 73(ptr) AccessChain 10(input) 72
- 75: 6(float) Load 74
- 76: 32(bool) FOrdGreaterThan 75 63
- SelectionMerge 78 None
- BranchConditional 76 77 78
- 77: Label
- Branch 69
- 78: Label
- Branch 70
- 70: Label
- Branch 67
+ Branch 50
+ 52: Label
+ Unreachable
+ FunctionEnd
+ 16(f2(vf4;): 2 Function None 11
+ 15(input): 10(ptr) FunctionParameter
+ 17: Label
+ Branch 54
+ 54: Label
+ LoopMerge 56 57 Unroll
+ Branch 58
+ 58: Label
+ 59: 9(fvec4) Load 15(input)
+ 60: 9(fvec4) Load 15(input)
+ 63: 62(bvec4) FOrdNotEqual 59 60
+ 64: 61(bool) Any 63
+ BranchConditional 64 55 56
+ 55: Label
+ Branch 57
+ 57: Label
+ Branch 54
+ 56: Label
+ Return
+ FunctionEnd
+ 20(f3(vf4;): 8(float) Function None 18
+ 19(input): 10(ptr) FunctionParameter
+ 21: Label
+ Branch 65
+ 65: Label
+ LoopMerge 67 68 None
+ Branch 69
69: Label
- Branch 80
- 80: Label
- LoopMerge 82 83 None
- Branch 81
- 81: Label
- 84: 73(ptr) AccessChain 10(input) 72
- 85: 6(float) Load 84
- 86: 32(bool) FOrdGreaterThan 85 63
- SelectionMerge 88 None
- BranchConditional 86 87 88
- 87: Label
- Branch 83
- 88: Label
- Branch 83
- 83: Label
- Branch 80
+ 70: 9(fvec4) Load 19(input)
+ 71: 9(fvec4) Load 19(input)
+ 72: 62(bvec4) FOrdNotEqual 70 71
+ 73: 61(bool) Any 72
+ BranchConditional 73 66 67
+ 66: Label
+ 74: 9(fvec4) Load 19(input)
+ 75: 9(fvec4) FNegate 74
+ 76: 8(float) CompositeExtract 75 0
+ ReturnValue 76
+ 68: Label
+ Branch 65
+ 67: Label
+ 78: 8(float) Undef
+ ReturnValue 78
+ FunctionEnd
+ 23(f4(vf4;): 8(float) Function None 18
+ 22(input): 10(ptr) FunctionParameter
+ 24: Label
+ 79: 9(fvec4) Load 22(input)
+ 80: 9(fvec4) CompositeConstruct 47 47 47 47
+ 81: 9(fvec4) FSub 79 80
+ Store 22(input) 81
+ Branch 82
82: Label
- Store 92(ii) 93
- Branch 94
- 94: Label
- LoopMerge 96 97 None
- Branch 98
- 98: Label
- 99: 90(int) Load 92(ii)
- 101: 32(bool) SLessThan 99 100
- BranchConditional 101 95 96
- 95: Label
- 102: 90(int) Load 92(ii)
- 104: 32(bool) IEqual 102 103
- SelectionMerge 106 None
- BranchConditional 104 105 106
- 105: Label
- Branch 97
- 106: Label
- Branch 97
- 97: Label
- 108: 90(int) Load 92(ii)
- 110: 90(int) IAdd 108 109
- Store 92(ii) 110
- Branch 94
- 96: Label
- 112: 6(float) Load 111(ii)
- 113: 6(float) FSub 112 18
- Store 111(ii) 113
- Store 114(first) 115
- Store 116(second) 109
- Branch 117
- 117: Label
- LoopMerge 119 120 None
- Branch 118
- 118: Label
- 121: 90(int) Load 114(first)
- 122: 90(int) Load 116(second)
- 123: 90(int) IAdd 121 122
- Branch 120
+ LoopMerge 84 85 None
+ Branch 86
+ 86: Label
+ 87: 9(fvec4) Load 22(input)
+ 88: 9(fvec4) Load 22(input)
+ 89: 62(bvec4) FOrdNotEqual 87 88
+ 90: 61(bool) Any 89
+ BranchConditional 90 83 84
+ 83: Label
+ 91: 9(fvec4) Load 22(input)
+ 92: 9(fvec4) FNegate 91
+ 93: 8(float) CompositeExtract 92 0
+ ReturnValue 93
+ 85: Label
+ Branch 82
+ 84: Label
+ 99: 8(float) Undef
+ ReturnValue 99
+ FunctionEnd
+ 26(f5(vf4;): 2 Function None 11
+ 25(input): 10(ptr) FunctionParameter
+ 27: Label
+ Branch 100
+ 100: Label
+ LoopMerge 102 103 None
+ Branch 101
+ 101: Label
+ 106: 33(ptr) AccessChain 25(input) 105
+ 107: 8(float) Load 106
+ 108: 61(bool) FOrdGreaterThan 107 95
+ SelectionMerge 110 None
+ BranchConditional 108 109 110
+ 109: Label
+ Branch 102
+ 110: Label
+ Branch 103
+ 103: Label
+ Branch 100
+ 102: Label
+ Return
+ FunctionEnd
+ 29(f6(vf4;): 2 Function None 11
+ 28(input): 10(ptr) FunctionParameter
+ 30: Label
+ Branch 112
+ 112: Label
+ LoopMerge 114 115 None
+ Branch 113
+ 113: Label
+ 116: 33(ptr) AccessChain 28(input) 105
+ 117: 8(float) Load 116
+ 118: 61(bool) FOrdGreaterThan 117 95
+ SelectionMerge 120 None
+ BranchConditional 118 119 120
+ 119: Label
+ Branch 115
120: Label
- Branch 117
- 119: Label
- Store 124(i) 115
- 126: 6(float) Load 111(ii)
- 127: 90(int) ConvertFToS 126
- Store 125(count) 127
+ Branch 115
+ 115: Label
+ Branch 112
+ 114: Label
+ Unreachable
+ FunctionEnd
+ 31(f99(): 2 Function None 3
+ 32: Label
+ 124(first): 123(ptr) Variable Function
+ 126(second): 123(ptr) Variable Function
+ Store 124(first) 125
+ Store 126(second) 127
Branch 128
128: Label
LoopMerge 130 131 None
- Branch 132
- 132: Label
- 133: 90(int) Load 124(i)
- 134: 90(int) Load 125(count)
- 135: 32(bool) SLessThan 133 134
- BranchConditional 135 129 130
- 129: Label
- Branch 131
- 131: Label
- 136: 90(int) Load 124(i)
- 137: 90(int) IAdd 136 109
- Store 124(i) 137
- Branch 128
+ Branch 129
+ 129: Label
+ 132: 122(int) Load 124(first)
+ 133: 122(int) Load 126(second)
+ 134: 122(int) IAdd 132 133
+ Branch 131
+ 131: Label
+ Branch 128
130: Label
- Store 138(first) 139
- Branch 140
- 140: Label
- LoopMerge 142 143 None
+ Unreachable
+ FunctionEnd
+ 36(f100(f1;): 2 Function None 34
+ 35(ii): 33(ptr) FunctionParameter
+ 37: Label
+ 135: 8(float) Load 35(ii)
+ 136: 8(float) FSub 135 47
+ Store 35(ii) 136
+ 137: 8(float) Load 35(ii)
+ 138: 8(float) FSub 137 47
+ Store 35(ii) 138
+ 139: 8(float) Load 35(ii)
+ 140: 8(float) FSub 139 47
+ Store 35(ii) 140
+ Branch 141
+ 141: Label
+ LoopMerge 143 144 None
+ Branch 142
+ 142: Label
Branch 144
144: Label
- 145: 6(float) Load 138(first)
- 150: 73(ptr) AccessChain 149(second) 115
- 151: 6(float) Load 150
- 152: 32(bool) FOrdLessThan 145 151
- BranchConditional 152 141 142
- 141: Label
- 153: 6(float) Load 138(first)
- 154: 73(ptr) AccessChain 149(second) 109
- 155: 6(float) Load 154
- 156: 6(float) FAdd 153 155
- 158: 6(float) Load 157(third)
- 159: 6(float) FAdd 156 158
- Branch 143
- 143: Label
- 160: 73(ptr) AccessChain 149(second) 109
- 161: 6(float) Load 160
- 162: 6(float) FAdd 161 18
- Store 160 162
- Branch 140
- 142: Label
- 163: 6(float) Load 111(ii)
- 164: 6(float) FSub 163 18
- Store 111(ii) 164
- 165: 6(float) Load 111(ii)
- 166: 6(float) FSub 165 18
- Store 111(ii) 166
- 167: 6(float) Load 111(ii)
- 168: 6(float) FSub 167 18
- Store 111(ii) 168
- Branch 169
- 169: Label
- LoopMerge 171 172 None
+ Branch 141
+ 143: Label
+ Unreachable
+ FunctionEnd
+40(@PixelShaderFunction(vf4;): 9(fvec4) Function None 38
+ 39(input): 10(ptr) FunctionParameter
+ 41: Label
+ 146(param): 10(ptr) Variable Function
+ 149(param): 10(ptr) Variable Function
+ 152(param): 10(ptr) Variable Function
+ 155(param): 10(ptr) Variable Function
+ 158(param): 10(ptr) Variable Function
+ 161(param): 10(ptr) Variable Function
+ 164(ii): 123(ptr) Variable Function
+ 182(ii): 33(ptr) Variable Function
+ 186(i): 123(ptr) Variable Function
+ 187(count): 123(ptr) Variable Function
+ 200(first): 33(ptr) Variable Function
+ 211(second): 210(ptr) Variable Function
+ 219(third): 33(ptr) Variable Function
+ 225(param): 33(ptr) Variable Function
+ 145: 2 FunctionCall 6(f0()
+ 147: 9(fvec4) Load 39(input)
+ Store 146(param) 147
+ 148: 2 FunctionCall 13(f1(vf4;) 146(param)
+ 150: 9(fvec4) Load 39(input)
+ Store 149(param) 150
+ 151: 2 FunctionCall 16(f2(vf4;) 149(param)
+ 153: 9(fvec4) Load 39(input)
+ Store 152(param) 153
+ 154: 8(float) FunctionCall 20(f3(vf4;) 152(param)
+ 156: 9(fvec4) Load 39(input)
+ Store 155(param) 156
+ 157: 8(float) FunctionCall 23(f4(vf4;) 155(param)
+ 159: 9(fvec4) Load 39(input)
+ Store 158(param) 159
+ 160: 2 FunctionCall 26(f5(vf4;) 158(param)
+ 162: 9(fvec4) Load 39(input)
+ Store 161(param) 162
+ 163: 2 FunctionCall 29(f6(vf4;) 161(param)
+ Store 164(ii) 165
+ Branch 166
+ 166: Label
+ LoopMerge 168 169 None
Branch 170
170: Label
- Branch 172
- 172: Label
- Branch 169
- 171: Label
- 173: 7(fvec4) Undef
- ReturnValue 173
+ 171: 122(int) Load 164(ii)
+ 173: 61(bool) SLessThan 171 172
+ BranchConditional 173 167 168
+ 167: Label
+ 174: 122(int) Load 164(ii)
+ 176: 61(bool) IEqual 174 175
+ SelectionMerge 178 None
+ BranchConditional 176 177 178
+ 177: Label
+ Branch 169
+ 178: Label
+ Branch 169
+ 169: Label
+ 180: 122(int) Load 164(ii)
+ 181: 122(int) IAdd 180 127
+ Store 164(ii) 181
+ Branch 166
+ 168: Label
+ 183: 8(float) Load 182(ii)
+ 184: 8(float) FSub 183 47
+ Store 182(ii) 184
+ 185: 2 FunctionCall 31(f99()
+ Store 186(i) 125
+ 188: 8(float) Load 182(ii)
+ 189: 122(int) ConvertFToS 188
+ Store 187(count) 189
+ Branch 190
+ 190: Label
+ LoopMerge 192 193 None
+ Branch 194
+ 194: Label
+ 195: 122(int) Load 186(i)
+ 196: 122(int) Load 187(count)
+ 197: 61(bool) SLessThan 195 196
+ BranchConditional 197 191 192
+ 191: Label
+ Branch 193
+ 193: Label
+ 198: 122(int) Load 186(i)
+ 199: 122(int) IAdd 198 127
+ Store 186(i) 199
+ Branch 190
+ 192: Label
+ Store 200(first) 201
+ Branch 202
+ 202: Label
+ LoopMerge 204 205 None
+ Branch 206
+ 206: Label
+ 207: 8(float) Load 200(first)
+ 212: 33(ptr) AccessChain 211(second) 125
+ 213: 8(float) Load 212
+ 214: 61(bool) FOrdLessThan 207 213
+ BranchConditional 214 203 204
+ 203: Label
+ 215: 8(float) Load 200(first)
+ 216: 33(ptr) AccessChain 211(second) 127
+ 217: 8(float) Load 216
+ 218: 8(float) FAdd 215 217
+ 220: 8(float) Load 219(third)
+ 221: 8(float) FAdd 218 220
+ Branch 205
+ 205: Label
+ 222: 33(ptr) AccessChain 211(second) 127
+ 223: 8(float) Load 222
+ 224: 8(float) FAdd 223 47
+ Store 222 224
+ Branch 202
+ 204: Label
+ 226: 8(float) Load 182(ii)
+ Store 225(param) 226
+ 227: 2 FunctionCall 36(f100(f1;) 225(param)
+ 228: 9(fvec4) Load 39(input)
+ ReturnValue 228
FunctionEnd
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.format.rwtexture.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.format.rwtexture.frag.out
index 7ab53299be4..699dafeb6df 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.format.rwtexture.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.format.rwtexture.frag.out
@@ -184,7 +184,7 @@ using depth_any
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 160
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.fraggeom.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.fraggeom.frag.out
index af3564d1964..7509ddc81f2 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.fraggeom.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.fraggeom.frag.out
@@ -64,7 +64,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 25
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gather.array.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gather.array.dx10.frag.out
index 32d27ab0c66..b954c2b6247 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gather.array.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gather.array.dx10.frag.out
@@ -262,7 +262,7 @@ using depth_any
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 124
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gather.basic.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gather.basic.dx10.frag.out
index 57e4499dd8c..530bccd85fd 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gather.basic.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gather.basic.dx10.frag.out
@@ -258,7 +258,7 @@ using depth_any
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 135
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gather.basic.dx10.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gather.basic.dx10.vert.out
index a0c8d159417..de745d1b5b1 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gather.basic.dx10.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gather.basic.dx10.vert.out
@@ -220,7 +220,7 @@ Shader version: 500
0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 126
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gather.offset.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gather.offset.dx10.frag.out
index 85ba2945e91..3a897121da4 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gather.offset.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gather.offset.dx10.frag.out
@@ -208,7 +208,7 @@ using depth_any
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 114
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out
index c73547e321b..36011878a9a 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out
@@ -202,7 +202,7 @@ using depth_any
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 97
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out
index ac6c81741e5..c2a49018b61 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out
@@ -750,7 +750,7 @@ using depth_any
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 255
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out
index 8617d701caf..8bb01d53962 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out
@@ -758,7 +758,7 @@ using depth_any
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 265
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out
index 4a0d77a09ca..a77767804e0 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out
@@ -1263,7 +1263,7 @@ using depth_any
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 399
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out
index c9740b05944..2acc97530b6 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out
@@ -1255,7 +1255,7 @@ using depth_any
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 389
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gathercmpRGBA.offset.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gathercmpRGBA.offset.dx10.frag.out
index 5e2d42212bd..8ad84cd746a 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gathercmpRGBA.offset.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gathercmpRGBA.offset.dx10.frag.out
@@ -456,7 +456,7 @@ using depth_any
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 164
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.getdimensions.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.getdimensions.dx10.frag.out
index eb92fbb0c81..cf406ed4a09 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.getdimensions.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.getdimensions.dx10.frag.out
@@ -2318,7 +2318,7 @@ using depth_any
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 550
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.getdimensions.dx10.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.getdimensions.dx10.vert.out
index cccdfeb247a..51368b6dfa1 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.getdimensions.dx10.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.getdimensions.dx10.vert.out
@@ -116,7 +116,7 @@ Shader version: 500
0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 48
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out
index d8675a20bad..d096c381f8a 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out
@@ -718,7 +718,7 @@ using depth_any
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 232
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.getsampleposition.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.getsampleposition.dx10.frag.out
index d1e28447f77..7c46c8e192f 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.getsampleposition.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.getsampleposition.dx10.frag.out
@@ -580,7 +580,7 @@ using depth_any
0:? 'sample' (layout( location=0) flat in int)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 198
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.global-const-init.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.global-const-init.frag.out
index a1aa55b5741..828c0c5945c 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.global-const-init.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.global-const-init.frag.out
@@ -102,7 +102,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 50
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.groupid.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.groupid.comp.out
index a76db505f51..65804b73013 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.groupid.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.groupid.comp.out
@@ -82,7 +82,7 @@ local_size = (8, 8, 1)
0:? 'vGroupId' ( in 3-component vector of uint WorkGroupID)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 37
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gs-hs-mix.tesc.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gs-hs-mix.tesc.out
index 4971371a39f..fabc1109155 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gs-hs-mix.tesc.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.gs-hs-mix.tesc.out
@@ -798,7 +798,7 @@ triangle order = ccw
0:? '@patchConstantOutput' (layout( location=1) patch out structure{ temp 3-element array of 3-component vector of float NormalWS})
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 216
Capability Tessellation
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.hlslOffset.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.hlslOffset.vert.out
index b0c04672250..099318cb9c3 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.hlslOffset.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.hlslOffset.vert.out
@@ -26,7 +26,7 @@ Shader version: 500
0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform float m0, layout( row_major std140) uniform 3-component vector of float m4, layout( row_major std140) uniform float m16, layout( row_major std140 offset=20) uniform 3-component vector of float m20, layout( row_major std140 offset=36) uniform 3-component vector of float m36, layout( row_major std140 offset=56) uniform 2-component vector of float m56, layout( row_major std140) uniform float m64, layout( row_major std140) uniform 2-component vector of float m68, layout( row_major std140) uniform float m76, layout( row_major std140) uniform float m80, layout( row_major std140) uniform 1-element array of 2-component vector of float m96})
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 18
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.hull.1.tesc.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.hull.1.tesc.out
index 1be149872fc..ca4417d7cd7 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.hull.1.tesc.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.hull.1.tesc.out
@@ -224,7 +224,7 @@ vertex spacing = equal_spacing
0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 89
Capability Tessellation
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.hull.2.tesc.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.hull.2.tesc.out
index c8218d23725..70fc4f1ea80 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.hull.2.tesc.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.hull.2.tesc.out
@@ -220,7 +220,7 @@ vertex spacing = equal_spacing
0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 91
Capability Tessellation
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.hull.3.tesc.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.hull.3.tesc.out
index 4ff01985dcf..fba7fac812d 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.hull.3.tesc.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.hull.3.tesc.out
@@ -220,7 +220,7 @@ vertex spacing = equal_spacing
0:? '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 91
Capability Tessellation
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.hull.4.tesc.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.hull.4.tesc.out
index a99730d0938..253bdc6453e 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.hull.4.tesc.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.hull.4.tesc.out
@@ -476,7 +476,7 @@ triangle order = cw
0:? '@patchConstantOutput.fInsideTessFactor' ( patch out 2-element array of float TessLevelInner)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 127
Capability Tessellation
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.hull.ctrlpt-1.tesc.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.hull.ctrlpt-1.tesc.out
index 41f3c0a44de..2bf3c7c7d1d 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.hull.ctrlpt-1.tesc.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.hull.ctrlpt-1.tesc.out
@@ -396,7 +396,7 @@ triangle order = cw
0:? '@patchConstantOutput.flInFactor' ( patch out 2-element array of float TessLevelInner)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 124
Capability Tessellation
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.hull.ctrlpt-2.tesc.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.hull.ctrlpt-2.tesc.out
index 986e1102111..62e48f74205 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.hull.ctrlpt-2.tesc.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.hull.ctrlpt-2.tesc.out
@@ -414,7 +414,7 @@ triangle order = cw
0:? '@patchConstantOutput.flInFactor' ( patch out 2-element array of float TessLevelInner)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 126
Capability Tessellation
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.hull.void.tesc.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.hull.void.tesc.out
index c44c7e4dd73..7c006db323e 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.hull.void.tesc.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.hull.void.tesc.out
@@ -108,7 +108,7 @@ triangle order = ccw
0:? 'InvocationId' ( in uint InvocationID)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 55
Capability Tessellation
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.identifier.sample.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.identifier.sample.frag.out
index a23451ec196..ddc4c51de76 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.identifier.sample.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.identifier.sample.frag.out
@@ -86,7 +86,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 33
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.if.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.if.frag.out
index 056b672e308..6b6de9c5f4c 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.if.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.if.frag.out
@@ -2,104 +2,116 @@ hlsl.if.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
-0:2 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
-0:2 Function Parameters:
-0:2 'input' ( in 4-component vector of float)
+0:1 Function Definition: f0(vf4; ( temp 4-component vector of float)
+0:1 Function Parameters:
+0:1 'input' ( in 4-component vector of float)
0:? Sequence
-0:3 Test condition and select ( temp void)
-0:3 Condition
-0:3 all ( temp bool)
-0:3 Equal ( temp 4-component vector of bool)
-0:3 'input' ( in 4-component vector of float)
-0:3 'input' ( in 4-component vector of float)
-0:3 true case
-0:4 Branch: Return with expression
-0:4 'input' ( in 4-component vector of float)
-0:6 Test condition and select ( temp void)
-0:6 Condition
-0:6 all ( temp bool)
-0:6 Equal ( temp 4-component vector of bool)
-0:6 'input' ( in 4-component vector of float)
-0:6 'input' ( in 4-component vector of float)
-0:6 true case
-0:7 Branch: Return with expression
-0:7 'input' ( in 4-component vector of float)
-0:6 false case
-0:9 Branch: Return with expression
-0:9 Negate value ( temp 4-component vector of float)
+0:2 Test condition and select ( temp void)
+0:2 Condition
+0:2 all ( temp bool)
+0:2 Equal ( temp 4-component vector of bool)
+0:2 'input' ( in 4-component vector of float)
+0:2 'input' ( in 4-component vector of float)
+0:2 true case
+0:3 Branch: Return with expression
+0:3 'input' ( in 4-component vector of float)
+0:2 false case
+0:5 Branch: Return with expression
+0:5 Negate value ( temp 4-component vector of float)
+0:5 'input' ( in 4-component vector of float)
+0:8 Function Definition: f1(vf4; ( temp 4-component vector of float)
+0:8 Function Parameters:
+0:8 'input' ( in 4-component vector of float)
+0:? Sequence
+0:9 Test condition and select ( temp void)
+0:9 Condition
+0:9 all ( temp bool)
+0:9 Equal ( temp 4-component vector of bool)
+0:9 'input' ( in 4-component vector of float)
0:9 'input' ( in 4-component vector of float)
-0:11 Test condition and select ( temp void)
-0:11 Condition
-0:11 all ( temp bool)
-0:11 Equal ( temp 4-component vector of bool)
-0:11 'input' ( in 4-component vector of float)
-0:11 'input' ( in 4-component vector of float)
-0:11 true case is null
-0:14 Test condition and select ( temp void)
-0:14 Condition
-0:14 all ( temp bool)
-0:14 Equal ( temp 4-component vector of bool)
-0:14 'input' ( in 4-component vector of float)
-0:14 'input' ( in 4-component vector of float)
-0:14 true case is null
-0:19 Test condition and select ( temp void): Flatten
-0:19 Condition
-0:19 all ( temp bool)
-0:19 Equal ( temp 4-component vector of bool)
-0:19 'input' ( in 4-component vector of float)
-0:19 'input' ( in 4-component vector of float)
-0:19 true case
+0:9 true case
+0:? Sequence
+0:10 Branch: Return with expression
+0:10 'input' ( in 4-component vector of float)
+0:9 false case
0:? Sequence
-0:20 Branch: Return with expression
-0:20 'input' ( in 4-component vector of float)
+0:12 Branch: Return with expression
+0:12 Negate value ( temp 4-component vector of float)
+0:12 'input' ( in 4-component vector of float)
+0:17 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
+0:17 Function Parameters:
+0:17 'input' ( in 4-component vector of float)
+0:? Sequence
+0:18 Test condition and select ( temp void)
+0:18 Condition
+0:18 all ( temp bool)
+0:18 Equal ( temp 4-component vector of bool)
+0:18 'input' ( in 4-component vector of float)
+0:18 'input' ( in 4-component vector of float)
+0:18 true case
+0:19 Branch: Return with expression
+0:19 'input' ( in 4-component vector of float)
+0:21 Function Call: f0(vf4; ( temp 4-component vector of float)
+0:21 'input' ( in 4-component vector of float)
0:23 Test condition and select ( temp void)
0:23 Condition
0:23 all ( temp bool)
0:23 Equal ( temp 4-component vector of bool)
0:23 'input' ( in 4-component vector of float)
0:23 'input' ( in 4-component vector of float)
-0:23 true case
-0:? Sequence
-0:24 Branch: Return with expression
-0:24 'input' ( in 4-component vector of float)
-0:23 false case
+0:23 true case is null
+0:26 Test condition and select ( temp void)
+0:26 Condition
+0:26 all ( temp bool)
+0:26 Equal ( temp 4-component vector of bool)
+0:26 'input' ( in 4-component vector of float)
+0:26 'input' ( in 4-component vector of float)
+0:26 true case is null
+0:31 Test condition and select ( temp void): Flatten
+0:31 Condition
+0:31 all ( temp bool)
+0:31 Equal ( temp 4-component vector of bool)
+0:31 'input' ( in 4-component vector of float)
+0:31 'input' ( in 4-component vector of float)
+0:31 true case
0:? Sequence
-0:26 Branch: Return with expression
-0:26 Negate value ( temp 4-component vector of float)
-0:26 'input' ( in 4-component vector of float)
-0:30 Test condition and select ( temp void)
-0:30 Condition
-0:30 Convert float to bool ( temp bool)
-0:30 move second child to first child ( temp float)
-0:30 'ii' ( temp float)
-0:30 direct index ( temp float)
-0:30 'input' ( in 4-component vector of float)
-0:30 Constant:
-0:30 2 (const int)
-0:30 true case
-0:31 Pre-Increment ( temp float)
-0:31 'ii' ( temp float)
-0:32 Pre-Increment ( temp int)
-0:32 'ii' ( temp int)
-0:33 Test condition and select ( temp void)
-0:33 Condition
-0:33 Compare Equal ( temp bool)
-0:33 Convert int to float ( temp float)
-0:33 'ii' ( temp int)
-0:33 Constant:
-0:33 1.000000
-0:33 true case
-0:34 Pre-Increment ( temp int)
-0:34 'ii' ( temp int)
-0:2 Function Definition: PixelShaderFunction( ( temp void)
-0:2 Function Parameters:
+0:32 Branch: Return with expression
+0:32 'input' ( in 4-component vector of float)
+0:35 Function Call: f1(vf4; ( temp 4-component vector of float)
+0:35 'input' ( in 4-component vector of float)
+0:38 Test condition and select ( temp void)
+0:38 Condition
+0:38 Convert float to bool ( temp bool)
+0:38 move second child to first child ( temp float)
+0:38 'ii' ( temp float)
+0:38 direct index ( temp float)
+0:38 'input' ( in 4-component vector of float)
+0:38 Constant:
+0:38 2 (const int)
+0:38 true case
+0:39 Pre-Increment ( temp float)
+0:39 'ii' ( temp float)
+0:40 Pre-Increment ( temp int)
+0:40 'ii' ( temp int)
+0:41 Test condition and select ( temp void)
+0:41 Condition
+0:41 Compare Equal ( temp bool)
+0:41 Convert int to float ( temp float)
+0:41 'ii' ( temp int)
+0:41 Constant:
+0:41 1.000000
+0:41 true case
+0:42 Pre-Increment ( temp int)
+0:42 'ii' ( temp int)
+0:17 Function Definition: PixelShaderFunction( ( temp void)
+0:17 Function Parameters:
0:? Sequence
-0:2 move second child to first child ( temp 4-component vector of float)
+0:17 move second child to first child ( temp 4-component vector of float)
0:? 'input' ( temp 4-component vector of float)
0:? 'input' (layout( location=0) in 4-component vector of float)
-0:2 move second child to first child ( temp 4-component vector of float)
+0:17 move second child to first child ( temp 4-component vector of float)
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
-0:2 Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
+0:17 Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
0:? 'input' ( temp 4-component vector of float)
0:? Linker Objects
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
@@ -112,259 +124,295 @@ Linked fragment stage:
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
-0:2 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
-0:2 Function Parameters:
-0:2 'input' ( in 4-component vector of float)
+0:1 Function Definition: f0(vf4; ( temp 4-component vector of float)
+0:1 Function Parameters:
+0:1 'input' ( in 4-component vector of float)
+0:? Sequence
+0:2 Test condition and select ( temp void)
+0:2 Condition
+0:2 all ( temp bool)
+0:2 Equal ( temp 4-component vector of bool)
+0:2 'input' ( in 4-component vector of float)
+0:2 'input' ( in 4-component vector of float)
+0:2 true case
+0:3 Branch: Return with expression
+0:3 'input' ( in 4-component vector of float)
+0:2 false case
+0:5 Branch: Return with expression
+0:5 Negate value ( temp 4-component vector of float)
+0:5 'input' ( in 4-component vector of float)
+0:8 Function Definition: f1(vf4; ( temp 4-component vector of float)
+0:8 Function Parameters:
+0:8 'input' ( in 4-component vector of float)
0:? Sequence
-0:3 Test condition and select ( temp void)
-0:3 Condition
-0:3 all ( temp bool)
-0:3 Equal ( temp 4-component vector of bool)
-0:3 'input' ( in 4-component vector of float)
-0:3 'input' ( in 4-component vector of float)
-0:3 true case
-0:4 Branch: Return with expression
-0:4 'input' ( in 4-component vector of float)
-0:6 Test condition and select ( temp void)
-0:6 Condition
-0:6 all ( temp bool)
-0:6 Equal ( temp 4-component vector of bool)
-0:6 'input' ( in 4-component vector of float)
-0:6 'input' ( in 4-component vector of float)
-0:6 true case
-0:7 Branch: Return with expression
-0:7 'input' ( in 4-component vector of float)
-0:6 false case
-0:9 Branch: Return with expression
-0:9 Negate value ( temp 4-component vector of float)
+0:9 Test condition and select ( temp void)
+0:9 Condition
+0:9 all ( temp bool)
+0:9 Equal ( temp 4-component vector of bool)
0:9 'input' ( in 4-component vector of float)
-0:11 Test condition and select ( temp void)
-0:11 Condition
-0:11 all ( temp bool)
-0:11 Equal ( temp 4-component vector of bool)
-0:11 'input' ( in 4-component vector of float)
-0:11 'input' ( in 4-component vector of float)
-0:11 true case is null
-0:14 Test condition and select ( temp void)
-0:14 Condition
-0:14 all ( temp bool)
-0:14 Equal ( temp 4-component vector of bool)
-0:14 'input' ( in 4-component vector of float)
-0:14 'input' ( in 4-component vector of float)
-0:14 true case is null
-0:19 Test condition and select ( temp void): Flatten
-0:19 Condition
-0:19 all ( temp bool)
-0:19 Equal ( temp 4-component vector of bool)
-0:19 'input' ( in 4-component vector of float)
-0:19 'input' ( in 4-component vector of float)
-0:19 true case
+0:9 'input' ( in 4-component vector of float)
+0:9 true case
+0:? Sequence
+0:10 Branch: Return with expression
+0:10 'input' ( in 4-component vector of float)
+0:9 false case
0:? Sequence
-0:20 Branch: Return with expression
-0:20 'input' ( in 4-component vector of float)
+0:12 Branch: Return with expression
+0:12 Negate value ( temp 4-component vector of float)
+0:12 'input' ( in 4-component vector of float)
+0:17 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
+0:17 Function Parameters:
+0:17 'input' ( in 4-component vector of float)
+0:? Sequence
+0:18 Test condition and select ( temp void)
+0:18 Condition
+0:18 all ( temp bool)
+0:18 Equal ( temp 4-component vector of bool)
+0:18 'input' ( in 4-component vector of float)
+0:18 'input' ( in 4-component vector of float)
+0:18 true case
+0:19 Branch: Return with expression
+0:19 'input' ( in 4-component vector of float)
+0:21 Function Call: f0(vf4; ( temp 4-component vector of float)
+0:21 'input' ( in 4-component vector of float)
0:23 Test condition and select ( temp void)
0:23 Condition
0:23 all ( temp bool)
0:23 Equal ( temp 4-component vector of bool)
0:23 'input' ( in 4-component vector of float)
0:23 'input' ( in 4-component vector of float)
-0:23 true case
+0:23 true case is null
+0:26 Test condition and select ( temp void)
+0:26 Condition
+0:26 all ( temp bool)
+0:26 Equal ( temp 4-component vector of bool)
+0:26 'input' ( in 4-component vector of float)
+0:26 'input' ( in 4-component vector of float)
+0:26 true case is null
+0:31 Test condition and select ( temp void): Flatten
+0:31 Condition
+0:31 all ( temp bool)
+0:31 Equal ( temp 4-component vector of bool)
+0:31 'input' ( in 4-component vector of float)
+0:31 'input' ( in 4-component vector of float)
+0:31 true case
0:? Sequence
-0:24 Branch: Return with expression
-0:24 'input' ( in 4-component vector of float)
-0:23 false case
-0:? Sequence
-0:26 Branch: Return with expression
-0:26 Negate value ( temp 4-component vector of float)
-0:26 'input' ( in 4-component vector of float)
-0:30 Test condition and select ( temp void)
-0:30 Condition
-0:30 Convert float to bool ( temp bool)
-0:30 move second child to first child ( temp float)
-0:30 'ii' ( temp float)
-0:30 direct index ( temp float)
-0:30 'input' ( in 4-component vector of float)
-0:30 Constant:
-0:30 2 (const int)
-0:30 true case
-0:31 Pre-Increment ( temp float)
-0:31 'ii' ( temp float)
-0:32 Pre-Increment ( temp int)
-0:32 'ii' ( temp int)
-0:33 Test condition and select ( temp void)
-0:33 Condition
-0:33 Compare Equal ( temp bool)
-0:33 Convert int to float ( temp float)
-0:33 'ii' ( temp int)
-0:33 Constant:
-0:33 1.000000
-0:33 true case
-0:34 Pre-Increment ( temp int)
-0:34 'ii' ( temp int)
-0:2 Function Definition: PixelShaderFunction( ( temp void)
-0:2 Function Parameters:
+0:32 Branch: Return with expression
+0:32 'input' ( in 4-component vector of float)
+0:35 Function Call: f1(vf4; ( temp 4-component vector of float)
+0:35 'input' ( in 4-component vector of float)
+0:38 Test condition and select ( temp void)
+0:38 Condition
+0:38 Convert float to bool ( temp bool)
+0:38 move second child to first child ( temp float)
+0:38 'ii' ( temp float)
+0:38 direct index ( temp float)
+0:38 'input' ( in 4-component vector of float)
+0:38 Constant:
+0:38 2 (const int)
+0:38 true case
+0:39 Pre-Increment ( temp float)
+0:39 'ii' ( temp float)
+0:40 Pre-Increment ( temp int)
+0:40 'ii' ( temp int)
+0:41 Test condition and select ( temp void)
+0:41 Condition
+0:41 Compare Equal ( temp bool)
+0:41 Convert int to float ( temp float)
+0:41 'ii' ( temp int)
+0:41 Constant:
+0:41 1.000000
+0:41 true case
+0:42 Pre-Increment ( temp int)
+0:42 'ii' ( temp int)
+0:17 Function Definition: PixelShaderFunction( ( temp void)
+0:17 Function Parameters:
0:? Sequence
-0:2 move second child to first child ( temp 4-component vector of float)
+0:17 move second child to first child ( temp 4-component vector of float)
0:? 'input' ( temp 4-component vector of float)
0:? 'input' (layout( location=0) in 4-component vector of float)
-0:2 move second child to first child ( temp 4-component vector of float)
+0:17 move second child to first child ( temp 4-component vector of float)
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
-0:2 Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
+0:17 Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
0:? 'input' ( temp 4-component vector of float)
0:? Linker Objects
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:? 'input' (layout( location=0) in 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
-// Id's are bound by 103
+// Generated by (magic number): 80008
+// Id's are bound by 117
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
- EntryPoint Fragment 4 "PixelShaderFunction" 96 99
+ EntryPoint Fragment 4 "PixelShaderFunction" 110 113
ExecutionMode 4 OriginUpperLeft
Source HLSL 500
Name 4 "PixelShaderFunction"
- Name 11 "@PixelShaderFunction(vf4;"
+ Name 11 "f0(vf4;"
Name 10 "input"
- Name 68 "ii"
+ Name 14 "f1(vf4;"
+ Name 13 "input"
+ Name 17 "@PixelShaderFunction(vf4;"
+ Name 16 "input"
+ Name 55 "param"
+ Name 78 "param"
Name 82 "ii"
- Name 94 "input"
- Name 96 "input"
- Name 99 "@entryPointOutput"
- Name 100 "param"
- Decorate 96(input) Location 0
- Decorate 99(@entryPointOutput) Location 0
+ Name 96 "ii"
+ Name 108 "input"
+ Name 110 "input"
+ Name 113 "@entryPointOutput"
+ Name 114 "param"
+ Decorate 110(input) Location 0
+ Decorate 113(@entryPointOutput) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Function 7(fvec4)
9: TypeFunction 7(fvec4) 8(ptr)
- 15: TypeBool
- 16: TypeVector 15(bool) 4
- 67: TypePointer Function 6(float)
- 69: TypeInt 32 0
- 70: 69(int) Constant 2
- 73: 6(float) Constant 0
- 78: 6(float) Constant 1065353216
- 80: TypeInt 32 1
- 81: TypePointer Function 80(int)
- 84: 80(int) Constant 1
- 95: TypePointer Input 7(fvec4)
- 96(input): 95(ptr) Variable Input
- 98: TypePointer Output 7(fvec4)
-99(@entryPointOutput): 98(ptr) Variable Output
+ 21: TypeBool
+ 22: TypeVector 21(bool) 4
+ 81: TypePointer Function 6(float)
+ 83: TypeInt 32 0
+ 84: 83(int) Constant 2
+ 87: 6(float) Constant 0
+ 92: 6(float) Constant 1065353216
+ 94: TypeInt 32 1
+ 95: TypePointer Function 94(int)
+ 98: 94(int) Constant 1
+ 109: TypePointer Input 7(fvec4)
+ 110(input): 109(ptr) Variable Input
+ 112: TypePointer Output 7(fvec4)
+113(@entryPointOutput): 112(ptr) Variable Output
4(PixelShaderFunction): 2 Function None 3
5: Label
- 94(input): 8(ptr) Variable Function
- 100(param): 8(ptr) Variable Function
- 97: 7(fvec4) Load 96(input)
- Store 94(input) 97
- 101: 7(fvec4) Load 94(input)
- Store 100(param) 101
- 102: 7(fvec4) FunctionCall 11(@PixelShaderFunction(vf4;) 100(param)
- Store 99(@entryPointOutput) 102
+ 108(input): 8(ptr) Variable Function
+ 114(param): 8(ptr) Variable Function
+ 111: 7(fvec4) Load 110(input)
+ Store 108(input) 111
+ 115: 7(fvec4) Load 108(input)
+ Store 114(param) 115
+ 116: 7(fvec4) FunctionCall 17(@PixelShaderFunction(vf4;) 114(param)
+ Store 113(@entryPointOutput) 116
Return
FunctionEnd
-11(@PixelShaderFunction(vf4;): 7(fvec4) Function None 9
+ 11(f0(vf4;): 7(fvec4) Function None 9
10(input): 8(ptr) FunctionParameter
12: Label
- 68(ii): 67(ptr) Variable Function
+ 19: 7(fvec4) Load 10(input)
+ 20: 7(fvec4) Load 10(input)
+ 23: 22(bvec4) FOrdEqual 19 20
+ 24: 21(bool) All 23
+ SelectionMerge 26 None
+ BranchConditional 24 25 29
+ 25: Label
+ 27: 7(fvec4) Load 10(input)
+ ReturnValue 27
+ 29: Label
+ 30: 7(fvec4) Load 10(input)
+ 31: 7(fvec4) FNegate 30
+ ReturnValue 31
+ 26: Label
+ Unreachable
+ FunctionEnd
+ 14(f1(vf4;): 7(fvec4) Function None 9
+ 13(input): 8(ptr) FunctionParameter
+ 15: Label
+ 34: 7(fvec4) Load 13(input)
+ 35: 7(fvec4) Load 13(input)
+ 36: 22(bvec4) FOrdEqual 34 35
+ 37: 21(bool) All 36
+ SelectionMerge 39 None
+ BranchConditional 37 38 42
+ 38: Label
+ 40: 7(fvec4) Load 13(input)
+ ReturnValue 40
+ 42: Label
+ 43: 7(fvec4) Load 13(input)
+ 44: 7(fvec4) FNegate 43
+ ReturnValue 44
+ 39: Label
+ Unreachable
+ FunctionEnd
+17(@PixelShaderFunction(vf4;): 7(fvec4) Function None 9
+ 16(input): 8(ptr) FunctionParameter
+ 18: Label
+ 55(param): 8(ptr) Variable Function
+ 78(param): 8(ptr) Variable Function
82(ii): 81(ptr) Variable Function
- 13: 7(fvec4) Load 10(input)
- 14: 7(fvec4) Load 10(input)
- 17: 16(bvec4) FOrdEqual 13 14
- 18: 15(bool) All 17
- SelectionMerge 20 None
- BranchConditional 18 19 20
- 19: Label
- 21: 7(fvec4) Load 10(input)
- ReturnValue 21
- 20: Label
- 23: 7(fvec4) Load 10(input)
- 24: 7(fvec4) Load 10(input)
- 25: 16(bvec4) FOrdEqual 23 24
- 26: 15(bool) All 25
- SelectionMerge 28 None
- BranchConditional 26 27 31
- 27: Label
- 29: 7(fvec4) Load 10(input)
- ReturnValue 29
- 31: Label
- 32: 7(fvec4) Load 10(input)
- 33: 7(fvec4) FNegate 32
- ReturnValue 33
- 28: Label
- 35: 7(fvec4) Load 10(input)
- 36: 7(fvec4) Load 10(input)
- 37: 16(bvec4) FOrdEqual 35 36
- 38: 15(bool) All 37
- SelectionMerge 40 None
- BranchConditional 38 39 40
- 39: Label
- Branch 40
- 40: Label
- 41: 7(fvec4) Load 10(input)
- 42: 7(fvec4) Load 10(input)
- 43: 16(bvec4) FOrdEqual 41 42
- 44: 15(bool) All 43
- SelectionMerge 46 None
- BranchConditional 44 45 46
- 45: Label
- Branch 46
- 46: Label
- 47: 7(fvec4) Load 10(input)
- 48: 7(fvec4) Load 10(input)
- 49: 16(bvec4) FOrdEqual 47 48
- 50: 15(bool) All 49
- SelectionMerge 52 Flatten
+ 96(ii): 95(ptr) Variable Function
+ 47: 7(fvec4) Load 16(input)
+ 48: 7(fvec4) Load 16(input)
+ 49: 22(bvec4) FOrdEqual 47 48
+ 50: 21(bool) All 49
+ SelectionMerge 52 None
BranchConditional 50 51 52
51: Label
- 53: 7(fvec4) Load 10(input)
+ 53: 7(fvec4) Load 16(input)
ReturnValue 53
52: Label
- 55: 7(fvec4) Load 10(input)
- 56: 7(fvec4) Load 10(input)
- 57: 16(bvec4) FOrdEqual 55 56
- 58: 15(bool) All 57
- SelectionMerge 60 None
- BranchConditional 58 59 63
- 59: Label
- 61: 7(fvec4) Load 10(input)
- ReturnValue 61
- 63: Label
- 64: 7(fvec4) Load 10(input)
- 65: 7(fvec4) FNegate 64
- ReturnValue 65
- 60: Label
- 71: 67(ptr) AccessChain 10(input) 70
- 72: 6(float) Load 71
- Store 68(ii) 72
- 74: 15(bool) FOrdNotEqual 72 73
- SelectionMerge 76 None
- BranchConditional 74 75 76
- 75: Label
- 77: 6(float) Load 68(ii)
- 79: 6(float) FAdd 77 78
- Store 68(ii) 79
- Branch 76
- 76: Label
- 83: 80(int) Load 82(ii)
- 85: 80(int) IAdd 83 84
- Store 82(ii) 85
- 86: 80(int) Load 82(ii)
- 87: 6(float) ConvertSToF 86
- 88: 15(bool) FOrdEqual 87 78
+ 56: 7(fvec4) Load 16(input)
+ Store 55(param) 56
+ 57: 7(fvec4) FunctionCall 11(f0(vf4;) 55(param)
+ 58: 7(fvec4) Load 16(input)
+ 59: 7(fvec4) Load 16(input)
+ 60: 22(bvec4) FOrdEqual 58 59
+ 61: 21(bool) All 60
+ SelectionMerge 63 None
+ BranchConditional 61 62 63
+ 62: Label
+ Branch 63
+ 63: Label
+ 64: 7(fvec4) Load 16(input)
+ 65: 7(fvec4) Load 16(input)
+ 66: 22(bvec4) FOrdEqual 64 65
+ 67: 21(bool) All 66
+ SelectionMerge 69 None
+ BranchConditional 67 68 69
+ 68: Label
+ Branch 69
+ 69: Label
+ 70: 7(fvec4) Load 16(input)
+ 71: 7(fvec4) Load 16(input)
+ 72: 22(bvec4) FOrdEqual 70 71
+ 73: 21(bool) All 72
+ SelectionMerge 75 Flatten
+ BranchConditional 73 74 75
+ 74: Label
+ 76: 7(fvec4) Load 16(input)
+ ReturnValue 76
+ 75: Label
+ 79: 7(fvec4) Load 16(input)
+ Store 78(param) 79
+ 80: 7(fvec4) FunctionCall 14(f1(vf4;) 78(param)
+ 85: 81(ptr) AccessChain 16(input) 84
+ 86: 6(float) Load 85
+ Store 82(ii) 86
+ 88: 21(bool) FOrdNotEqual 86 87
SelectionMerge 90 None
BranchConditional 88 89 90
89: Label
- 91: 80(int) Load 82(ii)
- 92: 80(int) IAdd 91 84
- Store 82(ii) 92
+ 91: 6(float) Load 82(ii)
+ 93: 6(float) FAdd 91 92
+ Store 82(ii) 93
Branch 90
90: Label
- 93: 7(fvec4) Undef
- ReturnValue 93
+ 97: 94(int) Load 96(ii)
+ 99: 94(int) IAdd 97 98
+ Store 96(ii) 99
+ 100: 94(int) Load 96(ii)
+ 101: 6(float) ConvertSToF 100
+ 102: 21(bool) FOrdEqual 101 92
+ SelectionMerge 104 None
+ BranchConditional 102 103 104
+ 103: Label
+ 105: 94(int) Load 96(ii)
+ 106: 94(int) IAdd 105 98
+ Store 96(ii) 106
+ Branch 104
+ 104: Label
+ 107: 7(fvec4) Undef
+ ReturnValue 107
FunctionEnd
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.imagefetch-subvec4.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.imagefetch-subvec4.comp.out
index 721aeead005..304f24b6ad7 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.imagefetch-subvec4.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.imagefetch-subvec4.comp.out
@@ -72,7 +72,7 @@ local_size = (8, 8, 8)
0:? 'tid' ( in 3-component vector of uint GlobalInvocationID)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 39
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.implicitBool.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.implicitBool.frag.out
index c6161258110..8b5dcde7a63 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.implicitBool.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.implicitBool.frag.out
@@ -332,7 +332,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 139
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.include.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.include.vert.out
index 88ee8e784f5..4a814ae9803 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.include.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.include.vert.out
@@ -1,6 +1,6 @@
../Test/hlsl.include.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 44
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.inf.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.inf.vert.out
index 1cedc55f511..02326b3b2ee 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.inf.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.inf.vert.out
@@ -112,7 +112,7 @@ Shader version: 500
0:? '@entryPointOutput' ( out 4-component vector of float Position)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 37
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.init.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.init.frag.out
index 1d9a5efa337..2139adb46e5 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.init.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.init.frag.out
@@ -331,7 +331,7 @@ gl_FragCoord origin is upper left
0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform float a, layout( row_major std140) uniform float b, layout( row_major std140) uniform float c})
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 110
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.init2.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.init2.frag.out
index 9e03de3a9c9..0ba8bd274dc 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.init2.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.init2.frag.out
@@ -358,7 +358,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 112
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.inoutquals.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.inoutquals.frag.out
index 42adb1a81a5..2ffa3c56d2a 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.inoutquals.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.inoutquals.frag.out
@@ -214,7 +214,7 @@ using depth_any
0:? 'sampleMask' ( out 1-element array of int SampleMaskIn)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 92
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.int.dot.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.int.dot.frag.out
index afe44c85edb..a691836f028 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.int.dot.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.int.dot.frag.out
@@ -224,7 +224,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 84
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsic.frexp.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsic.frexp.frag.out
index 3a9d6fd51f8..9fb9cc55ca6 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsic.frexp.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsic.frexp.frag.out
@@ -190,7 +190,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 98
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsic.frexp.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsic.frexp.vert.out
index 92bd7ef0aa9..7069ececba8 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsic.frexp.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsic.frexp.vert.out
@@ -113,7 +113,7 @@ Shader version: 500
0:? Linker Objects
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 78
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.barriers.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.barriers.comp.out
index 13fe578073f..a078978e402 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.barriers.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.barriers.comp.out
@@ -52,7 +52,7 @@ local_size = (1, 1, 1)
0:? '@entryPointOutput' (layout( location=0) out float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 22
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.comp.out
index 3329c5cb75a..761a3b3dadc 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.comp.out
@@ -717,7 +717,7 @@ local_size = (1, 1, 1)
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 265
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.d3dcolortoubyte4.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.d3dcolortoubyte4.frag.out
index f2216defb4d..483224163da 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.d3dcolortoubyte4.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.d3dcolortoubyte4.frag.out
@@ -74,7 +74,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of int)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 29
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.double.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.double.frag.out
index 55a102f551b..472f31b2fd6 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.double.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.double.frag.out
@@ -164,7 +164,7 @@ gl_FragCoord origin is upper left
0:? 'inU1b' (layout( location=9) flat in uint)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 90
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.evalfns.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.evalfns.frag.out
index 3f69827daac..0260b937743 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.evalfns.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.evalfns.frag.out
@@ -155,7 +155,7 @@ gl_FragCoord origin is upper left
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 80
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.f1632.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.f1632.frag.out
index c5619efa559..785b083df83 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.f1632.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.f1632.frag.out
@@ -260,7 +260,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 103
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.f3216.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.f3216.frag.out
index c447efc4205..77826b3b1d1 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.f3216.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.f3216.frag.out
@@ -270,7 +270,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 106
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.frag.out
index b8add071b1a..42563828608 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.frag.out
@@ -5645,7 +5645,7 @@ gl_FragCoord origin is upper left
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 1836
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.lit.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.lit.frag.out
index 8b1454b872d..9a8cb29293b 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.lit.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.lit.frag.out
@@ -118,7 +118,7 @@ gl_FragCoord origin is upper left
0:? 'm' (layout( location=2) in float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 48
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.negative.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.negative.comp.out
index 97d67198ea0..920038f2bb8 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.negative.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.negative.comp.out
@@ -180,7 +180,7 @@ local_size = (1, 1, 1)
0:? 'inI0' (layout( location=3) in 4-component vector of int)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 99
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.negative.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.negative.vert.out
index c2711c657e7..3b1bac8dbfb 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.negative.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.negative.vert.out
@@ -308,7 +308,7 @@ Shader version: 500
0:? 'inI0' (layout( location=3) in 4-component vector of int)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 155
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.promote.down.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.promote.down.frag.out
index 84ea6f4912f..21716984305 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.promote.down.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.promote.down.frag.out
@@ -104,7 +104,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 50
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.promote.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.promote.frag.out
index 988432e8ff8..41b1c68c780 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.promote.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.promote.frag.out
@@ -888,7 +888,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 322
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out
index 9f8ecf2715a..143fa72845b 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out
@@ -204,7 +204,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 80
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.vert.out
index 460785e7f42..28e8e41d44b 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.intrinsics.vert.out
@@ -2780,7 +2780,7 @@ Shader version: 500
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 1225
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.isfinite.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.isfinite.frag.out
index 7b8287fc102..a68bd1b9328 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.isfinite.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.isfinite.frag.out
@@ -172,7 +172,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 85
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.layout.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.layout.frag.out
index 6a3eb04f591..1e4f171dab2 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.layout.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.layout.frag.out
@@ -88,7 +88,7 @@ gl_FragCoord origin is upper left
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 44
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.layoutOverride.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.layoutOverride.vert.out
index 31593aa937d..cc09653be1d 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.layoutOverride.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.layoutOverride.vert.out
@@ -52,7 +52,7 @@ Shader version: 500
0:? '@entryPointOutput' ( out 4-component vector of float Position)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 32
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.2dms.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.2dms.dx10.frag.out
index 8d7f70f30ed..9597762114d 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.2dms.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.2dms.dx10.frag.out
@@ -358,7 +358,7 @@ using depth_any
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 130
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.array.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.array.dx10.frag.out
index e5c0f6e17bb..f26d7dfb1ea 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.array.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.array.dx10.frag.out
@@ -388,7 +388,7 @@ using depth_any
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 159
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.basic.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.basic.dx10.frag.out
index b47e037caa0..895a1096794 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.basic.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.basic.dx10.frag.out
@@ -490,7 +490,7 @@ using depth_any
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 179
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.basic.dx10.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.basic.dx10.vert.out
index 99f36673a49..99a57a74a03 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.basic.dx10.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.basic.dx10.vert.out
@@ -452,7 +452,7 @@ Shader version: 500
0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 171
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.buffer.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.buffer.dx10.frag.out
index 969a99f6075..2255cf566b3 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.buffer.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.buffer.dx10.frag.out
@@ -166,7 +166,7 @@ using depth_any
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 72
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out
index d404b27ec49..08a1c564ccc 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out
@@ -172,7 +172,7 @@ using depth_any
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 75
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.offset.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.offset.dx10.frag.out
index 089329e091d..ebf1bd3b499 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.offset.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.offset.dx10.frag.out
@@ -562,7 +562,7 @@ using depth_any
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 201
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out
index 7df846be0c6..297c7377239 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out
@@ -436,7 +436,7 @@ using depth_any
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 174
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out
index 62009e175be..7ad197c8f9a 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out
@@ -110,7 +110,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 57
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out
index f05b335f9c2..77344ac29c3 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out
@@ -208,7 +208,7 @@ using depth_any
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 119
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out
index c6e00ffd462..bf9ea2de097 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out
@@ -244,7 +244,7 @@ using depth_any
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 132
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.logical.binary.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.logical.binary.frag.out
index 5b23a625407..1df39664326 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.logical.binary.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.logical.binary.frag.out
@@ -124,7 +124,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 56
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.logical.binary.vec.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.logical.binary.vec.frag.out
index 0e4f852acb8..bc469dc5b35 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.logical.binary.vec.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.logical.binary.vec.frag.out
@@ -254,7 +254,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 115
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.logical.unary.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.logical.unary.frag.out
index b342c349b4b..57247c60b57 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.logical.unary.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.logical.unary.frag.out
@@ -184,7 +184,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 84
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.logicalConvert.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.logicalConvert.frag.out
index 6c595f8ef12..4757f331e75 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.logicalConvert.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.logicalConvert.frag.out
@@ -254,7 +254,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 50
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.loopattr.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.loopattr.frag.out
index cc0073ac43d..c6130f716c7 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.loopattr.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.loopattr.frag.out
@@ -136,7 +136,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 54
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.matNx1.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.matNx1.frag.out
index e8e0a7b3d5f..1d92d5f323b 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.matNx1.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.matNx1.frag.out
@@ -153,7 +153,7 @@ gl_FragCoord origin is upper left
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 77
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.matType.bool.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.matType.bool.frag.out
index b5543d8f25b..1362ee75945 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.matType.bool.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.matType.bool.frag.out
@@ -233,7 +233,7 @@ gl_FragCoord origin is upper left
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 130
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.matType.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.matType.frag.out
index 80bb2167818..ed08983353e 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.matType.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.matType.frag.out
@@ -32,7 +32,7 @@ gl_FragCoord origin is upper left
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 30
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.matType.int.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.matType.int.frag.out
index a1854aa2100..ad0c314271b 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.matType.int.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.matType.int.frag.out
@@ -399,7 +399,7 @@ gl_FragCoord origin is upper left
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 232
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.matpack-1.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.matpack-1.frag.out
index c02258752db..829d0b118e6 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.matpack-1.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.matpack-1.frag.out
@@ -100,7 +100,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 39
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.matpack-pragma.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.matpack-pragma.frag.out
index 86e945ec28c..a5e351e1d30 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.matpack-pragma.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.matpack-pragma.frag.out
@@ -170,7 +170,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 44
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.matrixSwizzle.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.matrixSwizzle.vert.out
index 237ce5d4ec1..7bc0c1782f6 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.matrixSwizzle.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.matrixSwizzle.vert.out
@@ -677,7 +677,7 @@ Shader version: 500
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 118
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.matrixindex.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.matrixindex.frag.out
index 63ddc4df806..1e5fbb96c06 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.matrixindex.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.matrixindex.frag.out
@@ -272,7 +272,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 83
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.max.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.max.frag.out
index db215a2c006..14cd8bf0959 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.max.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.max.frag.out
@@ -66,7 +66,7 @@ gl_FragCoord origin is upper left
0:? 'input2' (layout( location=1) in 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 33
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.memberFunCall.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.memberFunCall.frag.out
index 01cb99adb8e..83dc86f5311 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.memberFunCall.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.memberFunCall.frag.out
@@ -152,7 +152,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 73
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.mintypes.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.mintypes.frag.out
index 4824bcbed2a..2ce899ba46b 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.mintypes.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.mintypes.frag.out
@@ -98,7 +98,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 70
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.mip.operator.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.mip.operator.frag.out
index 478e808f45a..4123d238af3 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.mip.operator.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.mip.operator.frag.out
@@ -128,7 +128,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 61
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.mul-truncate.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.mul-truncate.frag.out
index a7de28c75c6..c337ed4bfeb 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.mul-truncate.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.mul-truncate.frag.out
@@ -383,7 +383,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 190
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.multiDescriptorSet.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.multiDescriptorSet.frag.out
index 8bd1ad855ea..fa480922dca 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.multiDescriptorSet.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.multiDescriptorSet.frag.out
@@ -1,6 +1,6 @@
hlsl.multiDescriptorSet.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 92
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.multiEntry.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.multiEntry.vert.out
index c051591cc13..d6415122a58 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.multiEntry.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.multiEntry.vert.out
@@ -70,7 +70,7 @@ Shader version: 500
0:? 'Index' ( in uint VertexIndex)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 41
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.multiReturn.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.multiReturn.frag.out
index 6c41c77bed7..54b5107b17b 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.multiReturn.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.multiReturn.frag.out
@@ -48,7 +48,7 @@ gl_FragCoord origin is upper left
0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{ temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m} s})
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 42
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.namespace.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.namespace.frag.out
index 8df43ad759d..9431f66d7be 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.namespace.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.namespace.frag.out
@@ -103,7 +103,7 @@ gl_FragCoord origin is upper left
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 54
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.noSemantic.functionality1.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.noSemantic.functionality1.comp.out
index 3ede90e6400..fc51e9c3d1c 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.noSemantic.functionality1.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.noSemantic.functionality1.comp.out
@@ -1,6 +1,6 @@
hlsl.noSemantic.functionality1.comp
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 30
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.nonint-index.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.nonint-index.frag.out
index 131c1ec03cc..0b6bdbcd314 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.nonint-index.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.nonint-index.frag.out
@@ -88,7 +88,7 @@ gl_FragCoord origin is upper left
0:? 'input' (layout( location=0) in float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 39
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.nonstaticMemberFunction.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.nonstaticMemberFunction.frag.out
index 1927a4cf26d..268e56373d9 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.nonstaticMemberFunction.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.nonstaticMemberFunction.frag.out
@@ -268,7 +268,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 111
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.numericsuffixes.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.numericsuffixes.frag.out
index b1fa856faa3..b4332667e9c 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.numericsuffixes.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.numericsuffixes.frag.out
@@ -192,7 +192,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 54
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.numthreads.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.numthreads.comp.out
index fd7de34b172..95cf29fdb82 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.numthreads.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.numthreads.comp.out
@@ -44,7 +44,7 @@ local_size = (1, 4, 8)
0:? 'tid' ( in 3-component vector of uint GlobalInvocationID)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 23
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.opaque-type-bug.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.opaque-type-bug.frag.out
index 918b462fb94..4ac7a91fafd 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.opaque-type-bug.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.opaque-type-bug.frag.out
@@ -58,7 +58,7 @@ gl_FragCoord origin is upper left
0:? 'MyTexture' (layout( binding=0) uniform texture2D)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 27
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.overload.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.overload.frag.out
index 5960d3d5892..d93c305351f 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.overload.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.overload.frag.out
@@ -734,7 +734,7 @@ gl_FragCoord origin is upper left
0:? 'input' (layout( location=0) in 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 520
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.params.default.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.params.default.frag.out
index d1ecfa61c95..5d054bf281a 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.params.default.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.params.default.frag.out
@@ -376,7 +376,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of int)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 178
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.partialFlattenLocal.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.partialFlattenLocal.vert.out
index 46df206164b..c3ed3a23212 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.partialFlattenLocal.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.partialFlattenLocal.vert.out
@@ -237,7 +237,7 @@ Shader version: 500
0:? 'pos' (layout( location=0) in 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 90
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.partialFlattenMixed.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.partialFlattenMixed.vert.out
index da832b4b01f..520a0fb23d9 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.partialFlattenMixed.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.partialFlattenMixed.vert.out
@@ -91,7 +91,7 @@ Shader version: 500
0:? 'pos' (layout( location=0) in 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 43
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.partialInit.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.partialInit.frag.out
index 6881671e9bd..551c579e423 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.partialInit.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.partialInit.frag.out
@@ -400,7 +400,7 @@ gl_FragCoord origin is upper left
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 104
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.pp.line.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.pp.line.frag.out
index 2c06fe91f87..0416cf4003a 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.pp.line.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.pp.line.frag.out
@@ -120,7 +120,7 @@ using depth_any
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 42
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.pp.line2.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.pp.line2.frag.out
index 10bbf6ad8ce..338884a5405 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.pp.line2.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.pp.line2.frag.out
@@ -1,6 +1,6 @@
hlsl.pp.line2.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 80
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.pp.line3.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.pp.line3.frag.out
index 33e5d55aace..e94547cc699 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.pp.line3.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.pp.line3.frag.out
@@ -1,6 +1,6 @@
hlsl.pp.line3.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 78
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.pp.line4.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.pp.line4.frag.out
index ff92b5200d4..1ddb98bc8b8 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.pp.line4.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.pp.line4.frag.out
@@ -1,6 +1,6 @@
hlsl.pp.line4.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 115
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.pp.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.pp.vert.out
index 24ddfd1d2a6..5d4e943409d 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.pp.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.pp.vert.out
@@ -26,7 +26,7 @@ Shader version: 500
0:? 'anon@0' (layout( row_major std140) uniform block{ uniform int goodGlobal1, uniform int goodGlobal2})
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 13
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.precedence.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.precedence.frag.out
index f4c53389d79..b51be0dd346 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.precedence.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.precedence.frag.out
@@ -148,7 +148,7 @@ gl_FragCoord origin is upper left
0:? 'a4' (layout( location=3) in 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 65
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.precedence2.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.precedence2.frag.out
index 9ce674d6b94..7dd21a62f31 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.precedence2.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.precedence2.frag.out
@@ -114,7 +114,7 @@ gl_FragCoord origin is upper left
0:? 'a4' (layout( location=3) flat in int)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 56
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.precise.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.precise.frag.out
index dd450690a0a..84b26481514 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.precise.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.precise.frag.out
@@ -76,7 +76,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.color' (layout( location=0) noContraction out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 37
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.preprocessor.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.preprocessor.frag.out
index 3c36530e885..11ec1ad2454 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.preprocessor.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.preprocessor.frag.out
@@ -94,7 +94,7 @@ gl_FragCoord origin is upper left
0:? 'input' (layout( location=0) in 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 40
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.promote.atomic.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.promote.atomic.frag.out
index bd781bdb200..4d56fbab431 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.promote.atomic.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.promote.atomic.frag.out
@@ -64,7 +64,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 36
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.promote.binary.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.promote.binary.frag.out
index 624a5062b3f..f63fc3eb264 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.promote.binary.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.promote.binary.frag.out
@@ -172,7 +172,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 83
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.promote.vec1.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.promote.vec1.frag.out
index b92d7409048..a6ad7ca9450 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.promote.vec1.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.promote.vec1.frag.out
@@ -80,7 +80,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 31
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.promotions.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.promotions.frag.out
index cb7998311dd..0a17395fe80 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.promotions.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.promotions.frag.out
@@ -1582,7 +1582,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 596
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.rw.atomics.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.rw.atomics.frag.out
index 02aa00ca2ec..77b140b4c58 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.rw.atomics.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.rw.atomics.frag.out
@@ -3946,7 +3946,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 1147
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.rw.bracket.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.rw.bracket.frag.out
index dc60a2974b8..70f8bbe48e1 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.rw.bracket.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.rw.bracket.frag.out
@@ -1744,7 +1744,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 607
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.rw.register.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.rw.register.frag.out
index 01f6c89c45a..6004512b3bd 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.rw.register.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.rw.register.frag.out
@@ -98,7 +98,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 42
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.rw.scalar.bracket.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.rw.scalar.bracket.frag.out
index aabee5934d0..a8e33ddcc23 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.rw.scalar.bracket.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.rw.scalar.bracket.frag.out
@@ -1690,7 +1690,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 571
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.rw.swizzle.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.rw.swizzle.frag.out
index 089c603702e..267d7339183 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.rw.swizzle.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.rw.swizzle.frag.out
@@ -202,7 +202,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 63
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.rw.vec2.bracket.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.rw.vec2.bracket.frag.out
index a3b523797fe..06c24e7537c 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.rw.vec2.bracket.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.rw.vec2.bracket.frag.out
@@ -1708,7 +1708,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 605
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.sample.array.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.sample.array.dx10.frag.out
index 9066a1d7752..2d0053106ed 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.sample.array.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.sample.array.dx10.frag.out
@@ -322,7 +322,7 @@ using depth_any
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 146
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.sample.basic.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.sample.basic.dx10.frag.out
index 0940e101396..17609029df5 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.sample.basic.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.sample.basic.dx10.frag.out
@@ -550,7 +550,7 @@ using depth_any
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 198
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.sample.dx9.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.sample.dx9.frag.out
index 7b3432af2ba..ce6d5464d7f 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.sample.dx9.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.sample.dx9.frag.out
@@ -378,7 +378,7 @@ using depth_any
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 135
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.sample.dx9.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.sample.dx9.vert.out
index 732b0439880..2b29c0c4f52 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.sample.dx9.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.sample.dx9.vert.out
@@ -154,7 +154,7 @@ Shader version: 500
0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 64
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.sample.offset.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.sample.offset.dx10.frag.out
index 5eadb4a638a..b641ad24736 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.sample.offset.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.sample.offset.dx10.frag.out
@@ -364,7 +364,7 @@ using depth_any
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 161
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out
index edc5d3143d9..54dc4679187 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out
@@ -274,7 +274,7 @@ using depth_any
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 118
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out
index cc44567aa1e..8aa0e7fe62f 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out
@@ -154,7 +154,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 72
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplebias.array.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplebias.array.dx10.frag.out
index c229502d69d..aec493db5c6 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplebias.array.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplebias.array.dx10.frag.out
@@ -358,7 +358,7 @@ using depth_any
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 146
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out
index c840fa4e9b4..9a29c6d852e 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out
@@ -424,7 +424,7 @@ using depth_any
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 170
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out
index be4b4f828a4..fb78b6c0b2e 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out
@@ -401,7 +401,7 @@ using depth_any
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 161
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out
index ae33f407c22..8b7bd37393c 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out
@@ -299,7 +299,7 @@ using depth_any
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 118
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out
index 54cbc0478da..8d0ff463d98 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out
@@ -399,7 +399,7 @@ using depth_any
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 209
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out
index 90e117312c4..c44f16bfa53 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out
@@ -381,7 +381,7 @@ using depth_any
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 198
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmp.dualmode.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmp.dualmode.frag.out
index 7bcf0852993..fd5dd3e1dfd 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmp.dualmode.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmp.dualmode.frag.out
@@ -85,7 +85,7 @@ gl_FragCoord origin is upper left
0:? 'g_tTex' (layout( binding=3) uniform texture1D)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 43
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out
index 29d02daba94..ca0fb8cacb5 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out
@@ -327,7 +327,7 @@ using depth_any
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 167
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out
index bf7b6f020eb..3d0b8fd6692 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out
@@ -339,7 +339,7 @@ using depth_any
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 178
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out
index 5b21f702d70..ce13388e066 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out
@@ -435,7 +435,7 @@ using depth_any
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 210
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out
index fae6899e856..4bf15ece698 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out
@@ -417,7 +417,7 @@ using depth_any
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 199
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out
index 0987ea833da..b85daf03e0c 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out
@@ -351,7 +351,7 @@ using depth_any
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 168
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out
index 74345146831..6f460d0c4a7 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out
@@ -363,7 +363,7 @@ using depth_any
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 179
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out
index 67b5692d4dd..b2922a1a2f8 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out
@@ -430,7 +430,7 @@ using depth_any
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 140
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out
index 7edb8dad842..161821eead5 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out
@@ -532,7 +532,7 @@ using depth_any
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 175
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out
index 979d48f583a..b683d98eaaf 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out
@@ -494,7 +494,7 @@ Shader version: 500
0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 166
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out
index 2620a67cd28..81fbc0bd7de 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out
@@ -472,7 +472,7 @@ using depth_any
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 166
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out
index 87ad78bedc0..01ca547f1e9 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out
@@ -340,7 +340,7 @@ using depth_any
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 120
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out
index 4f079507f8c..a5ff45a8e48 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out
@@ -358,7 +358,7 @@ using depth_any
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 147
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out
index ee982cc2c79..6b91c173d40 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out
@@ -426,7 +426,7 @@ using depth_any
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 172
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out
index 0a8ae49ad03..8f395ed5300 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out
@@ -386,7 +386,7 @@ Shader version: 500
0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 162
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out
index b007ee10bb2..10b48ecc5f1 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out
@@ -400,7 +400,7 @@ using depth_any
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 162
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out
index 302bc81e6ea..5fb25a00428 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out
@@ -298,7 +298,7 @@ using depth_any
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 119
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.scalar-length.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.scalar-length.frag.out
index aa11af554a5..ec808973244 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.scalar-length.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.scalar-length.frag.out
@@ -64,7 +64,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 30
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.scalar2matrix.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.scalar2matrix.frag.out
index 57d250eba2a..cb996f6ab9a 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.scalar2matrix.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.scalar2matrix.frag.out
@@ -374,7 +374,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 96
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.scalarCast.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.scalarCast.vert.out
index 0e07c9f6621..40f0f2049ab 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.scalarCast.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.scalarCast.vert.out
@@ -322,7 +322,7 @@ Shader version: 500
0:? '@entryPointOutput.texCoord' (layout( location=0) out 2-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 120
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.scope.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.scope.frag.out
index b563380e176..882158e05ce 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.scope.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.scope.frag.out
@@ -102,7 +102,7 @@ gl_FragCoord origin is upper left
0:? 'input' (layout( location=0) in 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 49
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.self_cast.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.self_cast.frag.out
index 9d398ed9c10..6f0e1dd687f 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.self_cast.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.self_cast.frag.out
@@ -68,7 +68,7 @@ gl_FragCoord origin is upper left
0:? Linker Objects
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 32
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.semantic-1.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.semantic-1.vert.out
index b5e40913867..96c14a98e2d 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.semantic-1.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.semantic-1.vert.out
@@ -242,7 +242,7 @@ Shader version: 500
0:? 'v' (layout( location=0) in 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 84
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.semantic.geom.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.semantic.geom.out
index 773c8aa37ad..daf4eed22f1 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.semantic.geom.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.semantic.geom.out
@@ -157,7 +157,7 @@ output primitive = line_strip
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 65
Capability Geometry
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.semantic.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.semantic.vert.out
index 2dbcd57ff14..144df05e178 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.semantic.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.semantic.vert.out
@@ -210,7 +210,7 @@ Shader version: 500
0:? '@entryPointOutput.cull1' ( out 2-element array of float CullDistance)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 70
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.semicolons.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.semicolons.frag.out
index 94307a6a614..b45f59de2d8 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.semicolons.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.semicolons.frag.out
@@ -74,7 +74,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 31
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.shapeConv.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.shapeConv.frag.out
index d2838099257..8da8d48a86f 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.shapeConv.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.shapeConv.frag.out
@@ -319,7 +319,7 @@ gl_FragCoord origin is upper left
0:? Linker Objects
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 127
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.shapeConvRet.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.shapeConvRet.frag.out
index fc12f7f0763..efcbe04d242 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.shapeConvRet.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.shapeConvRet.frag.out
@@ -68,7 +68,7 @@ gl_FragCoord origin is upper left
0:? 'f' (layout( location=0) in float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 35
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.sin.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.sin.frag.out
index b92085e41db..3128cec75b5 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.sin.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.sin.frag.out
@@ -52,7 +52,7 @@ gl_FragCoord origin is upper left
0:? 'input' (layout( location=0) in 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 26
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.snorm.uav.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.snorm.uav.comp.out
index 4c5e6039a58..739d77d8563 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.snorm.uav.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.snorm.uav.comp.out
@@ -112,7 +112,7 @@ local_size = (16, 16, 1)
0:? 'tid' ( in 3-component vector of uint GlobalInvocationID)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 54
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.specConstant.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.specConstant.frag.out
index c2942e34173..fdcc2a01b2f 100755
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.specConstant.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.specConstant.frag.out
@@ -136,7 +136,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 61
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.staticFuncInit.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.staticFuncInit.frag.out
index d468cec39f9..04924ed4291 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.staticFuncInit.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.staticFuncInit.frag.out
@@ -130,7 +130,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 57
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.staticMemberFunction.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.staticMemberFunction.frag.out
index 2c7e4180054..5ae189d72cb 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.staticMemberFunction.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.staticMemberFunction.frag.out
@@ -118,7 +118,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 54
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.store.rwbyteaddressbuffer.type.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.store.rwbyteaddressbuffer.type.comp.out
index 29a14c48bd0..f5e004d2d16 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.store.rwbyteaddressbuffer.type.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.store.rwbyteaddressbuffer.type.comp.out
@@ -96,7 +96,7 @@ local_size = (64, 1, 1)
0:? 'dispatchThreadID' ( in 3-component vector of uint GlobalInvocationID)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 42
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.string.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.string.frag.out
index 9181b933aa9..6ee1945a0c5 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.string.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.string.frag.out
@@ -50,7 +50,7 @@ gl_FragCoord origin is upper left
0:? 'f' (layout( location=0) in float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 24
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.stringtoken.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.stringtoken.frag.out
index 15263c58d6a..1b6e0a8c198 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.stringtoken.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.stringtoken.frag.out
@@ -70,7 +70,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 34
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.struct.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.struct.frag.out
index 192041fa3ff..a255b3673b6 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.struct.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.struct.frag.out
@@ -213,7 +213,7 @@ gl_FragCoord origin is upper left
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 102
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.struct.split-1.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.struct.split-1.vert.out
index d7d6e92b120..8c25ca265fc 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.struct.split-1.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.struct.split-1.vert.out
@@ -196,7 +196,7 @@ Shader version: 500
0:? 'Pos_loose' (layout( location=3) in 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 70
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.struct.split.array.geom.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.struct.split.array.geom.out
index 081b05cbb6e..c489ffb19b3 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.struct.split.array.geom.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.struct.split.array.geom.out
@@ -160,7 +160,7 @@ output primitive = triangle_strip
0:? 'OutputStream.VertexID' (layout( location=2) out uint)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 82
Capability Geometry
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.struct.split.assign.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.struct.split.assign.frag.out
index 24c88795251..3209ab76711 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.struct.split.assign.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.struct.split.assign.frag.out
@@ -209,7 +209,7 @@ gl_FragCoord origin is upper left
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 66
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.struct.split.call.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.struct.split.call.vert.out
index 50d1d2b13fc..7c65c065ac5 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.struct.split.call.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.struct.split.call.vert.out
@@ -214,7 +214,7 @@ Shader version: 500
0:? 'vsin.x1_in' (layout( location=2) in int)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 77
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.struct.split.nested.geom.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.struct.split.nested.geom.out
index 7a72a3f880d..75b5003d8fb 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.struct.split.nested.geom.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.struct.split.nested.geom.out
@@ -448,7 +448,7 @@ output primitive = triangle_strip
0:? 'ts.contains_no_builtin_io.m1' (layout( location=3) out int)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 100
Capability Geometry
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.struct.split.trivial.geom.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.struct.split.trivial.geom.out
index 477fbd20049..ecb929e3be1 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.struct.split.trivial.geom.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.struct.split.trivial.geom.out
@@ -192,7 +192,7 @@ output primitive = triangle_strip
0:? 'ts.pos' ( out 4-component vector of float Position)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 67
Capability Geometry
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.struct.split.trivial.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.struct.split.trivial.vert.out
index 8bf477e691b..f516ea09f3b 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.struct.split.trivial.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.struct.split.trivial.vert.out
@@ -98,7 +98,7 @@ Shader version: 500
0:? 'Pos_loose' (layout( location=1) in 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 45
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structIoFourWay.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structIoFourWay.frag.out
index 9938be8bda2..ae470376f1f 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structIoFourWay.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structIoFourWay.frag.out
@@ -162,7 +162,7 @@ using depth_greater
0:? 't.normal' (layout( location=3) in 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 65
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structStructName.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structStructName.frag.out
index 183dcf63976..6e767e48f2d 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structStructName.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structStructName.frag.out
@@ -44,7 +44,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out int)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 22
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structarray.flatten.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structarray.flatten.frag.out
index 5d34aecee05..b654c32eed4 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structarray.flatten.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structarray.flatten.frag.out
@@ -157,7 +157,7 @@ gl_FragCoord origin is upper left
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 80
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structarray.flatten.geom.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structarray.flatten.geom.out
index f88118d6246..426214bec1a 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structarray.flatten.geom.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structarray.flatten.geom.out
@@ -170,7 +170,7 @@ output primitive = triangle_strip
0:? 'outStream.uv' (layout( location=1) out 2-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 58
Capability Geometry
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.append.fn.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.append.fn.frag.out
index 36050fb35d4..c61b1d85b62 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.append.fn.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.append.fn.frag.out
@@ -151,7 +151,7 @@ gl_FragCoord origin is upper left
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 70
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.append.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.append.frag.out
index 2e5c5641bba..e213b4b4d16 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.append.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.append.frag.out
@@ -124,7 +124,7 @@ gl_FragCoord origin is upper left
0:? 'pos' (layout( location=0) flat in uint)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 56
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.atomics.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.atomics.frag.out
index e242cf6f411..d038fbd8b0d 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.atomics.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.atomics.frag.out
@@ -475,7 +475,7 @@ gl_FragCoord origin is upper left
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 87
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.byte.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.byte.frag.out
index 26c7a06011b..e0f11319d92 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.byte.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.byte.frag.out
@@ -324,7 +324,7 @@ gl_FragCoord origin is upper left
0:? 'pos' (layout( location=0) flat in uint)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 114
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.coherent.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.coherent.frag.out
index b33b44d247e..34b029b846e 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.coherent.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.coherent.frag.out
@@ -176,7 +176,7 @@ gl_FragCoord origin is upper left
0:? 'pos' (layout( location=0) flat in uint)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 78
Capability Shader
@@ -305,6 +305,5 @@ gl_FragCoord origin is upper left
66: 9(fvec4) CompositeConstruct 65 65 65 65
ReturnValue 66
45: Label
- 68: 9(fvec4) Undef
- ReturnValue 68
+ Unreachable
FunctionEnd
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.floatidx.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.floatidx.comp.out
index fbb07c29784..e1c5466a544 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.floatidx.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.floatidx.comp.out
@@ -180,7 +180,7 @@ local_size = (1, 1, 1)
0:? 'nThreadId' ( in 3-component vector of uint GlobalInvocationID)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 85
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.fn.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.fn.frag.out
index 085d9dd0600..1df588027cc 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.fn.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.fn.frag.out
@@ -139,7 +139,7 @@ gl_FragCoord origin is upper left
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 78
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.fn2.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.fn2.comp.out
index 517b48c8db4..d25446b3aa0 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.fn2.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.fn2.comp.out
@@ -136,7 +136,7 @@ local_size = (256, 1, 1)
0:? 'dispatchId' ( in 3-component vector of uint GlobalInvocationID)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 63
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.frag.out
index 9a67fd76a8d..38e915d95ee 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.frag.out
@@ -188,7 +188,7 @@ gl_FragCoord origin is upper left
0:? 'pos' (layout( location=0) flat in uint)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 96
Capability Shader
@@ -344,6 +344,5 @@ gl_FragCoord origin is upper left
84: 9(fvec4) CompositeConstruct 83 83 83 83
ReturnValue 84
53: Label
- 86: 9(fvec4) Undef
- ReturnValue 86
+ Unreachable
FunctionEnd
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.incdec.frag.hlslfun1.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.incdec.frag.hlslfun1.out
index 5c73619f2cc..57f387c37d8 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.incdec.frag.hlslfun1.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.incdec.frag.hlslfun1.out
@@ -1,6 +1,6 @@
hlsl.structbuffer.incdec.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 70
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.incdec.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.incdec.frag.out
index 452e9eebf92..b9c1630406c 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.incdec.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.incdec.frag.out
@@ -204,7 +204,7 @@ gl_FragCoord origin is upper left
0:? 'pos' (layout( location=0) flat in uint)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 70
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.rw.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.rw.frag.out
index ceccd5bbca5..fbd48a27ce8 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.rw.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.rw.frag.out
@@ -176,7 +176,7 @@ gl_FragCoord origin is upper left
0:? 'pos' (layout( location=0) flat in uint)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 78
Capability Shader
@@ -303,6 +303,5 @@ gl_FragCoord origin is upper left
66: 9(fvec4) CompositeConstruct 65 65 65 65
ReturnValue 66
45: Label
- 68: 9(fvec4) Undef
- ReturnValue 68
+ Unreachable
FunctionEnd
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.rwbyte.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.rwbyte.frag.out
index 00a055e0277..a061eaced92 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.rwbyte.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.rwbyte.frag.out
@@ -1004,7 +1004,7 @@ gl_FragCoord origin is upper left
0:? 'pos' (layout( location=0) flat in uint)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 239
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structin.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structin.vert.out
index d7f539d0c43..ad9c0d4241c 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structin.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.structin.vert.out
@@ -340,7 +340,7 @@ Shader version: 500
0:? 'e' (layout( location=5) in 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 94
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.subpass.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.subpass.frag.out
index ad5a013290c..8d4802815bc 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.subpass.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.subpass.frag.out
@@ -430,7 +430,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 204
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.switch.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.switch.frag.out
index b72891ea5ad..b94187d7e2a 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.switch.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.switch.frag.out
@@ -296,7 +296,7 @@ gl_FragCoord origin is upper left
0:? 'd' (layout( location=2) flat in int)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 106
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.swizzle.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.swizzle.frag.out
index c734d509835..87ccdc7bebb 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.swizzle.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.swizzle.frag.out
@@ -77,7 +77,7 @@ gl_FragCoord origin is upper left
0:? 'AmbientColor' ( global 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 30
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.synthesizeInput.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.synthesizeInput.frag.out
index bbe97434eee..31f7b7a042b 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.synthesizeInput.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.synthesizeInput.frag.out
@@ -98,7 +98,7 @@ gl_FragCoord origin is upper left
0:? 'input.no_interp' (layout( location=1) flat in uint)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 44
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.target.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.target.frag.out
index 00017968160..0ab23e8ee77 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.target.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.target.frag.out
@@ -114,7 +114,7 @@ gl_FragCoord origin is upper left
0:? 'out2' (layout( location=3) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 50
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.targetStruct1.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.targetStruct1.frag.out
index 371ce2a10be..93d787c148f 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.targetStruct1.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.targetStruct1.frag.out
@@ -184,7 +184,7 @@ gl_FragCoord origin is upper left
0:? 'po' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 65
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.targetStruct2.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.targetStruct2.frag.out
index e6099c9eba3..0fae66fa5bd 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.targetStruct2.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.targetStruct2.frag.out
@@ -184,7 +184,7 @@ gl_FragCoord origin is upper left
0:? 'po' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 65
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.templatetypes.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.templatetypes.frag.out
index 3fc5846aeb8..1dcfc46f093 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.templatetypes.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.templatetypes.frag.out
@@ -508,7 +508,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 153
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.texture.struct.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.texture.struct.frag.out
index 6fc542855ac..7835d322694 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.texture.struct.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.texture.struct.frag.out
@@ -839,7 +839,7 @@ gl_FragCoord origin is upper left
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 240
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.texture.subvec4.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.texture.subvec4.frag.out
index 1beb027d8c7..01f32da62f7 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.texture.subvec4.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.texture.subvec4.frag.out
@@ -356,7 +356,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 130
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.texturebuffer.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.texturebuffer.frag.out
index 0f761af0d00..1aa9dbc38ca 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.texturebuffer.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.texturebuffer.frag.out
@@ -70,7 +70,7 @@ gl_FragCoord origin is upper left
0:? 'pos' ( in 4-component vector of float FragCoord)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 39
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.this.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.this.frag.out
index ac5fde8b95b..f32f109e7bd 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.this.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.this.frag.out
@@ -240,7 +240,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 98
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.tristream-append.geom.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.tristream-append.geom.out
index 94344cddfcb..514ce168788 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.tristream-append.geom.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.tristream-append.geom.out
@@ -107,7 +107,7 @@ output primitive = triangle_strip
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 57
Capability Geometry
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.tx.bracket.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.tx.bracket.frag.out
index f5c828806b5..0e8fb5c3563 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.tx.bracket.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.tx.bracket.frag.out
@@ -422,7 +422,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 188
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.tx.overload.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.tx.overload.frag.out
index 3277954412f..8556b9e6042 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.tx.overload.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.tx.overload.frag.out
@@ -134,7 +134,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 73
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.type.half.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.type.half.frag.out
index 6b5a945b9d9..719b1396392 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.type.half.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.type.half.frag.out
@@ -164,7 +164,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 60
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.type.identifier.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.type.identifier.frag.out
index 2eaa2ae461d..adec4a3f794 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.type.identifier.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.type.identifier.frag.out
@@ -266,7 +266,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 105
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.type.type.conversion.valid.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.type.type.conversion.valid.frag.out
index fc67200146d..3e511ff418b 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.type.type.conversion.valid.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.type.type.conversion.valid.frag.out
@@ -1364,7 +1364,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 122
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.typeGraphCopy.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.typeGraphCopy.vert.out
index 8509cc4b6e0..1ca93bbe78f 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.typeGraphCopy.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.typeGraphCopy.vert.out
@@ -62,7 +62,7 @@ Shader version: 500
0:? '@entryPointOutput' (layout( location=0) out float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 28
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.typedef.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.typedef.frag.out
index 11fd10741a8..d4ab66e5910 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.typedef.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.typedef.frag.out
@@ -79,7 +79,7 @@ gl_FragCoord origin is upper left
0:? Linker Objects
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 34
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.void.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.void.frag.out
index 30edd633c8f..99de9d9e72d 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.void.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.void.frag.out
@@ -54,7 +54,7 @@ gl_FragCoord origin is upper left
0:? 'input' (layout( location=0) in 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 27
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.wavebroadcast.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.wavebroadcast.comp.out
index f1c9679b9a7..a9fc9b4ca17 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.wavebroadcast.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.wavebroadcast.comp.out
@@ -2298,7 +2298,7 @@ local_size = (32, 16, 1)
0:? 'dti' ( in 3-component vector of uint GlobalInvocationID)
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 359
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.waveprefix.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.waveprefix.comp.out
index a9a4b759198..3fc84973085 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.waveprefix.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.waveprefix.comp.out
@@ -2322,7 +2322,7 @@ local_size = (32, 16, 1)
0:? 'dti' ( in 3-component vector of uint GlobalInvocationID)
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 369
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.wavequad.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.wavequad.comp.out
index e7e10f198a5..e237e15a3d3 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.wavequad.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.wavequad.comp.out
@@ -8026,7 +8026,7 @@ local_size = (32, 16, 1)
0:? 'dti' ( in 3-component vector of uint GlobalInvocationID)
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 1120
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.wavequery.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.wavequery.comp.out
index 67da71d6b10..09cba4d2369 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.wavequery.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.wavequery.comp.out
@@ -60,7 +60,7 @@ local_size = (32, 16, 1)
0:? 'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 28
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.wavequery.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.wavequery.frag.out
index 52304a6c637..8848a159644 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.wavequery.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.wavequery.frag.out
@@ -72,7 +72,7 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 30
Capability Shader
@@ -118,6 +118,5 @@ gl_FragCoord origin is upper left
23: Label
ReturnValue 24
16: Label
- 26: 7(fvec4) Undef
- ReturnValue 26
+ Unreachable
FunctionEnd
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.wavereduction.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.wavereduction.comp.out
index 3e0d3fb5714..c31f7f5fd3f 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.wavereduction.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.wavereduction.comp.out
@@ -6186,7 +6186,7 @@ local_size = (32, 16, 1)
0:? 'dti' ( in 3-component vector of uint GlobalInvocationID)
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 901
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.wavevote.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.wavevote.comp.out
index 7b671bf908b..b5c095dbfea 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.wavevote.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.wavevote.comp.out
@@ -204,7 +204,7 @@ local_size = (32, 16, 1)
0:? 'dti' ( in 3-component vector of uint GlobalInvocationID)
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 75
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.whileLoop.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.whileLoop.frag.out
index babc77dfd77..a63d006e353 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.whileLoop.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.whileLoop.frag.out
@@ -96,7 +96,7 @@ gl_FragCoord origin is upper left
0:? 'input' (layout( location=0) in 4-component vector of float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 52
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.y-negate-1.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.y-negate-1.vert.out
index c086cc07f69..08413d223cc 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.y-negate-1.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.y-negate-1.vert.out
@@ -72,7 +72,7 @@ Shader version: 500
0:? '@entryPointOutput' ( out 4-component vector of float Position)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 34
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.y-negate-2.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.y-negate-2.vert.out
index 4e6f189a56c..9e90d3b4f80 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.y-negate-2.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.y-negate-2.vert.out
@@ -80,7 +80,7 @@ Shader version: 500
0:? 'position' ( out 4-component vector of float Position)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 37
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.y-negate-3.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.y-negate-3.vert.out
index 6374551905d..29f63f12029 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.y-negate-3.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/hlsl.y-negate-3.vert.out
@@ -126,7 +126,7 @@ Shader version: 500
0:? '@entryPointOutput.somethingelse' (layout( location=0) out int)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 50
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/link1.vk.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/link1.vk.frag.out
index 094a50d8a28..94debe1404b 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/link1.vk.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/link1.vk.frag.out
@@ -197,7 +197,7 @@ gl_FragCoord origin is upper left
0:? 's2D' (layout( binding=1) uniform highp sampler2D)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 70
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.basic.dcefunc.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.basic.dcefunc.frag.out
index 33ec069dbe9..e985def6d65 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.basic.dcefunc.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.basic.dcefunc.frag.out
@@ -1,6 +1,6 @@
remap.basic.dcefunc.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 22
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.basic.everything.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.basic.everything.frag.out
index 858d629e466..0f7034a88c8 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.basic.everything.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.basic.everything.frag.out
@@ -1,6 +1,6 @@
remap.basic.everything.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 24969
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.basic.none.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.basic.none.frag.out
index 1ad1d74c785..44790dd4098 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.basic.none.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.basic.none.frag.out
@@ -1,6 +1,6 @@
remap.basic.none.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 22
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.basic.strip.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.basic.strip.frag.out
index 3d876d0d68b..05f16badbaa 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.basic.strip.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.basic.strip.frag.out
@@ -1,6 +1,6 @@
remap.basic.strip.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 22
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out
index 7f180a9f5e0..b9ce55e4f4f 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out
@@ -2,7 +2,7 @@ remap.hlsl.sample.basic.everything.frag
WARNING: 0:4: 'immediate sampler state' : unimplemented
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 24878
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.hlsl.sample.basic.none.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.hlsl.sample.basic.none.frag.out
index 577a13501c0..71b7de010a8 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.hlsl.sample.basic.none.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.hlsl.sample.basic.none.frag.out
@@ -2,7 +2,7 @@ remap.hlsl.sample.basic.none.frag
WARNING: 0:4: 'immediate sampler state' : unimplemented
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 198
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out
index d7aea9f9416..c65d237eaa6 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out
@@ -2,7 +2,7 @@ remap.hlsl.sample.basic.strip.frag
WARNING: 0:4: 'immediate sampler state' : unimplemented
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 198
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out
index aff0998cd05..ea390b50072 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out
@@ -1,6 +1,6 @@
remap.hlsl.templatetypes.everything.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 24954
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.hlsl.templatetypes.none.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.hlsl.templatetypes.none.frag.out
index 282fd2a24a0..32b4e7ba421 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.hlsl.templatetypes.none.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.hlsl.templatetypes.none.frag.out
@@ -1,6 +1,6 @@
remap.hlsl.templatetypes.none.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 160
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.if.everything.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.if.everything.frag.out
index cdb007b317b..26cc3dcaa0a 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.if.everything.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.if.everything.frag.out
@@ -1,6 +1,6 @@
remap.if.everything.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 22855
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.if.none.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.if.none.frag.out
index 0c8d27836d2..48e85874e79 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.if.none.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.if.none.frag.out
@@ -1,6 +1,6 @@
remap.if.none.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 25
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.similar_1a.everything.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.similar_1a.everything.frag.out
index 2f8f1c737dd..6d5ce1c0ac5 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.similar_1a.everything.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.similar_1a.everything.frag.out
@@ -1,6 +1,6 @@
remap.similar_1a.everything.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 24916
Capability Shader
@@ -88,7 +88,7 @@ remap.similar_1a.everything.frag
22102: 649(ptr) Variable Function
24151: 12(int) Load 4408
13868: 9(bool) SGreaterThan 24151 2577
- SelectionMerge 22309 None
+ SelectionMerge 14966 None
BranchConditional 13868 9492 17416
9492: Label
15624: 12(int) Load 4408
@@ -109,7 +109,6 @@ remap.similar_1a.everything.frag
10505: 12(int) IAdd 11462 21176
14626: 13(float) ConvertSToF 10505
ReturnValue 14626
- 22309: Label
- 6429: 13(float) Undef
- ReturnValue 6429
+ 14966: Label
+ Unreachable
FunctionEnd
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.similar_1a.none.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.similar_1a.none.frag.out
index 80d35c3fa1e..457f1bef23f 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.similar_1a.none.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.similar_1a.none.frag.out
@@ -1,6 +1,6 @@
remap.similar_1a.none.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 86
Capability Shader
@@ -124,6 +124,5 @@ remap.similar_1a.none.frag
68: 8(float) ConvertSToF 67
ReturnValue 68
43: Label
- 70: 8(float) Undef
- ReturnValue 70
+ Unreachable
FunctionEnd
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.similar_1b.everything.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.similar_1b.everything.frag.out
index c76c4bfa06a..67425c67a98 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.similar_1b.everything.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.similar_1b.everything.frag.out
@@ -1,6 +1,6 @@
remap.similar_1b.everything.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 24916
Capability Shader
@@ -93,7 +93,7 @@ remap.similar_1b.everything.frag
22102: 649(ptr) Variable Function
24151: 12(int) Load 4408
13868: 9(bool) SGreaterThan 24151 2577
- SelectionMerge 22309 None
+ SelectionMerge 14966 None
BranchConditional 13868 10822 17416
10822: Label
22680: 12(int) Load 4408
@@ -115,7 +115,6 @@ remap.similar_1b.everything.frag
10505: 12(int) IAdd 11462 21176
14626: 13(float) ConvertSToF 10505
ReturnValue 14626
- 22309: Label
- 6429: 13(float) Undef
- ReturnValue 6429
+ 14966: Label
+ Unreachable
FunctionEnd
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.similar_1b.none.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.similar_1b.none.frag.out
index 0a854d6ea25..fe021e02091 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.similar_1b.none.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.similar_1b.none.frag.out
@@ -1,6 +1,6 @@
remap.similar_1b.none.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 91
Capability Shader
@@ -130,6 +130,5 @@ remap.similar_1b.none.frag
73: 8(float) ConvertSToF 72
ReturnValue 73
46: Label
- 75: 8(float) Undef
- ReturnValue 75
+ Unreachable
FunctionEnd
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.specconst.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.specconst.comp.out
index ee049f43099..80d13b29c22 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.specconst.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.specconst.comp.out
@@ -1,6 +1,6 @@
remap.specconst.comp
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 16104
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.switch.everything.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.switch.everything.frag.out
index ffd64d4f6ae..2362f671334 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.switch.everything.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.switch.everything.frag.out
@@ -3,7 +3,7 @@ WARNING: 0:5: '' : all default precisions are highp; use precision statements to
"precision mediump int; precision highp float;"
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 23990
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.switch.none.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.switch.none.frag.out
index 4dd78977a47..f8737b947e9 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.switch.none.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.switch.none.frag.out
@@ -3,7 +3,7 @@ WARNING: 0:5: '' : all default precisions are highp; use precision statements to
"precision mediump int; precision highp float;"
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 48
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.uniformarray.everything.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.uniformarray.everything.frag.out
index c1f306e1090..40429f24a5a 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.uniformarray.everything.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.uniformarray.everything.frag.out
@@ -1,6 +1,6 @@
remap.uniformarray.everything.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 25030
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.uniformarray.none.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.uniformarray.none.frag.out
index 1087e5e7a7f..42d55b97b55 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.uniformarray.none.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/remap.uniformarray.none.frag.out
@@ -1,6 +1,6 @@
remap.uniformarray.none.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 53
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/size b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/size
index 48487765434..47364a5804d 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/size
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/size
@@ -1 +1 @@
-388096 ../build/install/bin/glslangValidator.exe
+396288 ../build/install/bin/glslangValidator.exe
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.3.8bitstorage-ssbo.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.3.8bitstorage-ssbo.vert.out
index cffc3a4feea..105bbdb8d65 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.3.8bitstorage-ssbo.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.3.8bitstorage-ssbo.vert.out
@@ -1,6 +1,6 @@
spv.1.3.8bitstorage-ssbo.vert
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 28
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.3.8bitstorage-ubo.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.3.8bitstorage-ubo.vert.out
index 7bdda4afd5e..77c156583e5 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.3.8bitstorage-ubo.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.3.8bitstorage-ubo.vert.out
@@ -1,6 +1,6 @@
spv.1.3.8bitstorage-ubo.vert
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 29
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.3.coopmat.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.3.coopmat.comp.out
index c1838479787..29d914ff0d0 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.3.coopmat.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.3.coopmat.comp.out
@@ -1,6 +1,6 @@
spv.1.3.coopmat.comp
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 52
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.LoopControl.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.LoopControl.frag.out
index c9a605b950a..008ef4706ef 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.LoopControl.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.LoopControl.frag.out
@@ -3,7 +3,7 @@ WARNING: 0:15: 'min_iterations' : expected a single integer argument
WARNING: 0:15: 'max_iterations' : expected a single integer argument
// Module Version 10400
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 54
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.NonWritable.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.NonWritable.frag.out
index 3f54661d3b2..0207ed2294f 100755
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.NonWritable.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.NonWritable.frag.out
@@ -1,6 +1,6 @@
spv.1.4.NonWritable.frag
// Module Version 10400
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 38
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.OpCopyLogical.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.OpCopyLogical.comp.out
index d80bfee7cab..53e672fad15 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.OpCopyLogical.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.OpCopyLogical.comp.out
@@ -1,6 +1,6 @@
spv.1.4.OpCopyLogical.comp
// Module Version 10400
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 65
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.OpCopyLogical.funcall.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.OpCopyLogical.funcall.frag.out
index 85bfdb26869..d7509b1584a 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.OpCopyLogical.funcall.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.OpCopyLogical.funcall.frag.out
@@ -1,6 +1,6 @@
spv.1.4.OpCopyLogical.funcall.frag
// Module Version 10400
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 60
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.OpCopyLogicalBool.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.OpCopyLogicalBool.comp.out
index f2f85c10b74..2b60625f4b6 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.OpCopyLogicalBool.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.OpCopyLogicalBool.comp.out
@@ -1,6 +1,6 @@
spv.1.4.OpCopyLogicalBool.comp
// Module Version 10400
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 135
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.OpEntryPoint.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.OpEntryPoint.frag.out
index 694cff046f9..f06960c8a09 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.OpEntryPoint.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.OpEntryPoint.frag.out
@@ -1,6 +1,6 @@
spv.1.4.OpEntryPoint.frag
// Module Version 10400
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 64
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.OpSelect.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.OpSelect.frag.out
index 31797170d98..6ba00a4af8d 100755
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.OpSelect.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.OpSelect.frag.out
@@ -1,6 +1,6 @@
spv.1.4.OpSelect.frag
// Module Version 10400
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 98
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.constructComposite.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.constructComposite.comp.out
index 5c0f5cfa9b0..e514286957f 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.constructComposite.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.constructComposite.comp.out
@@ -1,6 +1,6 @@
spv.1.4.constructComposite.comp
// Module Version 10400
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 27
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.image.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.image.frag.out
index 4adfd4bdd31..98ffdcbcc49 100755
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.image.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.image.frag.out
@@ -1,6 +1,6 @@
spv.1.4.image.frag
// Module Version 10400
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 104
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.sparseTexture.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.sparseTexture.frag.out
index 292335ed780..3b566c7cf4f 100755
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.sparseTexture.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.sparseTexture.frag.out
@@ -1,6 +1,6 @@
spv.1.4.sparseTexture.frag
// Module Version 10400
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 213
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.texture.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.texture.frag.out
index 7c2de0bb1b1..da3a24f51f0 100755
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.texture.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.1.4.texture.frag.out
@@ -1,6 +1,6 @@
spv.1.4.texture.frag
// Module Version 10400
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 79
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.100ops.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.100ops.frag.out
index 8f656ebb5c9..d2b8f3e8042 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.100ops.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.100ops.frag.out
@@ -1,6 +1,6 @@
spv.100ops.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 49
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.130.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.130.frag.out
index 67e2b824619..ca1f9e380e8 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.130.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.130.frag.out
@@ -3,7 +3,7 @@ WARNING: 0:31: '#extension' : extension is only partially supported: GL_ARB_gpu_
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 205
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.140.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.140.frag.out
index abfd13a9167..45b7510680f 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.140.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.140.frag.out
@@ -1,7 +1,7 @@
spv.140.frag
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 96
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.150.geom.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.150.geom.out
index 19bd72530fa..ab0584621c4 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.150.geom.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.150.geom.out
@@ -1,6 +1,6 @@
spv.150.geom
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 71
Capability Geometry
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.150.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.150.vert.out
index db058fa348b..9e1c9f4972b 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.150.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.150.vert.out
@@ -1,6 +1,6 @@
spv.150.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 63
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.16bitstorage-int.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.16bitstorage-int.frag.out
index c1aacb8e7a8..80733cec665 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.16bitstorage-int.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.16bitstorage-int.frag.out
@@ -1,6 +1,6 @@
spv.16bitstorage-int.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 171
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.16bitstorage-uint.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.16bitstorage-uint.frag.out
index ba2e0c6eba7..d4b1b7597ad 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.16bitstorage-uint.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.16bitstorage-uint.frag.out
@@ -1,6 +1,6 @@
spv.16bitstorage-uint.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 173
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.16bitstorage.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.16bitstorage.frag.out
index 5530cf464dc..c73eb599747 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.16bitstorage.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.16bitstorage.frag.out
@@ -1,6 +1,6 @@
spv.16bitstorage.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 173
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.16bitxfb.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.16bitxfb.vert.out
index 7d989c57e72..96cff799c73 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.16bitxfb.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.16bitxfb.vert.out
@@ -1,6 +1,6 @@
spv.16bitxfb.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 59
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.300BuiltIns.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.300BuiltIns.vert.out
index ee2c236e783..2633645cbd3 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.300BuiltIns.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.300BuiltIns.vert.out
@@ -1,6 +1,6 @@
spv.300BuiltIns.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 42
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.300layout.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.300layout.frag.out
index 10a6d00eb1d..db069558dd3 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.300layout.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.300layout.frag.out
@@ -1,6 +1,6 @@
spv.300layout.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 37
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.300layout.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.300layout.vert.out
index 4d4d7ea4371..c97d217a07a 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.300layout.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.300layout.vert.out
@@ -1,6 +1,6 @@
spv.300layout.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 163
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.300layoutp.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.300layoutp.vert.out
index e12041fc356..2b1ef83eefe 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.300layoutp.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.300layoutp.vert.out
@@ -1,6 +1,6 @@
spv.300layoutp.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 115
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.310.bitcast.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.310.bitcast.frag.out
index d7a244f8628..e4f62b49f82 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.310.bitcast.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.310.bitcast.frag.out
@@ -1,6 +1,6 @@
spv.310.bitcast.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 153
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.310.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.310.comp.out
index bb8e6a7b1d2..3b90d419471 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.310.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.310.comp.out
@@ -1,6 +1,6 @@
spv.310.comp
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 72
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.320.meshShaderUserDefined.mesh.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.320.meshShaderUserDefined.mesh.out
index 20b6fa24226..6881084ae7c 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.320.meshShaderUserDefined.mesh.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.320.meshShaderUserDefined.mesh.out
@@ -1,6 +1,6 @@
spv.320.meshShaderUserDefined.mesh
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 140
Capability MeshShadingNV
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.330.geom.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.330.geom.out
index 1ccbfb6c4c6..79e03b6fa24 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.330.geom.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.330.geom.out
@@ -1,6 +1,6 @@
spv.330.geom
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 32
Capability Geometry
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.400.frag.nanclamp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.400.frag.nanclamp.out
index 5305ee4c3a8..448aa5efaee 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.400.frag.nanclamp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.400.frag.nanclamp.out
@@ -1,6 +1,6 @@
spv.400.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 1118
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.400.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.400.frag.out
index 5433e4d385d..b2f4a167ee3 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.400.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.400.frag.out
@@ -1,7 +1,7 @@
spv.400.frag
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 1118
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.400.tesc.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.400.tesc.out
index ce7c3afa4b8..e84b420ed2d 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.400.tesc.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.400.tesc.out
@@ -1,6 +1,6 @@
spv.400.tesc
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 92
Capability Tessellation
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.400.tese.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.400.tese.out
index 43b6a9159a4..5705fbd3de3 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.400.tese.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.400.tese.out
@@ -1,6 +1,6 @@
spv.400.tese
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 96
Capability Tessellation
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.420.geom.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.420.geom.out
index fa91dd81d81..c75ae5d6194 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.420.geom.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.420.geom.out
@@ -1,6 +1,6 @@
spv.420.geom
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 72
Capability Geometry
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.430.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.430.frag.out
index 330489f2df6..96ab1e960e4 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.430.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.430.frag.out
@@ -1,6 +1,6 @@
spv.430.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 24
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.430.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.430.vert.out
index 1cd9e619e73..89e5b16e269 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.430.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.430.vert.out
@@ -1,6 +1,6 @@
spv.430.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 66
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.450.geom.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.450.geom.out
index 7713e54e0fc..1e7e8c50f08 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.450.geom.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.450.geom.out
@@ -1,6 +1,6 @@
spv.450.geom
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 31
Capability Geometry
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.450.noRedecl.tesc.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.450.noRedecl.tesc.out
index b23061da4d4..31c7b4da90f 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.450.noRedecl.tesc.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.450.noRedecl.tesc.out
@@ -1,6 +1,6 @@
spv.450.noRedecl.tesc
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 21
Capability Tessellation
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.450.tesc.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.450.tesc.out
index 35653fdef77..0c22d9a756a 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.450.tesc.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.450.tesc.out
@@ -1,6 +1,6 @@
spv.450.tesc
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 45
Capability Tessellation
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.460.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.460.comp.out
index 6ebf49fa931..09256746260 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.460.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.460.comp.out
@@ -1,6 +1,6 @@
spv.460.comp
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 15
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.460.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.460.frag.out
index 04393fbef2c..067bd43cd61 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.460.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.460.frag.out
@@ -1,6 +1,6 @@
spv.460.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 32
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.460.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.460.vert.out
index c2ef3024155..a73b7e1dc3b 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.460.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.460.vert.out
@@ -1,6 +1,6 @@
spv.460.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 20
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.8bitstorage-int.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.8bitstorage-int.frag.out
index 47e854f2d90..54a47afa1f7 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.8bitstorage-int.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.8bitstorage-int.frag.out
@@ -1,6 +1,6 @@
spv.8bitstorage-int.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 171
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.8bitstorage-ssbo.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.8bitstorage-ssbo.vert.out
index d0379fa53ac..274639b1419 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.8bitstorage-ssbo.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.8bitstorage-ssbo.vert.out
@@ -1,6 +1,6 @@
spv.8bitstorage-ssbo.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 28
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.8bitstorage-ubo.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.8bitstorage-ubo.vert.out
index c5ec89d4d48..af95a7633b4 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.8bitstorage-ubo.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.8bitstorage-ubo.vert.out
@@ -1,6 +1,6 @@
spv.8bitstorage-ubo.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 29
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.8bitstorage-uint.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.8bitstorage-uint.frag.out
index a66c6a3bec0..65658825f3f 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.8bitstorage-uint.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.8bitstorage-uint.frag.out
@@ -1,6 +1,6 @@
spv.8bitstorage-uint.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 173
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.AnyHitShader.rahit.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.AnyHitShader.rahit.out
index 92b31d08496..d044b97307a 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.AnyHitShader.rahit.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.AnyHitShader.rahit.out
@@ -1,6 +1,6 @@
spv.AnyHitShader.rahit
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 81
Capability RayTracingNV
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.AofA.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.AofA.frag.out
index 7433f177ab4..c9f8b469efc 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.AofA.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.AofA.frag.out
@@ -3,7 +3,7 @@ WARNING: 0:6: '[][]' : Generating SPIR-V array-of-arrays, but Vulkan only suppor
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 104
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.ClosestHitShader.rchit.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.ClosestHitShader.rchit.out
index b461462ee49..482008dc84d 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.ClosestHitShader.rchit.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.ClosestHitShader.rchit.out
@@ -1,6 +1,6 @@
spv.ClosestHitShader.rchit
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 88
Capability RayTracingNV
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.GeometryShaderPassthrough.geom.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.GeometryShaderPassthrough.geom.out
index 5db845e591e..7e62c575772 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.GeometryShaderPassthrough.geom.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.GeometryShaderPassthrough.geom.out
@@ -1,6 +1,6 @@
spv.GeometryShaderPassthrough.geom
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 15
Capability Geometry
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.IntersectShader.rint.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.IntersectShader.rint.out
index cbb70cd68d5..4fe4edf0413 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.IntersectShader.rint.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.IntersectShader.rint.out
@@ -1,6 +1,6 @@
spv.IntersectShader.rint
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 71
Capability RayTracingNV
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.MissShader.rmiss.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.MissShader.rmiss.out
index 0ad3341a418..37fd3bda0dc 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.MissShader.rmiss.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.MissShader.rmiss.out
@@ -1,6 +1,6 @@
spv.MissShader.rmiss
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 60
Capability RayTracingNV
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.OVR_multiview.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.OVR_multiview.vert.out
index 7013cedd75b..66168dce511 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.OVR_multiview.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.OVR_multiview.vert.out
@@ -1,6 +1,6 @@
spv.OVR_multiview.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 27
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.Operations.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.Operations.frag.out
index 4113ddf1199..22aeecd9c4c 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.Operations.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.Operations.frag.out
@@ -1,6 +1,6 @@
spv.Operations.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 532
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.RayCallable.rcall.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.RayCallable.rcall.out
index e399e634263..31df5d1b1b3 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.RayCallable.rcall.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.RayCallable.rcall.out
@@ -1,6 +1,6 @@
spv.RayCallable.rcall
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 30
Capability RayTracingNV
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.RayConstants.rgen.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.RayConstants.rgen.out
index d939acfbc61..033e545515f 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.RayConstants.rgen.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.RayConstants.rgen.out
@@ -1,6 +1,6 @@
spv.RayConstants.rgen
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 27
Capability RayTracingNV
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.RayGenShader.rgen.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.RayGenShader.rgen.out
index 91f37e5c8c4..59eabd0dc7a 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.RayGenShader.rgen.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.RayGenShader.rgen.out
@@ -1,6 +1,6 @@
spv.RayGenShader.rgen
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 54
Capability RayTracingNV
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.RayGenShader11.rgen.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.RayGenShader11.rgen.out
index 8f2c52b05ed..2d49b0fc757 100755
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.RayGenShader11.rgen.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.RayGenShader11.rgen.out
@@ -1,6 +1,6 @@
spv.RayGenShader11.rgen
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 53
Capability RayTracingNV
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.RayGenShaderArray.rgen.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.RayGenShaderArray.rgen.out
index 7430756928f..e9143049d8a 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.RayGenShaderArray.rgen.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.RayGenShaderArray.rgen.out
@@ -1,6 +1,6 @@
spv.RayGenShaderArray.rgen
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 89
Capability ShaderNonUniformEXT
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.accessChain.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.accessChain.frag.out
index bf878292fa7..c5c71a5cfc4 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.accessChain.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.accessChain.frag.out
@@ -1,6 +1,6 @@
spv.accessChain.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 222
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.aggOps.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.aggOps.frag.out
index f388e8ea2de..976c747aa79 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.aggOps.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.aggOps.frag.out
@@ -3,7 +3,7 @@ WARNING: 0:4: '' : all default precisions are highp; use precision statements to
"precision mediump int; precision highp float;"
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 215
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.always-discard.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.always-discard.frag.out
index 8074cf82643..fb4529e68e2 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.always-discard.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.always-discard.frag.out
@@ -1,6 +1,6 @@
spv.always-discard.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 84
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.always-discard2.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.always-discard2.frag.out
index e3fa43a394d..2d8f66eff85 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.always-discard2.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.always-discard2.frag.out
@@ -1,6 +1,6 @@
spv.always-discard2.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 40
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.arbPostDepthCoverage.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.arbPostDepthCoverage.frag.out
index f41c0121233..d62c677511c 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.arbPostDepthCoverage.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.arbPostDepthCoverage.frag.out
@@ -1,6 +1,6 @@
spv.arbPostDepthCoverage.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 18
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.atomic.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.atomic.comp.out
index 3dd88f398a4..08bd83023e9 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.atomic.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.atomic.comp.out
@@ -1,6 +1,6 @@
spv.atomic.comp
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 74
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.atomicInt64.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.atomicInt64.comp.out
index 9c66aecc85f..5ac910e3e54 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.atomicInt64.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.atomicInt64.comp.out
@@ -1,6 +1,6 @@
spv.atomicInt64.comp
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 149
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.barrier.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.barrier.vert.out
index b9369f27913..ffc2eaac2c2 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.barrier.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.barrier.vert.out
@@ -1,6 +1,6 @@
spv.barrier.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 24
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bitCast.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bitCast.frag.out
index a687b8da2e4..f590ec7d721 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bitCast.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bitCast.frag.out
@@ -1,6 +1,6 @@
spv.bitCast.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 172
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bool.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bool.vert.out
index 31eb54cf821..3e5a1905619 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bool.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bool.vert.out
@@ -1,6 +1,6 @@
spv.bool.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 46
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.boolInBlock.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.boolInBlock.frag.out
index e86ca6b3f78..b0a4023a361 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.boolInBlock.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.boolInBlock.frag.out
@@ -1,6 +1,6 @@
spv.boolInBlock.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 102
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.branch-return.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.branch-return.vert.out
index ca44724587b..3aacca7ef0d 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.branch-return.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.branch-return.vert.out
@@ -1,6 +1,6 @@
spv.branch-return.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 38
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.buffer.autoassign.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.buffer.autoassign.frag.out
index 507318f7a6b..e526adafba1 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.buffer.autoassign.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.buffer.autoassign.frag.out
@@ -1,6 +1,6 @@
spv.buffer.autoassign.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 50
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle1.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle1.frag.out
index 8457eaca810..9d1818825b9 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle1.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle1.frag.out
@@ -1,12 +1,12 @@
spv.bufferhandle1.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 52
Capability Shader
Capability VulkanMemoryModelKHR
Capability PhysicalStorageBufferAddressesEXT
- Extension "SPV_KHR_physical_storage_buffer"
+ Extension "SPV_EXT_physical_storage_buffer"
Extension "SPV_KHR_storage_buffer_storage_class"
Extension "SPV_KHR_vulkan_memory_model"
1: ExtInstImport "GLSL.std.450"
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle10.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle10.frag.out
index 871b0177b89..5064c7e7f70 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle10.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle10.frag.out
@@ -1,12 +1,12 @@
spv.bufferhandle10.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 40
Capability Shader
Capability VulkanMemoryModelKHR
Capability PhysicalStorageBufferAddressesEXT
- Extension "SPV_KHR_physical_storage_buffer"
+ Extension "SPV_EXT_physical_storage_buffer"
Extension "SPV_KHR_storage_buffer_storage_class"
Extension "SPV_KHR_vulkan_memory_model"
1: ExtInstImport "GLSL.std.450"
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle11.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle11.frag.out
index 6f3cbe158d8..783577c96b5 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle11.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle11.frag.out
@@ -3,14 +3,14 @@ WARNING: 0:6: '' : all default precisions are highp; use precision statements to
"precision mediump int; precision highp float;"
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 61
Capability Shader
Capability StorageBuffer8BitAccess
Capability PhysicalStorageBufferAddressesEXT
+ Extension "SPV_EXT_physical_storage_buffer"
Extension "SPV_KHR_8bit_storage"
- Extension "SPV_KHR_physical_storage_buffer"
Extension "SPV_KHR_storage_buffer_storage_class"
1: ExtInstImport "GLSL.std.450"
MemoryModel PhysicalStorageBuffer64EXT GLSL450
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle12.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle12.frag.out
index 1808c5fad80..9f0f4fb7947 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle12.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle12.frag.out
@@ -3,14 +3,14 @@ WARNING: 0:6: '' : all default precisions are highp; use precision statements to
"precision mediump int; precision highp float;"
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 183
Capability Shader
Capability StorageUniformBufferBlock16
Capability PhysicalStorageBufferAddressesEXT
+ Extension "SPV_EXT_physical_storage_buffer"
Extension "SPV_KHR_16bit_storage"
- Extension "SPV_KHR_physical_storage_buffer"
Extension "SPV_KHR_storage_buffer_storage_class"
1: ExtInstImport "GLSL.std.450"
MemoryModel PhysicalStorageBuffer64EXT GLSL450
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle13.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle13.frag.out
index 7b83210a2db..516b9fc4829 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle13.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle13.frag.out
@@ -1,11 +1,11 @@
spv.bufferhandle13.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 58
Capability Shader
Capability PhysicalStorageBufferAddressesEXT
- Extension "SPV_KHR_physical_storage_buffer"
+ Extension "SPV_EXT_physical_storage_buffer"
Extension "SPV_KHR_storage_buffer_storage_class"
1: ExtInstImport "GLSL.std.450"
MemoryModel PhysicalStorageBuffer64EXT GLSL450
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle14.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle14.frag.out
index b44391a3e6e..440a0329371 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle14.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle14.frag.out
@@ -1,11 +1,11 @@
spv.bufferhandle14.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 46
Capability Shader
Capability PhysicalStorageBufferAddressesEXT
- Extension "SPV_KHR_physical_storage_buffer"
+ Extension "SPV_EXT_physical_storage_buffer"
1: ExtInstImport "GLSL.std.450"
MemoryModel PhysicalStorageBuffer64EXT GLSL450
EntryPoint Fragment 4 "main"
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle15.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle15.frag.out
index 2eae28b2962..f018e21c075 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle15.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle15.frag.out
@@ -3,12 +3,12 @@ WARNING: 0:16: '' : all default precisions are highp; use precision statements t
"precision mediump int; precision highp float;"
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 60
Capability Shader
Capability PhysicalStorageBufferAddressesEXT
- Extension "SPV_KHR_physical_storage_buffer"
+ Extension "SPV_EXT_physical_storage_buffer"
Extension "SPV_KHR_storage_buffer_storage_class"
1: ExtInstImport "GLSL.std.450"
MemoryModel PhysicalStorageBuffer64EXT GLSL450
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle16.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle16.frag.out
index 2355591837a..cfc6f051e24 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle16.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle16.frag.out
@@ -1,12 +1,12 @@
spv.bufferhandle16.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 48
Capability Shader
Capability Int64
Capability PhysicalStorageBufferAddressesEXT
- Extension "SPV_KHR_physical_storage_buffer"
+ Extension "SPV_EXT_physical_storage_buffer"
1: ExtInstImport "GLSL.std.450"
MemoryModel PhysicalStorageBuffer64EXT GLSL450
EntryPoint Fragment 4 "main"
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle18.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle18.frag.out
index 6d2178df700..0a5f6fb518e 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle18.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle18.frag.out
@@ -1,12 +1,12 @@
spv.bufferhandle18.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 196
Capability Shader
Capability Int64
Capability PhysicalStorageBufferAddressesEXT
- Extension "SPV_KHR_physical_storage_buffer"
+ Extension "SPV_EXT_physical_storage_buffer"
1: ExtInstImport "GLSL.std.450"
MemoryModel PhysicalStorageBuffer64EXT GLSL450
EntryPoint Fragment 4 "main"
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle2.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle2.frag.out
index 728bee38358..6c43fbe7552 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle2.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle2.frag.out
@@ -1,11 +1,11 @@
spv.bufferhandle2.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 45
Capability Shader
Capability PhysicalStorageBufferAddressesEXT
- Extension "SPV_KHR_physical_storage_buffer"
+ Extension "SPV_EXT_physical_storage_buffer"
Extension "SPV_KHR_storage_buffer_storage_class"
1: ExtInstImport "GLSL.std.450"
MemoryModel PhysicalStorageBuffer64EXT GLSL450
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle3.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle3.frag.out
index b888fe422a6..ba50eb1a26b 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle3.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle3.frag.out
@@ -1,11 +1,11 @@
spv.bufferhandle3.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 50
Capability Shader
Capability PhysicalStorageBufferAddressesEXT
- Extension "SPV_KHR_physical_storage_buffer"
+ Extension "SPV_EXT_physical_storage_buffer"
Extension "SPV_KHR_storage_buffer_storage_class"
1: ExtInstImport "GLSL.std.450"
MemoryModel PhysicalStorageBuffer64EXT GLSL450
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle4.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle4.frag.out
index e5a4f5d3ce3..7dff09cb4b9 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle4.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle4.frag.out
@@ -1,11 +1,11 @@
spv.bufferhandle4.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 61
Capability Shader
Capability PhysicalStorageBufferAddressesEXT
- Extension "SPV_KHR_physical_storage_buffer"
+ Extension "SPV_EXT_physical_storage_buffer"
Extension "SPV_KHR_storage_buffer_storage_class"
1: ExtInstImport "GLSL.std.450"
MemoryModel PhysicalStorageBuffer64EXT GLSL450
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle5.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle5.frag.out
index c663c42d7f6..209459b9cea 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle5.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle5.frag.out
@@ -1,11 +1,11 @@
spv.bufferhandle5.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 22
Capability Shader
Capability PhysicalStorageBufferAddressesEXT
- Extension "SPV_KHR_physical_storage_buffer"
+ Extension "SPV_EXT_physical_storage_buffer"
1: ExtInstImport "GLSL.std.450"
MemoryModel PhysicalStorageBuffer64EXT GLSL450
EntryPoint Fragment 4 "main"
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle6.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle6.frag.out
index 2a9b484cb77..b373a2f1876 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle6.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle6.frag.out
@@ -1,11 +1,11 @@
spv.bufferhandle6.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 165
Capability Shader
Capability PhysicalStorageBufferAddressesEXT
- Extension "SPV_KHR_physical_storage_buffer"
+ Extension "SPV_EXT_physical_storage_buffer"
Extension "SPV_KHR_storage_buffer_storage_class"
1: ExtInstImport "GLSL.std.450"
MemoryModel PhysicalStorageBuffer64EXT GLSL450
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle7.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle7.frag.out
index c5bbc5d4761..9beaee18030 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle7.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle7.frag.out
@@ -1,11 +1,11 @@
spv.bufferhandle7.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 24
Capability Shader
Capability PhysicalStorageBufferAddressesEXT
- Extension "SPV_KHR_physical_storage_buffer"
+ Extension "SPV_EXT_physical_storage_buffer"
Extension "SPV_KHR_storage_buffer_storage_class"
1: ExtInstImport "GLSL.std.450"
MemoryModel PhysicalStorageBuffer64EXT GLSL450
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle8.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle8.frag.out
index 3219734af71..95abfd94cb5 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle8.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle8.frag.out
@@ -1,11 +1,11 @@
spv.bufferhandle8.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 27
Capability Shader
Capability PhysicalStorageBufferAddressesEXT
- Extension "SPV_KHR_physical_storage_buffer"
+ Extension "SPV_EXT_physical_storage_buffer"
Extension "SPV_KHR_storage_buffer_storage_class"
1: ExtInstImport "GLSL.std.450"
MemoryModel PhysicalStorageBuffer64EXT GLSL450
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle9.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle9.frag.out
index df2b677c700..b452acc28ed 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle9.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandle9.frag.out
@@ -1,12 +1,12 @@
spv.bufferhandle9.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 56
Capability Shader
Capability Int64
Capability PhysicalStorageBufferAddressesEXT
- Extension "SPV_KHR_physical_storage_buffer"
+ Extension "SPV_EXT_physical_storage_buffer"
Extension "SPV_KHR_storage_buffer_storage_class"
1: ExtInstImport "GLSL.std.450"
MemoryModel PhysicalStorageBuffer64EXT GLSL450
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandleUvec2.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandleUvec2.frag.out
index 1e0cbcd305c..b1944cf0623 100755
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandleUvec2.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.bufferhandleUvec2.frag.out
@@ -1,6 +1,6 @@
spv.bufferhandleUvec2.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 71
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.builtInXFB.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.builtInXFB.vert.out
index 556a698ca15..7a8b17ae63c 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.builtInXFB.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.builtInXFB.vert.out
@@ -1,6 +1,6 @@
spv.builtInXFB.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 21
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.computeShaderDerivatives.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.computeShaderDerivatives.comp.out
index d332f352509..052ac06cea8 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.computeShaderDerivatives.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.computeShaderDerivatives.comp.out
@@ -1,6 +1,6 @@
spv.computeShaderDerivatives.comp
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 212
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.computeShaderDerivatives2.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.computeShaderDerivatives2.comp.out
index be1919bd200..3ef5ee48157 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.computeShaderDerivatives2.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.computeShaderDerivatives2.comp.out
@@ -1,6 +1,6 @@
spv.computeShaderDerivatives2.comp
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 212
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.conditionalDemote.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.conditionalDemote.frag.out
index 10f2c23e6b1..f25517605a5 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.conditionalDemote.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.conditionalDemote.frag.out
@@ -1,6 +1,6 @@
spv.conditionalDemote.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 38
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.conditionalDiscard.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.conditionalDiscard.frag.out
index 2f2dcf266c3..a05afb9394e 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.conditionalDiscard.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.conditionalDiscard.frag.out
@@ -1,6 +1,6 @@
spv.conditionalDiscard.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 36
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.constConstruct.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.constConstruct.vert.out
index 5922b34abfd..d3250a1a4d3 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.constConstruct.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.constConstruct.vert.out
@@ -1,7 +1,7 @@
spv.constConstruct.vert
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 150
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.constStruct.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.constStruct.vert.out
index d04f33d1b29..1fce72897af 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.constStruct.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.constStruct.vert.out
@@ -1,6 +1,6 @@
spv.constStruct.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 23
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.constructComposite.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.constructComposite.comp.out
index 6a23ecb2be6..f1179d47cff 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.constructComposite.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.constructComposite.comp.out
@@ -1,6 +1,6 @@
spv.constructComposite.comp
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 29
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.controlFlowAttributes.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.controlFlowAttributes.frag.out
index c7082326a8a..c222f25c21f 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.controlFlowAttributes.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.controlFlowAttributes.frag.out
@@ -1,16 +1,16 @@
spv.controlFlowAttributes.frag
-WARNING: 0:20: 'unroll' : expected no arguments
-WARNING: 0:21: 'dont_unroll' : expected no arguments
-WARNING: 0:22: 'dependency_infinite' : expected no arguments
-WARNING: 0:23: 'dependency_length' : expected a single integer argument
-WARNING: 0:24: '' : attribute with arguments not recognized, skipping
-WARNING: 0:25: '' : attribute with arguments not recognized, skipping
-WARNING: 0:26: '' : attribute with arguments not recognized, skipping
+WARNING: 0:27: 'unroll' : expected no arguments
+WARNING: 0:28: 'dont_unroll' : expected no arguments
+WARNING: 0:29: 'dependency_infinite' : expected no arguments
+WARNING: 0:30: 'dependency_length' : expected a single integer argument
+WARNING: 0:31: '' : attribute with arguments not recognized, skipping
+WARNING: 0:32: '' : attribute with arguments not recognized, skipping
+WARNING: 0:33: '' : attribute with arguments not recognized, skipping
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
-// Id's are bound by 118
+// Generated by (magic number): 80008
+// Id's are bound by 123
Capability Shader
1: ExtInstImport "GLSL.std.450"
@@ -20,220 +20,231 @@ Validation failed
Source GLSL 450
SourceExtension "GL_EXT_control_flow_attributes"
Name 4 "main"
- Name 8 "i"
- Name 36 "i"
- Name 47 "cond"
- Name 60 "i"
- Name 79 "i"
+ Name 6 "f0("
+ Name 8 "f1("
+ Name 23 "i"
+ Name 41 "i"
+ Name 52 "cond"
+ Name 65 "i"
+ Name 84 "i"
2: TypeVoid
3: TypeFunction 2
- 6: TypeInt 32 1
- 7: TypePointer Function 6(int)
- 9: 6(int) Constant 0
- 16: 6(int) Constant 8
- 17: TypeBool
- 20: 6(int) Constant 1
- 31: 17(bool) ConstantTrue
- 46: TypePointer Private 17(bool)
- 47(cond): 46(ptr) Variable Private
- 54: 17(bool) ConstantFalse
- 55: 6(int) Constant 3
+ 19: TypeBool
+ 20: 19(bool) ConstantTrue
+ 21: TypeInt 32 1
+ 22: TypePointer Function 21(int)
+ 24: 21(int) Constant 0
+ 31: 21(int) Constant 8
+ 34: 21(int) Constant 1
+ 51: TypePointer Private 19(bool)
+ 52(cond): 51(ptr) Variable Private
+ 59: 19(bool) ConstantFalse
+ 60: 21(int) Constant 3
4(main): 2 Function None 3
5: Label
- 8(i): 7(ptr) Variable Function
- 36(i): 7(ptr) Variable Function
- 60(i): 7(ptr) Variable Function
- 79(i): 7(ptr) Variable Function
- Store 8(i) 9
- Branch 10
- 10: Label
- LoopMerge 12 13 Unroll
- Branch 14
- 14: Label
- 15: 6(int) Load 8(i)
- 18: 17(bool) SLessThan 15 16
- BranchConditional 18 11 12
- 11: Label
- Branch 13
- 13: Label
- 19: 6(int) Load 8(i)
- 21: 6(int) IAdd 19 20
- Store 8(i) 21
- Branch 10
- 12: Label
- Branch 22
- 22: Label
- LoopMerge 24 25 DontUnroll
- Branch 23
- 23: Label
+ 23(i): 22(ptr) Variable Function
+ 41(i): 22(ptr) Variable Function
+ 65(i): 22(ptr) Variable Function
+ 84(i): 22(ptr) Variable Function
+ Store 23(i) 24
Branch 25
25: Label
- Branch 22
- 24: Label
- Branch 26
- 26: Label
- LoopMerge 28 29 DontUnroll
- Branch 30
- 30: Label
- BranchConditional 31 27 28
- 27: Label
- Branch 29
- 29: Label
- Branch 26
- 28: Label
- Branch 32
- 32: Label
- LoopMerge 34 35 DependencyInfinite
- Branch 33
- 33: Label
- Branch 35
- 35: Label
- BranchConditional 31 32 34
- 34: Label
- Store 36(i) 9
+ LoopMerge 27 28 Unroll
+ Branch 29
+ 29: Label
+ 30: 21(int) Load 23(i)
+ 32: 19(bool) SLessThan 30 31
+ BranchConditional 32 26 27
+ 26: Label
+ Branch 28
+ 28: Label
+ 33: 21(int) Load 23(i)
+ 35: 21(int) IAdd 33 34
+ Store 23(i) 35
+ Branch 25
+ 27: Label
+ 36: 2 FunctionCall 6(f0()
Branch 37
37: Label
- LoopMerge 39 40 DependencyLength 4
- Branch 41
- 41: Label
- 42: 6(int) Load 36(i)
- 43: 17(bool) SLessThan 42 16
- BranchConditional 43 38 39
- 38: Label
- Branch 40
- 40: Label
- 44: 6(int) Load 36(i)
- 45: 6(int) IAdd 44 20
- Store 36(i) 45
- Branch 37
+ LoopMerge 39 40 DependencyInfinite
+ Branch 38
+ 38: Label
+ Branch 40
+ 40: Label
+ BranchConditional 20 37 39
39: Label
- 48: 17(bool) Load 47(cond)
- SelectionMerge 50 Flatten
- BranchConditional 48 49 50
- 49: Label
- Branch 50
- 50: Label
- 51: 17(bool) Load 47(cond)
- SelectionMerge 53 DontFlatten
- BranchConditional 51 52 53
- 52: Label
- Store 47(cond) 54
- Branch 53
- 53: Label
- SelectionMerge 57 DontFlatten
- Switch 55 57
- case 3: 56
- 56: Label
- Branch 57
- 57: Label
- Store 60(i) 9
- Branch 61
- 61: Label
- LoopMerge 63 64 None
- Branch 65
- 65: Label
- 66: 6(int) Load 60(i)
- 67: 17(bool) SLessThan 66 16
- BranchConditional 67 62 63
- 62: Label
- Branch 64
- 64: Label
- 68: 6(int) Load 60(i)
- 69: 6(int) IAdd 68 20
- Store 60(i) 69
- Branch 61
- 63: Label
+ Store 41(i) 24
+ Branch 42
+ 42: Label
+ LoopMerge 44 45 DependencyLength 4
+ Branch 46
+ 46: Label
+ 47: 21(int) Load 41(i)
+ 48: 19(bool) SLessThan 47 31
+ BranchConditional 48 43 44
+ 43: Label
+ Branch 45
+ 45: Label
+ 49: 21(int) Load 41(i)
+ 50: 21(int) IAdd 49 34
+ Store 41(i) 50
+ Branch 42
+ 44: Label
+ 53: 19(bool) Load 52(cond)
+ SelectionMerge 55 Flatten
+ BranchConditional 53 54 55
+ 54: Label
+ Branch 55
+ 55: Label
+ 56: 19(bool) Load 52(cond)
+ SelectionMerge 58 DontFlatten
+ BranchConditional 56 57 58
+ 57: Label
+ Store 52(cond) 59
+ Branch 58
+ 58: Label
+ SelectionMerge 62 DontFlatten
+ Switch 60 62
+ case 3: 61
+ 61: Label
+ Branch 62
+ 62: Label
+ Store 65(i) 24
+ Branch 66
+ 66: Label
+ LoopMerge 68 69 None
Branch 70
70: Label
- LoopMerge 72 73 None
- Branch 74
- 74: Label
- BranchConditional 31 71 72
- 71: Label
- Branch 73
- 73: Label
- Branch 70
- 72: Label
+ 71: 21(int) Load 65(i)
+ 72: 19(bool) SLessThan 71 31
+ BranchConditional 72 67 68
+ 67: Label
+ Branch 69
+ 69: Label
+ 73: 21(int) Load 65(i)
+ 74: 21(int) IAdd 73 34
+ Store 65(i) 74
+ Branch 66
+ 68: Label
Branch 75
75: Label
LoopMerge 77 78 None
- Branch 76
- 76: Label
- Branch 78
- 78: Label
- BranchConditional 31 75 77
+ Branch 79
+ 79: Label
+ BranchConditional 20 76 77
+ 76: Label
+ Branch 78
+ 78: Label
+ Branch 75
77: Label
- Store 79(i) 9
Branch 80
80: Label
LoopMerge 82 83 None
- Branch 84
- 84: Label
- 85: 6(int) Load 79(i)
- 86: 17(bool) SLessThan 85 16
- BranchConditional 86 81 82
- 81: Label
- Branch 83
- 83: Label
- 87: 6(int) Load 79(i)
- 88: 6(int) IAdd 87 20
- Store 79(i) 88
- Branch 80
+ Branch 81
+ 81: Label
+ Branch 83
+ 83: Label
+ BranchConditional 20 80 82
82: Label
- 89: 17(bool) Load 47(cond)
- SelectionMerge 91 None
- BranchConditional 89 90 91
- 90: Label
- Branch 91
- 91: Label
- 92: 17(bool) Load 47(cond)
- SelectionMerge 94 None
- BranchConditional 92 93 94
- 93: Label
- Store 47(cond) 54
- Branch 94
- 94: Label
+ Store 84(i) 24
+ Branch 85
+ 85: Label
+ LoopMerge 87 88 None
+ Branch 89
+ 89: Label
+ 90: 21(int) Load 84(i)
+ 91: 19(bool) SLessThan 90 31
+ BranchConditional 91 86 87
+ 86: Label
+ Branch 88
+ 88: Label
+ 92: 21(int) Load 84(i)
+ 93: 21(int) IAdd 92 34
+ Store 84(i) 93
+ Branch 85
+ 87: Label
+ 94: 19(bool) Load 52(cond)
SelectionMerge 96 None
- Switch 55 96
- case 3: 95
+ BranchConditional 94 95 96
95: Label
Branch 96
96: Label
- Branch 99
+ 97: 19(bool) Load 52(cond)
+ SelectionMerge 99 None
+ BranchConditional 97 98 99
+ 98: Label
+ Store 52(cond) 59
+ Branch 99
99: Label
- LoopMerge 101 102 Unroll DontUnroll DependencyLength 2
- Branch 103
- 103: Label
- 104: 17(bool) Load 47(cond)
- BranchConditional 104 100 101
+ SelectionMerge 101 None
+ Switch 60 101
+ case 3: 100
100: Label
- Branch 102
- 102: Label
- Branch 99
+ Branch 101
101: Label
- SelectionMerge 106 DontFlatten
- Switch 55 106
- case 3: 105
+ Branch 104
+ 104: Label
+ LoopMerge 106 107 Unroll DontUnroll DependencyLength 2
+ Branch 108
+ 108: Label
+ 109: 19(bool) Load 52(cond)
+ BranchConditional 109 105 106
105: Label
- Branch 106
+ Branch 107
+ 107: Label
+ Branch 104
106: Label
- 109: 17(bool) Load 47(cond)
- SelectionMerge 111 Flatten
- BranchConditional 109 110 111
+ SelectionMerge 111 DontFlatten
+ Switch 60 111
+ case 3: 110
110: Label
Branch 111
111: Label
- Branch 112
- 112: Label
- LoopMerge 114 115 DependencyInfinite
- Branch 116
- 116: Label
- 117: 17(bool) Load 47(cond)
- BranchConditional 117 113 114
- 113: Label
- Branch 115
+ 114: 19(bool) Load 52(cond)
+ SelectionMerge 116 Flatten
+ BranchConditional 114 115 116
115: Label
- Branch 112
- 114: Label
+ Branch 116
+ 116: Label
+ Branch 117
+ 117: Label
+ LoopMerge 119 120 DependencyInfinite
+ Branch 121
+ 121: Label
+ 122: 19(bool) Load 52(cond)
+ BranchConditional 122 118 119
+ 118: Label
+ Branch 120
+ 120: Label
+ Branch 117
+ 119: Label
+ Return
+ FunctionEnd
+ 6(f0(): 2 Function None 3
+ 7: Label
+ Branch 10
+ 10: Label
+ LoopMerge 12 13 DontUnroll
+ Branch 11
+ 11: Label
+ Branch 13
+ 13: Label
+ Branch 10
+ 12: Label
+ Unreachable
+ FunctionEnd
+ 8(f1(): 2 Function None 3
+ 9: Label
+ Branch 14
+ 14: Label
+ LoopMerge 16 17 DontUnroll
+ Branch 18
+ 18: Label
+ BranchConditional 20 15 16
+ 15: Label
+ Branch 17
+ 17: Label
+ Branch 14
+ 16: Label
Return
FunctionEnd
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.conversion.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.conversion.frag.out
index a3215324bac..60129dd290c 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.conversion.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.conversion.frag.out
@@ -1,6 +1,6 @@
spv.conversion.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 455
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.coopmat.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.coopmat.comp.out
index 976c59f4725..4ef702809d9 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.coopmat.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.coopmat.comp.out
@@ -1,6 +1,6 @@
spv.coopmat.comp
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 228
Capability Shader
@@ -9,8 +9,8 @@ spv.coopmat.comp
Capability VulkanMemoryModelKHR
Capability PhysicalStorageBufferAddressesEXT
Capability CooperativeMatrixNV
+ Extension "SPV_EXT_physical_storage_buffer"
Extension "SPV_KHR_16bit_storage"
- Extension "SPV_KHR_physical_storage_buffer"
Extension "SPV_KHR_storage_buffer_storage_class"
Extension "SPV_KHR_vulkan_memory_model"
Extension "SPV_NV_cooperative_matrix"
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dataOut.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dataOut.frag.out
index f3847213f2a..5dc14cebe44 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dataOut.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dataOut.frag.out
@@ -1,6 +1,6 @@
spv.dataOut.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 20
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dataOutIndirect.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dataOutIndirect.frag.out
index f37160107a8..fa6a0daa015 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dataOutIndirect.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dataOutIndirect.frag.out
@@ -1,6 +1,6 @@
spv.dataOutIndirect.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 26
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dataOutIndirect.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dataOutIndirect.vert.out
index 9ba988c653a..fab5e586ab3 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dataOutIndirect.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dataOutIndirect.vert.out
@@ -2,7 +2,7 @@ spv.dataOutIndirect.vert
WARNING: 0:3: attribute deprecated in version 130; may be removed in future release
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 38
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dead-after-continue.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dead-after-continue.vert.out
new file mode 100644
index 00000000000..f3b8792a17a
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dead-after-continue.vert.out
@@ -0,0 +1,54 @@
+spv.dead-after-continue.vert
+// Module Version 10000
+// Generated by (magic number): 80008
+// Id's are bound by 29
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main" 20 28
+ Source GLSL 450
+ Name 4 "main"
+ Name 8 "i"
+ Name 20 "o"
+ Name 28 "c"
+ Decorate 20(o) Location 0
+ Decorate 28(c) Location 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypePointer Function 6(int)
+ 9: 6(int) Constant 0
+ 16: 6(int) Constant 5
+ 17: TypeBool
+ 19: TypePointer Output 6(int)
+ 20(o): 19(ptr) Variable Output
+ 21: 6(int) Constant 1
+ 23: 6(int) Constant 2
+ 26: 6(int) Constant 3
+ 27: TypePointer Input 6(int)
+ 28(c): 27(ptr) Variable Input
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(i): 7(ptr) Variable Function
+ Store 8(i) 9
+ Branch 10
+ 10: Label
+ LoopMerge 12 13 None
+ Branch 14
+ 14: Label
+ 15: 6(int) Load 8(i)
+ 18: 17(bool) SLessThan 15 16
+ BranchConditional 18 11 12
+ 11: Label
+ Store 20(o) 21
+ Branch 13
+ 13: Label
+ 24: 6(int) Load 8(i)
+ 25: 6(int) IAdd 24 21
+ Store 8(i) 25
+ Branch 10
+ 12: Label
+ Store 20(o) 26
+ Return
+ FunctionEnd
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dead-after-discard.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dead-after-discard.frag.out
new file mode 100644
index 00000000000..f378d04d83a
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dead-after-discard.frag.out
@@ -0,0 +1,31 @@
+spv.dead-after-discard.frag
+// Module Version 10000
+// Generated by (magic number): 80008
+// Id's are bound by 15
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 8 14
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 450
+ Name 4 "main"
+ Name 8 "o"
+ Name 14 "c"
+ Decorate 8(o) Location 0
+ Decorate 14(c) Location 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypePointer Output 6(int)
+ 8(o): 7(ptr) Variable Output
+ 9: 6(int) Constant 1
+ 11: 6(int) Constant 3
+ 12: TypeFloat 32
+ 13: TypePointer Input 12(float)
+ 14(c): 13(ptr) Variable Input
+ 4(main): 2 Function None 3
+ 5: Label
+ Store 8(o) 9
+ Kill
+ FunctionEnd
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dead-after-loop-break.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dead-after-loop-break.vert.out
new file mode 100644
index 00000000000..b653e3998b0
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dead-after-loop-break.vert.out
@@ -0,0 +1,67 @@
+spv.dead-after-loop-break.vert
+// Module Version 10000
+// Generated by (magic number): 80008
+// Id's are bound by 36
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main" 8 25
+ Source GLSL 450
+ Name 4 "main"
+ Name 8 "o"
+ Name 11 "i"
+ Name 25 "c"
+ Decorate 8(o) Location 0
+ Decorate 25(c) Location 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypePointer Output 6(int)
+ 8(o): 7(ptr) Variable Output
+ 9: 6(int) Constant 1
+ 10: TypePointer Function 6(int)
+ 12: 6(int) Constant 0
+ 19: 6(int) Constant 5
+ 20: TypeBool
+ 22: 6(int) Constant 2
+ 24: TypePointer Input 6(int)
+ 25(c): 24(ptr) Variable Input
+ 30: 6(int) Constant 3
+ 32: 6(int) Constant 4
+ 35: 6(int) Constant 6
+ 4(main): 2 Function None 3
+ 5: Label
+ 11(i): 10(ptr) Variable Function
+ Store 8(o) 9
+ Store 11(i) 12
+ Branch 13
+ 13: Label
+ LoopMerge 15 16 None
+ Branch 17
+ 17: Label
+ 18: 6(int) Load 11(i)
+ 21: 20(bool) SLessThan 18 19
+ BranchConditional 21 14 15
+ 14: Label
+ Store 8(o) 22
+ 23: 6(int) Load 11(i)
+ 26: 6(int) Load 25(c)
+ 27: 20(bool) IEqual 23 26
+ SelectionMerge 29 None
+ BranchConditional 27 28 29
+ 28: Label
+ Store 8(o) 30
+ Branch 15
+ 29: Label
+ Store 8(o) 19
+ Branch 16
+ 16: Label
+ 33: 6(int) Load 11(i)
+ 34: 6(int) IAdd 33 9
+ Store 11(i) 34
+ Branch 13
+ 15: Label
+ Store 8(o) 35
+ Return
+ FunctionEnd
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dead-after-return.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dead-after-return.vert.out
new file mode 100644
index 00000000000..d963f9ffb8d
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dead-after-return.vert.out
@@ -0,0 +1,29 @@
+spv.dead-after-return.vert
+// Module Version 10000
+// Generated by (magic number): 80008
+// Id's are bound by 14
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main" 8 13
+ Source GLSL 450
+ Name 4 "main"
+ Name 8 "o"
+ Name 13 "c"
+ Decorate 8(o) Location 0
+ Decorate 13(c) Location 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypePointer Output 6(int)
+ 8(o): 7(ptr) Variable Output
+ 9: 6(int) Constant 1
+ 11: 6(int) Constant 3
+ 12: TypePointer Input 6(int)
+ 13(c): 12(ptr) Variable Input
+ 4(main): 2 Function None 3
+ 5: Label
+ Store 8(o) 9
+ Return
+ FunctionEnd
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dead-after-switch-break.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dead-after-switch-break.vert.out
new file mode 100644
index 00000000000..a50601289b2
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dead-after-switch-break.vert.out
@@ -0,0 +1,40 @@
+spv.dead-after-switch-break.vert
+// Module Version 10000
+// Generated by (magic number): 80008
+// Id's are bound by 21
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main" 8 14
+ Source GLSL 450
+ Name 4 "main"
+ Name 8 "c"
+ Name 14 "o"
+ Decorate 8(c) Location 0
+ Decorate 14(o) Location 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypePointer Input 6(int)
+ 8(c): 7(ptr) Variable Input
+ 13: TypePointer Output 6(int)
+ 14(o): 13(ptr) Variable Output
+ 15: 6(int) Constant 1
+ 17: 6(int) Constant 2
+ 20: 6(int) Constant 3
+ 4(main): 2 Function None 3
+ 5: Label
+ 9: 6(int) Load 8(c)
+ SelectionMerge 12 None
+ Switch 9 11
+ case 0: 10
+ 11: Label
+ Branch 12
+ 10: Label
+ Store 14(o) 15
+ Branch 12
+ 12: Label
+ Store 14(o) 20
+ Return
+ FunctionEnd
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dead-complex-continue-after-return.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dead-complex-continue-after-return.vert.out
new file mode 100644
index 00000000000..60e81bd6270
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dead-complex-continue-after-return.vert.out
@@ -0,0 +1,55 @@
+spv.dead-complex-continue-after-return.vert
+// Module Version 10000
+// Generated by (magic number): 80008
+// Id's are bound by 31
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main" 11 30
+ Source GLSL 450
+ Name 4 "main"
+ Name 8 "i"
+ Name 11 "o"
+ Name 30 "c"
+ Decorate 11(o) Location 0
+ Decorate 30(c) Location 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypePointer Function 6(int)
+ 9: 6(int) Constant 0
+ 10: TypePointer Output 6(int)
+ 11(o): 10(ptr) Variable Output
+ 12: 6(int) Constant 1
+ 19: 6(int) Constant 5
+ 20: TypeBool
+ 22: 6(int) Constant 2
+ 24: 6(int) Constant 3
+ 27: 6(int) Constant 99
+ 28: 6(int) Constant 4
+ 29: TypePointer Input 6(int)
+ 30(c): 29(ptr) Variable Input
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(i): 7(ptr) Variable Function
+ Store 8(i) 9
+ Store 11(o) 12
+ Store 8(i) 9
+ Branch 13
+ 13: Label
+ LoopMerge 15 16 None
+ Branch 17
+ 17: Label
+ 18: 6(int) Load 8(i)
+ 21: 20(bool) SLessThan 18 19
+ BranchConditional 21 14 15
+ 14: Label
+ Store 11(o) 22
+ Return
+ 16: Label
+ Branch 13
+ 15: Label
+ Store 11(o) 28
+ Return
+ FunctionEnd
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dead-complex-merge-after-return.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dead-complex-merge-after-return.vert.out
new file mode 100644
index 00000000000..609a3ceb6d2
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.dead-complex-merge-after-return.vert.out
@@ -0,0 +1,51 @@
+spv.dead-complex-merge-after-return.vert
+// Module Version 10000
+// Generated by (magic number): 80008
+// Id's are bound by 36
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main" 11 27
+ Source GLSL 450
+ Name 4 "main"
+ Name 8 "i"
+ Name 11 "o"
+ Name 27 "c"
+ Decorate 11(o) Location 0
+ Decorate 27(c) Location 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypePointer Function 6(int)
+ 9: 6(int) Constant 0
+ 10: TypePointer Output 6(int)
+ 11(o): 10(ptr) Variable Output
+ 12: 6(int) Constant 1
+ 17: 6(int) Constant 2
+ 19: 6(int) Constant 3
+ 22: 6(int) Constant 5
+ 23: TypeBool
+ 25: 6(int) Constant 4
+ 26: TypePointer Input 6(int)
+ 27(c): 26(ptr) Variable Input
+ 32: 6(int) Constant 100
+ 34: 6(int) Constant 200
+ 35: 6(int) Constant 300
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(i): 7(ptr) Variable Function
+ Store 8(i) 9
+ Store 11(o) 12
+ Branch 13
+ 13: Label
+ LoopMerge 15 16 None
+ Branch 14
+ 14: Label
+ Store 11(o) 17
+ Return
+ 16: Label
+ Branch 13
+ 15: Label
+ Unreachable
+ FunctionEnd
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.debugInfo.1.1.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.debugInfo.1.1.frag.out
index e212089230a..b68de49ec8a 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.debugInfo.1.1.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.debugInfo.1.1.frag.out
@@ -2,7 +2,7 @@ spv.debugInfo.frag
error: SPIRV-Tools Validation Errors
error: Invalid SPIR-V binary version 1.3 for target environment SPIR-V 1.0 (under OpenGL 4.5 semantics).
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 124
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.debugInfo.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.debugInfo.frag.out
index aaa988d4a73..f27aac01012 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.debugInfo.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.debugInfo.frag.out
@@ -1,6 +1,6 @@
spv.debugInfo.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 124
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.deepRvalue.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.deepRvalue.frag.out
index 1869d76e30b..776fdf8dfd1 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.deepRvalue.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.deepRvalue.frag.out
@@ -1,6 +1,6 @@
spv.deepRvalue.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 152
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.depthOut.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.depthOut.frag.out
index 59afd3e1e15..d212c897271 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.depthOut.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.depthOut.frag.out
@@ -1,6 +1,6 @@
spv.depthOut.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 15
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.deviceGroup.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.deviceGroup.frag.out
index 6710b77f79d..2d16272cfba 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.deviceGroup.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.deviceGroup.frag.out
@@ -1,6 +1,6 @@
spv.deviceGroup.frag
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 17
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.discard-dce.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.discard-dce.frag.out
index 9d138f294bc..c4a5cb21824 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.discard-dce.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.discard-dce.frag.out
@@ -1,6 +1,6 @@
spv.discard-dce.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 84
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.do-simple.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.do-simple.vert.out
index 6014dfec80c..826cc1ca3a5 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.do-simple.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.do-simple.vert.out
@@ -1,6 +1,6 @@
spv.do-simple.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 21
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.do-while-continue-break.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.do-while-continue-break.vert.out
index 28388800157..36315a2f4ad 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.do-while-continue-break.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.do-while-continue-break.vert.out
@@ -1,6 +1,6 @@
spv.do-while-continue-break.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 43
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.doWhileLoop.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.doWhileLoop.frag.out
index 808466eb008..945f0d7c082 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.doWhileLoop.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.doWhileLoop.frag.out
@@ -1,6 +1,6 @@
spv.doWhileLoop.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 34
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.double.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.double.comp.out
index e9470ac6ec9..7961fc62d87 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.double.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.double.comp.out
@@ -1,6 +1,6 @@
spv.double.comp
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 60
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.drawParams.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.drawParams.vert.out
index 8f3e2c0aa4d..e9d497031ed 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.drawParams.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.drawParams.vert.out
@@ -1,6 +1,6 @@
spv.drawParams.vert
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 29
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.earlyReturnDiscard.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.earlyReturnDiscard.frag.out
index c44b722f0f6..a4eb8cab64b 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.earlyReturnDiscard.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.earlyReturnDiscard.frag.out
@@ -1,6 +1,6 @@
spv.earlyReturnDiscard.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 110
Capability Shader
@@ -160,7 +160,7 @@ spv.earlyReturnDiscard.frag
102: Label
Return
100: Label
- Branch 67
+ Unreachable
67: Label
106: 7(fvec4) Load 9(color)
107: 7(fvec4) Load 13(color2)
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.explicittypes.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.explicittypes.frag.out
index c07f66d543a..93189135b45 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.explicittypes.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.explicittypes.frag.out
@@ -1,6 +1,6 @@
spv.explicittypes.frag
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 576
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.extPostDepthCoverage.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.extPostDepthCoverage.frag.out
index 85a23593684..28d207b7d80 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.extPostDepthCoverage.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.extPostDepthCoverage.frag.out
@@ -1,6 +1,6 @@
spv.extPostDepthCoverage.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 6
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.float16.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.float16.frag.out
index 1f955c222e2..ca1bca156dd 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.float16.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.float16.frag.out
@@ -1,7 +1,7 @@
spv.float16.frag
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 534
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.float16Fetch.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.float16Fetch.frag.out
index 45c80fec331..92ff63131d5 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.float16Fetch.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.float16Fetch.frag.out
@@ -1,7 +1,7 @@
spv.float16Fetch.frag
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 5923
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.float16convertonlyarith.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.float16convertonlyarith.comp.out
index 6abf0d4a5be..5c8c29284cc 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.float16convertonlyarith.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.float16convertonlyarith.comp.out
@@ -1,6 +1,6 @@
spv.float16convertonlyarith.comp
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 22
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.float16convertonlystorage.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.float16convertonlystorage.comp.out
index a2ff1d09c5b..b37bb6b4679 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.float16convertonlystorage.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.float16convertonlystorage.comp.out
@@ -1,6 +1,6 @@
spv.float16convertonlystorage.comp
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 22
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.float32.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.float32.frag.out
index f1b0d029e2f..db413c43027 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.float32.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.float32.frag.out
@@ -1,6 +1,6 @@
spv.float32.frag
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 533
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.float64.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.float64.frag.out
index 231f0707854..b98c8704861 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.float64.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.float64.frag.out
@@ -1,7 +1,7 @@
spv.float64.frag
Validation failed
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 524
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.flowControl.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.flowControl.frag.out
index 30c2a4b6ecd..fc68306de7c 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.flowControl.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.flowControl.frag.out
@@ -1,6 +1,6 @@
spv.flowControl.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 39
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.for-complex-condition.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.for-complex-condition.vert.out
index 41275a45cec..78252ee99e1 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.for-complex-condition.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.for-complex-condition.vert.out
@@ -1,6 +1,6 @@
spv.for-complex-condition.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 31
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.for-continue-break.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.for-continue-break.vert.out
index ff94a931367..50c034e67d0 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.for-continue-break.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.for-continue-break.vert.out
@@ -1,6 +1,6 @@
spv.for-continue-break.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 45
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.for-nobody.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.for-nobody.vert.out
index 2a3bcf40ee9..26844c2fc0f 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.for-nobody.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.for-nobody.vert.out
@@ -1,6 +1,6 @@
spv.for-nobody.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 25
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.for-notest.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.for-notest.vert.out
index 36c4a96a3ad..ff85cb42a77 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.for-notest.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.for-notest.vert.out
@@ -1,6 +1,6 @@
spv.for-notest.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 20
Capability Shader
@@ -38,5 +38,5 @@ spv.for-notest.vert
Store 8(i) 19
Branch 10
12: Label
- Return
+ Unreachable
FunctionEnd
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.for-simple.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.for-simple.vert.out
index ecb539f902a..a3e5d86798a 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.for-simple.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.for-simple.vert.out
@@ -1,6 +1,6 @@
spv.for-simple.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 24
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.forLoop.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.forLoop.frag.out
index a07921ce775..b4b0f5d4581 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.forLoop.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.forLoop.frag.out
@@ -1,6 +1,6 @@
spv.forLoop.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 131
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.forwardFun.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.forwardFun.frag.out
index 32875b2ce34..26140aff13d 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.forwardFun.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.forwardFun.frag.out
@@ -1,6 +1,6 @@
spv.forwardFun.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 60
Capability Shader
@@ -99,8 +99,7 @@ spv.forwardFun.frag
45: Label
ReturnValue 46
42: Label
- 48: 8(float) Undef
- ReturnValue 48
+ Unreachable
FunctionEnd
16(foo(vf4;): 8(float) Function None 14
15(bar): 13(ptr) FunctionParameter
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.fragmentDensity-es.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.fragmentDensity-es.frag.out
index 01ac38336af..69f92c8ac90 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.fragmentDensity-es.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.fragmentDensity-es.frag.out
@@ -1,6 +1,6 @@
spv.fragmentDensity-es.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 18
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.fragmentDensity.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.fragmentDensity.frag.out
index 8bbc37cc5b2..5bdb43a793c 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.fragmentDensity.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.fragmentDensity.frag.out
@@ -1,6 +1,6 @@
spv.fragmentDensity.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 21
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.fragmentShaderBarycentric.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.fragmentShaderBarycentric.frag.out
index ffb3527c0bd..fbded6e4203 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.fragmentShaderBarycentric.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.fragmentShaderBarycentric.frag.out
@@ -1,6 +1,6 @@
spv.fragmentShaderBarycentric.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 43
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.fragmentShaderBarycentric2.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.fragmentShaderBarycentric2.frag.out
index 05dce7a7dfa..22b84ba83e8 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.fragmentShaderBarycentric2.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.fragmentShaderBarycentric2.frag.out
@@ -1,6 +1,6 @@
spv.fragmentShaderBarycentric2.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 42
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.fsi.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.fsi.frag.out
index 51fb06882e6..b0c97134855 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.fsi.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.fsi.frag.out
@@ -1,6 +1,6 @@
spv.fsi.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 24
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.fullyCovered.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.fullyCovered.frag.out
index 76c8e44d330..4dbea15f91c 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.fullyCovered.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.fullyCovered.frag.out
@@ -1,6 +1,6 @@
spv.fullyCovered.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 18
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.functionCall.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.functionCall.frag.out
index 269b74e64eb..4fa7863b6a6 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.functionCall.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.functionCall.frag.out
@@ -4,7 +4,7 @@ WARNING: 0:4: varying deprecated in version 130; may be removed in future releas
WARNING: 0:5: varying deprecated in version 130; may be removed in future release
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 76
Capability Shader
@@ -105,8 +105,7 @@ WARNING: 0:5: varying deprecated in version 130; may be removed in future releas
44: Label
ReturnValue 45
41: Label
- 47: 6(float) Undef
- ReturnValue 47
+ Unreachable
FunctionEnd
18(missingReturn(): 6(float) Function None 15
19: Label
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.functionNestedOpaque.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.functionNestedOpaque.vert.out
index df590c197cd..4543895e61b 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.functionNestedOpaque.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.functionNestedOpaque.vert.out
@@ -1,7 +1,7 @@
spv.functionNestedOpaque.vert
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 39
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.functionParameterTypes.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.functionParameterTypes.frag.out
index 24e780e211b..decc1904e41 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.functionParameterTypes.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.functionParameterTypes.frag.out
@@ -1,6 +1,6 @@
spv.functionParameterTypes.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 34
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.functionSemantics.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.functionSemantics.frag.out
index 49bdf7cdb7d..000a7bc9c30 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.functionSemantics.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.functionSemantics.frag.out
@@ -1,6 +1,6 @@
spv.functionSemantics.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 156
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.glFragColor.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.glFragColor.frag.out
index 55fb24f125e..af25280456c 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.glFragColor.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.glFragColor.frag.out
@@ -1,6 +1,6 @@
spv.glFragColor.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 12
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.glsl.register.autoassign.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.glsl.register.autoassign.frag.out
index 9c8ccb50ca8..9872f4a4756 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.glsl.register.autoassign.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.glsl.register.autoassign.frag.out
@@ -1,6 +1,6 @@
spv.glsl.register.autoassign.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 142
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.glsl.register.noautoassign.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.glsl.register.noautoassign.frag.out
index 44d63ed1d78..b52e220171d 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.glsl.register.noautoassign.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.glsl.register.noautoassign.frag.out
@@ -1,6 +1,6 @@
spv.glsl.register.noautoassign.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 142
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.hlslDebugInfo.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.hlslDebugInfo.frag.out
index 35a6a4d9cd7..1d2e6b49f18 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.hlslDebugInfo.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.hlslDebugInfo.frag.out
@@ -1,6 +1,6 @@
spv.hlslDebugInfo.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 19
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.hlslOffsets.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.hlslOffsets.vert.out
index 723675469b8..b1cdb6b519e 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.hlslOffsets.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.hlslOffsets.vert.out
@@ -18,7 +18,7 @@ Shader version: 450
0:? 'anon@0' (layout( binding=0 column_major std430) buffer block{layout( column_major std430) buffer highp float m0, layout( column_major std430) buffer highp 3-component vector of float m4, layout( column_major std430) buffer highp float m16, layout( column_major std430 offset=20) buffer highp 3-component vector of float m20, layout( column_major std430) buffer highp 3-component vector of float m32, layout( column_major std430) buffer highp 2-component vector of float m48, layout( column_major std430) buffer highp 2-component vector of float m56, layout( column_major std430) buffer highp float m64, layout( column_major std430) buffer highp 2-component vector of float m68, layout( column_major std430) buffer highp float m76, layout( column_major std430) buffer highp float m80, layout( column_major std430 offset=88) buffer highp 2-component vector of float m88, layout( column_major std430) buffer highp 2-component vector of float m96, layout( column_major std430) buffer 2-component vector of double m112})
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 14
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.image.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.image.frag.out
index 0fefd01ac4d..63d26d8d450 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.image.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.image.frag.out
@@ -1,7 +1,7 @@
spv.image.frag
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 395
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.imageLoadStoreLod.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.imageLoadStoreLod.frag.out
index 28cd4f9643a..526d739243b 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.imageLoadStoreLod.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.imageLoadStoreLod.frag.out
@@ -1,7 +1,7 @@
spv.imageLoadStoreLod.frag
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 82
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.int16.amd.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.int16.amd.frag.out
index 26c701db6d5..3f6179b93b7 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.int16.amd.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.int16.amd.frag.out
@@ -1,6 +1,6 @@
spv.int16.amd.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 560
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.int16.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.int16.frag.out
index a7b9bfe675a..ff8a44620d2 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.int16.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.int16.frag.out
@@ -1,6 +1,6 @@
spv.int16.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 523
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.int32.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.int32.frag.out
index e5c788944d3..1e8cd7028ce 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.int32.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.int32.frag.out
@@ -1,6 +1,6 @@
spv.int32.frag
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 493
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.int64.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.int64.frag.out
index b1375a66661..4510134d408 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.int64.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.int64.frag.out
@@ -1,7 +1,7 @@
spv.int64.frag
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 489
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.int8.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.int8.frag.out
index 0a4740d3863..c84ca7e008e 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.int8.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.int8.frag.out
@@ -1,6 +1,6 @@
spv.int8.frag
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 518
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.intOps.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.intOps.vert.out
index 2a637832077..272233eccb3 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.intOps.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.intOps.vert.out
@@ -1,6 +1,6 @@
spv.intOps.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 268
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.intcoopmat.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.intcoopmat.comp.out
index a854ed5539a..940ba3312c3 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.intcoopmat.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.intcoopmat.comp.out
@@ -1,6 +1,6 @@
spv.intcoopmat.comp
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 262
Capability Shader
@@ -10,8 +10,8 @@ spv.intcoopmat.comp
Capability VulkanMemoryModelKHR
Capability PhysicalStorageBufferAddressesEXT
Capability CooperativeMatrixNV
+ Extension "SPV_EXT_physical_storage_buffer"
Extension "SPV_KHR_8bit_storage"
- Extension "SPV_KHR_physical_storage_buffer"
Extension "SPV_KHR_storage_buffer_storage_class"
Extension "SPV_KHR_vulkan_memory_model"
Extension "SPV_NV_cooperative_matrix"
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.interpOps.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.interpOps.frag.out
index 699524dd954..7ec4f9f4527 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.interpOps.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.interpOps.frag.out
@@ -1,6 +1,6 @@
spv.interpOps.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 100
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.layoutNested.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.layoutNested.vert.out
index b5ef8834546..44d58abf9d7 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.layoutNested.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.layoutNested.vert.out
@@ -1,6 +1,6 @@
spv.layoutNested.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 66
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.length.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.length.frag.out
index 8e799fbb42a..de391bc544f 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.length.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.length.frag.out
@@ -1,6 +1,6 @@
spv.length.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 33
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.localAggregates.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.localAggregates.frag.out
index f5fad547dc3..adfa0fd17a0 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.localAggregates.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.localAggregates.frag.out
@@ -1,6 +1,6 @@
spv.localAggregates.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 136
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.loops.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.loops.frag.out
index 046360f609e..a3a3423881d 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.loops.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.loops.frag.out
@@ -1,6 +1,6 @@
spv.loops.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 725
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.loopsArtificial.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.loopsArtificial.frag.out
index d0d60542f86..65329d4c25c 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.loopsArtificial.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.loopsArtificial.frag.out
@@ -1,6 +1,6 @@
spv.loopsArtificial.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 158
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.matFun.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.matFun.vert.out
index 8ed378f869a..d39160d0899 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.matFun.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.matFun.vert.out
@@ -1,6 +1,6 @@
spv.matFun.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 103
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.matrix.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.matrix.frag.out
index c2b4a1f6c88..f7b6ce305fb 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.matrix.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.matrix.frag.out
@@ -1,6 +1,6 @@
spv.matrix.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 286
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.matrix2.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.matrix2.frag.out
index dc574a40d80..77a098a8b94 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.matrix2.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.matrix2.frag.out
@@ -1,6 +1,6 @@
spv.matrix2.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 221
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.memoryQualifier.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.memoryQualifier.frag.out
index 93c6b2dbc57..737e862a588 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.memoryQualifier.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.memoryQualifier.frag.out
@@ -1,7 +1,7 @@
spv.memoryQualifier.frag
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 97
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.memoryScopeSemantics.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.memoryScopeSemantics.comp.out
index 8c4e5763f75..29675915c6a 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.memoryScopeSemantics.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.memoryScopeSemantics.comp.out
@@ -1,6 +1,6 @@
spv.memoryScopeSemantics.comp
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 163
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.merge-unreachable.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.merge-unreachable.frag.out
index 7ec0f33dfc4..3eab4ec9230 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.merge-unreachable.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.merge-unreachable.frag.out
@@ -1,6 +1,6 @@
spv.merge-unreachable.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 25
Capability Shader
@@ -37,5 +37,5 @@ spv.merge-unreachable.frag
23: Label
Return
21: Label
- Return
+ Unreachable
FunctionEnd
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshShaderBuiltins.mesh.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshShaderBuiltins.mesh.out
index 38d363bb374..cea7e4d7702 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshShaderBuiltins.mesh.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshShaderBuiltins.mesh.out
@@ -1,6 +1,6 @@
spv.meshShaderBuiltins.mesh
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 148
Capability ClipDistance
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshShaderPerViewBuiltins.mesh.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshShaderPerViewBuiltins.mesh.out
index b912acafcf5..75f8c63a4cb 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshShaderPerViewBuiltins.mesh.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshShaderPerViewBuiltins.mesh.out
@@ -1,6 +1,6 @@
spv.meshShaderPerViewBuiltins.mesh
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 126
Capability MultiViewport
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshShaderPerViewUserDefined.mesh.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshShaderPerViewUserDefined.mesh.out
index 266f662df16..de019a2b839 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshShaderPerViewUserDefined.mesh.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshShaderPerViewUserDefined.mesh.out
@@ -1,6 +1,6 @@
spv.meshShaderPerViewUserDefined.mesh
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 108
Capability MeshShadingNV
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshShaderRedeclBuiltins.mesh.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshShaderRedeclBuiltins.mesh.out
index 4afbef9f4f5..e9ebd44cfb5 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshShaderRedeclBuiltins.mesh.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshShaderRedeclBuiltins.mesh.out
@@ -1,6 +1,6 @@
spv.meshShaderRedeclBuiltins.mesh
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 129
Capability ClipDistance
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshShaderRedeclPerViewBuiltins.mesh.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshShaderRedeclPerViewBuiltins.mesh.out
index 6672dc24344..38542d5c77c 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshShaderRedeclPerViewBuiltins.mesh.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshShaderRedeclPerViewBuiltins.mesh.out
@@ -1,6 +1,6 @@
spv.meshShaderRedeclPerViewBuiltins.mesh
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 120
Capability PerViewAttributesNV
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshShaderSharedMem.mesh.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshShaderSharedMem.mesh.out
index dd0003dd25e..adac07ffabc 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshShaderSharedMem.mesh.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshShaderSharedMem.mesh.out
@@ -1,6 +1,6 @@
spv.meshShaderSharedMem.mesh
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 77
Capability StorageImageWriteWithoutFormat
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshShaderTaskMem.mesh.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshShaderTaskMem.mesh.out
index e14f7a856e7..057e0fdd95e 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshShaderTaskMem.mesh.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshShaderTaskMem.mesh.out
@@ -1,6 +1,6 @@
spv.meshShaderTaskMem.mesh
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 58
Capability MeshShadingNV
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshShaderUserDefined.mesh.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshShaderUserDefined.mesh.out
index c3ec91507fa..43579bb4380 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshShaderUserDefined.mesh.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshShaderUserDefined.mesh.out
@@ -1,6 +1,6 @@
spv.meshShaderUserDefined.mesh
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 138
Capability MeshShadingNV
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshTaskShader.task.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshTaskShader.task.out
index a835d7feb50..96d37c4a6e7 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshTaskShader.task.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.meshTaskShader.task.out
@@ -1,6 +1,6 @@
spv.meshTaskShader.task
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 116
Capability StorageImageWriteWithoutFormat
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.multiStruct.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.multiStruct.comp.out
index 7e88a59065b..679a4bd7eb7 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.multiStruct.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.multiStruct.comp.out
@@ -1,6 +1,6 @@
spv.multiStruct.comp
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 161
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.multiStructFuncall.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.multiStructFuncall.frag.out
index a3a4480a981..9312fe928e7 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.multiStructFuncall.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.multiStructFuncall.frag.out
@@ -1,6 +1,6 @@
spv.multiStructFuncall.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 66
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.multiView.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.multiView.frag.out
index 9dbd36b992b..5363352566e 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.multiView.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.multiView.frag.out
@@ -1,6 +1,6 @@
spv.multiView.frag
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 17
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.multiviewPerViewAttributes.tesc.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.multiviewPerViewAttributes.tesc.out
index c06a890bc36..16e81a1e11f 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.multiviewPerViewAttributes.tesc.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.multiviewPerViewAttributes.tesc.out
@@ -1,6 +1,6 @@
spv.multiviewPerViewAttributes.tesc
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 41
Capability Tessellation
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.multiviewPerViewAttributes.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.multiviewPerViewAttributes.vert.out
index c8377cfae73..acca44eef76 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.multiviewPerViewAttributes.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.multiviewPerViewAttributes.vert.out
@@ -1,6 +1,6 @@
spv.multiviewPerViewAttributes.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 29
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.newTexture.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.newTexture.frag.out
index 1bad3fa70d6..6bbb0328054 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.newTexture.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.newTexture.frag.out
@@ -1,7 +1,7 @@
spv.newTexture.frag
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 284
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.noBuiltInLoc.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.noBuiltInLoc.vert.out
index 066f81f78fa..7a45e7277ed 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.noBuiltInLoc.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.noBuiltInLoc.vert.out
@@ -1,6 +1,6 @@
spv.noBuiltInLoc.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 35
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.noDeadDecorations.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.noDeadDecorations.vert.out
index d7e37027184..a555ba2567f 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.noDeadDecorations.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.noDeadDecorations.vert.out
@@ -1,6 +1,6 @@
spv.noDeadDecorations.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 32
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.noWorkgroup.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.noWorkgroup.comp.out
index 2624fdcdbd9..92ae670617a 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.noWorkgroup.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.noWorkgroup.comp.out
@@ -1,6 +1,6 @@
spv.noWorkgroup.comp
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 12
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.nonSquare.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.nonSquare.vert.out
index 679a5f0f96b..9746fe01c86 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.nonSquare.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.nonSquare.vert.out
@@ -1,6 +1,6 @@
spv.nonSquare.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 90
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.nonuniform.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.nonuniform.frag.out
index 3aaa8733ce0..32b64662a84 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.nonuniform.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.nonuniform.frag.out
@@ -1,6 +1,6 @@
spv.nonuniform.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 212
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.nonuniform2.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.nonuniform2.frag.out
index 3f101fe124e..db24f4177ff 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.nonuniform2.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.nonuniform2.frag.out
@@ -1,6 +1,6 @@
spv.nonuniform2.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 24
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.offsets.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.offsets.frag.out
index 17d7b86e11f..08a75e94f02 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.offsets.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.offsets.frag.out
@@ -1,6 +1,6 @@
spv.offsets.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 15
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.paramMemory.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.paramMemory.frag.out
index cba2fbd0488..df13c65f963 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.paramMemory.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.paramMemory.frag.out
@@ -1,7 +1,7 @@
spv.paramMemory.frag
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 64
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.perprimitiveNV.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.perprimitiveNV.frag.out
index eaff400c091..9943ee9eaa6 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.perprimitiveNV.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.perprimitiveNV.frag.out
@@ -1,6 +1,6 @@
spv.perprimitiveNV.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 23
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.pp.line.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.pp.line.frag.out
index 5794177f095..12c5fa5f553 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.pp.line.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.pp.line.frag.out
@@ -3,7 +3,7 @@ WARNING: spv.pp.line.frag:6: varying deprecated in version 130; may be removed i
WARNING: spv.pp.line.frag:7: varying deprecated in version 130; may be removed in future release
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 65
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.precise.tesc.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.precise.tesc.out
index 95a048fc75f..840e7b3b3b8 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.precise.tesc.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.precise.tesc.out
@@ -1,6 +1,6 @@
spv.precise.tesc
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 72
Capability Tessellation
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.precise.tese.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.precise.tese.out
index a73cbd8327e..b59ac0ecce9 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.precise.tese.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.precise.tese.out
@@ -1,6 +1,6 @@
spv.precise.tese
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 119
Capability Tessellation
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.precision.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.precision.frag.out
index 5ddb4927248..ac4c0aa5317 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.precision.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.precision.frag.out
@@ -1,6 +1,6 @@
spv.precision.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 127
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.precisionNonESSamp.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.precisionNonESSamp.frag.out
index 0620c41ef0d..97681f363e7 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.precisionNonESSamp.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.precisionNonESSamp.frag.out
@@ -1,6 +1,6 @@
spv.precisionNonESSamp.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 47
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.prepost.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.prepost.frag.out
index 3b4bfd8acad..a0dbbd46e72 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.prepost.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.prepost.frag.out
@@ -1,6 +1,6 @@
spv.prepost.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 94
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.privateVariableTypes.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.privateVariableTypes.frag.out
index 9b4063ed5b6..1b8e1a5c7d0 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.privateVariableTypes.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.privateVariableTypes.frag.out
@@ -1,6 +1,6 @@
spv.privateVariableTypes.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 27
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.pushConstant.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.pushConstant.vert.out
index 40ee328461c..5348edb4ad9 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.pushConstant.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.pushConstant.vert.out
@@ -1,6 +1,6 @@
spv.pushConstant.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 35
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.pushConstantAnon.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.pushConstantAnon.vert.out
index b03855da573..3932b42ed1a 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.pushConstantAnon.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.pushConstantAnon.vert.out
@@ -1,6 +1,6 @@
spv.pushConstantAnon.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 38
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.qualifiers.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.qualifiers.vert.out
index ffdc6f8056a..47f73a0abce 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.qualifiers.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.qualifiers.vert.out
@@ -1,6 +1,6 @@
spv.qualifiers.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 21
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.queryL.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.queryL.frag.out
index 87dbb8c145e..97d845a198f 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.queryL.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.queryL.frag.out
@@ -1,7 +1,7 @@
spv.queryL.frag
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 224
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.rankShift.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.rankShift.comp.out
index 3ca7514599f..e0fba776a4e 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.rankShift.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.rankShift.comp.out
@@ -1,6 +1,6 @@
spv.rankShift.comp
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 33
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.register.autoassign-2.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.register.autoassign-2.frag.out
index 533e3880361..9fd317ef449 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.register.autoassign-2.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.register.autoassign-2.frag.out
@@ -1,6 +1,6 @@
spv.register.autoassign-2.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 47
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.register.autoassign.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.register.autoassign.frag.out
index 123ea356dd5..74118efc1f1 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.register.autoassign.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.register.autoassign.frag.out
@@ -1,6 +1,6 @@
spv.register.autoassign.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 155
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.register.noautoassign.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.register.noautoassign.frag.out
index 3259f41f4b0..1292b0b2209 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.register.noautoassign.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.register.noautoassign.frag.out
@@ -1,6 +1,6 @@
spv.register.noautoassign.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 155
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.register.subpass.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.register.subpass.frag.out
index c42832a9730..21f79558f91 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.register.subpass.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.register.subpass.frag.out
@@ -1,6 +1,6 @@
spv.register.subpass.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 40
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.rw.autoassign.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.rw.autoassign.frag.out
index 2ee30bc5cb0..a575e786a15 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.rw.autoassign.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.rw.autoassign.frag.out
@@ -1,6 +1,6 @@
spv.rw.autoassign.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 42
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.sample.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.sample.frag.out
index e4d38f35a6b..57fbf31dd97 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.sample.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.sample.frag.out
@@ -1,6 +1,6 @@
spv.sample.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 13
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.sampleId.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.sampleId.frag.out
index 894d8db880d..1412da26118 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.sampleId.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.sampleId.frag.out
@@ -1,6 +1,6 @@
spv.sampleId.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 26
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.sampleMaskOverrideCoverage.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.sampleMaskOverrideCoverage.frag.out
index 3a9872e31dd..28923255781 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.sampleMaskOverrideCoverage.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.sampleMaskOverrideCoverage.frag.out
@@ -1,6 +1,6 @@
spv.sampleMaskOverrideCoverage.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 20
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.samplePosition.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.samplePosition.frag.out
index 882423ee8d4..b06c7685726 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.samplePosition.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.samplePosition.frag.out
@@ -1,6 +1,6 @@
spv.samplePosition.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 30
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.samplerlessTextureFunctions.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.samplerlessTextureFunctions.frag.out
index 0f09b43e765..c12201e3088 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.samplerlessTextureFunctions.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.samplerlessTextureFunctions.frag.out
@@ -1,6 +1,6 @@
spv.samplerlessTextureFunctions.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 51
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.scalarlayout.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.scalarlayout.frag.out
index 0168bc3eb0e..1b26242daa3 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.scalarlayout.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.scalarlayout.frag.out
@@ -1,7 +1,7 @@
spv.scalarlayout.frag
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 20
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.scalarlayoutfloat16.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.scalarlayoutfloat16.frag.out
index dac7e3a365a..c88fa7f2c39 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.scalarlayoutfloat16.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.scalarlayoutfloat16.frag.out
@@ -1,7 +1,7 @@
spv.scalarlayoutfloat16.frag
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 18
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.separate.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.separate.frag.out
index 27cd3be0c48..690ab2f655b 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.separate.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.separate.frag.out
@@ -1,7 +1,7 @@
spv.separate.frag
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 319
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.set.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.set.vert.out
index 16d771fce6c..fe4326f273f 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.set.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.set.vert.out
@@ -1,6 +1,6 @@
spv.set.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 22
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shaderBallot.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shaderBallot.comp.out
index 1c616ee5197..3ddee0f24ba 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shaderBallot.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shaderBallot.comp.out
@@ -1,6 +1,6 @@
spv.shaderBallot.comp
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 318
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shaderBallotAMD.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shaderBallotAMD.comp.out
index 62ce6f27d9f..eb8f404fea4 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shaderBallotAMD.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shaderBallotAMD.comp.out
@@ -1,6 +1,6 @@
spv.shaderBallotAMD.comp
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 1343
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shaderDrawParams.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shaderDrawParams.vert.out
index d6b43e8fe9b..ad51de19a01 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shaderDrawParams.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shaderDrawParams.vert.out
@@ -1,6 +1,6 @@
spv.shaderDrawParams.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 53
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shaderFragMaskAMD.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shaderFragMaskAMD.frag.out
index 788d3ee6973..b1e5c0d690f 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shaderFragMaskAMD.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shaderFragMaskAMD.frag.out
@@ -1,6 +1,6 @@
spv.shaderFragMaskAMD.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 80
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shaderGroupVote.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shaderGroupVote.comp.out
index e45f5858376..a09e798d474 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shaderGroupVote.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shaderGroupVote.comp.out
@@ -1,6 +1,6 @@
spv.shaderGroupVote.comp
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 33
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shaderImageFootprint.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shaderImageFootprint.frag.out
index 8218ee42b3f..7559564825a 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shaderImageFootprint.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shaderImageFootprint.frag.out
@@ -1,6 +1,6 @@
spv.shaderImageFootprint.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 622
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shaderStencilExport.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shaderStencilExport.frag.out
index 8fc691ee1d1..37fce5fcb38 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shaderStencilExport.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shaderStencilExport.frag.out
@@ -1,6 +1,6 @@
spv.shaderStencilExport.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 10
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shadingRate.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shadingRate.frag.out
index 11477769b13..ce561132711 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shadingRate.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shadingRate.frag.out
@@ -1,6 +1,6 @@
spv.shadingRate.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 21
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shiftOps.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shiftOps.frag.out
index 3085a55d452..15df2365378 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shiftOps.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shiftOps.frag.out
@@ -1,6 +1,6 @@
spv.shiftOps.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 38
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shortCircuit.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shortCircuit.frag.out
index d651824597a..6104b04c43e 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shortCircuit.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.shortCircuit.frag.out
@@ -1,6 +1,6 @@
spv.shortCircuit.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 147
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.simpleFunctionCall.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.simpleFunctionCall.frag.out
index 627b31c1a8c..8e666a6024f 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.simpleFunctionCall.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.simpleFunctionCall.frag.out
@@ -1,6 +1,6 @@
spv.simpleFunctionCall.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 19
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.simpleMat.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.simpleMat.vert.out
index 85574585454..ff51dc0d009 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.simpleMat.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.simpleMat.vert.out
@@ -2,7 +2,7 @@ spv.simpleMat.vert
WARNING: 0:3: varying deprecated in version 130; may be removed in future release
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 39
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.smBuiltins.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.smBuiltins.frag.out
index fda06eb5069..9f4cc60fed1 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.smBuiltins.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.smBuiltins.frag.out
@@ -1,6 +1,6 @@
spv.smBuiltins.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 20
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.smBuiltins.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.smBuiltins.vert.out
index 8423e5b8a5e..0453b0cf355 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.smBuiltins.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.smBuiltins.vert.out
@@ -1,6 +1,6 @@
spv.smBuiltins.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 29
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.sparseTexture.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.sparseTexture.frag.out
index 7fdea0c41f1..34142008083 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.sparseTexture.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.sparseTexture.frag.out
@@ -1,7 +1,7 @@
spv.sparseTexture.frag
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 438
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.sparseTextureClamp.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.sparseTextureClamp.frag.out
index ff7dce5652c..fedd64aa022 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.sparseTextureClamp.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.sparseTextureClamp.frag.out
@@ -1,7 +1,7 @@
spv.sparseTextureClamp.frag
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 360
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.specConst.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.specConst.vert.out
index 70fbd09e2e6..116c136fdc7 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.specConst.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.specConst.vert.out
@@ -1,6 +1,6 @@
spv.specConst.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 27
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.specConstant.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.specConstant.comp.out
index 2f641501c8f..e0ad6991b51 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.specConstant.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.specConstant.comp.out
@@ -1,6 +1,6 @@
spv.specConstant.comp
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 27
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.specConstant.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.specConstant.vert.out
index 49bcca6920f..1be395015e7 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.specConstant.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.specConstant.vert.out
@@ -1,6 +1,6 @@
spv.specConstant.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 81
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.specConstantComposite.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.specConstantComposite.vert.out
index 58d4b6a3fd6..20a071b1fd4 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.specConstantComposite.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.specConstantComposite.vert.out
@@ -1,6 +1,6 @@
spv.specConstantComposite.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 43
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.specConstantOperations.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.specConstantOperations.vert.out
index 0f141e38682..747d50b5156 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.specConstantOperations.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.specConstantOperations.vert.out
@@ -1,6 +1,6 @@
spv.specConstantOperations.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 162
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.ssbo.autoassign.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.ssbo.autoassign.frag.out
index 40afa15f1c6..7d64847928d 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.ssbo.autoassign.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.ssbo.autoassign.frag.out
@@ -1,6 +1,6 @@
spv.ssbo.autoassign.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 99
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.ssboAlias.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.ssboAlias.frag.out
index f03d2ca9a93..1711d9d9374 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.ssboAlias.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.ssboAlias.frag.out
@@ -1,6 +1,6 @@
spv.ssboAlias.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 44
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.stereoViewRendering.tesc.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.stereoViewRendering.tesc.out
index 43afff9717f..2cab0640d51 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.stereoViewRendering.tesc.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.stereoViewRendering.tesc.out
@@ -1,6 +1,6 @@
spv.stereoViewRendering.tesc
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 42
Capability Geometry
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.stereoViewRendering.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.stereoViewRendering.vert.out
index afd8c75a27f..acb8338cdd2 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.stereoViewRendering.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.stereoViewRendering.vert.out
@@ -1,6 +1,6 @@
spv.stereoViewRendering.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 27
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.storageBuffer.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.storageBuffer.vert.out
index 5006e4cc1f4..79cf9f1919d 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.storageBuffer.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.storageBuffer.vert.out
@@ -1,6 +1,6 @@
spv.storageBuffer.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 31
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.structAssignment.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.structAssignment.frag.out
index 4b357da878b..d61c0e49deb 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.structAssignment.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.structAssignment.frag.out
@@ -3,7 +3,7 @@ WARNING: 0:6: '' : all default precisions are highp; use precision statements to
"precision mediump int; precision highp float;"
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 50
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.structDeref.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.structDeref.frag.out
index 6888a8508d1..2a114d7299e 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.structDeref.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.structDeref.frag.out
@@ -1,6 +1,6 @@
spv.structDeref.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 123
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.structure.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.structure.frag.out
index f1da59fa43a..e8f8b394963 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.structure.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.structure.frag.out
@@ -1,6 +1,6 @@
spv.structure.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 60
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroup.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroup.frag.out
index 4dd636e5a20..ee932bfc3b7 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroup.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroup.frag.out
@@ -1,6 +1,6 @@
spv.subgroup.frag
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 17
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroup.geom.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroup.geom.out
index a68343af6b3..279e64661dd 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroup.geom.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroup.geom.out
@@ -1,6 +1,6 @@
spv.subgroup.geom
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 26
Capability Geometry
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroup.tesc.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroup.tesc.out
index 4e362e2dda0..bc55b4e7f3e 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroup.tesc.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroup.tesc.out
@@ -1,6 +1,6 @@
spv.subgroup.tesc
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 26
Capability Tessellation
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroup.tese.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroup.tese.out
index e09f558d580..6b0a5ce71d9 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroup.tese.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroup.tese.out
@@ -1,6 +1,6 @@
spv.subgroup.tese
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 26
Capability Tessellation
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroup.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroup.vert.out
index 2fbc92ba217..6deaf5522b2 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroup.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroup.vert.out
@@ -1,6 +1,6 @@
spv.subgroup.vert
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 26
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupArithmetic.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupArithmetic.comp.out
index f4e251a0c05..29ea9ece516 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupArithmetic.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupArithmetic.comp.out
@@ -1,6 +1,6 @@
spv.subgroupArithmetic.comp
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 2085
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupBallot.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupBallot.comp.out
index ea152d9af9a..9fe196487c8 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupBallot.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupBallot.comp.out
@@ -1,6 +1,6 @@
spv.subgroupBallot.comp
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 397
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupBasic.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupBasic.comp.out
index 641534d5b73..2f6571b484f 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupBasic.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupBasic.comp.out
@@ -1,6 +1,6 @@
spv.subgroupBasic.comp
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 40
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupClustered.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupClustered.comp.out
index 150eb8aa45b..39712813392 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupClustered.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupClustered.comp.out
@@ -1,6 +1,6 @@
spv.subgroupClustered.comp
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 737
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupExtendedTypesArithmetic.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupExtendedTypesArithmetic.comp.out
index 453d6fc8109..263f48d0cd8 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupExtendedTypesArithmetic.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupExtendedTypesArithmetic.comp.out
@@ -1,6 +1,6 @@
spv.subgroupExtendedTypesArithmetic.comp
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 3665
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupExtendedTypesBallot.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupExtendedTypesBallot.comp.out
index 4e1b2dc19bc..9f6a8c0f5ac 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupExtendedTypesBallot.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupExtendedTypesBallot.comp.out
@@ -1,6 +1,6 @@
spv.subgroupExtendedTypesBallot.comp
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 441
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupExtendedTypesClustered.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupExtendedTypesClustered.comp.out
index b0b94b502b8..af3385ef780 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupExtendedTypesClustered.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupExtendedTypesClustered.comp.out
@@ -1,6 +1,6 @@
spv.subgroupExtendedTypesClustered.comp
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 1273
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupExtendedTypesPartitioned.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupExtendedTypesPartitioned.comp.out
index 2f5a5703e49..9de4b981544 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupExtendedTypesPartitioned.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupExtendedTypesPartitioned.comp.out
@@ -1,6 +1,6 @@
spv.subgroupExtendedTypesPartitioned.comp
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 1558
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupExtendedTypesQuad.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupExtendedTypesQuad.comp.out
index 7d37a410df5..ebd6132e1b7 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupExtendedTypesQuad.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupExtendedTypesQuad.comp.out
@@ -1,6 +1,6 @@
spv.subgroupExtendedTypesQuad.comp
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 806
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupExtendedTypesShuffle.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupExtendedTypesShuffle.comp.out
index d647ded5e57..f2413892902 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupExtendedTypesShuffle.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupExtendedTypesShuffle.comp.out
@@ -1,6 +1,6 @@
spv.subgroupExtendedTypesShuffle.comp
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 497
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupExtendedTypesShuffleRelative.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupExtendedTypesShuffleRelative.comp.out
index ef5def56139..06150b03728 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupExtendedTypesShuffleRelative.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupExtendedTypesShuffleRelative.comp.out
@@ -1,6 +1,6 @@
spv.subgroupExtendedTypesShuffleRelative.comp
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 497
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupExtendedTypesVote.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupExtendedTypesVote.comp.out
index a32c25d282b..63cc844d362 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupExtendedTypesVote.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupExtendedTypesVote.comp.out
@@ -1,6 +1,6 @@
spv.subgroupExtendedTypesVote.comp
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 277
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupPartitioned.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupPartitioned.comp.out
index 742e5bc499b..e16e3091706 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupPartitioned.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupPartitioned.comp.out
@@ -1,6 +1,6 @@
spv.subgroupPartitioned.comp
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 2506
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupQuad.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupQuad.comp.out
index 435c490f439..1c5e9634189 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupQuad.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupQuad.comp.out
@@ -1,6 +1,6 @@
spv.subgroupQuad.comp
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 616
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupShuffle.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupShuffle.comp.out
index 991c6fa77a7..532b0d289c0 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupShuffle.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupShuffle.comp.out
@@ -1,6 +1,6 @@
spv.subgroupShuffle.comp
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 379
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupShuffleRelative.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupShuffleRelative.comp.out
index 3aad7605b07..ae5589afca1 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupShuffleRelative.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupShuffleRelative.comp.out
@@ -1,6 +1,6 @@
spv.subgroupShuffleRelative.comp
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 379
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupVote.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupVote.comp.out
index 4fdbb0be037..6f6f8cfee56 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupVote.comp.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subgroupVote.comp.out
@@ -1,6 +1,6 @@
spv.subgroupVote.comp
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 216
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subpass.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subpass.frag.out
index 706624df1b7..4bc556ad6fe 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subpass.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.subpass.frag.out
@@ -1,6 +1,6 @@
spv.subpass.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 67
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.switch.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.switch.frag.out
index 47cc5d4c12f..729257c51e4 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.switch.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.switch.frag.out
@@ -4,7 +4,7 @@ WARNING: 0:134: 'switch' : last case/default label not followed by statements
WARNING: 0:139: 'switch' : last case/default label not followed by statements
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 269
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.swizzle.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.swizzle.frag.out
index 2a132d5824f..9b31a26854c 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.swizzle.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.swizzle.frag.out
@@ -1,6 +1,6 @@
spv.swizzle.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 108
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.swizzleInversion.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.swizzleInversion.frag.out
index 0aee7ae7294..796436075d2 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.swizzleInversion.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.swizzleInversion.frag.out
@@ -1,6 +1,6 @@
spv.swizzleInversion.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 46
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.test.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.test.frag.out
index 02e4f669dcc..db77cbbc2e8 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.test.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.test.frag.out
@@ -1,6 +1,6 @@
spv.test.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 55
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.test.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.test.vert.out
index 3303c88b542..3b06c666cd3 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.test.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.test.vert.out
@@ -2,7 +2,7 @@ spv.test.vert
WARNING: 0:5: attribute deprecated in version 130; may be removed in future release
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 24
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.texture.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.texture.frag.out
index d518ad7b565..3ea73382495 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.texture.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.texture.frag.out
@@ -4,7 +4,7 @@ WARNING: 0:11: varying deprecated in version 130; may be removed in future relea
WARNING: 0:12: varying deprecated in version 130; may be removed in future release
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 305
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.texture.sampler.transform.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.texture.sampler.transform.frag.out
index 612f2a90a17..f2306e7362c 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.texture.sampler.transform.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.texture.sampler.transform.frag.out
@@ -1,6 +1,6 @@
spv.texture.sampler.transform.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 20
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.texture.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.texture.vert.out
index f3f979c907b..3f9336bac57 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.texture.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.texture.vert.out
@@ -1,6 +1,6 @@
spv.texture.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 150
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.textureBuffer.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.textureBuffer.vert.out
index 252a9c82e90..463129020c9 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.textureBuffer.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.textureBuffer.vert.out
@@ -1,6 +1,6 @@
spv.textureBuffer.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 42
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.textureGatherBiasLod.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.textureGatherBiasLod.frag.out
index cd18688f626..aada70db947 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.textureGatherBiasLod.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.textureGatherBiasLod.frag.out
@@ -1,7 +1,7 @@
spv.textureGatherBiasLod.frag
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 298
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.types.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.types.frag.out
index e6fd3e0c206..3f7fd12710b 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.types.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.types.frag.out
@@ -1,6 +1,6 @@
spv.types.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 260
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.uint.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.uint.frag.out
index e6fe5e4da35..612b323ffc9 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.uint.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.uint.frag.out
@@ -1,6 +1,6 @@
spv.uint.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 213
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.uniformArray.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.uniformArray.frag.out
index 0f9883e464d..339d1decab5 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.uniformArray.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.uniformArray.frag.out
@@ -1,6 +1,6 @@
spv.uniformArray.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 53
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.unit1.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.unit1.frag.out
index d64d437fc1c..b2ec724bfbb 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.unit1.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.unit1.frag.out
@@ -193,7 +193,7 @@ gl_FragCoord origin is upper left
0:? 'h3' ( global highp float)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 69
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.variableArrayIndex.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.variableArrayIndex.frag.out
index 87d934ec17f..cc6d96b3cf2 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.variableArrayIndex.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.variableArrayIndex.frag.out
@@ -1,6 +1,6 @@
spv.variableArrayIndex.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 93
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.varyingArray.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.varyingArray.frag.out
index 2628f829df1..d5a59aea81d 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.varyingArray.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.varyingArray.frag.out
@@ -1,6 +1,6 @@
spv.varyingArray.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 61
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.varyingArrayIndirect.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.varyingArrayIndirect.frag.out
index 60e9857bc10..799def9e473 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.varyingArrayIndirect.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.varyingArrayIndirect.frag.out
@@ -1,6 +1,6 @@
spv.varyingArrayIndirect.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 70
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.vecMatConstruct.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.vecMatConstruct.frag.out
index 57ecd67ed11..004b2bc6142 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.vecMatConstruct.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.vecMatConstruct.frag.out
@@ -1,6 +1,6 @@
spv.vecMatConstruct.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 62
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.viewportArray2.tesc.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.viewportArray2.tesc.out
index a4016d401ee..78ee00df900 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.viewportArray2.tesc.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.viewportArray2.tesc.out
@@ -1,7 +1,7 @@
spv.viewportArray2.tesc
Validation failed
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 25
Capability Geometry
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.viewportArray2.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.viewportArray2.vert.out
index df116cfce54..6d419a627a4 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.viewportArray2.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.viewportArray2.vert.out
@@ -1,6 +1,6 @@
spv.viewportArray2.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 19
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.voidFunction.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.voidFunction.frag.out
index fbaee8784ff..804b32ca528 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.voidFunction.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.voidFunction.frag.out
@@ -1,6 +1,6 @@
spv.voidFunction.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 43
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.volatileAtomic.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.volatileAtomic.comp.out
new file mode 100644
index 00000000000..8326374dce6
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.volatileAtomic.comp.out
@@ -0,0 +1,40 @@
+spv.volatileAtomic.comp
+// Module Version 10000
+// Generated by (magic number): 80008
+// Id's are bound by 18
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint GLCompute 4 "main"
+ ExecutionMode 4 LocalSize 1 1 1
+ Source GLSL 450
+ Name 4 "main"
+ Name 8 "D"
+ MemberName 8(D) 0 "d"
+ Name 10 "d"
+ Decorate 7 ArrayStride 4
+ MemberDecorate 8(D) 0 Volatile
+ MemberDecorate 8(D) 0 Coherent
+ MemberDecorate 8(D) 0 Offset 0
+ Decorate 8(D) BufferBlock
+ Decorate 10(d) DescriptorSet 0
+ Decorate 10(d) Binding 3
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 0
+ 7: TypeRuntimeArray 6(int)
+ 8(D): TypeStruct 7
+ 9: TypePointer Uniform 8(D)
+ 10(d): 9(ptr) Variable Uniform
+ 11: TypeInt 32 1
+ 12: 11(int) Constant 0
+ 13: TypePointer Uniform 6(int)
+ 15: 6(int) Constant 0
+ 16: 6(int) Constant 1
+ 4(main): 2 Function None 3
+ 5: Label
+ 14: 13(ptr) AccessChain 10(d) 12 12
+ 17: 6(int) AtomicExchange 14 16 15 15
+ Return
+ FunctionEnd
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.vulkan110.int16.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.vulkan110.int16.frag.out
index 11f1cd3ea8f..b94593c8b6b 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.vulkan110.int16.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.vulkan110.int16.frag.out
@@ -1,6 +1,6 @@
spv.vulkan110.int16.frag
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 523
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.vulkan110.storageBuffer.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.vulkan110.storageBuffer.vert.out
index a0194713808..7592cf715cf 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.vulkan110.storageBuffer.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.vulkan110.storageBuffer.vert.out
@@ -1,6 +1,6 @@
spv.vulkan110.storageBuffer.vert
// Module Version 10300
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 31
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.while-continue-break.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.while-continue-break.vert.out
index d49bca09b1d..132f50305b0 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.while-continue-break.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.while-continue-break.vert.out
@@ -1,6 +1,6 @@
spv.while-continue-break.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 41
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.while-simple.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.while-simple.vert.out
index b507da3ed03..ea9a98017db 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.while-simple.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.while-simple.vert.out
@@ -1,6 +1,6 @@
spv.while-simple.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 22
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.whileLoop.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.whileLoop.frag.out
index e29497235e9..67d44f4ebf9 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.whileLoop.frag.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.whileLoop.frag.out
@@ -1,6 +1,6 @@
spv.whileLoop.frag
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 35
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.xfb.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.xfb.vert.out
index 3cd93d50019..7eb38b39f13 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.xfb.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.xfb.vert.out
@@ -1,6 +1,6 @@
spv.xfb.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 16
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.xfb2.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.xfb2.vert.out
index a8551a1a70e..0f593daea08 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.xfb2.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.xfb2.vert.out
@@ -1,6 +1,6 @@
spv.xfb2.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 35
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.xfb3.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.xfb3.vert.out
index 0218847e3ee..77894b49b46 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.xfb3.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.xfb3.vert.out
@@ -1,6 +1,6 @@
spv.xfb3.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 35
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.xfbOffsetOnBlockMembersAssignment.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.xfbOffsetOnBlockMembersAssignment.vert.out
index 066aa3a0872..52ce965294f 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.xfbOffsetOnBlockMembersAssignment.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.xfbOffsetOnBlockMembersAssignment.vert.out
@@ -1,6 +1,6 @@
spv.xfbOffsetOnBlockMembersAssignment.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 33
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.xfbOffsetOnStructMembersAssignment.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.xfbOffsetOnStructMembersAssignment.vert.out
index 668d24a59ba..13be843bb9a 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.xfbOffsetOnStructMembersAssignment.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.xfbOffsetOnStructMembersAssignment.vert.out
@@ -1,6 +1,6 @@
spv.xfbOffsetOnStructMembersAssignment.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 40
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.xfbOverlapOffsetCheckWithBlockAndMember.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.xfbOverlapOffsetCheckWithBlockAndMember.vert.out
index ebc496299b9..7159f4a8659 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.xfbOverlapOffsetCheckWithBlockAndMember.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.xfbOverlapOffsetCheckWithBlockAndMember.vert.out
@@ -1,6 +1,6 @@
spv.xfbOverlapOffsetCheckWithBlockAndMember.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 39
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.xfbStrideJustOnce.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.xfbStrideJustOnce.vert.out
index 9b459b503e0..270d17a1a5c 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.xfbStrideJustOnce.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/spv.xfbStrideJustOnce.vert.out
@@ -1,6 +1,6 @@
spv.xfbStrideJustOnce.vert
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 33
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/vulkan.ast.vert.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/vulkan.ast.vert.out
index 72a45705eec..2bf2065a4cd 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/vulkan.ast.vert.out
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/vulkan.ast.vert.out
@@ -258,7 +258,7 @@ Shader version: 450
0:? 2 (const int)
// Module Version 10000
-// Generated by (magic number): 80007
+// Generated by (magic number): 80008
// Id's are bound by 50
Capability Shader
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/web.comp.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/web.comp.out
new file mode 100644
index 00000000000..79a30729671
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/web.comp.out
@@ -0,0 +1,157 @@
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 7
+; Bound: 108
+; Schema: 0
+ OpCapability Shader
+ %1 = OpExtInstImport "GLSL.std.450"
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint GLCompute %main "main" %gl_NumWorkGroups %gl_WorkGroupID %gl_LocalInvocationID %gl_GlobalInvocationID %gl_LocalInvocationIndex
+ OpExecutionMode %main LocalSize 2 5 7
+ OpSource ESSL 310
+ OpName %main "main"
+ OpName %bName "bName"
+ OpMemberName %bName 0 "size"
+ OpMemberName %bName 1 "count"
+ OpMemberName %bName 2 "data"
+ OpName %bInst "bInst"
+ OpName %s "s"
+ OpName %arrX "arrX"
+ OpName %arrY "arrY"
+ OpName %arrZ "arrZ"
+ OpName %gl_NumWorkGroups "gl_NumWorkGroups"
+ OpName %gl_WorkGroupID "gl_WorkGroupID"
+ OpName %gl_LocalInvocationID "gl_LocalInvocationID"
+ OpName %gl_GlobalInvocationID "gl_GlobalInvocationID"
+ OpName %gl_LocalInvocationIndex "gl_LocalInvocationIndex"
+ OpDecorate %_runtimearr_v4float ArrayStride 16
+ OpMemberDecorate %bName 0 Offset 0
+ OpMemberDecorate %bName 1 Offset 16
+ OpMemberDecorate %bName 2 Offset 32
+ OpDecorate %bName BufferBlock
+ OpDecorate %bInst DescriptorSet 0
+ OpDecorate %bInst Binding 0
+ OpDecorate %39 SpecId 18
+ OpDecorate %41 SpecId 19
+ OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize
+ OpDecorate %gl_NumWorkGroups BuiltIn NumWorkgroups
+ OpDecorate %gl_WorkGroupID BuiltIn WorkgroupId
+ OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId
+ OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId
+ OpDecorate %gl_LocalInvocationIndex BuiltIn LocalInvocationIndex
+ %void = OpTypeVoid
+ %3 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %uint_2 = OpConstant %uint 2
+ %uint_264 = OpConstant %uint 264
+ %int = OpTypeInt 32 1
+ %v3uint = OpTypeVector %uint 3
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_runtimearr_v4float = OpTypeRuntimeArray %v4float
+ %bName = OpTypeStruct %int %v3uint %_runtimearr_v4float
+%_ptr_Uniform_bName = OpTypePointer Uniform %bName
+ %bInst = OpVariable %_ptr_Uniform_bName Uniform
+ %int_2 = OpConstant %int 2
+ %int_0 = OpConstant %int 0
+%_ptr_Uniform_int = OpTypePointer Uniform %int
+ %float_7 = OpConstant %float 7
+ %24 = OpConstantComposite %v4float %float_7 %float_7 %float_7 %float_7
+%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
+ %uint_1 = OpConstant %uint 1
+ %uint_3400 = OpConstant %uint 3400
+ %uint_72 = OpConstant %uint 72
+%uint_197645 = OpConstant %uint 197645
+%_arr_v4float_uint_197645 = OpTypeArray %v4float %uint_197645
+%_ptr_Workgroup__arr_v4float_uint_197645 = OpTypePointer Workgroup %_arr_v4float_uint_197645
+ %s = OpVariable %_ptr_Workgroup__arr_v4float_uint_197645 Workgroup
+ %int_3 = OpConstant %int 3
+ %float_0 = OpConstant %float 0
+ %39 = OpSpecConstant %uint 2
+ %uint_5 = OpConstant %uint 5
+ %41 = OpSpecConstant %uint 7
+%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %39 %uint_5 %41
+ %uint_0 = OpConstant %uint 0
+%_arr_int_44 = OpTypeArray %int %44
+%_ptr_Private__arr_int_44 = OpTypePointer Private %_arr_int_44
+ %arrX = OpVariable %_ptr_Private__arr_int_44 Private
+%_ptr_Private_int = OpTypePointer Private %int
+%_arr_int_52 = OpTypeArray %int %52
+%_ptr_Private__arr_int_52 = OpTypePointer Private %_arr_int_52
+ %arrY = OpVariable %_ptr_Private__arr_int_52 Private
+%_arr_int_59 = OpTypeArray %int %59
+%_ptr_Private__arr_int_59 = OpTypePointer Private %_arr_int_59
+ %arrZ = OpVariable %_ptr_Private__arr_int_59 Private
+%_ptr_Workgroup_v4float = OpTypePointer Workgroup %v4float
+ %int_1 = OpConstant %int 1
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%gl_NumWorkGroups = OpVariable %_ptr_Input_v3uint Input
+%gl_WorkGroupID = OpVariable %_ptr_Input_v3uint Input
+%gl_LocalInvocationID = OpVariable %_ptr_Input_v3uint Input
+%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input
+%_ptr_Input_uint = OpTypePointer Input %uint
+%gl_LocalInvocationIndex = OpVariable %_ptr_Input_uint Input
+%_ptr_Uniform_v3uint = OpTypePointer Uniform %v3uint
+ %int_5 = OpConstant %int 5
+ %int_197645 = OpConstant %int 197645
+ %main = OpFunction %void None %3
+ %5 = OpLabel
+ OpControlBarrier %uint_2 %uint_2 %uint_264
+ %20 = OpAccessChain %_ptr_Uniform_int %bInst %int_0
+ %21 = OpLoad %int %20
+ %22 = OpSDiv %int %21 %int_2
+ %26 = OpAccessChain %_ptr_Uniform_v4float %bInst %int_2 %22
+ %27 = OpLoad %v4float %26
+ %28 = OpFMul %v4float %27 %24
+ %29 = OpAccessChain %_ptr_Uniform_v4float %bInst %int_2 %22
+ OpStore %29 %28
+ OpMemoryBarrier %uint_1 %uint_3400
+ OpMemoryBarrier %uint_2 %uint_3400
+ OpMemoryBarrier %uint_1 %uint_264
+ OpMemoryBarrier %uint_1 %uint_72
+ %44 = OpCompositeExtract %uint %gl_WorkGroupSize 0
+ %49 = OpAccessChain %_ptr_Private_int %arrX %int_0
+ %50 = OpLoad %int %49
+ %51 = OpConvertSToF %float %50
+ %52 = OpCompositeExtract %uint %gl_WorkGroupSize 1
+ %56 = OpAccessChain %_ptr_Private_int %arrY %int_0
+ %57 = OpLoad %int %56
+ %58 = OpConvertSToF %float %57
+ %59 = OpCompositeExtract %uint %gl_WorkGroupSize 2
+ %63 = OpAccessChain %_ptr_Private_int %arrZ %int_0
+ %64 = OpLoad %int %63
+ %65 = OpConvertSToF %float %64
+ %66 = OpCompositeConstruct %v4float %float_0 %51 %58 %65
+ %68 = OpAccessChain %_ptr_Workgroup_v4float %s %int_3
+ OpStore %68 %66
+ %72 = OpLoad %v3uint %gl_NumWorkGroups
+ %73 = OpIAdd %v3uint %72 %gl_WorkGroupSize
+ %75 = OpLoad %v3uint %gl_WorkGroupID
+ %76 = OpIAdd %v3uint %73 %75
+ %78 = OpLoad %v3uint %gl_LocalInvocationID
+ %79 = OpIAdd %v3uint %76 %78
+ %81 = OpLoad %v3uint %gl_GlobalInvocationID
+ %84 = OpLoad %uint %gl_LocalInvocationIndex
+ %85 = OpCompositeConstruct %v3uint %84 %84 %84
+ %86 = OpIMul %v3uint %81 %85
+ %87 = OpIAdd %v3uint %79 %86
+ %89 = OpAccessChain %_ptr_Uniform_v3uint %bInst %int_1
+ OpStore %89 %87
+ %90 = OpAccessChain %_ptr_Uniform_int %bInst %int_0
+ %91 = OpAtomicIAdd %int %90 %uint_1 %uint_0 %int_2
+ %92 = OpAccessChain %_ptr_Uniform_int %bInst %int_0
+ %93 = OpAtomicSMin %int %92 %uint_1 %uint_0 %int_2
+ %94 = OpAccessChain %_ptr_Uniform_int %bInst %int_0
+ %95 = OpAtomicSMax %int %94 %uint_1 %uint_0 %int_2
+ %96 = OpAccessChain %_ptr_Uniform_int %bInst %int_0
+ %97 = OpAtomicAnd %int %96 %uint_1 %uint_0 %int_2
+ %98 = OpAccessChain %_ptr_Uniform_int %bInst %int_0
+ %99 = OpAtomicOr %int %98 %uint_1 %uint_0 %int_2
+ %100 = OpAccessChain %_ptr_Uniform_int %bInst %int_0
+ %101 = OpAtomicXor %int %100 %uint_1 %uint_0 %int_2
+ %102 = OpAccessChain %_ptr_Uniform_int %bInst %int_0
+ %103 = OpAtomicExchange %int %102 %uint_1 %uint_0 %int_2
+ %104 = OpAccessChain %_ptr_Uniform_int %bInst %int_0
+ %106 = OpAtomicCompareExchange %int %104 %uint_1 %uint_0 %uint_0 %int_2 %int_5
+ OpReturn
+ OpFunctionEnd
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/web.separate.frag.out b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/web.separate.frag.out
new file mode 100644
index 00000000000..e31ddca3761
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/baseResults/web.separate.frag.out
@@ -0,0 +1,178 @@
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 7
+; Bound: 99
+; Schema: 0
+ OpCapability Shader
+ %1 = OpExtInstImport "GLSL.std.450"
+ OpMemoryModel Logical GLSL450
+ OpEntryPoint Fragment %main "main" %color %i
+ OpExecutionMode %main OriginUpperLeft
+ OpSource ESSL 310
+ OpName %main "main"
+ OpName %color "color"
+ OpName %t2d "t2d"
+ OpName %s "s"
+ OpName %t3d "t3d"
+ OpName %sA "sA"
+ OpName %sShadow "sShadow"
+ OpName %i "i"
+ OpName %tex2D "tex2D"
+ OpName %texCube "texCube"
+ OpName %tex2DArray "tex2DArray"
+ OpName %itex2D "itex2D"
+ OpName %itex3D "itex3D"
+ OpName %itexCube "itexCube"
+ OpName %itex2DArray "itex2DArray"
+ OpName %utex2D "utex2D"
+ OpName %utex3D "utex3D"
+ OpName %utexCube "utexCube"
+ OpName %utex2DArray "utex2DArray"
+ OpName %tex3D "tex3D"
+ OpDecorate %color Location 0
+ OpDecorate %t2d RelaxedPrecision
+ OpDecorate %t2d DescriptorSet 0
+ OpDecorate %t2d Binding 3
+ OpDecorate %14 RelaxedPrecision
+ OpDecorate %s DescriptorSet 0
+ OpDecorate %s Binding 0
+ OpDecorate %23 RelaxedPrecision
+ OpDecorate %t3d DescriptorSet 0
+ OpDecorate %t3d Binding 4
+ OpDecorate %sA DescriptorSet 0
+ OpDecorate %sA Binding 2
+ OpDecorate %48 RelaxedPrecision
+ OpDecorate %51 RelaxedPrecision
+ OpDecorate %sShadow DescriptorSet 0
+ OpDecorate %sShadow Binding 1
+ OpDecorate %i RelaxedPrecision
+ OpDecorate %i Flat
+ OpDecorate %i Location 0
+ OpDecorate %tex2D RelaxedPrecision
+ OpDecorate %tex2D DescriptorSet 0
+ OpDecorate %tex2D Binding 5
+ OpDecorate %texCube RelaxedPrecision
+ OpDecorate %texCube DescriptorSet 0
+ OpDecorate %texCube Binding 6
+ OpDecorate %tex2DArray DescriptorSet 0
+ OpDecorate %tex2DArray Binding 15
+ OpDecorate %itex2D DescriptorSet 0
+ OpDecorate %itex2D Binding 16
+ OpDecorate %itex3D DescriptorSet 0
+ OpDecorate %itex3D Binding 17
+ OpDecorate %itexCube DescriptorSet 0
+ OpDecorate %itexCube Binding 18
+ OpDecorate %itex2DArray DescriptorSet 0
+ OpDecorate %itex2DArray Binding 19
+ OpDecorate %utex2D DescriptorSet 0
+ OpDecorate %utex2D Binding 20
+ OpDecorate %utex3D DescriptorSet 0
+ OpDecorate %utex3D Binding 21
+ OpDecorate %utexCube DescriptorSet 0
+ OpDecorate %utexCube Binding 22
+ OpDecorate %utex2DArray DescriptorSet 0
+ OpDecorate %utex2DArray Binding 23
+ OpDecorate %tex3D DescriptorSet 0
+ OpDecorate %tex3D Binding 36
+ %void = OpTypeVoid
+ %3 = OpTypeFunction %void
+ %float = OpTypeFloat 32
+ %v4float = OpTypeVector %float 4
+%_ptr_Output_v4float = OpTypePointer Output %v4float
+ %color = OpVariable %_ptr_Output_v4float Output
+ %10 = OpTypeImage %float 2D 0 0 0 1 Unknown
+ %11 = OpTypeSampledImage %10
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+ %t2d = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %15 = OpTypeSampler
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+ %s = OpVariable %_ptr_UniformConstant_15 UniformConstant
+ %v2float = OpTypeVector %float 2
+ %float_0_5 = OpConstant %float 0.5
+ %22 = OpConstantComposite %v2float %float_0_5 %float_0_5
+ %24 = OpTypeImage %float 3D 0 0 0 1 Unknown
+ %25 = OpTypeSampledImage %24
+ %uint = OpTypeInt 32 0
+ %uint_4 = OpConstant %uint 4
+%_arr_25_uint_4 = OpTypeArray %25 %uint_4
+%_ptr_UniformConstant__arr_25_uint_4 = OpTypePointer UniformConstant %_arr_25_uint_4
+ %t3d = OpVariable %_ptr_UniformConstant__arr_25_uint_4 UniformConstant
+ %int = OpTypeInt 32 1
+ %int_1 = OpConstant %int 1
+%_ptr_UniformConstant_25 = OpTypePointer UniformConstant %25
+%_arr_15_uint_4 = OpTypeArray %15 %uint_4
+%_ptr_UniformConstant__arr_15_uint_4 = OpTypePointer UniformConstant %_arr_15_uint_4
+ %sA = OpVariable %_ptr_UniformConstant__arr_15_uint_4 UniformConstant
+ %int_2 = OpConstant %int 2
+ %v3float = OpTypeVector %float 3
+ %44 = OpConstantComposite %v3float %float_0_5 %float_0_5 %float_0_5
+ %sShadow = OpVariable %_ptr_UniformConstant_15 UniformConstant
+%_ptr_Input_int = OpTypePointer Input %int
+ %i = OpVariable %_ptr_Input_int Input
+ %tex2D = OpVariable %_ptr_UniformConstant_11 UniformConstant
+ %58 = OpTypeImage %float Cube 0 0 0 1 Unknown
+ %59 = OpTypeSampledImage %58
+%_ptr_UniformConstant_59 = OpTypePointer UniformConstant %59
+ %texCube = OpVariable %_ptr_UniformConstant_59 UniformConstant
+ %62 = OpTypeImage %float 2D 0 1 0 1 Unknown
+ %63 = OpTypeSampledImage %62
+%_ptr_UniformConstant_63 = OpTypePointer UniformConstant %63
+ %tex2DArray = OpVariable %_ptr_UniformConstant_63 UniformConstant
+ %66 = OpTypeImage %int 2D 0 0 0 1 Unknown
+ %67 = OpTypeSampledImage %66
+%_ptr_UniformConstant_67 = OpTypePointer UniformConstant %67
+ %itex2D = OpVariable %_ptr_UniformConstant_67 UniformConstant
+ %70 = OpTypeImage %int 3D 0 0 0 1 Unknown
+ %71 = OpTypeSampledImage %70
+%_ptr_UniformConstant_71 = OpTypePointer UniformConstant %71
+ %itex3D = OpVariable %_ptr_UniformConstant_71 UniformConstant
+ %74 = OpTypeImage %int Cube 0 0 0 1 Unknown
+ %75 = OpTypeSampledImage %74
+%_ptr_UniformConstant_75 = OpTypePointer UniformConstant %75
+ %itexCube = OpVariable %_ptr_UniformConstant_75 UniformConstant
+ %78 = OpTypeImage %int 2D 0 1 0 1 Unknown
+ %79 = OpTypeSampledImage %78
+%_ptr_UniformConstant_79 = OpTypePointer UniformConstant %79
+%itex2DArray = OpVariable %_ptr_UniformConstant_79 UniformConstant
+ %82 = OpTypeImage %uint 2D 0 0 0 1 Unknown
+ %83 = OpTypeSampledImage %82
+%_ptr_UniformConstant_83 = OpTypePointer UniformConstant %83
+ %utex2D = OpVariable %_ptr_UniformConstant_83 UniformConstant
+ %86 = OpTypeImage %uint 3D 0 0 0 1 Unknown
+ %87 = OpTypeSampledImage %86
+%_ptr_UniformConstant_87 = OpTypePointer UniformConstant %87
+ %utex3D = OpVariable %_ptr_UniformConstant_87 UniformConstant
+ %90 = OpTypeImage %uint Cube 0 0 0 1 Unknown
+ %91 = OpTypeSampledImage %90
+%_ptr_UniformConstant_91 = OpTypePointer UniformConstant %91
+ %utexCube = OpVariable %_ptr_UniformConstant_91 UniformConstant
+ %94 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+ %95 = OpTypeSampledImage %94
+%_ptr_UniformConstant_95 = OpTypePointer UniformConstant %95
+%utex2DArray = OpVariable %_ptr_UniformConstant_95 UniformConstant
+ %tex3D = OpVariable %_ptr_UniformConstant_25 UniformConstant
+ %main = OpFunction %void None %3
+ %5 = OpLabel
+ %14 = OpLoad %11 %t2d
+ %18 = OpLoad %15 %s
+ %19 = OpSampledImage %11 %14 %18
+ %23 = OpImageSampleImplicitLod %v4float %19 %22
+ OpStore %color %23
+ %34 = OpAccessChain %_ptr_UniformConstant_25 %t3d %int_1
+ %35 = OpLoad %25 %34
+ %40 = OpAccessChain %_ptr_UniformConstant_15 %sA %int_2
+ %41 = OpLoad %15 %40
+ %42 = OpSampledImage %25 %35 %41
+ %45 = OpImageSampleImplicitLod %v4float %42 %44
+ %46 = OpLoad %v4float %color
+ %47 = OpFAdd %v4float %46 %45
+ OpStore %color %47
+ %48 = OpLoad %11 %t2d
+ %49 = OpLoad %15 %s
+ %50 = OpSampledImage %11 %48 %49
+ %51 = OpImageSampleImplicitLod %v4float %50 %22
+ %52 = OpLoad %v4float %color
+ %53 = OpFAdd %v4float %52 %51
+ OpStore %color %53
+ OpReturn
+ OpFunctionEnd
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/glsl.450.subgroup.frag b/3rdparty/bgfx/3rdparty/glslang/Test/glsl.450.subgroup.frag
index 883554e0964..70bee79faba 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/glsl.450.subgroup.frag
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/glsl.450.subgroup.frag
@@ -114,12 +114,14 @@ void main (void)
#extension GL_KHR_shader_subgroup_ballot: enable
void ballot_works(vec4 f4) {
+ int i;
gl_SubgroupEqMask;
gl_SubgroupGeMask;
gl_SubgroupGtMask;
gl_SubgroupLeMask;
gl_SubgroupLtMask;
subgroupBroadcast(f4, 0);
+ subgroupBroadcast(f4, i);
subgroupBroadcastFirst(f4);
uvec4 ballot = subgroupBallot(false);
subgroupInverseBallot(uvec4(0x1));
@@ -192,7 +194,9 @@ void clustered_works(vec4 f4)
#extension GL_KHR_shader_subgroup_quad: enable
void quad_works(vec4 f4)
{
+ int i;
subgroupQuadBroadcast(f4, 0);
+ subgroupQuadBroadcast(f4, i);
subgroupQuadSwapHorizontal(f4);
subgroupQuadSwapVertical(f4);
subgroupQuadSwapDiagonal(f4);
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/hlsl.doLoop.frag b/3rdparty/bgfx/3rdparty/glslang/Test/hlsl.doLoop.frag
index 0318dc8f39e..8f4bfdcebe1 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/hlsl.doLoop.frag
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/hlsl.doLoop.frag
@@ -1,9 +1,29 @@
-float4 PixelShaderFunction(float input) : COLOR0
-{
+void f0() {
[unroll] do {} while (false);
+}
+
+void f1() {
[unroll] do {;} while (false);
+}
+
+float f2(float input) {
do { return (float4)input; } while (input > 2.0);
+}
+
+void f3(float input) {
do ++input; while (input < 10.0);
+}
+
+void f4(float input) {
do while (++input < 10.0); while (++input < 10.0); // nest while inside do-while
+}
+
+float4 PixelShaderFunction(float input) : COLOR0
+{
+ f0();
+ f1();
+ f2(input);
+ f3(input);
+ f4(input);
return (float4)input;
}
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/hlsl.forLoop.frag b/3rdparty/bgfx/3rdparty/glslang/Test/hlsl.forLoop.frag
index 9cf60ee4600..c0783dbdc3c 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/hlsl.forLoop.frag
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/hlsl.forLoop.frag
@@ -1,17 +1,59 @@
-float4 PixelShaderFunction(float4 input) : COLOR0
-{
+void f0() {
for (;;) ;
+}
+
+void f1(float4 input) {
for (++input; ; ) ;
+}
+
+void f2(float4 input) {
[unroll] for (; any(input != input); ) {}
+}
+
+float f3(float4 input) {
for (; any(input != input); ) { return -input; }
+}
+
+float f4(float4 input) {
for (--input; any(input != input); input += 2) { return -input; }
+}
+
+void f5(float4 input) {
for (;;) if (input.x > 2.0) break;
+}
+
+void f6(float4 input) {
for (;;) if (input.x > 2.0) continue;
+}
+
+void f99() {
+ for (int first = 0, second = 1; ;) first + second;
+}
+
+void f100(float ii) {
+ for (--ii, --ii, --ii;;) ii;
+}
+
+float4 PixelShaderFunction(float4 input) : COLOR0
+{
+ f0();
+ f1(input);
+ f2(input);
+ f3(input);
+ f4(input);
+ f5(input);
+ f6(input);
+
float ii;
for (int ii = -1; ii < 3; ++ii) if (ii == 2) continue;
--ii;
- for (int first = 0, second = 1; ;) first + second;
+
+ f99();
+
for ( int i = 0, count = int(ii); i < count; i++ );
for (float first = 0, second[2], third; first < second[0]; ++second[1]) first + second[1] + third;
- for (--ii, --ii, --ii;;) ii;
+
+ f100(ii);
+
+ return input;
}
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/hlsl.if.frag b/3rdparty/bgfx/3rdparty/glslang/Test/hlsl.if.frag
index b62eda15186..a2e47f6a1f6 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/hlsl.if.frag
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/hlsl.if.frag
@@ -1,12 +1,24 @@
-float4 PixelShaderFunction(float4 input) : COLOR0
-{
+float4 f0(float4 input) {
if (all(input == input))
return input;
+ else
+ return -input;
+}
- if (all(input == input))
+float4 f1(float4 input) {
+ if (all(input == input)) {
return input;
- else
+ } else {
return -input;
+ }
+}
+
+float4 PixelShaderFunction(float4 input) : COLOR0
+{
+ if (all(input == input))
+ return input;
+
+ f0(input);
if (all(input == input))
;
@@ -20,11 +32,7 @@ float4 PixelShaderFunction(float4 input) : COLOR0
return input;
}
- if (all(input == input)) {
- return input;
- } else {
- return -input;
- }
+ f1(input);
int ii;
if (float ii = input.z)
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/runtests b/3rdparty/bgfx/3rdparty/glslang/Test/runtests
index 8e31c0696cf..23406dc3407 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/runtests
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/runtests
@@ -1,11 +1,16 @@
#!/usr/bin/env bash
-TARGETDIR=localResults
+# Arguments:
+# 1- TargetDirectory, where to write test results and intermediary files
+# 2- Path to glslangValidator
+# 3- Path to spirv-remap
+
+TARGETDIR=${1:-localResults}
BASEDIR=baseResults
-EXE=../build/install/bin/glslangValidator
-REMAPEXE=../build/install/bin/spirv-remap
+EXE=${2:-../build/install/bin/glslangValidator}
+REMAPEXE=${3:-../build/install/bin/spirv-remap}
HASERROR=0
-mkdir -p localResults
+mkdir -p $TARGETDIR
if [ -a localtestlist ]
then
@@ -55,13 +60,13 @@ diff -b $BASEDIR/hlsl.automap.frag.out $TARGETDIR/hlsl.automap.frag.out || HASER
# multi-threaded test
#
echo Comparing single thread to multithread for all tests in current directory...
-$EXE -i -C *.vert *.geom *.frag *.tesc *.tese *.comp > singleThread.out
-$EXE -i -C *.vert *.geom *.frag *.tesc *.tese *.comp -t > multiThread.out
-diff singleThread.out multiThread.out || HASERROR=1
+$EXE -i -C *.vert *.geom *.frag *.tesc *.tese *.comp > $TARGETDIR/singleThread.out
+$EXE -i -C *.vert *.geom *.frag *.tesc *.tese *.comp -t > $TARGETDIR/multiThread.out
+diff $TARGETDIR/singleThread.out $TARGETDIR/multiThread.out || HASERROR=1
if [ $HASERROR -eq 0 ]
then
- rm singleThread.out
- rm multiThread.out
+ rm $TARGETDIR/singleThread.out
+ rm $TARGETDIR/multiThread.out
fi
#
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/spv.controlFlowAttributes.frag b/3rdparty/bgfx/3rdparty/glslang/Test/spv.controlFlowAttributes.frag
index 6d90c0db2c1..cedd60225c5 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/spv.controlFlowAttributes.frag
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/spv.controlFlowAttributes.frag
@@ -4,11 +4,18 @@
bool cond;
+void f0() {
+ [[loop]] for (;;) { }
+}
+
+void f1() {
+ [[dont_unroll]] while(true) { }
+}
+
void main()
{
[[unroll]] for (int i = 0; i < 8; ++i) { }
- [[loop]] for (;;) { }
- [[dont_unroll]] while(true) { }
+ f0();
[[dependency_infinite]] do { } while(true);
[[dependency_length(1+3)]] for (int i = 0; i < 8; ++i) { }
[[flatten]] if (cond) { } else { }
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/spv.dead-after-continue.vert b/3rdparty/bgfx/3rdparty/glslang/Test/spv.dead-after-continue.vert
new file mode 100644
index 00000000000..86e8eea8da7
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/spv.dead-after-continue.vert
@@ -0,0 +1,14 @@
+#version 450
+
+layout(location =0 ) in int c;
+layout(location =0 ) out int o;
+
+void main() {
+ int i;
+ for (i=0; i < 5; i++) {
+ o = 1;
+ continue;
+ o = 2;
+ }
+ o = 3;
+}
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/spv.dead-after-discard.frag b/3rdparty/bgfx/3rdparty/glslang/Test/spv.dead-after-discard.frag
new file mode 100644
index 00000000000..769592bd599
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/spv.dead-after-discard.frag
@@ -0,0 +1,10 @@
+#version 450
+
+layout(location =0 ) in float c;
+layout(location =0 ) out int o;
+
+void main() {
+ o = 1;
+ discard;
+ o = 3;
+}
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/spv.dead-after-loop-break.vert b/3rdparty/bgfx/3rdparty/glslang/Test/spv.dead-after-loop-break.vert
new file mode 100644
index 00000000000..5498497c3e3
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/spv.dead-after-loop-break.vert
@@ -0,0 +1,19 @@
+#version 450
+
+layout(location =0 ) in int c;
+layout(location =0 ) out int o;
+
+void main() {
+ int i;
+ o = 1;
+ for (i=0; i < 5; i++) {
+ o = 2;
+ if (i==c) {
+ o = 3;
+ break;
+ o = 4;
+ }
+ o = 5;
+ }
+ o = 6;
+}
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/spv.dead-after-return.vert b/3rdparty/bgfx/3rdparty/glslang/Test/spv.dead-after-return.vert
new file mode 100644
index 00000000000..71726963ab2
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/spv.dead-after-return.vert
@@ -0,0 +1,10 @@
+#version 450
+
+layout(location =0 ) in int c;
+layout(location =0 ) out int o;
+
+void main() {
+ o = 1;
+ return;
+ o = 3;
+}
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/spv.dead-after-switch-break.vert b/3rdparty/bgfx/3rdparty/glslang/Test/spv.dead-after-switch-break.vert
new file mode 100644
index 00000000000..b1483e8d9a0
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/spv.dead-after-switch-break.vert
@@ -0,0 +1,15 @@
+#version 450
+
+layout(location =0 ) in int c;
+layout(location =0 ) out int o;
+
+void main() {
+ int i;
+ switch(c) {
+ case 0: o=1;
+ break;
+ o=2;
+ default: break;
+ }
+ o = 3;
+}
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/spv.dead-complex-continue-after-return.vert b/3rdparty/bgfx/3rdparty/glslang/Test/spv.dead-complex-continue-after-return.vert
new file mode 100644
index 00000000000..85932a366ac
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/spv.dead-complex-continue-after-return.vert
@@ -0,0 +1,19 @@
+#version 450
+
+layout(location =0 ) in int c;
+layout(location =0 ) out int o;
+
+void main() {
+ int i = 0;
+ o = 1;
+ // This has non-trivial continue target.
+ for (i=0; i < 5; ++i, o=99) {
+ o = 2;
+ return;
+ o = 3;
+ }
+ // This is considered reachable since Glslang codegen will
+ // create a conditional branch in the header, and one arm
+ // of that branch reaches this merge block.
+ o = 4;
+}
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/spv.dead-complex-merge-after-return.vert b/3rdparty/bgfx/3rdparty/glslang/Test/spv.dead-complex-merge-after-return.vert
new file mode 100644
index 00000000000..2fff1a29738
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/spv.dead-complex-merge-after-return.vert
@@ -0,0 +1,23 @@
+#version 450
+
+layout(location =0 ) in int c;
+layout(location =0 ) out int o;
+
+void main() {
+ int i = 0;
+ o = 1;
+ do {
+ o = 2;
+ return;
+ o = 3;
+ } while(i++ < 5);
+
+ // All this is a dead merge block.
+ o = 4;
+ if (c==4) {
+ o = 100;
+ } else {
+ o = 200;
+ }
+ o = 300;
+}
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/spv.volatileAtomic.comp b/3rdparty/bgfx/3rdparty/glslang/Test/spv.volatileAtomic.comp
new file mode 100644
index 00000000000..a86f896274a
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/spv.volatileAtomic.comp
@@ -0,0 +1,8 @@
+#version 450 core
+
+layout(set=0, binding=3) volatile buffer D { uint d[]; } d;
+
+void main()
+{
+ atomicExchange(d.d[0], 0);
+}
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/web.comp b/3rdparty/bgfx/3rdparty/glslang/Test/web.comp
new file mode 100644
index 00000000000..07847b4268d
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/web.comp
@@ -0,0 +1,50 @@
+#version 310 es
+
+layout(local_size_x_id = 18, local_size_z_id = 19) in;
+
+layout(local_size_x = 2) in;
+layout(local_size_y = 5) in;
+layout(local_size_z = 7) in;
+
+const int total = gl_MaxComputeWorkGroupCount.x
+ + gl_MaxComputeWorkGroupCount.y
+ + gl_MaxComputeWorkGroupCount.z
+ + gl_MaxComputeUniformComponents
+ + gl_MaxComputeTextureImageUnits;
+
+shared vec4 s[total];
+
+int arrX[gl_WorkGroupSize.x];
+int arrY[gl_WorkGroupSize.y];
+int arrZ[gl_WorkGroupSize.z];
+
+layout(binding = 0, set = 0) buffer bName {
+ int size;
+ uvec3 count;
+ vec4 data[];
+} bInst;
+
+void main()
+{
+ barrier();
+
+ bInst.data[bInst.size / 2] *= vec4(7.0);
+
+ memoryBarrier();
+ groupMemoryBarrier();
+ memoryBarrierShared();
+ memoryBarrierBuffer();
+
+ s[3] = vec4(0, arrX[0], arrY[0], arrZ[0]);
+ bInst.count = gl_NumWorkGroups + gl_WorkGroupSize + gl_WorkGroupID + gl_LocalInvocationID +
+ gl_GlobalInvocationID * gl_LocalInvocationIndex;
+
+ atomicAdd(bInst.size, 2);
+ atomicMin(bInst.size, 2);
+ atomicMax(bInst.size, 2);
+ atomicAnd(bInst.size, 2);
+ atomicOr(bInst.size, 2);
+ atomicXor(bInst.size, 2);
+ atomicExchange(bInst.size, 2);
+ atomicCompSwap(bInst.size, 5, 2);
+}
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/web.separate.frag b/3rdparty/bgfx/3rdparty/glslang/Test/web.separate.frag
new file mode 100644
index 00000000000..b747cba5785
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/web.separate.frag
@@ -0,0 +1,63 @@
+#version 310 es
+
+precision highp sampler;
+precision highp samplerShadow;
+precision highp texture2DArray;
+precision highp itexture2D;
+precision highp itexture3D;
+precision highp itextureCube;
+precision highp itexture2DArray;
+precision highp utexture2D;
+precision highp utexture3D;
+precision highp utextureCube;
+precision highp utexture2DArray;
+precision highp texture3D;
+precision highp float;
+
+layout(binding = 0) uniform sampler s;
+layout(binding = 1) uniform samplerShadow sShadow;
+layout(binding = 2) uniform sampler sA[4];
+layout(binding = 3) uniform texture2D t2d;
+layout(binding = 4) uniform texture3D t3d[4];
+layout(location = 0) flat in int i;
+
+layout(location = 0) out vec4 color;
+
+void main()
+{
+ color = texture(sampler2D(t2d, s), vec2(0.5));
+ color += texture(sampler3D(t3d[1], sA[2]), vec3(0.5));
+ color += texture(sampler2D(t2d, s), vec2(0.5));
+}
+
+layout(binding = 5) uniform texture2D tex2D;
+layout(binding = 6) uniform textureCube texCube;
+layout(binding = 15) uniform texture2DArray tex2DArray;
+layout(binding = 16) uniform itexture2D itex2D;
+layout(binding = 17) uniform itexture3D itex3D;
+layout(binding = 18) uniform itextureCube itexCube;
+layout(binding = 19) uniform itexture2DArray itex2DArray;
+layout(binding = 20) uniform utexture2D utex2D;
+layout(binding = 21) uniform utexture3D utex3D;
+layout(binding = 22) uniform utextureCube utexCube;
+layout(binding = 23) uniform utexture2DArray utex2DArray;
+layout(binding = 36) uniform texture3D tex3D;
+
+void foo()
+{
+ sampler2D (tex2D, s);
+ samplerCube (texCube, s);
+ samplerCubeShadow (texCube, sShadow);
+ sampler2DArray (tex2DArray, s);
+ sampler2DArrayShadow (tex2DArray, sShadow);
+ isampler2D (itex2D, s);
+ isampler3D (itex3D, s);
+ isamplerCube (itexCube, s);
+ isampler2DArray (itex2DArray, s);
+ usampler2D (utex2D, s);
+ usampler3D (utex3D, s);
+ usamplerCube (utexCube, s);
+ usampler2DArray (utex2DArray, s);
+ sampler3D (tex3D, s);
+ sampler2DShadow (tex2D, sShadow);
+}
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/web.testlist b/3rdparty/bgfx/3rdparty/glslang/Test/web.testlist
index fba92127a60..764c0c0f2f0 100644
--- a/3rdparty/bgfx/3rdparty/glslang/Test/web.testlist
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/web.testlist
@@ -5,3 +5,5 @@ web.controlFlow.frag
web.operations.frag
web.texture.frag
web.array.frag
+web.separate.frag
+web.comp
diff --git a/3rdparty/bgfx/3rdparty/glslang/WORKSPACE b/3rdparty/bgfx/3rdparty/glslang/WORKSPACE
new file mode 100644
index 00000000000..3c38e61d08b
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/glslang/WORKSPACE
@@ -0,0 +1,27 @@
+workspace(name = "org_khronos_glslang")
+load(
+ "@bazel_tools//tools/build_defs/repo:http.bzl",
+ "http_archive",
+)
+
+http_archive(
+ name = "com_google_googletest",
+ sha256 = "ef9e2e12e7bf115ee48b427ae171fc869eeaf1b532c0fcfd982f6a353d2471b4",
+ strip_prefix = "googletest-37ae1fc5e6be26f367d76c078beabd7024fed53a",
+ urls = ["https://github.com/google/googletest/archive/37ae1fc5e6be26f367d76c078beabd7024fed53a.zip"], # 2018-07-16
+)
+
+http_archive(
+ name = "com_googlesource_code_re2",
+ sha256 = "b885bb965ab4b6cf8718bbb8154d8f6474cd00331481b6d3e390babb3532263e",
+ strip_prefix = "re2-e860767c86e577b87deadf24cc4567ea83c4f162/",
+ urls = ["https://github.com/google/re2/archive/e860767c86e577b87deadf24cc4567ea83c4f162.zip"],
+)
+
+http_archive(
+ name = "com_google_effcee",
+ build_file = "BUILD.effcee.bazel",
+ sha256 = "b0c21a01995fdf9792510566d78d5e7fe6f83cb4ba986eba691f4926f127cb34",
+ strip_prefix = "effcee-8f0a61dc95e0df18c18e0ac56d83b3fa9d2fe90b/",
+ urls = ["https://github.com/google/effcee/archive/8f0a61dc95e0df18c18e0ac56d83b3fa9d2fe90b.zip"],
+)
diff --git a/3rdparty/bgfx/3rdparty/glslang/glslang/CMakeLists.txt b/3rdparty/bgfx/3rdparty/glslang/glslang/CMakeLists.txt
index 930893c2ff2..42df1d1e64c 100644
--- a/3rdparty/bgfx/3rdparty/glslang/glslang/CMakeLists.txt
+++ b/3rdparty/bgfx/3rdparty/glslang/glslang/CMakeLists.txt
@@ -82,7 +82,9 @@ add_library(glslang ${LIB_TYPE} ${BISON_GLSLParser_OUTPUT_SOURCE} ${SOURCES} ${H
set_property(TARGET glslang PROPERTY FOLDER glslang)
set_property(TARGET glslang PROPERTY POSITION_INDEPENDENT_CODE ON)
target_link_libraries(glslang OGLCompiler OSDependent)
-target_include_directories(glslang PUBLIC ..)
+target_include_directories(glslang PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..>
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
if(WIN32 AND BUILD_SHARED_LIBS)
set_target_properties(glslang PROPERTIES PREFIX "")
@@ -102,14 +104,15 @@ endif(WIN32)
if(ENABLE_GLSLANG_INSTALL)
if(BUILD_SHARED_LIBS)
- install(TARGETS glslang
+ install(TARGETS glslang EXPORT glslangTargets
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
else()
- install(TARGETS glslang
+ install(TARGETS glslang EXPORT glslangTargets
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif()
+ install(EXPORT glslangTargets DESTINATION lib/cmake)
endif(ENABLE_GLSLANG_INSTALL)
if(ENABLE_GLSLANG_INSTALL)
diff --git a/3rdparty/bgfx/3rdparty/glslang/glslang/Include/Types.h b/3rdparty/bgfx/3rdparty/glslang/glslang/Include/Types.h
index 9961c943a09..3ed402d4902 100644
--- a/3rdparty/bgfx/3rdparty/glslang/glslang/Include/Types.h
+++ b/3rdparty/bgfx/3rdparty/glslang/glslang/Include/Types.h
@@ -79,6 +79,7 @@ struct TSampler { // misnomer now; includes images, textures without sampler,
bool ms : 1;
bool image : 1; // image, combined should be false
bool combined : 1; // true means texture is combined with a sampler, false means texture with no sampler
+ bool sampler : 1; // true means a pure sampler, other fields should be clear()
#ifdef ENABLE_HLSL
unsigned int vectorSize : 3; // vector return type size.
unsigned int getVectorSize() const { return vectorSize; }
@@ -105,8 +106,6 @@ struct TSampler { // misnomer now; includes images, textures without sampler,
bool isRect() const { return false; }
bool isSubpass() const { return false; }
bool isCombined() const { return true; }
- bool isPureSampler() const { return false; }
- bool isTexture() const { return false; }
bool isImage() const { return false; }
bool isImageClass() const { return false; }
bool isMultiSample() const { return false; }
@@ -114,7 +113,6 @@ struct TSampler { // misnomer now; includes images, textures without sampler,
void setExternal(bool e) { }
bool isYuv() const { return false; }
#else
- bool sampler : 1; // true means a pure sampler, other fields should be clear()
bool external : 1; // GL_OES_EGL_image_external
bool yuv : 1; // GL_EXT_YUV_target
// Some languages support structures as sample results. Storing the whole structure in the
@@ -125,8 +123,6 @@ struct TSampler { // misnomer now; includes images, textures without sampler,
bool isRect() const { return dim == EsdRect; }
bool isSubpass() const { return dim == EsdSubpass; }
bool isCombined() const { return combined; }
- bool isPureSampler() const { return sampler; }
- bool isTexture() const { return !sampler && !image; }
bool isImage() const { return image && !isSubpass(); }
bool isImageClass() const { return image; }
bool isMultiSample() const { return ms; }
@@ -134,7 +130,12 @@ struct TSampler { // misnomer now; includes images, textures without sampler,
void setExternal(bool e) { external = e; }
bool isYuv() const { return yuv; }
#endif
+ bool isTexture() const { return !sampler && !image; }
+ bool isPureSampler() const { return sampler; }
+
void setCombined(bool c) { combined = c; }
+ void setBasicType(TBasicType t) { type = t; }
+ TBasicType getBasicType() const { return type; }
bool isShadow() const { return shadow; }
bool isArrayed() const { return arrayed; }
@@ -147,8 +148,8 @@ struct TSampler { // misnomer now; includes images, textures without sampler,
ms = false;
image = false;
combined = false;
-#ifndef GLSLANG_WEB
sampler = false;
+#ifndef GLSLANG_WEB
external = false;
yuv = false;
#endif
@@ -195,6 +196,14 @@ struct TSampler { // misnomer now; includes images, textures without sampler,
ms = m;
}
+ // make a pure sampler, no texture, no image, nothing combined, the 'sampler' keyword
+ void setPureSampler(bool s)
+ {
+ clear();
+ sampler = true;
+ shadow = s;
+ }
+
#ifndef GLSLANG_WEB
// make a subpass input attachment
void setSubpass(TBasicType t, bool m = false)
@@ -205,14 +214,6 @@ struct TSampler { // misnomer now; includes images, textures without sampler,
dim = EsdSubpass;
ms = m;
}
-
- // make a pure sampler, no texture, no image, nothing combined, the 'sampler' keyword
- void setPureSampler(bool s)
- {
- clear();
- sampler = true;
- shadow = s;
- }
#endif
bool operator==(const TSampler& right) const
@@ -527,6 +528,7 @@ public:
void clearMemory()
{
+#ifndef GLSLANG_WEB
coherent = false;
devicecoherent = false;
queuefamilycoherent = false;
@@ -537,6 +539,7 @@ public:
restrict = false;
readonly = false;
writeonly = false;
+#endif
}
const char* semanticName;
@@ -549,16 +552,6 @@ public:
bool centroid : 1;
bool smooth : 1;
bool flat : 1;
- bool coherent : 1;
- bool devicecoherent : 1;
- bool queuefamilycoherent : 1;
- bool workgroupcoherent : 1;
- bool subgroupcoherent : 1;
- bool nonprivate : 1;
- bool volatil : 1;
- bool restrict : 1;
- bool readonly : 1;
- bool writeonly : 1;
// having a constant_id is not sufficient: expressions have no id, but are still specConstant
bool specConstant : 1;
bool nonUniform : 1;
@@ -566,6 +559,9 @@ public:
#ifdef GLSLANG_WEB
bool isWriteOnly() const { return false; }
bool isReadOnly() const { return false; }
+ bool isRestrict() const { return false; }
+ bool isCoherent() const { return false; }
+ bool isVolatile() const { return false; }
bool isSample() const { return false; }
bool isMemory() const { return false; }
bool isMemoryQualifierImageAndSSBOOnly() const { return false; }
@@ -587,8 +583,21 @@ public:
bool perTaskNV : 1;
bool patch : 1;
bool sample : 1;
+ bool restrict : 1;
+ bool readonly : 1;
+ bool writeonly : 1;
+ bool coherent : 1;
+ bool volatil : 1;
+ bool devicecoherent : 1;
+ bool queuefamilycoherent : 1;
+ bool workgroupcoherent : 1;
+ bool subgroupcoherent : 1;
+ bool nonprivate : 1;
bool isWriteOnly() const { return writeonly; }
bool isReadOnly() const { return readonly; }
+ bool isRestrict() const { return restrict; }
+ bool isCoherent() const { return coherent; }
+ bool isVolatile() const { return volatil; }
bool isSample() const { return sample; }
bool isMemory() const
{
@@ -779,8 +788,8 @@ public:
{
layoutLocation = layoutLocationEnd;
layoutComponent = layoutComponentEnd;
- layoutIndex = layoutIndexEnd;
#ifndef GLSLANG_WEB
+ layoutIndex = layoutIndexEnd;
clearStreamLayout();
clearXfbLayout();
#endif
@@ -885,7 +894,9 @@ public:
layoutSet = layoutSetEnd;
layoutBinding = layoutBindingEnd;
+#ifndef GLSLANG_WEB
layoutAttachment = layoutAttachmentEnd;
+#endif
}
bool hasMatrix() const
@@ -922,6 +933,7 @@ public:
bool hasOffset() const { return false; }
bool isNonPerspective() const { return false; }
bool hasIndex() const { return false; }
+ unsigned getIndex() const { return 0; }
bool hasComponent() const { return false; }
bool hasStream() const { return false; }
bool hasFormat() const { return false; }
@@ -946,6 +958,7 @@ public:
{
return layoutIndex != layoutIndexEnd;
}
+ unsigned getIndex() const { return layoutIndex; }
bool hasComponent() const
{
return layoutComponent != layoutComponentEnd;
@@ -1920,6 +1933,7 @@ public:
case EbtFloat: return "float";
case EbtInt: return "int";
case EbtUint: return "uint";
+ case EbtSampler: return "sampler/image";
#ifndef GLSLANG_WEB
case EbtVoid: return "void";
case EbtDouble: return "double";
@@ -1932,7 +1946,6 @@ public:
case EbtUint64: return "uint64_t";
case EbtBool: return "bool";
case EbtAtomicUint: return "atomic_uint";
- case EbtSampler: return "sampler/image";
case EbtStruct: return "structure";
case EbtBlock: return "block";
case EbtAccStructNV: return "accelerationStructureNV";
@@ -2193,7 +2206,8 @@ public:
const TTypeList* getStruct() const { assert(isStruct()); return structure; }
void setStruct(TTypeList* s) { assert(isStruct()); structure = s; }
TTypeList* getWritableStruct() const { assert(isStruct()); return structure; } // This should only be used when known to not be sharing with other threads
-
+ void setBasicType(const TBasicType& t) { basicType = t; }
+
int computeNumComponents() const
{
int components = 0;
diff --git a/3rdparty/bgfx/3rdparty/glslang/glslang/Include/intermediate.h b/3rdparty/bgfx/3rdparty/glslang/glslang/Include/intermediate.h
index b599a905ccb..4bddf1c26a0 100644
--- a/3rdparty/bgfx/3rdparty/glslang/glslang/Include/intermediate.h
+++ b/3rdparty/bgfx/3rdparty/glslang/glslang/Include/intermediate.h
@@ -1189,6 +1189,7 @@ public:
virtual void traverse(TIntermTraverser*);
TOperator getFlowOp() const { return flowOp; }
TIntermTyped* getExpression() const { return expression; }
+ void setExpression(TIntermTyped* pExpression) { expression = pExpression; }
protected:
TOperator flowOp;
TIntermTyped* expression;
@@ -1309,11 +1310,13 @@ public:
bool isSparseTexture() const { return false; }
bool isImageFootprint() const { return false; }
bool isSparseImage() const { return false; }
+ bool isSubgroup() const { return false; }
#else
bool isImage() const { return op > EOpImageGuardBegin && op < EOpImageGuardEnd; }
bool isSparseTexture() const { return op > EOpSparseTextureGuardBegin && op < EOpSparseTextureGuardEnd; }
bool isImageFootprint() const { return op > EOpImageFootprintGuardBegin && op < EOpImageFootprintGuardEnd; }
bool isSparseImage() const { return op == EOpSparseImageLoad; }
+ bool isSubgroup() const { return op > EOpSubgroupGuardStart && op < EOpSubgroupGuardStop; }
#endif
void setOperationPrecision(TPrecisionQualifier p) { operationPrecision = p; }
diff --git a/3rdparty/bgfx/3rdparty/glslang/glslang/Include/revision.h b/3rdparty/bgfx/3rdparty/glslang/glslang/Include/revision.h
index 06fccdf4049..5933bce5720 100644
--- a/3rdparty/bgfx/3rdparty/glslang/glslang/Include/revision.h
+++ b/3rdparty/bgfx/3rdparty/glslang/glslang/Include/revision.h
@@ -1,3 +1,3 @@
// This header is generated by the make-revision script.
-#define GLSLANG_PATCH_LEVEL 3381
+#define GLSLANG_PATCH_LEVEL 3500
diff --git a/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/Initialize.cpp b/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/Initialize.cpp
index 2344d36cee3..6bf847bab35 100644
--- a/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/Initialize.cpp
+++ b/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/Initialize.cpp
@@ -85,18 +85,18 @@ const int TypeStringScalarMask = ~TypeStringColumnMask; // take type to
enum ArgType {
// numbers hardcoded to correspond to 'TypeString'; order and value matter
- TypeB = 1 << 0, // Boolean
- TypeF = 1 << 1, // float 32
- TypeI = 1 << 2, // int 32
- TypeU = 1 << 3, // uint 32
- TypeF16 = 1 << 4, // float 16
- TypeF64 = 1 << 5, // float 64
- TypeI8 = 1 << 6, // int 8
- TypeI16 = 1 << 7, // int 16
- TypeI64 = 1 << 8, // int 64
- TypeU8 = 1 << 9, // uint 8
- TypeU16 = 1 << 10, // uint 16
- TypeU64 = 1 << 11, // uint 64
+ TypeB = 1 << 0, // Boolean
+ TypeF = 1 << 1, // float 32
+ TypeI = 1 << 2, // int 32
+ TypeU = 1 << 3, // uint 32
+ TypeF16 = 1 << 4, // float 16
+ TypeF64 = 1 << 5, // float 64
+ TypeI8 = 1 << 6, // int 8
+ TypeI16 = 1 << 7, // int 16
+ TypeI64 = 1 << 8, // int 64
+ TypeU8 = 1 << 9, // uint 8
+ TypeU16 = 1 << 10, // uint 16
+ TypeU64 = 1 << 11, // uint 64
};
// Mixtures of the above, to help the function tables
const ArgType TypeFI = static_cast<ArgType>(TypeF | TypeI);
@@ -106,22 +106,22 @@ const ArgType TypeIU = static_cast<ArgType>(TypeI | TypeU);
// The relationships between arguments and return type, whether anything is
// output, or other unusual situations.
enum ArgClass {
- ClassRegular = 0, // nothing special, just all vector widths with matching return type; traditional arithmetic
- ClassLS = 1 << 0, // the last argument is also held fixed as a (type-matched) scalar while the others cycle
- ClassXLS = 1 << 1, // the last argument is exclusively a (type-matched) scalar while the others cycle
- ClassLS2 = 1 << 2, // the last two arguments are held fixed as a (type-matched) scalar while the others cycle
- ClassFS = 1 << 3, // the first argument is held fixed as a (type-matched) scalar while the others cycle
- ClassFS2 = 1 << 4, // the first two arguments are held fixed as a (type-matched) scalar while the others cycle
- ClassLO = 1 << 5, // the last argument is an output
- ClassB = 1 << 6, // return type cycles through only bool/bvec, matching vector width of args
- ClassLB = 1 << 7, // last argument cycles through only bool/bvec, matching vector width of args
- ClassV1 = 1 << 8, // scalar only
- ClassFIO = 1 << 9, // first argument is inout
- ClassRS = 1 << 10, // the return is held scalar as the arguments cycle
- ClassNS = 1 << 11, // no scalar prototype
- ClassCV = 1 << 12, // first argument is 'coherent volatile'
- ClassFO = 1 << 13, // first argument is output
- ClassV3 = 1 << 14, // vec3 only
+ ClassRegular = 0, // nothing special, just all vector widths with matching return type; traditional arithmetic
+ ClassLS = 1 << 0, // the last argument is also held fixed as a (type-matched) scalar while the others cycle
+ ClassXLS = 1 << 1, // the last argument is exclusively a (type-matched) scalar while the others cycle
+ ClassLS2 = 1 << 2, // the last two arguments are held fixed as a (type-matched) scalar while the others cycle
+ ClassFS = 1 << 3, // the first argument is held fixed as a (type-matched) scalar while the others cycle
+ ClassFS2 = 1 << 4, // the first two arguments are held fixed as a (type-matched) scalar while the others cycle
+ ClassLO = 1 << 5, // the last argument is an output
+ ClassB = 1 << 6, // return type cycles through only bool/bvec, matching vector width of args
+ ClassLB = 1 << 7, // last argument cycles through only bool/bvec, matching vector width of args
+ ClassV1 = 1 << 8, // scalar only
+ ClassFIO = 1 << 9, // first argument is inout
+ ClassRS = 1 << 10, // the return is held scalar as the arguments cycle
+ ClassNS = 1 << 11, // no scalar prototype
+ ClassCV = 1 << 12, // first argument is 'coherent volatile'
+ ClassFO = 1 << 13, // first argument is output
+ ClassV3 = 1 << 14, // vec3 only
};
// Mixtures of the above, to help the function tables
const ArgClass ClassV1FIOCV = (ArgClass)(ClassV1 | ClassFIO | ClassCV);
@@ -147,6 +147,7 @@ EProfile EDesktopProfile = static_cast<EProfile>(ENoProfile | ECoreProfile | ECo
// Declare pointers to put into the table for versioning.
#ifdef GLSLANG_WEB
const Versioning* Es300Desktop130 = nullptr;
+ const Versioning* Es310Desktop430 = nullptr;
#else
const Versioning Es300Desktop130Version[] = { { EEsProfile, 0, 300, 0, nullptr },
{ EDesktopProfile, 0, 130, 0, nullptr },
@@ -256,7 +257,6 @@ const BuiltInFunction BaseFunctions[] = {
{ EOpGreaterThanEqual, "greaterThanEqual", 2, TypeU, ClassBNS, Es300Desktop130 },
{ EOpVectorEqual, "equal", 2, TypeU, ClassBNS, Es300Desktop130 },
{ EOpVectorNotEqual, "notEqual", 2, TypeU, ClassBNS, Es300Desktop130 },
-#ifndef GLSLANG_WEB
{ EOpAtomicAdd, "atomicAdd", 2, TypeIU, ClassV1FIOCV, Es310Desktop430 },
{ EOpAtomicMin, "atomicMin", 2, TypeIU, ClassV1FIOCV, Es310Desktop430 },
{ EOpAtomicMax, "atomicMax", 2, TypeIU, ClassV1FIOCV, Es310Desktop430 },
@@ -265,9 +265,11 @@ const BuiltInFunction BaseFunctions[] = {
{ EOpAtomicXor, "atomicXor", 2, TypeIU, ClassV1FIOCV, Es310Desktop430 },
{ EOpAtomicExchange, "atomicExchange", 2, TypeIU, ClassV1FIOCV, Es310Desktop430 },
{ EOpAtomicCompSwap, "atomicCompSwap", 3, TypeIU, ClassV1FIOCV, Es310Desktop430 },
+#ifndef GLSLANG_WEB
{ EOpMix, "mix", 3, TypeB, ClassRegular, Es310Desktop450 },
{ EOpMix, "mix", 3, TypeIU, ClassLB, Es310Desktop450 },
#endif
+
{ EOpNull }
};
@@ -278,6 +280,59 @@ const BuiltInFunction DerivativeFunctions[] = {
{ EOpNull }
};
+// For functions declared some other way, but still use the table to relate to operator.
+struct CustomFunction {
+ TOperator op; // operator to map the name to
+ const char* name; // function name
+ const Versioning* versioning; // nullptr means always a valid version
+};
+
+const CustomFunction CustomFunctions[] = {
+ { EOpBarrier, "barrier", nullptr },
+ { EOpMemoryBarrierShared, "memoryBarrierShared", nullptr },
+ { EOpGroupMemoryBarrier, "groupMemoryBarrier", nullptr },
+ { EOpMemoryBarrier, "memoryBarrier", nullptr },
+ { EOpMemoryBarrierBuffer, "memoryBarrierBuffer", nullptr },
+
+ { EOpPackSnorm2x16, "packSnorm2x16", nullptr },
+ { EOpUnpackSnorm2x16, "unpackSnorm2x16", nullptr },
+ { EOpPackUnorm2x16, "packUnorm2x16", nullptr },
+ { EOpUnpackUnorm2x16, "unpackUnorm2x16", nullptr },
+ { EOpPackHalf2x16, "packHalf2x16", nullptr },
+ { EOpUnpackHalf2x16, "unpackHalf2x16", nullptr },
+
+ { EOpMul, "matrixCompMult", nullptr },
+ { EOpOuterProduct, "outerProduct", nullptr },
+ { EOpTranspose, "transpose", nullptr },
+ { EOpDeterminant, "determinant", nullptr },
+ { EOpMatrixInverse, "inverse", nullptr },
+ { EOpFloatBitsToInt, "floatBitsToInt", nullptr },
+ { EOpFloatBitsToUint, "floatBitsToUint", nullptr },
+ { EOpIntBitsToFloat, "intBitsToFloat", nullptr },
+ { EOpUintBitsToFloat, "uintBitsToFloat", nullptr },
+
+ { EOpTextureQuerySize, "textureSize", nullptr },
+ { EOpTextureQueryLod, "textureQueryLod", nullptr },
+ { EOpTextureQueryLevels, "textureQueryLevels", nullptr },
+ { EOpTextureQuerySamples, "textureSamples", nullptr },
+ { EOpTexture, "texture", nullptr },
+ { EOpTextureProj, "textureProj", nullptr },
+ { EOpTextureLod, "textureLod", nullptr },
+ { EOpTextureOffset, "textureOffset", nullptr },
+ { EOpTextureFetch, "texelFetch", nullptr },
+ { EOpTextureFetchOffset, "texelFetchOffset", nullptr },
+ { EOpTextureProjOffset, "textureProjOffset", nullptr },
+ { EOpTextureLodOffset, "textureLodOffset", nullptr },
+ { EOpTextureProjLod, "textureProjLod", nullptr },
+ { EOpTextureProjLodOffset, "textureProjLodOffset", nullptr },
+ { EOpTextureGrad, "textureGrad", nullptr },
+ { EOpTextureGradOffset, "textureGradOffset", nullptr },
+ { EOpTextureProjGrad, "textureProjGrad", nullptr },
+ { EOpTextureProjGradOffset, "textureProjGradOffset", nullptr },
+
+ { EOpNull }
+};
+
// For the given table of functions, add all the indicated prototypes for each
// one, to be returned in the passed in decls.
void AddTabledBuiltin(TString& decls, const BuiltInFunction& function)
@@ -331,8 +386,10 @@ void AddTabledBuiltin(TString& decls, const BuiltInFunction& function)
if (arg == function.numArguments - 1 && (function.classes & ClassLO))
decls.append("out ");
if (arg == 0) {
+#ifndef GLSLANG_WEB
if (function.classes & ClassCV)
decls.append("coherent volatile ");
+#endif
if (function.classes & ClassFIO)
decls.append("inout ");
if (function.classes & ClassFO)
@@ -382,9 +439,10 @@ bool ValidVersion(const BuiltInFunction& function, int version, EProfile profile
// Relate a single table of built-ins to their AST operator.
// This can get called redundantly (especially for the common built-ins, when
// called once per stage). This is a performance issue only, not a correctness
-// concern. It is done for quality arising from simplicity, as there are subtlies
+// concern. It is done for quality arising from simplicity, as there are subtleties
// to get correct if instead trying to do it surgically.
-void RelateTabledBuiltins(const BuiltInFunction* functions, TSymbolTable& symbolTable)
+template<class FunctionT>
+void RelateTabledBuiltins(const FunctionT* functions, TSymbolTable& symbolTable)
{
while (functions->op != EOpNull) {
symbolTable.relateToOperator(functions->name, functions->op);
@@ -408,10 +466,6 @@ void TBuiltIns::addTabledBuiltins(int version, EProfile profile, const SpvVersio
forEachFunction(commonBuiltins, BaseFunctions);
forEachFunction(stageBuiltins[EShLangFragment], DerivativeFunctions);
-#ifdef GLSLANG_WEB
- return;
-#endif
-
if ((profile == EEsProfile && version >= 320) || (profile != EEsProfile && version >= 450))
forEachFunction(stageBuiltins[EShLangCompute], DerivativeFunctions);
}
@@ -421,6 +475,7 @@ void TBuiltIns::relateTabledBuiltins(int /* version */, EProfile /* profile */,
{
RelateTabledBuiltins(BaseFunctions, symbolTable);
RelateTabledBuiltins(DerivativeFunctions, symbolTable);
+ RelateTabledBuiltins(CustomFunctions, symbolTable);
}
inline bool IncludeLegacy(int version, EProfile profile, const SpvVersion& spvVersion)
@@ -465,7 +520,7 @@ TBuiltIns::TBuiltIns()
dimMap[Esd1D] = 1;
dimMap[EsdRect] = 2;
dimMap[EsdBuffer] = 1;
- dimMap[EsdSubpass] = 2; // potientially unused for now
+ dimMap[EsdSubpass] = 2; // potentially unused for now
#endif
}
@@ -484,6 +539,10 @@ TBuiltIns::~TBuiltIns()
//
void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvVersion)
{
+#ifdef GLSLANG_WEB
+ version = 310;
+ profile = EEsProfile;
+#endif
addTabledBuiltins(version, profile, spvVersion);
//============================================================================
@@ -1306,14 +1365,13 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
commonBuiltins.append(
"mediump vec2 unpackHalf2x16(highp uint);"
"\n");
- }
-#ifndef GLSLANG_WEB
- else if (profile != EEsProfile && version >= 420) {
+ } else if (profile != EEsProfile && version >= 420) {
commonBuiltins.append(
" vec2 unpackHalf2x16(highp uint);"
"\n");
}
+#ifndef GLSLANG_WEB
if ((profile == EEsProfile && version >= 310) ||
(profile != EEsProfile && version >= 400)) {
commonBuiltins.append(
@@ -3795,6 +3853,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"void EndPrimitive();"
"\n");
}
+#endif
//============================================================================
//
@@ -3824,15 +3883,20 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
);
if ((profile != EEsProfile && version >= 420) || esBarrier) {
commonBuiltins.append(
- "void memoryBarrierAtomicCounter();"
"void memoryBarrierBuffer();"
- "void memoryBarrierImage();"
);
stageBuiltins[EShLangCompute].append(
"void memoryBarrierShared();"
"void groupMemoryBarrier();"
);
}
+#ifndef GLSLANG_WEB
+ if ((profile != EEsProfile && version >= 420) || esBarrier) {
+ commonBuiltins.append(
+ "void memoryBarrierAtomicCounter();"
+ "void memoryBarrierImage();"
+ );
+ }
if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 320)) {
stageBuiltins[EShLangMeshNV].append(
"void memoryBarrierShared();"
@@ -4279,6 +4343,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"\n");
}
+#endif
//============================================================================
//
@@ -4308,6 +4373,7 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"\n");
}
+#ifndef GLSLANG_WEB
//============================================================================
//
// Define the interface to the mesh/task shader.
@@ -5314,10 +5380,9 @@ void TBuiltIns::add2ndGenerationSamplingImaging(int version, EProfile profile, c
#ifdef GLSLANG_WEB
const int ms = 0;
#else
- for (int ms = 0; ms <= 1; ++ms)
+ for (int ms = 0; ms <= 1; ++ms) // loop over "bool" multisample or not
#endif
{
-#ifndef GLSLANG_WEB
if ((ms || image) && shadow)
continue;
if (ms && profile != EEsProfile && version < 150)
@@ -5326,7 +5391,6 @@ void TBuiltIns::add2ndGenerationSamplingImaging(int version, EProfile profile, c
continue;
if (ms && profile == EEsProfile && version < 310)
continue;
-#endif
for (int arrayed = 0; arrayed <= 1; ++arrayed) { // loop over "bool" arrayed or not
#ifdef GLSLANG_WEB
@@ -5431,14 +5495,12 @@ void TBuiltIns::add2ndGenerationSamplingImaging(int version, EProfile profile, c
}
}
-#ifndef GLSLANG_WEB
//
// sparseTexelsResidentARB()
//
if (profile != EEsProfile && version >= 450) {
commonBuiltins.append("bool sparseTexelsResidentARB(int code);\n");
}
-#endif
}
//
@@ -5725,6 +5787,11 @@ void TBuiltIns::addSubpassSampling(TSampler sampler, const TString& typeName, in
//
void TBuiltIns::addSamplingFunctions(TSampler sampler, const TString& typeName, int version, EProfile profile)
{
+#ifdef GLSLANG_WEB
+ profile = EEsProfile;
+ version = 310;
+#endif
+
//
// texturing
//
@@ -6005,6 +6072,11 @@ void TBuiltIns::addSamplingFunctions(TSampler sampler, const TString& typeName,
//
void TBuiltIns::addGatherFunctions(TSampler sampler, const TString& typeName, int version, EProfile profile)
{
+#ifdef GLSLANG_WEB
+ profile = EEsProfile;
+ version = 310;
+#endif
+
switch (sampler.dim) {
case Esd2D:
case EsdRect:
@@ -6243,6 +6315,11 @@ void TBuiltIns::addGatherFunctions(TSampler sampler, const TString& typeName, in
//
void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language)
{
+#ifdef GLSLANG_WEB
+ version = 310;
+ profile = EEsProfile;
+#endif
+
//
// Initialize the context-dependent (resource-dependent) built-in strings for parsing.
//
@@ -6300,9 +6377,7 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf
s.append(builtInConstant);
}
-#ifdef GLSLANG_WEB
- }
-#else
+#ifndef GLSLANG_WEB
if (version >= 310) {
// geometry
@@ -6584,8 +6659,29 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf
snprintf(builtInConstant, maxSize, "const int gl_MaxTransformFeedbackInterleavedComponents = %d;", resources.maxTransformFeedbackInterleavedComponents);
s.append(builtInConstant);
}
+#endif
}
+ // compute
+ if ((profile == EEsProfile && version >= 310) || (profile != EEsProfile && version >= 420)) {
+ snprintf(builtInConstant, maxSize, "const ivec3 gl_MaxComputeWorkGroupCount = ivec3(%d,%d,%d);", resources.maxComputeWorkGroupCountX,
+ resources.maxComputeWorkGroupCountY,
+ resources.maxComputeWorkGroupCountZ);
+ s.append(builtInConstant);
+ snprintf(builtInConstant, maxSize, "const ivec3 gl_MaxComputeWorkGroupSize = ivec3(%d,%d,%d);", resources.maxComputeWorkGroupSizeX,
+ resources.maxComputeWorkGroupSizeY,
+ resources.maxComputeWorkGroupSizeZ);
+ s.append(builtInConstant);
+
+ snprintf(builtInConstant, maxSize, "const int gl_MaxComputeUniformComponents = %d;", resources.maxComputeUniformComponents);
+ s.append(builtInConstant);
+ snprintf(builtInConstant, maxSize, "const int gl_MaxComputeTextureImageUnits = %d;", resources.maxComputeTextureImageUnits);
+ s.append(builtInConstant);
+
+ s.append("\n");
+ }
+
+#ifndef GLSLANG_WEB
// images (some in compute below)
if ((profile == EEsProfile && version >= 310) ||
(profile != EEsProfile && version >= 130)) {
@@ -6601,6 +6697,18 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf
s.append(builtInConstant);
}
+ // compute
+ if ((profile == EEsProfile && version >= 310) || (profile != EEsProfile && version >= 420)) {
+ snprintf(builtInConstant, maxSize, "const int gl_MaxComputeImageUniforms = %d;", resources.maxComputeImageUniforms);
+ s.append(builtInConstant);
+ snprintf(builtInConstant, maxSize, "const int gl_MaxComputeAtomicCounters = %d;", resources.maxComputeAtomicCounters);
+ s.append(builtInConstant);
+ snprintf(builtInConstant, maxSize, "const int gl_MaxComputeAtomicCounterBuffers = %d;", resources.maxComputeAtomicCounterBuffers);
+ s.append(builtInConstant);
+
+ s.append("\n");
+ }
+
// atomic counters (some in compute below)
if ((profile == EEsProfile && version >= 310) ||
(profile != EEsProfile && version >= 420)) {
@@ -6638,31 +6746,6 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf
s.append("\n");
}
- // compute
- if ((profile == EEsProfile && version >= 310) || (profile != EEsProfile && version >= 420)) {
- snprintf(builtInConstant, maxSize, "const ivec3 gl_MaxComputeWorkGroupCount = ivec3(%d,%d,%d);", resources.maxComputeWorkGroupCountX,
- resources.maxComputeWorkGroupCountY,
- resources.maxComputeWorkGroupCountZ);
- s.append(builtInConstant);
- snprintf(builtInConstant, maxSize, "const ivec3 gl_MaxComputeWorkGroupSize = ivec3(%d,%d,%d);", resources.maxComputeWorkGroupSizeX,
- resources.maxComputeWorkGroupSizeY,
- resources.maxComputeWorkGroupSizeZ);
- s.append(builtInConstant);
-
- snprintf(builtInConstant, maxSize, "const int gl_MaxComputeUniformComponents = %d;", resources.maxComputeUniformComponents);
- s.append(builtInConstant);
- snprintf(builtInConstant, maxSize, "const int gl_MaxComputeTextureImageUnits = %d;", resources.maxComputeTextureImageUnits);
- s.append(builtInConstant);
- snprintf(builtInConstant, maxSize, "const int gl_MaxComputeImageUniforms = %d;", resources.maxComputeImageUniforms);
- s.append(builtInConstant);
- snprintf(builtInConstant, maxSize, "const int gl_MaxComputeAtomicCounters = %d;", resources.maxComputeAtomicCounters);
- s.append(builtInConstant);
- snprintf(builtInConstant, maxSize, "const int gl_MaxComputeAtomicCounterBuffers = %d;", resources.maxComputeAtomicCounterBuffers);
- s.append(builtInConstant);
-
- s.append("\n");
- }
-
// GL_ARB_cull_distance
if (profile != EEsProfile && version >= 450) {
snprintf(builtInConstant, maxSize, "const int gl_MaxCullDistances = %d;", resources.maxCullDistances);
@@ -6781,6 +6864,11 @@ static void BuiltInVariable(const char* blockName, const char* name, TBuiltInVar
//
void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TSymbolTable& symbolTable)
{
+#ifdef GLSLANG_WEB
+ version = 310;
+ profile = EEsProfile;
+#endif
+
//
// Tag built-in variables and functions with additional qualifier and extension information
// that cannot be declared with the text strings.
@@ -7547,7 +7635,6 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
#endif
break;
-#ifndef GLSLANG_WEB
case EShLangCompute:
BuiltInVariable("gl_NumWorkGroups", EbvNumWorkGroups, symbolTable);
BuiltInVariable("gl_WorkGroupSize", EbvWorkGroupSize, symbolTable);
@@ -7555,6 +7642,15 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
BuiltInVariable("gl_LocalInvocationID", EbvLocalInvocationId, symbolTable);
BuiltInVariable("gl_GlobalInvocationID", EbvGlobalInvocationId, symbolTable);
BuiltInVariable("gl_LocalInvocationIndex", EbvLocalInvocationIndex, symbolTable);
+ BuiltInVariable("gl_DeviceIndex", EbvDeviceIndex, symbolTable);
+ BuiltInVariable("gl_ViewIndex", EbvViewIndex, symbolTable);
+
+#ifndef GLSLANG_WEB
+ if ((profile != EEsProfile && version >= 140) ||
+ (profile == EEsProfile && version >= 310)) {
+ symbolTable.setVariableExtensions("gl_DeviceIndex", 1, &E_GL_EXT_device_group);
+ symbolTable.setVariableExtensions("gl_ViewIndex", 1, &E_GL_EXT_multiview);
+ }
if (profile != EEsProfile && version < 430) {
symbolTable.setVariableExtensions("gl_NumWorkGroups", 1, &E_GL_ARB_compute_shader);
@@ -7636,14 +7732,6 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
BuiltInVariable("gl_SMIDNV", EbvSMID, symbolTable);
}
- if ((profile != EEsProfile && version >= 140) ||
- (profile == EEsProfile && version >= 310)) {
- symbolTable.setVariableExtensions("gl_DeviceIndex", 1, &E_GL_EXT_device_group);
- BuiltInVariable("gl_DeviceIndex", EbvDeviceIndex, symbolTable);
- symbolTable.setVariableExtensions("gl_ViewIndex", 1, &E_GL_EXT_multiview);
- BuiltInVariable("gl_ViewIndex", EbvViewIndex, symbolTable);
- }
-
// GL_KHR_shader_subgroup
if ((profile == EEsProfile && version >= 310) ||
(profile != EEsProfile && version >= 140)) {
@@ -7674,8 +7762,10 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
symbolTable.setFunctionExtensions("dFdyCoarse", 1, &E_GL_NV_compute_shader_derivatives);
symbolTable.setFunctionExtensions("fwidthCoarse", 1, &E_GL_NV_compute_shader_derivatives);
}
-
+#endif
break;
+
+#ifndef GLSLANG_WEB
case EShLangRayGenNV:
case EShLangIntersectNV:
case EShLangAnyHitNV:
@@ -8034,21 +8124,6 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
relateTabledBuiltins(version, profile, spvVersion, language, symbolTable);
- symbolTable.relateToOperator("matrixCompMult", EOpMul);
- // 120 and 150 are correct for both ES and desktop
- if (version >= 120) {
- symbolTable.relateToOperator("outerProduct", EOpOuterProduct);
- symbolTable.relateToOperator("transpose", EOpTranspose);
- if (version >= 150) {
- symbolTable.relateToOperator("determinant", EOpDeterminant);
- symbolTable.relateToOperator("inverse", EOpMatrixInverse);
- }
- }
-
- symbolTable.relateToOperator("floatBitsToInt", EOpFloatBitsToInt);
- symbolTable.relateToOperator("floatBitsToUint", EOpFloatBitsToUint);
- symbolTable.relateToOperator("intBitsToFloat", EOpIntBitsToFloat);
- symbolTable.relateToOperator("uintBitsToFloat", EOpUintBitsToFloat);
#ifndef GLSLANG_WEB
symbolTable.relateToOperator("doubleBitsToInt64", EOpDoubleBitsToInt64);
symbolTable.relateToOperator("doubleBitsToUint64", EOpDoubleBitsToUint64);
@@ -8063,14 +8138,7 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
symbolTable.relateToOperator("int16BitsToHalf", EOpInt16BitsToFloat16);
symbolTable.relateToOperator("uint16BitsToHalf", EOpUint16BitsToFloat16);
-#endif
-
- symbolTable.relateToOperator("packSnorm2x16", EOpPackSnorm2x16);
- symbolTable.relateToOperator("unpackSnorm2x16", EOpUnpackSnorm2x16);
- symbolTable.relateToOperator("packUnorm2x16", EOpPackUnorm2x16);
- symbolTable.relateToOperator("unpackUnorm2x16", EOpUnpackUnorm2x16);
-#ifndef GLSLANG_WEB
symbolTable.relateToOperator("packSnorm4x8", EOpPackSnorm4x8);
symbolTable.relateToOperator("unpackSnorm4x8", EOpUnpackSnorm4x8);
symbolTable.relateToOperator("packUnorm4x8", EOpPackUnorm4x8);
@@ -8078,17 +8146,12 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
symbolTable.relateToOperator("packDouble2x32", EOpPackDouble2x32);
symbolTable.relateToOperator("unpackDouble2x32", EOpUnpackDouble2x32);
-#endif
-
- symbolTable.relateToOperator("packHalf2x16", EOpPackHalf2x16);
- symbolTable.relateToOperator("unpackHalf2x16", EOpUnpackHalf2x16);
symbolTable.relateToOperator("packInt2x32", EOpPackInt2x32);
symbolTable.relateToOperator("unpackInt2x32", EOpUnpackInt2x32);
symbolTable.relateToOperator("packUint2x32", EOpPackUint2x32);
symbolTable.relateToOperator("unpackUint2x32", EOpUnpackUint2x32);
-#ifndef GLSLANG_WEB
symbolTable.relateToOperator("packInt2x16", EOpPackInt2x16);
symbolTable.relateToOperator("unpackInt2x16", EOpUnpackInt2x16);
symbolTable.relateToOperator("packUint2x16", EOpPackUint2x16);
@@ -8109,11 +8172,8 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
symbolTable.relateToOperator("unpack16", EOpUnpack16);
symbolTable.relateToOperator("unpack8", EOpUnpack8);
- symbolTable.relateToOperator("barrier", EOpBarrier);
symbolTable.relateToOperator("controlBarrier", EOpBarrier);
- symbolTable.relateToOperator("memoryBarrier", EOpMemoryBarrier);
symbolTable.relateToOperator("memoryBarrierAtomicCounter", EOpMemoryBarrierAtomicCounter);
- symbolTable.relateToOperator("memoryBarrierBuffer", EOpMemoryBarrierBuffer);
symbolTable.relateToOperator("memoryBarrierImage", EOpMemoryBarrierImage);
symbolTable.relateToOperator("atomicLoad", EOpAtomicLoad);
@@ -8156,10 +8216,8 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
symbolTable.relateToOperator("findMSB", EOpFindMSB);
symbolTable.relateToOperator("helperInvocationEXT", EOpIsHelperInvocation);
-#endif
if (PureOperatorBuiltins) {
-#ifndef GLSLANG_WEB
symbolTable.relateToOperator("imageSize", EOpImageQuerySize);
symbolTable.relateToOperator("imageSamples", EOpImageQuerySamples);
symbolTable.relateToOperator("imageLoad", EOpImageLoad);
@@ -8177,28 +8235,7 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
symbolTable.relateToOperator("subpassLoad", EOpSubpassLoad);
symbolTable.relateToOperator("subpassLoadMS", EOpSubpassLoadMS);
-#endif
- symbolTable.relateToOperator("textureSize", EOpTextureQuerySize);
- symbolTable.relateToOperator("textureQueryLod", EOpTextureQueryLod);
- symbolTable.relateToOperator("textureQueryLevels", EOpTextureQueryLevels);
- symbolTable.relateToOperator("textureSamples", EOpTextureQuerySamples);
- symbolTable.relateToOperator("texture", EOpTexture);
- symbolTable.relateToOperator("textureProj", EOpTextureProj);
- symbolTable.relateToOperator("textureLod", EOpTextureLod);
- symbolTable.relateToOperator("textureOffset", EOpTextureOffset);
- symbolTable.relateToOperator("texelFetch", EOpTextureFetch);
- symbolTable.relateToOperator("texelFetchOffset", EOpTextureFetchOffset);
- symbolTable.relateToOperator("textureProjOffset", EOpTextureProjOffset);
- symbolTable.relateToOperator("textureLodOffset", EOpTextureLodOffset);
- symbolTable.relateToOperator("textureProjLod", EOpTextureProjLod);
- symbolTable.relateToOperator("textureProjLodOffset", EOpTextureProjLodOffset);
- symbolTable.relateToOperator("textureGrad", EOpTextureGrad);
- symbolTable.relateToOperator("textureGradOffset", EOpTextureGradOffset);
- symbolTable.relateToOperator("textureProjGrad", EOpTextureProjGrad);
- symbolTable.relateToOperator("textureProjGradOffset", EOpTextureProjGradOffset);
-
-#ifndef GLSLANG_WEB
symbolTable.relateToOperator("textureGather", EOpTextureGather);
symbolTable.relateToOperator("textureGatherOffset", EOpTextureGatherOffset);
symbolTable.relateToOperator("textureGatherOffsets", EOpTextureGatherOffsets);
@@ -8440,10 +8477,8 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
symbolTable.relateToOperator("shadow2DEXT", EOpTexture);
symbolTable.relateToOperator("shadow2DProjEXT", EOpTextureProj);
}
-#endif
}
-#ifndef GLSLANG_WEB
switch(language) {
case EShLangVertex:
break;
@@ -8481,8 +8516,6 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
break;
case EShLangCompute:
- symbolTable.relateToOperator("memoryBarrierShared", EOpMemoryBarrierShared);
- symbolTable.relateToOperator("groupMemoryBarrier", EOpGroupMemoryBarrier);
symbolTable.relateToOperator("subgroupMemoryBarrierShared", EOpSubgroupMemoryBarrierShared);
if ((profile != EEsProfile && version >= 450) ||
(profile == EEsProfile && version >= 320)) {
diff --git a/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/Intermediate.cpp b/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/Intermediate.cpp
index 93d41f7dabf..fcf3e715302 100644
--- a/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/Intermediate.cpp
+++ b/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/Intermediate.cpp
@@ -562,56 +562,12 @@ bool TIntermediate::isConversionAllowed(TOperator op, TIntermTyped* node) const
return true;
}
-// This is 'mechanism' here, it does any conversion told.
-// It is about basic type, not about shape.
-// The policy comes from the shader or the calling code.
-TIntermTyped* TIntermediate::createConversion(TBasicType convertTo, TIntermTyped* node) const
+bool TIntermediate::buildConvertOp(TBasicType dst, TBasicType src, TOperator& newOp) const
{
- //
- // Add a new newNode for the conversion.
- //
- TIntermUnary* newNode = nullptr;
-
- TOperator newOp = EOpNull;
-
- bool convertToIntTypes = (convertTo == EbtInt8 || convertTo == EbtUint8 ||
- convertTo == EbtInt16 || convertTo == EbtUint16 ||
- convertTo == EbtInt || convertTo == EbtUint ||
- convertTo == EbtInt64 || convertTo == EbtUint64);
-
- bool convertFromIntTypes = (node->getBasicType() == EbtInt8 || node->getBasicType() == EbtUint8 ||
- node->getBasicType() == EbtInt16 || node->getBasicType() == EbtUint16 ||
- node->getBasicType() == EbtInt || node->getBasicType() == EbtUint ||
- node->getBasicType() == EbtInt64 || node->getBasicType() == EbtUint64);
-
- bool convertToFloatTypes = (convertTo == EbtFloat16 || convertTo == EbtFloat || convertTo == EbtDouble);
-
- bool convertFromFloatTypes = (node->getBasicType() == EbtFloat16 ||
- node->getBasicType() == EbtFloat ||
- node->getBasicType() == EbtDouble);
-
- if (! getArithemeticInt8Enabled()) {
- if (((convertTo == EbtInt8 || convertTo == EbtUint8) && ! convertFromIntTypes) ||
- ((node->getBasicType() == EbtInt8 || node->getBasicType() == EbtUint8) && ! convertToIntTypes))
- return nullptr;
- }
-
- if (! getArithemeticInt16Enabled()) {
- if (((convertTo == EbtInt16 || convertTo == EbtUint16) && ! convertFromIntTypes) ||
- ((node->getBasicType() == EbtInt16 || node->getBasicType() == EbtUint16) && ! convertToIntTypes))
- return nullptr;
- }
-
- if (! getArithemeticFloat16Enabled()) {
- if ((convertTo == EbtFloat16 && ! convertFromFloatTypes) ||
- (node->getBasicType() == EbtFloat16 && ! convertToFloatTypes))
- return nullptr;
- }
-
- switch (convertTo) {
+ switch (dst) {
#ifndef GLSLANG_WEB
case EbtDouble:
- switch (node->getBasicType()) {
+ switch (src) {
case EbtUint: newOp = EOpConvUintToDouble; break;
case EbtBool: newOp = EOpConvBoolToDouble; break;
case EbtFloat: newOp = EOpConvFloatToDouble; break;
@@ -624,12 +580,12 @@ TIntermTyped* TIntermediate::createConversion(TBasicType convertTo, TIntermTyped
case EbtInt64: newOp = EOpConvInt64ToDouble; break;
case EbtUint64: newOp = EOpConvUint64ToDouble; break;
default:
- return nullptr;
+ return false;
}
break;
#endif
case EbtFloat:
- switch (node->getBasicType()) {
+ switch (src) {
case EbtInt: newOp = EOpConvIntToFloat; break;
case EbtUint: newOp = EOpConvUintToFloat; break;
case EbtBool: newOp = EOpConvBoolToFloat; break;
@@ -644,12 +600,12 @@ TIntermTyped* TIntermediate::createConversion(TBasicType convertTo, TIntermTyped
case EbtUint64: newOp = EOpConvUint64ToFloat; break;
#endif
default:
- return nullptr;
+ return false;
}
break;
#ifndef GLSLANG_WEB
case EbtFloat16:
- switch (node->getBasicType()) {
+ switch (src) {
case EbtInt8: newOp = EOpConvInt8ToFloat16; break;
case EbtUint8: newOp = EOpConvUint8ToFloat16; break;
case EbtInt16: newOp = EOpConvInt16ToFloat16; break;
@@ -662,12 +618,12 @@ TIntermTyped* TIntermediate::createConversion(TBasicType convertTo, TIntermTyped
case EbtInt64: newOp = EOpConvInt64ToFloat16; break;
case EbtUint64: newOp = EOpConvUint64ToFloat16; break;
default:
- return nullptr;
+ return false;
}
break;
#endif
case EbtBool:
- switch (node->getBasicType()) {
+ switch (src) {
case EbtInt: newOp = EOpConvIntToBool; break;
case EbtUint: newOp = EOpConvUintToBool; break;
case EbtFloat: newOp = EOpConvFloatToBool; break;
@@ -682,12 +638,12 @@ TIntermTyped* TIntermediate::createConversion(TBasicType convertTo, TIntermTyped
case EbtUint64: newOp = EOpConvUint64ToBool; break;
#endif
default:
- return nullptr;
+ return false;
}
break;
#ifndef GLSLANG_WEB
case EbtInt8:
- switch (node->getBasicType()) {
+ switch (src) {
case EbtUint8: newOp = EOpConvUint8ToInt8; break;
case EbtInt16: newOp = EOpConvInt16ToInt8; break;
case EbtUint16: newOp = EOpConvUint16ToInt8; break;
@@ -700,11 +656,11 @@ TIntermTyped* TIntermediate::createConversion(TBasicType convertTo, TIntermTyped
case EbtDouble: newOp = EOpConvDoubleToInt8; break;
case EbtFloat16: newOp = EOpConvFloat16ToInt8; break;
default:
- return nullptr;
+ return false;
}
break;
case EbtUint8:
- switch (node->getBasicType()) {
+ switch (src) {
case EbtInt8: newOp = EOpConvInt8ToUint8; break;
case EbtInt16: newOp = EOpConvInt16ToUint8; break;
case EbtUint16: newOp = EOpConvUint16ToUint8; break;
@@ -717,12 +673,12 @@ TIntermTyped* TIntermediate::createConversion(TBasicType convertTo, TIntermTyped
case EbtDouble: newOp = EOpConvDoubleToUint8; break;
case EbtFloat16: newOp = EOpConvFloat16ToUint8; break;
default:
- return nullptr;
+ return false;
}
break;
case EbtInt16:
- switch (node->getBasicType()) {
+ switch (src) {
case EbtUint8: newOp = EOpConvUint8ToInt16; break;
case EbtInt8: newOp = EOpConvInt8ToInt16; break;
case EbtUint16: newOp = EOpConvUint16ToInt16; break;
@@ -735,11 +691,11 @@ TIntermTyped* TIntermediate::createConversion(TBasicType convertTo, TIntermTyped
case EbtDouble: newOp = EOpConvDoubleToInt16; break;
case EbtFloat16: newOp = EOpConvFloat16ToInt16; break;
default:
- return nullptr;
+ return false;
}
break;
case EbtUint16:
- switch (node->getBasicType()) {
+ switch (src) {
case EbtInt8: newOp = EOpConvInt8ToUint16; break;
case EbtUint8: newOp = EOpConvUint8ToUint16; break;
case EbtInt16: newOp = EOpConvInt16ToUint16; break;
@@ -752,13 +708,13 @@ TIntermTyped* TIntermediate::createConversion(TBasicType convertTo, TIntermTyped
case EbtDouble: newOp = EOpConvDoubleToUint16; break;
case EbtFloat16: newOp = EOpConvFloat16ToUint16; break;
default:
- return nullptr;
+ return false;
}
break;
#endif
case EbtInt:
- switch (node->getBasicType()) {
+ switch (src) {
case EbtUint: newOp = EOpConvUintToInt; break;
case EbtBool: newOp = EOpConvBoolToInt; break;
case EbtFloat: newOp = EOpConvFloatToInt; break;
@@ -773,11 +729,11 @@ TIntermTyped* TIntermediate::createConversion(TBasicType convertTo, TIntermTyped
case EbtUint64: newOp = EOpConvUint64ToInt; break;
#endif
default:
- return nullptr;
+ return false;
}
break;
case EbtUint:
- switch (node->getBasicType()) {
+ switch (src) {
case EbtInt: newOp = EOpConvIntToUint; break;
case EbtBool: newOp = EOpConvBoolToUint; break;
case EbtFloat: newOp = EOpConvFloatToUint; break;
@@ -792,12 +748,12 @@ TIntermTyped* TIntermediate::createConversion(TBasicType convertTo, TIntermTyped
case EbtUint64: newOp = EOpConvUint64ToUint; break;
#endif
default:
- return nullptr;
+ return false;
}
break;
#ifndef GLSLANG_WEB
case EbtInt64:
- switch (node->getBasicType()) {
+ switch (src) {
case EbtInt8: newOp = EOpConvInt8ToInt64; break;
case EbtUint8: newOp = EOpConvUint8ToInt64; break;
case EbtInt16: newOp = EOpConvInt16ToInt64; break;
@@ -810,11 +766,11 @@ TIntermTyped* TIntermediate::createConversion(TBasicType convertTo, TIntermTyped
case EbtFloat16: newOp = EOpConvFloat16ToInt64; break;
case EbtUint64: newOp = EOpConvUint64ToInt64; break;
default:
- return nullptr;
+ return false;
}
break;
case EbtUint64:
- switch (node->getBasicType()) {
+ switch (src) {
case EbtInt8: newOp = EOpConvInt8ToUint64; break;
case EbtUint8: newOp = EOpConvUint8ToUint64; break;
case EbtInt16: newOp = EOpConvInt16ToUint64; break;
@@ -827,11 +783,64 @@ TIntermTyped* TIntermediate::createConversion(TBasicType convertTo, TIntermTyped
case EbtFloat16: newOp = EOpConvFloat16ToUint64; break;
case EbtInt64: newOp = EOpConvInt64ToUint64; break;
default:
- return nullptr;
+ return false;
}
break;
#endif
default:
+ return false;
+ }
+ return true;
+}
+
+// This is 'mechanism' here, it does any conversion told.
+// It is about basic type, not about shape.
+// The policy comes from the shader or the calling code.
+TIntermTyped* TIntermediate::createConversion(TBasicType convertTo, TIntermTyped* node) const
+{
+ //
+ // Add a new newNode for the conversion.
+ //
+
+#ifndef GLSLANG_WEB
+ bool convertToIntTypes = (convertTo == EbtInt8 || convertTo == EbtUint8 ||
+ convertTo == EbtInt16 || convertTo == EbtUint16 ||
+ convertTo == EbtInt || convertTo == EbtUint ||
+ convertTo == EbtInt64 || convertTo == EbtUint64);
+
+ bool convertFromIntTypes = (node->getBasicType() == EbtInt8 || node->getBasicType() == EbtUint8 ||
+ node->getBasicType() == EbtInt16 || node->getBasicType() == EbtUint16 ||
+ node->getBasicType() == EbtInt || node->getBasicType() == EbtUint ||
+ node->getBasicType() == EbtInt64 || node->getBasicType() == EbtUint64);
+
+ bool convertToFloatTypes = (convertTo == EbtFloat16 || convertTo == EbtFloat || convertTo == EbtDouble);
+
+ bool convertFromFloatTypes = (node->getBasicType() == EbtFloat16 ||
+ node->getBasicType() == EbtFloat ||
+ node->getBasicType() == EbtDouble);
+
+ if (! getArithemeticInt8Enabled()) {
+ if (((convertTo == EbtInt8 || convertTo == EbtUint8) && ! convertFromIntTypes) ||
+ ((node->getBasicType() == EbtInt8 || node->getBasicType() == EbtUint8) && ! convertToIntTypes))
+ return nullptr;
+ }
+
+ if (! getArithemeticInt16Enabled()) {
+ if (((convertTo == EbtInt16 || convertTo == EbtUint16) && ! convertFromIntTypes) ||
+ ((node->getBasicType() == EbtInt16 || node->getBasicType() == EbtUint16) && ! convertToIntTypes))
+ return nullptr;
+ }
+
+ if (! getArithemeticFloat16Enabled()) {
+ if ((convertTo == EbtFloat16 && ! convertFromFloatTypes) ||
+ (node->getBasicType() == EbtFloat16 && ! convertToFloatTypes))
+ return nullptr;
+ }
+#endif
+
+ TIntermUnary* newNode = nullptr;
+ TOperator newOp = EOpNull;
+ if (!buildConvertOp(convertTo, node->getBasicType(), newOp)) {
return nullptr;
}
@@ -839,11 +848,14 @@ TIntermTyped* TIntermediate::createConversion(TBasicType convertTo, TIntermTyped
newNode = addUnaryNode(newOp, node, node->getLoc(), newType);
if (node->getAsConstantUnion()) {
+#ifndef GLSLANG_WEB
// 8/16-bit storage extensions don't support 8/16-bit constants, so don't fold conversions
// to those types
if ((getArithemeticInt8Enabled() || !(convertTo == EbtInt8 || convertTo == EbtUint8)) &&
(getArithemeticInt16Enabled() || !(convertTo == EbtInt16 || convertTo == EbtUint16)) &&
- (getArithemeticFloat16Enabled() || !(convertTo == EbtFloat16))) {
+ (getArithemeticFloat16Enabled() || !(convertTo == EbtFloat16)))
+#endif
+ {
TIntermTyped* folded = node->getAsConstantUnion()->fold(newOp, newType);
if (folded)
return folded;
diff --git a/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/ParseHelper.cpp b/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/ParseHelper.cpp
index b5ea803db8d..619bf81dd0c 100644
--- a/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/ParseHelper.cpp
+++ b/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/ParseHelper.cpp
@@ -1160,6 +1160,7 @@ TIntermTyped* TParseContext::handleFunctionCall(const TSourceLoc& loc, TFunction
const TQualifier& argQualifier = argType.getQualifier();
if (argQualifier.isMemory() && (argType.containsOpaque() || argType.isReference())) {
const char* message = "argument cannot drop memory qualifier when passed to formal parameter";
+#ifndef GLSLANG_WEB
if (argQualifier.volatil && ! formalQualifier.volatil)
error(arguments->getLoc(), message, "volatile", "");
if (argQualifier.coherent && ! (formalQualifier.devicecoherent || formalQualifier.coherent))
@@ -1179,6 +1180,7 @@ TIntermTyped* TParseContext::handleFunctionCall(const TSourceLoc& loc, TFunction
// Don't check 'restrict', it is different than the rest:
// "...but only restrict can be taken away from a calling argument, by a formal parameter that
// lacks the restrict qualifier..."
+#endif
}
if (!builtIn && argQualifier.getFormat() != formalQualifier.getFormat()) {
// we have mismatched formats, which should only be allowed if writeonly
@@ -2155,6 +2157,7 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan
break;
case EOpSubgroupBroadcast:
+ case EOpSubgroupQuadBroadcast:
if (spvVersion.spv < EShTargetSpv_1_5) {
// <id> must be an integral constant expression.
if ((*argp)[1]->getAsConstantUnion() == nullptr)
@@ -2200,7 +2203,7 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan
break;
}
- if (callNode.getOp() > EOpSubgroupGuardStart && callNode.getOp() < EOpSubgroupGuardStop) {
+ if (callNode.isSubgroup()) {
// these require SPIR-V 1.3
if (spvVersion.spv > 0 && spvVersion.spv < EShTargetSpv_1_3)
error(loc, "requires SPIR-V 1.3", "subgroup op", "");
@@ -2778,6 +2781,7 @@ bool TParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node, T
// it, in which case the type comes from the argument instead of from the
// constructor function.
switch (op) {
+#ifndef GLSLANG_WEB
case EOpConstructNonuniform:
if (node != nullptr && node->getAsTyped() != nullptr) {
type.shallowCopy(node->getAsTyped()->getType());
@@ -2785,6 +2789,7 @@ bool TParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node, T
type.getQualifier().nonUniform = true;
}
break;
+#endif
default:
type.shallowCopy(function.getType());
break;
@@ -2793,10 +2798,8 @@ bool TParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node, T
// See if it's a matrix
bool constructingMatrix = false;
switch (op) {
-#ifndef GLSLANG_WEB
case EOpConstructTextureSampler:
return constructorTextureSamplerError(loc, function);
-#endif
case EOpConstructMat2x2:
case EOpConstructMat2x3:
case EOpConstructMat2x4:
@@ -3388,11 +3391,11 @@ void TParseContext::globalQualifierTypeCheck(const TSourceLoc& loc, const TQuali
requireProfile(loc, ~EEsProfile, "fragment-shader struct input containing an array");
}
break;
-#ifndef GLSLANG_WEB
case EShLangCompute:
if (! symbolTable.atBuiltInLevel())
error(loc, "global storage input qualifier cannot be used in a compute shader", "in", "");
break;
+#ifndef GLSLANG_WEB
case EShLangTessControl:
if (qualifier.patch)
error(loc, "can only use on output in tessellation-control shader", "patch", "");
@@ -3433,10 +3436,10 @@ void TParseContext::globalQualifierTypeCheck(const TSourceLoc& loc, const TQuali
error(loc, "cannot contain a double, int64, or uint64", GetStorageQualifierString(qualifier.storage), "");
break;
-#ifndef GLSLANG_WEB
case EShLangCompute:
error(loc, "global storage output qualifier cannot be used in a compute shader", "out", "");
break;
+#ifndef GLSLANG_WEB
case EShLangTessEvaluation:
if (qualifier.patch)
error(loc, "can only use on input in tessellation-evaluation shader", "patch", "");
@@ -3814,10 +3817,6 @@ void TParseContext::arraySizesCheck(const TSourceLoc& loc, const TQualifier& qua
// for ES, if size isn't coming from an initializer, it has to be explicitly declared now,
// with very few exceptions
- // last member of ssbo block exception:
- if (qualifier.storage == EvqBuffer && lastMember)
- return;
-
// implicitly-sized io exceptions:
switch (language) {
case EShLangGeometry:
@@ -3852,6 +3851,10 @@ void TParseContext::arraySizesCheck(const TSourceLoc& loc, const TQualifier& qua
#endif
+ // last member of ssbo block exception:
+ if (qualifier.storage == EvqBuffer && lastMember)
+ return;
+
arraySizeRequiredCheck(loc, *arraySizes);
}
@@ -4476,6 +4479,7 @@ void TParseContext::paramCheckFixStorage(const TSourceLoc& loc, const TStorageQu
void TParseContext::paramCheckFix(const TSourceLoc& loc, const TQualifier& qualifier, TType& type)
{
+#ifndef GLSLANG_WEB
if (qualifier.isMemory()) {
type.getQualifier().volatil = qualifier.volatil;
type.getQualifier().coherent = qualifier.coherent;
@@ -4488,6 +4492,7 @@ void TParseContext::paramCheckFix(const TSourceLoc& loc, const TQualifier& quali
type.getQualifier().writeonly = qualifier.writeonly;
type.getQualifier().restrict = qualifier.restrict;
}
+#endif
if (qualifier.isAuxiliary() ||
qualifier.isInterpolation())
@@ -5149,7 +5154,8 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi
return;
} else if (id == "location") {
profileRequires(loc, EEsProfile, 300, nullptr, "location");
- const char* exts[2] = { E_GL_ARB_separate_shader_objects, E_GL_ARB_explicit_attrib_location };
+ const char* exts[2] = { E_GL_ARB_separate_shader_objects, E_GL_ARB_explicit_attrib_location };
+ // GL_ARB_explicit_uniform_location requires 330 or GL_ARB_explicit_attrib_location we do not need to add it here
profileRequires(loc, ~EEsProfile, 330, 2, exts, "location");
if ((unsigned int)value >= TQualifier::layoutLocationEnd)
error(loc, "location is too large", id.c_str(), "");
@@ -5293,11 +5299,10 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi
error(loc, "needs a literal integer", "buffer_reference_align", "");
return;
}
+#endif
switch (language) {
- case EShLangVertex:
- break;
-
+#ifndef GLSLANG_WEB
case EShLangTessControl:
if (id == "vertices") {
if (value == 0)
@@ -5310,9 +5315,6 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi
}
break;
- case EShLangTessEvaluation:
- break;
-
case EShLangGeometry:
if (id == "invocations") {
profileRequires(loc, ECompatibilityProfile | ECoreProfile, 400, nullptr, "invocations");
@@ -5385,16 +5387,17 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi
case EShLangTaskNV:
// Fall through
+#endif
case EShLangCompute:
if (id.compare(0, 11, "local_size_") == 0) {
+#ifndef GLSLANG_WEB
if (language == EShLangMeshNV || language == EShLangTaskNV) {
requireExtensions(loc, 1, &E_GL_NV_mesh_shader, "gl_WorkGroupSize");
- }
- else
- {
+ } else {
profileRequires(loc, EEsProfile, 310, 0, "gl_WorkGroupSize");
profileRequires(loc, ~EEsProfile, 430, E_GL_ARB_compute_shader, "gl_WorkGroupSize");
}
+#endif
if (nonLiteral)
error(loc, "needs a literal integer", "local_size", "");
if (id.size() == 12 && value == 0) {
@@ -5432,12 +5435,11 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi
}
}
break;
+
default:
break;
}
-#endif // GLSLANG_WEB
-
error(loc, "there is no such layout identifier for this stage taking an assigned value", id.c_str(), "");
}
@@ -5909,8 +5911,9 @@ void TParseContext::layoutQualifierCheck(const TSourceLoc& loc, const TQualifier
case EvqBuffer:
{
const char* feature = "location qualifier on uniform or buffer";
- requireProfile(loc, EEsProfile | ECoreProfile | ECompatibilityProfile, feature);
- profileRequires(loc, ECoreProfile | ECompatibilityProfile, 430, nullptr, feature);
+ requireProfile(loc, EEsProfile | ECoreProfile | ECompatibilityProfile | ENoProfile, feature);
+ profileRequires(loc, ~EEsProfile, 330, E_GL_ARB_explicit_attrib_location, feature);
+ profileRequires(loc, ~EEsProfile, 430, E_GL_ARB_explicit_uniform_location, feature);
profileRequires(loc, EEsProfile, 310, nullptr, feature);
break;
}
@@ -7383,6 +7386,7 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con
for (unsigned int member = 0; member < typeList.size(); ++member) {
TQualifier& memberQualifier = typeList[member].type->getQualifier();
const TSourceLoc& memberLoc = typeList[member].loc;
+#ifndef GLSLANG_WEB
if (memberQualifier.hasStream()) {
if (defaultQualification.layoutStream != memberQualifier.layoutStream)
error(memberLoc, "member cannot contradict block", "stream", "");
@@ -7396,6 +7400,7 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con
if (defaultQualification.layoutXfbBuffer != memberQualifier.layoutXfbBuffer)
error(memberLoc, "member cannot contradict block (or what block inherited from global)", "xfb_buffer", "");
}
+#endif
if (memberQualifier.hasPacking())
error(memberLoc, "member of block cannot have a packing layout qualifier", typeList[member].type->getFieldName().c_str(), "");
@@ -7438,6 +7443,7 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con
layoutMemberLocationArrayCheck(loc, memberWithLocation, arraySizes);
+#ifndef GLSLANG_WEB
// Ensure that the block has an XfbBuffer assigned. This is needed
// because if the block has a XfbOffset assigned, then it is
// assumed that it has implicitly assigned the current global
@@ -7447,6 +7453,7 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con
if (!currentBlockQualifier.hasXfbBuffer() && currentBlockQualifier.hasXfbOffset())
currentBlockQualifier.layoutXfbBuffer = globalOutputDefaults.layoutXfbBuffer;
}
+#endif
// Process the members
fixBlockLocations(loc, currentBlockQualifier, typeList, memberWithLocation, memberWithoutLocation);
@@ -8003,6 +8010,7 @@ void TParseContext::updateStandaloneQualifierDefaults(const TSourceLoc& loc, con
else
error(loc, "can only apply to 'in'", "point_mode", "");
}
+#endif
for (int i = 0; i < 3; ++i) {
if (publicType.shaderQualifiers.localSizeNotDefault[i]) {
if (publicType.qualifier.storage == EvqVaryingIn) {
@@ -8019,7 +8027,9 @@ void TParseContext::updateStandaloneQualifierDefaults(const TSourceLoc& loc, con
}
if (intermediate.getLocalSize(i) > (unsigned int)max)
error(loc, "too large; see gl_MaxComputeWorkGroupSize", "local_size", "");
- } else if (language == EShLangMeshNV) {
+ }
+#ifndef GLSLANG_WEB
+ else if (language == EShLangMeshNV) {
switch (i) {
case 0: max = resources.maxMeshWorkGroupSizeX_NV; break;
case 1: max = resources.maxMeshWorkGroupSizeY_NV; break;
@@ -8037,7 +8047,9 @@ void TParseContext::updateStandaloneQualifierDefaults(const TSourceLoc& loc, con
}
if (intermediate.getLocalSize(i) > (unsigned int)max)
error(loc, "too large; see gl_MaxTaskWorkGroupSizeNV", "local_size", "");
- } else {
+ }
+#endif
+ else {
assert(0);
}
@@ -8062,6 +8074,7 @@ void TParseContext::updateStandaloneQualifierDefaults(const TSourceLoc& loc, con
}
}
+#ifndef GLSLANG_WEB
if (publicType.shaderQualifiers.earlyFragmentTests) {
if (publicType.qualifier.storage == EvqVaryingIn)
intermediate.setEarlyFragmentTests();
diff --git a/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/ParseHelper.h b/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/ParseHelper.h
index 5cee05e116d..39363f1a2a7 100644
--- a/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/ParseHelper.h
+++ b/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/ParseHelper.h
@@ -283,7 +283,7 @@ public:
const TString* entryPoint = nullptr);
virtual ~TParseContext();
- bool obeyPrecisionQualifiers() const { return precisionManager.respectingPrecisionQualifiers(); };
+ bool obeyPrecisionQualifiers() const { return precisionManager.respectingPrecisionQualifiers(); }
void setPrecisionDefaults();
void setLimits(const TBuiltInResource&) override;
diff --git a/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/Scan.cpp b/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/Scan.cpp
index 9a9b69cc40a..7b0093d7b23 100644
--- a/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/Scan.cpp
+++ b/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/Scan.cpp
@@ -343,6 +343,7 @@ void TScanContext::fillInKeywordMap()
(*KeywordMap)["const"] = CONST;
(*KeywordMap)["uniform"] = UNIFORM;
+ (*KeywordMap)["buffer"] = BUFFER;
(*KeywordMap)["in"] = IN;
(*KeywordMap)["out"] = OUT;
(*KeywordMap)["smooth"] = SMOOTH;
@@ -410,7 +411,6 @@ void TScanContext::fillInKeywordMap()
(*KeywordMap)["attribute"] = ATTRIBUTE;
(*KeywordMap)["varying"] = VARYING;
(*KeywordMap)["noperspective"] = NOPERSPECTIVE;
- (*KeywordMap)["buffer"] = BUFFER;
(*KeywordMap)["coherent"] = COHERENT;
(*KeywordMap)["devicecoherent"] = DEVICECOHERENT;
(*KeywordMap)["queuefamilycoherent"] = QUEUEFAMILYCOHERENT;
@@ -564,10 +564,6 @@ void TScanContext::fillInKeywordMap()
(*KeywordMap)["sampler2D"] = SAMPLER2D;
(*KeywordMap)["samplerCube"] = SAMPLERCUBE;
- (*KeywordMap)["samplerCubeArray"] = SAMPLERCUBEARRAY;
- (*KeywordMap)["samplerCubeArrayShadow"] = SAMPLERCUBEARRAYSHADOW;
- (*KeywordMap)["isamplerCubeArray"] = ISAMPLERCUBEARRAY;
- (*KeywordMap)["usamplerCubeArray"] = USAMPLERCUBEARRAY;
(*KeywordMap)["samplerCubeShadow"] = SAMPLERCUBESHADOW;
(*KeywordMap)["sampler2DArray"] = SAMPLER2DARRAY;
(*KeywordMap)["sampler2DArrayShadow"] = SAMPLER2DARRAYSHADOW;
@@ -582,7 +578,30 @@ void TScanContext::fillInKeywordMap()
(*KeywordMap)["sampler3D"] = SAMPLER3D;
(*KeywordMap)["sampler2DShadow"] = SAMPLER2DSHADOW;
+ (*KeywordMap)["texture2D"] = TEXTURE2D;
+ (*KeywordMap)["textureCube"] = TEXTURECUBE;
+ (*KeywordMap)["texture2DArray"] = TEXTURE2DARRAY;
+ (*KeywordMap)["itexture2D"] = ITEXTURE2D;
+ (*KeywordMap)["itexture3D"] = ITEXTURE3D;
+ (*KeywordMap)["itextureCube"] = ITEXTURECUBE;
+ (*KeywordMap)["itexture2DArray"] = ITEXTURE2DARRAY;
+ (*KeywordMap)["utexture2D"] = UTEXTURE2D;
+ (*KeywordMap)["utexture3D"] = UTEXTURE3D;
+ (*KeywordMap)["utextureCube"] = UTEXTURECUBE;
+ (*KeywordMap)["utexture2DArray"] = UTEXTURE2DARRAY;
+ (*KeywordMap)["texture3D"] = TEXTURE3D;
+
+ (*KeywordMap)["sampler"] = SAMPLER;
+ (*KeywordMap)["samplerShadow"] = SAMPLERSHADOW;
+
#ifndef GLSLANG_WEB
+ (*KeywordMap)["textureCubeArray"] = TEXTURECUBEARRAY;
+ (*KeywordMap)["itextureCubeArray"] = ITEXTURECUBEARRAY;
+ (*KeywordMap)["utextureCubeArray"] = UTEXTURECUBEARRAY;
+ (*KeywordMap)["samplerCubeArray"] = SAMPLERCUBEARRAY;
+ (*KeywordMap)["samplerCubeArrayShadow"] = SAMPLERCUBEARRAYSHADOW;
+ (*KeywordMap)["isamplerCubeArray"] = ISAMPLERCUBEARRAY;
+ (*KeywordMap)["usamplerCubeArray"] = USAMPLERCUBEARRAY;
(*KeywordMap)["sampler1DArrayShadow"] = SAMPLER1DARRAYSHADOW;
(*KeywordMap)["isampler1DArray"] = ISAMPLER1DARRAY;
(*KeywordMap)["usampler1D"] = USAMPLER1D;
@@ -609,28 +628,11 @@ void TScanContext::fillInKeywordMap()
(*KeywordMap)["__samplerExternal2DY2YEXT"] = SAMPLEREXTERNAL2DY2YEXT; // GL_EXT_YUV_target
- (*KeywordMap)["sampler"] = SAMPLER;
- (*KeywordMap)["samplerShadow"] = SAMPLERSHADOW;
-
- (*KeywordMap)["texture2D"] = TEXTURE2D;
- (*KeywordMap)["textureCube"] = TEXTURECUBE;
- (*KeywordMap)["textureCubeArray"] = TEXTURECUBEARRAY;
- (*KeywordMap)["itextureCubeArray"] = ITEXTURECUBEARRAY;
- (*KeywordMap)["utextureCubeArray"] = UTEXTURECUBEARRAY;
(*KeywordMap)["itexture1DArray"] = ITEXTURE1DARRAY;
(*KeywordMap)["utexture1D"] = UTEXTURE1D;
(*KeywordMap)["itexture1D"] = ITEXTURE1D;
(*KeywordMap)["utexture1DArray"] = UTEXTURE1DARRAY;
(*KeywordMap)["textureBuffer"] = TEXTUREBUFFER;
- (*KeywordMap)["texture2DArray"] = TEXTURE2DARRAY;
- (*KeywordMap)["itexture2D"] = ITEXTURE2D;
- (*KeywordMap)["itexture3D"] = ITEXTURE3D;
- (*KeywordMap)["itextureCube"] = ITEXTURECUBE;
- (*KeywordMap)["itexture2DArray"] = ITEXTURE2DARRAY;
- (*KeywordMap)["utexture2D"] = UTEXTURE2D;
- (*KeywordMap)["utexture3D"] = UTEXTURE3D;
- (*KeywordMap)["utextureCube"] = UTEXTURECUBE;
- (*KeywordMap)["utexture2DArray"] = UTEXTURE2DARRAY;
(*KeywordMap)["itexture2DRect"] = ITEXTURE2DRECT;
(*KeywordMap)["utexture2DRect"] = UTEXTURE2DRECT;
(*KeywordMap)["itextureBuffer"] = ITEXTUREBUFFER;
@@ -642,7 +644,6 @@ void TScanContext::fillInKeywordMap()
(*KeywordMap)["itexture2DMSArray"] = ITEXTURE2DMSARRAY;
(*KeywordMap)["utexture2DMSArray"] = UTEXTURE2DMSARRAY;
(*KeywordMap)["texture1D"] = TEXTURE1D;
- (*KeywordMap)["texture3D"] = TEXTURE3D;
(*KeywordMap)["texture2DRect"] = TEXTURE2DRECT;
(*KeywordMap)["texture1DArray"] = TEXTURE1DARRAY;
@@ -904,6 +905,13 @@ int TScanContext::tokenizeIdentifier()
case CASE:
return keyword;
+ case BUFFER:
+ afterBuffer = true;
+ if ((parseContext.isEsProfile() && parseContext.version < 310) ||
+ (!parseContext.isEsProfile() && parseContext.version < 430))
+ return identifierOrType();
+ return keyword;
+
case STRUCT:
afterStruct = true;
return keyword;
@@ -997,12 +1005,6 @@ int TScanContext::tokenizeIdentifier()
if (parseContext.isEsProfile() && parseContext.version >= 300)
reservedWord();
return keyword;
- case BUFFER:
- afterBuffer = true;
- if ((parseContext.isEsProfile() && parseContext.version < 310) ||
- (!parseContext.isEsProfile() && parseContext.version < 430))
- return identifierOrType();
- return keyword;
case PAYLOADNV:
case PAYLOADINNV:
case HITATTRNV:
@@ -1057,13 +1059,12 @@ int TScanContext::tokenizeIdentifier()
case SUBROUTINE:
return es30ReservedFromGLSL(400);
+#endif
case SHARED:
if ((parseContext.isEsProfile() && parseContext.version < 300) ||
(!parseContext.isEsProfile() && parseContext.version < 140))
return identifierOrType();
return keyword;
-#endif
-
case LAYOUT:
{
const int numLayoutExts = 2;
@@ -1321,7 +1322,6 @@ int TScanContext::tokenizeIdentifier()
return keyword;
return identifierOrType();
-#endif
case SAMPLERCUBEARRAY:
case SAMPLERCUBEARRAYSHADOW:
@@ -1335,6 +1335,15 @@ int TScanContext::tokenizeIdentifier()
reservedWord();
return keyword;
+ case TEXTURECUBEARRAY:
+ case ITEXTURECUBEARRAY:
+ case UTEXTURECUBEARRAY:
+ if (parseContext.spvVersion.vulkan > 0)
+ return keyword;
+ else
+ return identifierOrType();
+#endif
+
case UINT:
case UVEC2:
case UVEC3:
@@ -1369,6 +1378,25 @@ int TScanContext::tokenizeIdentifier()
}
return keyword;
+ case TEXTURE2D:
+ case TEXTURECUBE:
+ case TEXTURE2DARRAY:
+ case ITEXTURE2D:
+ case ITEXTURE3D:
+ case ITEXTURECUBE:
+ case ITEXTURE2DARRAY:
+ case UTEXTURE2D:
+ case UTEXTURE3D:
+ case UTEXTURECUBE:
+ case UTEXTURE2DARRAY:
+ case TEXTURE3D:
+ case SAMPLER:
+ case SAMPLERSHADOW:
+ if (parseContext.spvVersion.vulkan > 0)
+ return keyword;
+ else
+ return identifierOrType();
+
#ifndef GLSLANG_WEB
case ISAMPLER1D:
case ISAMPLER1DARRAY:
@@ -1458,25 +1486,11 @@ int TScanContext::tokenizeIdentifier()
return keyword;
return identifierOrType();
- case TEXTURE2D:
- case TEXTURECUBE:
- case TEXTURECUBEARRAY:
- case ITEXTURECUBEARRAY:
- case UTEXTURECUBEARRAY:
case ITEXTURE1DARRAY:
case UTEXTURE1D:
case ITEXTURE1D:
case UTEXTURE1DARRAY:
case TEXTUREBUFFER:
- case TEXTURE2DARRAY:
- case ITEXTURE2D:
- case ITEXTURE3D:
- case ITEXTURECUBE:
- case ITEXTURE2DARRAY:
- case UTEXTURE2D:
- case UTEXTURE3D:
- case UTEXTURECUBE:
- case UTEXTURE2DARRAY:
case ITEXTURE2DRECT:
case UTEXTURE2DRECT:
case ITEXTUREBUFFER:
@@ -1488,11 +1502,8 @@ int TScanContext::tokenizeIdentifier()
case ITEXTURE2DMSARRAY:
case UTEXTURE2DMSARRAY:
case TEXTURE1D:
- case TEXTURE3D:
case TEXTURE2DRECT:
case TEXTURE1DARRAY:
- case SAMPLER:
- case SAMPLERSHADOW:
if (parseContext.spvVersion.vulkan > 0)
return keyword;
else
diff --git a/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/ShaderLang.cpp b/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/ShaderLang.cpp
index 9b3cdc6d351..44ce1c19d1a 100644
--- a/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/ShaderLang.cpp
+++ b/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/ShaderLang.cpp
@@ -288,6 +288,11 @@ void InitializeStageSymbolTable(TBuiltInParseables& builtInParseables, int versi
EShLanguage language, EShSource source, TInfoSink& infoSink, TSymbolTable** commonTable,
TSymbolTable** symbolTables)
{
+#ifdef GLSLANG_WEB
+ profile = EEsProfile;
+ version = 310;
+#endif
+
(*symbolTables[language]).adoptLevels(*commonTable[CommonIndex(profile, language)]);
InitializeSymbolTable(builtInParseables.getStageString(language), version, profile, spvVersion, language, source,
infoSink, *symbolTables[language]);
@@ -304,6 +309,11 @@ void InitializeStageSymbolTable(TBuiltInParseables& builtInParseables, int versi
//
bool InitializeSymbolTables(TInfoSink& infoSink, TSymbolTable** commonTable, TSymbolTable** symbolTables, int version, EProfile profile, const SpvVersion& spvVersion, EShSource source)
{
+#ifdef GLSLANG_WEB
+ profile = EEsProfile;
+ version = 310;
+#endif
+
std::unique_ptr<TBuiltInParseables> builtInParseables(CreateBuiltInParseables(infoSink, source));
if (builtInParseables == nullptr)
@@ -341,6 +351,7 @@ bool InitializeSymbolTables(TInfoSink& infoSink, TSymbolTable** commonTable, TS
(profile == EEsProfile && version >= 310))
InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangGeometry, source,
infoSink, commonTable, symbolTables);
+#endif
// check for compute
if ((profile != EEsProfile && version >= 420) ||
@@ -375,7 +386,6 @@ bool InitializeSymbolTables(TInfoSink& infoSink, TSymbolTable** commonTable, TS
(profile == EEsProfile && version >= 320))
InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangTaskNV, source,
infoSink, commonTable, symbolTables);
-#endif
return true;
}
@@ -871,6 +881,11 @@ bool ProcessDeferred(
bool goodVersion = DeduceVersionProfile(compiler->infoSink, stage,
versionNotFirst, defaultVersion, source, version, profile, spvVersion);
+#ifdef GLSLANG_WEB
+ profile = EEsProfile;
+ version = 310;
+#endif
+
bool versionWillBeError = (versionNotFound || (profile == EEsProfile && version >= 300 && versionNotFirst));
#ifndef GLSLANG_WEB
bool warnVersionNotFirst = false;
diff --git a/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/Versions.cpp b/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/Versions.cpp
index 644acb1c90e..518ba6cd256 100644
--- a/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/Versions.cpp
+++ b/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/Versions.cpp
@@ -174,6 +174,7 @@ void TParseVersions::initializeExtensionBehavior()
extensionBehavior[E_GL_ARB_texture_cube_map_array] = EBhDisable;
extensionBehavior[E_GL_ARB_shader_texture_lod] = EBhDisable;
extensionBehavior[E_GL_ARB_explicit_attrib_location] = EBhDisable;
+ extensionBehavior[E_GL_ARB_explicit_uniform_location] = EBhDisable;
extensionBehavior[E_GL_ARB_shader_image_load_store] = EBhDisable;
extensionBehavior[E_GL_ARB_shader_atomic_counters] = EBhDisable;
extensionBehavior[E_GL_ARB_shader_draw_parameters] = EBhDisable;
@@ -378,6 +379,7 @@ void TParseVersions::getPreamble(std::string& preamble)
"#define GL_ARB_texture_cube_map_array 1\n"
"#define GL_ARB_shader_texture_lod 1\n"
"#define GL_ARB_explicit_attrib_location 1\n"
+ "#define GL_ARB_explicit_uniform_location 1\n"
"#define GL_ARB_shader_image_load_store 1\n"
"#define GL_ARB_shader_atomic_counters 1\n"
"#define GL_ARB_shader_draw_parameters 1\n"
@@ -525,11 +527,11 @@ const char* StageName(EShLanguage stage)
switch(stage) {
case EShLangVertex: return "vertex";
case EShLangFragment: return "fragment";
+ case EShLangCompute: return "compute";
#ifndef GLSLANG_WEB
case EShLangTessControl: return "tessellation control";
case EShLangTessEvaluation: return "tessellation evaluation";
case EShLangGeometry: return "geometry";
- case EShLangCompute: return "compute";
case EShLangRayGenNV: return "ray-generation";
case EShLangIntersectNV: return "intersection";
case EShLangAnyHitNV: return "any-hit";
diff --git a/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/Versions.h b/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/Versions.h
index fae04f45615..84fafd77c4e 100644
--- a/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/Versions.h
+++ b/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/Versions.h
@@ -126,6 +126,7 @@ const char* const E_GL_ARB_enhanced_layouts = "GL_ARB_enhanced_layou
const char* const E_GL_ARB_texture_cube_map_array = "GL_ARB_texture_cube_map_array";
const char* const E_GL_ARB_shader_texture_lod = "GL_ARB_shader_texture_lod";
const char* const E_GL_ARB_explicit_attrib_location = "GL_ARB_explicit_attrib_location";
+const char* const E_GL_ARB_explicit_uniform_location = "GL_ARB_explicit_uniform_location";
const char* const E_GL_ARB_shader_image_load_store = "GL_ARB_shader_image_load_store";
const char* const E_GL_ARB_shader_atomic_counters = "GL_ARB_shader_atomic_counters";
const char* const E_GL_ARB_shader_draw_parameters = "GL_ARB_shader_draw_parameters";
diff --git a/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/glslang.m4 b/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/glslang.m4
index 6ace0380415..20f2ba40dfa 100644
--- a/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/glslang.m4
+++ b/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/glslang.m4
@@ -38,7 +38,7 @@
//
// Do not edit the .y file, only edit the .m4 file.
-// The .y bison file is not a source file, it is a derivitive of the .m4 file.
+// The .y bison file is not a source file, it is a derivative of the .m4 file.
// The m4 file needs to be processed by m4 to generate the .y bison file.
//
// Code sandwiched between a pair:
@@ -49,7 +49,7 @@
// ...
// GLSLANG_WEB_EXCLUDE_OFF
//
-// Will be exluded from the grammar when m4 is executed as:
+// Will be excluded from the grammar when m4 is executed as:
//
// m4 -P -DGLSLANG_WEB
//
@@ -166,8 +166,12 @@ extern int yylex(YYSTYPE*, TParseContext&);
%token <lex> SAMPLER2DARRAYSHADOW ISAMPLER2D ISAMPLER3D ISAMPLERCUBE
%token <lex> ISAMPLER2DARRAY USAMPLER2D USAMPLER3D
%token <lex> USAMPLERCUBE USAMPLER2DARRAY
-%token <lex> SAMPLERCUBEARRAY SAMPLERCUBEARRAYSHADOW
-%token <lex> ISAMPLERCUBEARRAY USAMPLERCUBEARRAY
+
+// separate image/sampler
+%token <lex> SAMPLER SAMPLERSHADOW
+%token <lex> TEXTURE2D TEXTURE3D TEXTURECUBE TEXTURE2DARRAY
+%token <lex> ITEXTURE2D ITEXTURE3D ITEXTURECUBE ITEXTURE2DARRAY
+%token <lex> UTEXTURE2D UTEXTURE3D UTEXTURECUBE UTEXTURE2DARRAY
GLSLANG_WEB_EXCLUDE_ON
@@ -203,6 +207,8 @@ GLSLANG_WEB_EXCLUDE_ON
%token <lex> FCOOPMATNV ICOOPMATNV UCOOPMATNV
// combined image/sampler
+%token <lex> SAMPLERCUBEARRAY SAMPLERCUBEARRAYSHADOW
+%token <lex> ISAMPLERCUBEARRAY USAMPLERCUBEARRAY
%token <lex> SAMPLER1D SAMPLER1DARRAY SAMPLER1DARRAYSHADOW ISAMPLER1D SAMPLER1DSHADOW
%token <lex> SAMPLER2DRECT SAMPLER2DRECTSHADOW ISAMPLER2DRECT USAMPLER2DRECT
%token <lex> SAMPLERBUFFER ISAMPLERBUFFER USAMPLERBUFFER
@@ -233,18 +239,12 @@ GLSLANG_WEB_EXCLUDE_ON
%token <lex> F16IMAGECUBE F16IMAGE1DARRAY F16IMAGE2DARRAY F16IMAGECUBEARRAY
%token <lex> F16IMAGEBUFFER F16IMAGE2DMS F16IMAGE2DMSARRAY
-// pure sampler
-%token <lex> SAMPLER SAMPLERSHADOW
-
// texture without sampler
-%token <lex> TEXTURE1D TEXTURE2D TEXTURE3D TEXTURECUBE
-%token <lex> TEXTURE1DARRAY TEXTURE2DARRAY
-%token <lex> ITEXTURE1D ITEXTURE2D ITEXTURE3D ITEXTURECUBE
-%token <lex> ITEXTURE1DARRAY ITEXTURE2DARRAY UTEXTURE1D UTEXTURE2D UTEXTURE3D
-%token <lex> UTEXTURECUBE UTEXTURE1DARRAY UTEXTURE2DARRAY
+%token <lex> TEXTURECUBEARRAY ITEXTURECUBEARRAY UTEXTURECUBEARRAY
+%token <lex> TEXTURE1D ITEXTURE1D UTEXTURE1D
+%token <lex> TEXTURE1DARRAY ITEXTURE1DARRAY UTEXTURE1DARRAY
%token <lex> TEXTURE2DRECT ITEXTURE2DRECT UTEXTURE2DRECT
%token <lex> TEXTUREBUFFER ITEXTUREBUFFER UTEXTUREBUFFER
-%token <lex> TEXTURECUBEARRAY ITEXTURECUBEARRAY UTEXTURECUBEARRAY
%token <lex> TEXTURE2DMS ITEXTURE2DMS UTEXTURE2DMS
%token <lex> TEXTURE2DMSARRAY ITEXTURE2DMSARRAY UTEXTURE2DMSARRAY
@@ -277,7 +277,7 @@ GLSLANG_WEB_EXCLUDE_OFF
%token <lex> CENTROID IN OUT INOUT
%token <lex> STRUCT VOID WHILE
%token <lex> BREAK CONTINUE DO ELSE FOR IF DISCARD RETURN SWITCH CASE DEFAULT
-%token <lex> UNIFORM SHARED
+%token <lex> UNIFORM SHARED BUFFER
%token <lex> FLAT SMOOTH LAYOUT
GLSLANG_WEB_EXCLUDE_ON
@@ -285,7 +285,7 @@ GLSLANG_WEB_EXCLUDE_ON
%token <lex> INT64CONSTANT UINT64CONSTANT
%token <lex> SUBROUTINE DEMOTE
%token <lex> PAYLOADNV PAYLOADINNV HITATTRNV CALLDATANV CALLDATAINNV
-%token <lex> PATCH SAMPLE BUFFER NONUNIFORM
+%token <lex> PATCH SAMPLE NONUNIFORM
%token <lex> COHERENT VOLATILE RESTRICT READONLY WRITEONLY DEVICECOHERENT QUEUEFAMILYCOHERENT WORKGROUPCOHERENT
%token <lex> SUBGROUPCOHERENT NONPRIVATE
%token <lex> NOPERSPECTIVE EXPLICITINTERPAMD PERVERTEXNV PERPRIMITIVENV PERVIEWNV PERTASKNV
@@ -1360,7 +1360,6 @@ storage_qualifier
$$.init($1.loc);
$$.qualifier.storage = EvqUniform;
}
-GLSLANG_WEB_EXCLUDE_ON
| SHARED {
parseContext.globalCheck($1.loc, "shared");
parseContext.profileRequires($1.loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared");
@@ -1374,6 +1373,7 @@ GLSLANG_WEB_EXCLUDE_ON
$$.init($1.loc);
$$.qualifier.storage = EvqBuffer;
}
+GLSLANG_WEB_EXCLUDE_ON
| ATTRIBUTE {
parseContext.requireStage($1.loc, EShLangVertex, "attribute");
parseContext.checkDeprecated($1.loc, ECoreProfile, 130, "attribute");
@@ -2354,6 +2354,16 @@ GLSLANG_WEB_EXCLUDE_OFF
$$.basicType = EbtSampler;
$$.sampler.set(EbtFloat, EsdCube, false, true);
}
+ | SAMPLER2DARRAY {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.set(EbtFloat, Esd2D, true);
+ }
+ | SAMPLER2DARRAYSHADOW {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.set(EbtFloat, Esd2D, true, true);
+ }
GLSLANG_WEB_EXCLUDE_ON
| SAMPLER1DSHADOW {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
@@ -2370,17 +2380,6 @@ GLSLANG_WEB_EXCLUDE_ON
$$.basicType = EbtSampler;
$$.sampler.set(EbtFloat, Esd1D, true, true);
}
-GLSLANG_WEB_EXCLUDE_OFF
- | SAMPLER2DARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtFloat, Esd2D, true);
- }
- | SAMPLER2DARRAYSHADOW {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtFloat, Esd2D, true, true);
- }
| SAMPLERCUBEARRAY {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -2391,7 +2390,6 @@ GLSLANG_WEB_EXCLUDE_OFF
$$.basicType = EbtSampler;
$$.sampler.set(EbtFloat, EsdCube, true, true);
}
-GLSLANG_WEB_EXCLUDE_ON
| F16SAMPLER1D {
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
@@ -2491,50 +2489,66 @@ GLSLANG_WEB_EXCLUDE_OFF
$$.basicType = EbtSampler;
$$.sampler.set(EbtInt, EsdCube);
}
-GLSLANG_WEB_EXCLUDE_ON
- | ISAMPLER1DARRAY {
+ | ISAMPLER2DARRAY {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
- $$.sampler.set(EbtInt, Esd1D, true);
+ $$.sampler.set(EbtInt, Esd2D, true);
}
-GLSLANG_WEB_EXCLUDE_OFF
- | ISAMPLER2DARRAY {
+ | USAMPLER2D {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
- $$.sampler.set(EbtInt, Esd2D, true);
+ $$.sampler.set(EbtUint, Esd2D);
+ }
+ | USAMPLER3D {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.set(EbtUint, Esd3D);
+ }
+ | USAMPLERCUBE {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.set(EbtUint, EsdCube);
+ }
+GLSLANG_WEB_EXCLUDE_ON
+ | ISAMPLER1DARRAY {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.set(EbtInt, Esd1D, true);
}
| ISAMPLERCUBEARRAY {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
$$.sampler.set(EbtInt, EsdCube, true);
}
-GLSLANG_WEB_EXCLUDE_ON
| USAMPLER1D {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
$$.sampler.set(EbtUint, Esd1D);
}
-GLSLANG_WEB_EXCLUDE_OFF
- | USAMPLER2D {
+ | USAMPLER1DARRAY {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
- $$.sampler.set(EbtUint, Esd2D);
+ $$.sampler.set(EbtUint, Esd1D, true);
}
- | USAMPLER3D {
+ | USAMPLERCUBEARRAY {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
- $$.sampler.set(EbtUint, Esd3D);
+ $$.sampler.set(EbtUint, EsdCube, true);
}
- | USAMPLERCUBE {
+ | TEXTURECUBEARRAY {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
- $$.sampler.set(EbtUint, EsdCube);
+ $$.sampler.setTexture(EbtFloat, EsdCube, true);
}
-GLSLANG_WEB_EXCLUDE_ON
- | USAMPLER1DARRAY {
+ | ITEXTURECUBEARRAY {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
- $$.sampler.set(EbtUint, Esd1D, true);
+ $$.sampler.setTexture(EbtInt, EsdCube, true);
+ }
+ | UTEXTURECUBEARRAY {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtUint, EsdCube, true);
}
GLSLANG_WEB_EXCLUDE_OFF
| USAMPLER2DARRAY {
@@ -2542,10 +2556,75 @@ GLSLANG_WEB_EXCLUDE_OFF
$$.basicType = EbtSampler;
$$.sampler.set(EbtUint, Esd2D, true);
}
- | USAMPLERCUBEARRAY {
+ | TEXTURE2D {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
- $$.sampler.set(EbtUint, EsdCube, true);
+ $$.sampler.setTexture(EbtFloat, Esd2D);
+ }
+ | TEXTURE3D {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtFloat, Esd3D);
+ }
+ | TEXTURE2DARRAY {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtFloat, Esd2D, true);
+ }
+ | TEXTURECUBE {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtFloat, EsdCube);
+ }
+ | ITEXTURE2D {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtInt, Esd2D);
+ }
+ | ITEXTURE3D {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtInt, Esd3D);
+ }
+ | ITEXTURECUBE {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtInt, EsdCube);
+ }
+ | ITEXTURE2DARRAY {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtInt, Esd2D, true);
+ }
+ | UTEXTURE2D {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtUint, Esd2D);
+ }
+ | UTEXTURE3D {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtUint, Esd3D);
+ }
+ | UTEXTURECUBE {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtUint, EsdCube);
+ }
+ | UTEXTURE2DARRAY {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtUint, Esd2D, true);
+ }
+ | SAMPLER {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setPureSampler(false);
+ }
+ | SAMPLERSHADOW {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setPureSampler(true);
}
GLSLANG_WEB_EXCLUDE_ON
| SAMPLER2DRECT {
@@ -2643,16 +2722,6 @@ GLSLANG_WEB_EXCLUDE_ON
$$.basicType = EbtSampler;
$$.sampler.set(EbtUint, Esd2D, true, false, true);
}
- | SAMPLER {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setPureSampler(false);
- }
- | SAMPLERSHADOW {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setPureSampler(true);
- }
| TEXTURE1D {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -2664,33 +2733,18 @@ GLSLANG_WEB_EXCLUDE_ON
$$.basicType = EbtSampler;
$$.sampler.setTexture(EbtFloat16, Esd1D);
}
- | TEXTURE2D {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtFloat, Esd2D);
- }
| F16TEXTURE2D {
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
$$.sampler.setTexture(EbtFloat16, Esd2D);
}
- | TEXTURE3D {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtFloat, Esd3D);
- }
| F16TEXTURE3D {
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
$$.sampler.setTexture(EbtFloat16, Esd3D);
}
- | TEXTURECUBE {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtFloat, EsdCube);
- }
| F16TEXTURECUBE {
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
@@ -2708,22 +2762,12 @@ GLSLANG_WEB_EXCLUDE_ON
$$.basicType = EbtSampler;
$$.sampler.setTexture(EbtFloat16, Esd1D, true);
}
- | TEXTURE2DARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtFloat, Esd2D, true);
- }
| F16TEXTURE2DARRAY {
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
$$.sampler.setTexture(EbtFloat16, Esd2D, true);
}
- | TEXTURECUBEARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtFloat, EsdCube, true);
- }
| F16TEXTURECUBEARRAY {
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
@@ -2735,71 +2779,21 @@ GLSLANG_WEB_EXCLUDE_ON
$$.basicType = EbtSampler;
$$.sampler.setTexture(EbtInt, Esd1D);
}
- | ITEXTURE2D {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtInt, Esd2D);
- }
- | ITEXTURE3D {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtInt, Esd3D);
- }
- | ITEXTURECUBE {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtInt, EsdCube);
- }
| ITEXTURE1DARRAY {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
$$.sampler.setTexture(EbtInt, Esd1D, true);
}
- | ITEXTURE2DARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtInt, Esd2D, true);
- }
- | ITEXTURECUBEARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtInt, EsdCube, true);
- }
| UTEXTURE1D {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
$$.sampler.setTexture(EbtUint, Esd1D);
}
- | UTEXTURE2D {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtUint, Esd2D);
- }
- | UTEXTURE3D {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtUint, Esd3D);
- }
- | UTEXTURECUBE {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtUint, EsdCube);
- }
| UTEXTURE1DARRAY {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
$$.sampler.setTexture(EbtUint, Esd1D, true);
}
- | UTEXTURE2DARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtUint, Esd2D, true);
- }
- | UTEXTURECUBEARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtUint, EsdCube, true);
- }
| TEXTURE2DRECT {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
diff --git a/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/glslang.y b/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/glslang.y
index 008faf0ee20..e263f3d7a17 100644
--- a/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/glslang.y
+++ b/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/glslang.y
@@ -38,7 +38,7 @@
//
// Do not edit the .y file, only edit the .m4 file.
-// The .y bison file is not a source file, it is a derivitive of the .m4 file.
+// The .y bison file is not a source file, it is a derivative of the .m4 file.
// The m4 file needs to be processed by m4 to generate the .y bison file.
//
// Code sandwiched between a pair:
@@ -49,7 +49,7 @@
// ...
// GLSLANG_WEB_EXCLUDE_OFF
//
-// Will be exluded from the grammar when m4 is executed as:
+// Will be excluded from the grammar when m4 is executed as:
//
// m4 -P -DGLSLANG_WEB
//
@@ -166,8 +166,12 @@ extern int yylex(YYSTYPE*, TParseContext&);
%token <lex> SAMPLER2DARRAYSHADOW ISAMPLER2D ISAMPLER3D ISAMPLERCUBE
%token <lex> ISAMPLER2DARRAY USAMPLER2D USAMPLER3D
%token <lex> USAMPLERCUBE USAMPLER2DARRAY
-%token <lex> SAMPLERCUBEARRAY SAMPLERCUBEARRAYSHADOW
-%token <lex> ISAMPLERCUBEARRAY USAMPLERCUBEARRAY
+
+// separate image/sampler
+%token <lex> SAMPLER SAMPLERSHADOW
+%token <lex> TEXTURE2D TEXTURE3D TEXTURECUBE TEXTURE2DARRAY
+%token <lex> ITEXTURE2D ITEXTURE3D ITEXTURECUBE ITEXTURE2DARRAY
+%token <lex> UTEXTURE2D UTEXTURE3D UTEXTURECUBE UTEXTURE2DARRAY
@@ -203,6 +207,8 @@ extern int yylex(YYSTYPE*, TParseContext&);
%token <lex> FCOOPMATNV ICOOPMATNV UCOOPMATNV
// combined image/sampler
+%token <lex> SAMPLERCUBEARRAY SAMPLERCUBEARRAYSHADOW
+%token <lex> ISAMPLERCUBEARRAY USAMPLERCUBEARRAY
%token <lex> SAMPLER1D SAMPLER1DARRAY SAMPLER1DARRAYSHADOW ISAMPLER1D SAMPLER1DSHADOW
%token <lex> SAMPLER2DRECT SAMPLER2DRECTSHADOW ISAMPLER2DRECT USAMPLER2DRECT
%token <lex> SAMPLERBUFFER ISAMPLERBUFFER USAMPLERBUFFER
@@ -233,18 +239,12 @@ extern int yylex(YYSTYPE*, TParseContext&);
%token <lex> F16IMAGECUBE F16IMAGE1DARRAY F16IMAGE2DARRAY F16IMAGECUBEARRAY
%token <lex> F16IMAGEBUFFER F16IMAGE2DMS F16IMAGE2DMSARRAY
-// pure sampler
-%token <lex> SAMPLER SAMPLERSHADOW
-
// texture without sampler
-%token <lex> TEXTURE1D TEXTURE2D TEXTURE3D TEXTURECUBE
-%token <lex> TEXTURE1DARRAY TEXTURE2DARRAY
-%token <lex> ITEXTURE1D ITEXTURE2D ITEXTURE3D ITEXTURECUBE
-%token <lex> ITEXTURE1DARRAY ITEXTURE2DARRAY UTEXTURE1D UTEXTURE2D UTEXTURE3D
-%token <lex> UTEXTURECUBE UTEXTURE1DARRAY UTEXTURE2DARRAY
+%token <lex> TEXTURECUBEARRAY ITEXTURECUBEARRAY UTEXTURECUBEARRAY
+%token <lex> TEXTURE1D ITEXTURE1D UTEXTURE1D
+%token <lex> TEXTURE1DARRAY ITEXTURE1DARRAY UTEXTURE1DARRAY
%token <lex> TEXTURE2DRECT ITEXTURE2DRECT UTEXTURE2DRECT
%token <lex> TEXTUREBUFFER ITEXTUREBUFFER UTEXTUREBUFFER
-%token <lex> TEXTURECUBEARRAY ITEXTURECUBEARRAY UTEXTURECUBEARRAY
%token <lex> TEXTURE2DMS ITEXTURE2DMS UTEXTURE2DMS
%token <lex> TEXTURE2DMSARRAY ITEXTURE2DMSARRAY UTEXTURE2DMSARRAY
@@ -277,7 +277,7 @@ extern int yylex(YYSTYPE*, TParseContext&);
%token <lex> CENTROID IN OUT INOUT
%token <lex> STRUCT VOID WHILE
%token <lex> BREAK CONTINUE DO ELSE FOR IF DISCARD RETURN SWITCH CASE DEFAULT
-%token <lex> UNIFORM SHARED
+%token <lex> UNIFORM SHARED BUFFER
%token <lex> FLAT SMOOTH LAYOUT
@@ -285,7 +285,7 @@ extern int yylex(YYSTYPE*, TParseContext&);
%token <lex> INT64CONSTANT UINT64CONSTANT
%token <lex> SUBROUTINE DEMOTE
%token <lex> PAYLOADNV PAYLOADINNV HITATTRNV CALLDATANV CALLDATAINNV
-%token <lex> PATCH SAMPLE BUFFER NONUNIFORM
+%token <lex> PATCH SAMPLE NONUNIFORM
%token <lex> COHERENT VOLATILE RESTRICT READONLY WRITEONLY DEVICECOHERENT QUEUEFAMILYCOHERENT WORKGROUPCOHERENT
%token <lex> SUBGROUPCOHERENT NONPRIVATE
%token <lex> NOPERSPECTIVE EXPLICITINTERPAMD PERVERTEXNV PERPRIMITIVENV PERVIEWNV PERTASKNV
@@ -1360,7 +1360,6 @@ storage_qualifier
$$.init($1.loc);
$$.qualifier.storage = EvqUniform;
}
-
| SHARED {
parseContext.globalCheck($1.loc, "shared");
parseContext.profileRequires($1.loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared");
@@ -1374,6 +1373,7 @@ storage_qualifier
$$.init($1.loc);
$$.qualifier.storage = EvqBuffer;
}
+
| ATTRIBUTE {
parseContext.requireStage($1.loc, EShLangVertex, "attribute");
parseContext.checkDeprecated($1.loc, ECoreProfile, 130, "attribute");
@@ -2354,6 +2354,16 @@ type_specifier_nonarray
$$.basicType = EbtSampler;
$$.sampler.set(EbtFloat, EsdCube, false, true);
}
+ | SAMPLER2DARRAY {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.set(EbtFloat, Esd2D, true);
+ }
+ | SAMPLER2DARRAYSHADOW {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.set(EbtFloat, Esd2D, true, true);
+ }
| SAMPLER1DSHADOW {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
@@ -2370,17 +2380,6 @@ type_specifier_nonarray
$$.basicType = EbtSampler;
$$.sampler.set(EbtFloat, Esd1D, true, true);
}
-
- | SAMPLER2DARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtFloat, Esd2D, true);
- }
- | SAMPLER2DARRAYSHADOW {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtFloat, Esd2D, true, true);
- }
| SAMPLERCUBEARRAY {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -2391,7 +2390,6 @@ type_specifier_nonarray
$$.basicType = EbtSampler;
$$.sampler.set(EbtFloat, EsdCube, true, true);
}
-
| F16SAMPLER1D {
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
@@ -2491,50 +2489,66 @@ type_specifier_nonarray
$$.basicType = EbtSampler;
$$.sampler.set(EbtInt, EsdCube);
}
-
- | ISAMPLER1DARRAY {
+ | ISAMPLER2DARRAY {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
- $$.sampler.set(EbtInt, Esd1D, true);
+ $$.sampler.set(EbtInt, Esd2D, true);
+ }
+ | USAMPLER2D {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.set(EbtUint, Esd2D);
+ }
+ | USAMPLER3D {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.set(EbtUint, Esd3D);
+ }
+ | USAMPLERCUBE {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.set(EbtUint, EsdCube);
}
- | ISAMPLER2DARRAY {
+ | ISAMPLER1DARRAY {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
- $$.sampler.set(EbtInt, Esd2D, true);
+ $$.sampler.set(EbtInt, Esd1D, true);
}
| ISAMPLERCUBEARRAY {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
$$.sampler.set(EbtInt, EsdCube, true);
}
-
| USAMPLER1D {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
$$.sampler.set(EbtUint, Esd1D);
}
-
- | USAMPLER2D {
+ | USAMPLER1DARRAY {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
- $$.sampler.set(EbtUint, Esd2D);
+ $$.sampler.set(EbtUint, Esd1D, true);
}
- | USAMPLER3D {
+ | USAMPLERCUBEARRAY {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
- $$.sampler.set(EbtUint, Esd3D);
+ $$.sampler.set(EbtUint, EsdCube, true);
}
- | USAMPLERCUBE {
+ | TEXTURECUBEARRAY {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
- $$.sampler.set(EbtUint, EsdCube);
+ $$.sampler.setTexture(EbtFloat, EsdCube, true);
}
-
- | USAMPLER1DARRAY {
+ | ITEXTURECUBEARRAY {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
- $$.sampler.set(EbtUint, Esd1D, true);
+ $$.sampler.setTexture(EbtInt, EsdCube, true);
+ }
+ | UTEXTURECUBEARRAY {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtUint, EsdCube, true);
}
| USAMPLER2DARRAY {
@@ -2542,10 +2556,75 @@ type_specifier_nonarray
$$.basicType = EbtSampler;
$$.sampler.set(EbtUint, Esd2D, true);
}
- | USAMPLERCUBEARRAY {
+ | TEXTURE2D {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
- $$.sampler.set(EbtUint, EsdCube, true);
+ $$.sampler.setTexture(EbtFloat, Esd2D);
+ }
+ | TEXTURE3D {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtFloat, Esd3D);
+ }
+ | TEXTURE2DARRAY {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtFloat, Esd2D, true);
+ }
+ | TEXTURECUBE {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtFloat, EsdCube);
+ }
+ | ITEXTURE2D {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtInt, Esd2D);
+ }
+ | ITEXTURE3D {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtInt, Esd3D);
+ }
+ | ITEXTURECUBE {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtInt, EsdCube);
+ }
+ | ITEXTURE2DARRAY {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtInt, Esd2D, true);
+ }
+ | UTEXTURE2D {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtUint, Esd2D);
+ }
+ | UTEXTURE3D {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtUint, Esd3D);
+ }
+ | UTEXTURECUBE {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtUint, EsdCube);
+ }
+ | UTEXTURE2DARRAY {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtUint, Esd2D, true);
+ }
+ | SAMPLER {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setPureSampler(false);
+ }
+ | SAMPLERSHADOW {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setPureSampler(true);
}
| SAMPLER2DRECT {
@@ -2643,16 +2722,6 @@ type_specifier_nonarray
$$.basicType = EbtSampler;
$$.sampler.set(EbtUint, Esd2D, true, false, true);
}
- | SAMPLER {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setPureSampler(false);
- }
- | SAMPLERSHADOW {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setPureSampler(true);
- }
| TEXTURE1D {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -2664,33 +2733,18 @@ type_specifier_nonarray
$$.basicType = EbtSampler;
$$.sampler.setTexture(EbtFloat16, Esd1D);
}
- | TEXTURE2D {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtFloat, Esd2D);
- }
| F16TEXTURE2D {
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
$$.sampler.setTexture(EbtFloat16, Esd2D);
}
- | TEXTURE3D {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtFloat, Esd3D);
- }
| F16TEXTURE3D {
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
$$.sampler.setTexture(EbtFloat16, Esd3D);
}
- | TEXTURECUBE {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtFloat, EsdCube);
- }
| F16TEXTURECUBE {
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
@@ -2708,22 +2762,12 @@ type_specifier_nonarray
$$.basicType = EbtSampler;
$$.sampler.setTexture(EbtFloat16, Esd1D, true);
}
- | TEXTURE2DARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtFloat, Esd2D, true);
- }
| F16TEXTURE2DARRAY {
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
$$.sampler.setTexture(EbtFloat16, Esd2D, true);
}
- | TEXTURECUBEARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtFloat, EsdCube, true);
- }
| F16TEXTURECUBEARRAY {
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
@@ -2735,71 +2779,21 @@ type_specifier_nonarray
$$.basicType = EbtSampler;
$$.sampler.setTexture(EbtInt, Esd1D);
}
- | ITEXTURE2D {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtInt, Esd2D);
- }
- | ITEXTURE3D {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtInt, Esd3D);
- }
- | ITEXTURECUBE {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtInt, EsdCube);
- }
| ITEXTURE1DARRAY {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
$$.sampler.setTexture(EbtInt, Esd1D, true);
}
- | ITEXTURE2DARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtInt, Esd2D, true);
- }
- | ITEXTURECUBEARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtInt, EsdCube, true);
- }
| UTEXTURE1D {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
$$.sampler.setTexture(EbtUint, Esd1D);
}
- | UTEXTURE2D {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtUint, Esd2D);
- }
- | UTEXTURE3D {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtUint, Esd3D);
- }
- | UTEXTURECUBE {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtUint, EsdCube);
- }
| UTEXTURE1DARRAY {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
$$.sampler.setTexture(EbtUint, Esd1D, true);
}
- | UTEXTURE2DARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtUint, Esd2D, true);
- }
- | UTEXTURECUBEARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtUint, EsdCube, true);
- }
| TEXTURE2DRECT {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
diff --git a/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/glslang_tab.cpp b/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/glslang_tab.cpp
index 523e4058c6d..d2967973d38 100644
--- a/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/glslang_tab.cpp
+++ b/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/glslang_tab.cpp
@@ -167,227 +167,227 @@ extern int yydebug;
USAMPLER3D = 299,
USAMPLERCUBE = 300,
USAMPLER2DARRAY = 301,
- SAMPLERCUBEARRAY = 302,
- SAMPLERCUBEARRAYSHADOW = 303,
- ISAMPLERCUBEARRAY = 304,
- USAMPLERCUBEARRAY = 305,
- ATTRIBUTE = 306,
- VARYING = 307,
- FLOAT16_T = 308,
- FLOAT32_T = 309,
- DOUBLE = 310,
- FLOAT64_T = 311,
- INT64_T = 312,
- UINT64_T = 313,
- INT32_T = 314,
- UINT32_T = 315,
- INT16_T = 316,
- UINT16_T = 317,
- INT8_T = 318,
- UINT8_T = 319,
- I64VEC2 = 320,
- I64VEC3 = 321,
- I64VEC4 = 322,
- U64VEC2 = 323,
- U64VEC3 = 324,
- U64VEC4 = 325,
- I32VEC2 = 326,
- I32VEC3 = 327,
- I32VEC4 = 328,
- U32VEC2 = 329,
- U32VEC3 = 330,
- U32VEC4 = 331,
- I16VEC2 = 332,
- I16VEC3 = 333,
- I16VEC4 = 334,
- U16VEC2 = 335,
- U16VEC3 = 336,
- U16VEC4 = 337,
- I8VEC2 = 338,
- I8VEC3 = 339,
- I8VEC4 = 340,
- U8VEC2 = 341,
- U8VEC3 = 342,
- U8VEC4 = 343,
- DVEC2 = 344,
- DVEC3 = 345,
- DVEC4 = 346,
- DMAT2 = 347,
- DMAT3 = 348,
- DMAT4 = 349,
- F16VEC2 = 350,
- F16VEC3 = 351,
- F16VEC4 = 352,
- F16MAT2 = 353,
- F16MAT3 = 354,
- F16MAT4 = 355,
- F32VEC2 = 356,
- F32VEC3 = 357,
- F32VEC4 = 358,
- F32MAT2 = 359,
- F32MAT3 = 360,
- F32MAT4 = 361,
- F64VEC2 = 362,
- F64VEC3 = 363,
- F64VEC4 = 364,
- F64MAT2 = 365,
- F64MAT3 = 366,
- F64MAT4 = 367,
- DMAT2X2 = 368,
- DMAT2X3 = 369,
- DMAT2X4 = 370,
- DMAT3X2 = 371,
- DMAT3X3 = 372,
- DMAT3X4 = 373,
- DMAT4X2 = 374,
- DMAT4X3 = 375,
- DMAT4X4 = 376,
- F16MAT2X2 = 377,
- F16MAT2X3 = 378,
- F16MAT2X4 = 379,
- F16MAT3X2 = 380,
- F16MAT3X3 = 381,
- F16MAT3X4 = 382,
- F16MAT4X2 = 383,
- F16MAT4X3 = 384,
- F16MAT4X4 = 385,
- F32MAT2X2 = 386,
- F32MAT2X3 = 387,
- F32MAT2X4 = 388,
- F32MAT3X2 = 389,
- F32MAT3X3 = 390,
- F32MAT3X4 = 391,
- F32MAT4X2 = 392,
- F32MAT4X3 = 393,
- F32MAT4X4 = 394,
- F64MAT2X2 = 395,
- F64MAT2X3 = 396,
- F64MAT2X4 = 397,
- F64MAT3X2 = 398,
- F64MAT3X3 = 399,
- F64MAT3X4 = 400,
- F64MAT4X2 = 401,
- F64MAT4X3 = 402,
- F64MAT4X4 = 403,
- ATOMIC_UINT = 404,
- ACCSTRUCTNV = 405,
- FCOOPMATNV = 406,
- ICOOPMATNV = 407,
- UCOOPMATNV = 408,
- SAMPLER1D = 409,
- SAMPLER1DARRAY = 410,
- SAMPLER1DARRAYSHADOW = 411,
- ISAMPLER1D = 412,
- SAMPLER1DSHADOW = 413,
- SAMPLER2DRECT = 414,
- SAMPLER2DRECTSHADOW = 415,
- ISAMPLER2DRECT = 416,
- USAMPLER2DRECT = 417,
- SAMPLERBUFFER = 418,
- ISAMPLERBUFFER = 419,
- USAMPLERBUFFER = 420,
- SAMPLER2DMS = 421,
- ISAMPLER2DMS = 422,
- USAMPLER2DMS = 423,
- SAMPLER2DMSARRAY = 424,
- ISAMPLER2DMSARRAY = 425,
- USAMPLER2DMSARRAY = 426,
- SAMPLEREXTERNALOES = 427,
- SAMPLEREXTERNAL2DY2YEXT = 428,
- ISAMPLER1DARRAY = 429,
- USAMPLER1D = 430,
- USAMPLER1DARRAY = 431,
- F16SAMPLER1D = 432,
- F16SAMPLER2D = 433,
- F16SAMPLER3D = 434,
- F16SAMPLER2DRECT = 435,
- F16SAMPLERCUBE = 436,
- F16SAMPLER1DARRAY = 437,
- F16SAMPLER2DARRAY = 438,
- F16SAMPLERCUBEARRAY = 439,
- F16SAMPLERBUFFER = 440,
- F16SAMPLER2DMS = 441,
- F16SAMPLER2DMSARRAY = 442,
- F16SAMPLER1DSHADOW = 443,
- F16SAMPLER2DSHADOW = 444,
- F16SAMPLER1DARRAYSHADOW = 445,
- F16SAMPLER2DARRAYSHADOW = 446,
- F16SAMPLER2DRECTSHADOW = 447,
- F16SAMPLERCUBESHADOW = 448,
- F16SAMPLERCUBEARRAYSHADOW = 449,
- IMAGE1D = 450,
- IIMAGE1D = 451,
- UIMAGE1D = 452,
- IMAGE2D = 453,
- IIMAGE2D = 454,
- UIMAGE2D = 455,
- IMAGE3D = 456,
- IIMAGE3D = 457,
- UIMAGE3D = 458,
- IMAGE2DRECT = 459,
- IIMAGE2DRECT = 460,
- UIMAGE2DRECT = 461,
- IMAGECUBE = 462,
- IIMAGECUBE = 463,
- UIMAGECUBE = 464,
- IMAGEBUFFER = 465,
- IIMAGEBUFFER = 466,
- UIMAGEBUFFER = 467,
- IMAGE1DARRAY = 468,
- IIMAGE1DARRAY = 469,
- UIMAGE1DARRAY = 470,
- IMAGE2DARRAY = 471,
- IIMAGE2DARRAY = 472,
- UIMAGE2DARRAY = 473,
- IMAGECUBEARRAY = 474,
- IIMAGECUBEARRAY = 475,
- UIMAGECUBEARRAY = 476,
- IMAGE2DMS = 477,
- IIMAGE2DMS = 478,
- UIMAGE2DMS = 479,
- IMAGE2DMSARRAY = 480,
- IIMAGE2DMSARRAY = 481,
- UIMAGE2DMSARRAY = 482,
- F16IMAGE1D = 483,
- F16IMAGE2D = 484,
- F16IMAGE3D = 485,
- F16IMAGE2DRECT = 486,
- F16IMAGECUBE = 487,
- F16IMAGE1DARRAY = 488,
- F16IMAGE2DARRAY = 489,
- F16IMAGECUBEARRAY = 490,
- F16IMAGEBUFFER = 491,
- F16IMAGE2DMS = 492,
- F16IMAGE2DMSARRAY = 493,
- SAMPLER = 494,
- SAMPLERSHADOW = 495,
- TEXTURE1D = 496,
- TEXTURE2D = 497,
- TEXTURE3D = 498,
- TEXTURECUBE = 499,
- TEXTURE1DARRAY = 500,
- TEXTURE2DARRAY = 501,
- ITEXTURE1D = 502,
- ITEXTURE2D = 503,
- ITEXTURE3D = 504,
- ITEXTURECUBE = 505,
- ITEXTURE1DARRAY = 506,
- ITEXTURE2DARRAY = 507,
- UTEXTURE1D = 508,
- UTEXTURE2D = 509,
- UTEXTURE3D = 510,
- UTEXTURECUBE = 511,
- UTEXTURE1DARRAY = 512,
- UTEXTURE2DARRAY = 513,
- TEXTURE2DRECT = 514,
- ITEXTURE2DRECT = 515,
- UTEXTURE2DRECT = 516,
- TEXTUREBUFFER = 517,
- ITEXTUREBUFFER = 518,
- UTEXTUREBUFFER = 519,
- TEXTURECUBEARRAY = 520,
- ITEXTURECUBEARRAY = 521,
- UTEXTURECUBEARRAY = 522,
+ SAMPLER = 302,
+ SAMPLERSHADOW = 303,
+ TEXTURE2D = 304,
+ TEXTURE3D = 305,
+ TEXTURECUBE = 306,
+ TEXTURE2DARRAY = 307,
+ ITEXTURE2D = 308,
+ ITEXTURE3D = 309,
+ ITEXTURECUBE = 310,
+ ITEXTURE2DARRAY = 311,
+ UTEXTURE2D = 312,
+ UTEXTURE3D = 313,
+ UTEXTURECUBE = 314,
+ UTEXTURE2DARRAY = 315,
+ ATTRIBUTE = 316,
+ VARYING = 317,
+ FLOAT16_T = 318,
+ FLOAT32_T = 319,
+ DOUBLE = 320,
+ FLOAT64_T = 321,
+ INT64_T = 322,
+ UINT64_T = 323,
+ INT32_T = 324,
+ UINT32_T = 325,
+ INT16_T = 326,
+ UINT16_T = 327,
+ INT8_T = 328,
+ UINT8_T = 329,
+ I64VEC2 = 330,
+ I64VEC3 = 331,
+ I64VEC4 = 332,
+ U64VEC2 = 333,
+ U64VEC3 = 334,
+ U64VEC4 = 335,
+ I32VEC2 = 336,
+ I32VEC3 = 337,
+ I32VEC4 = 338,
+ U32VEC2 = 339,
+ U32VEC3 = 340,
+ U32VEC4 = 341,
+ I16VEC2 = 342,
+ I16VEC3 = 343,
+ I16VEC4 = 344,
+ U16VEC2 = 345,
+ U16VEC3 = 346,
+ U16VEC4 = 347,
+ I8VEC2 = 348,
+ I8VEC3 = 349,
+ I8VEC4 = 350,
+ U8VEC2 = 351,
+ U8VEC3 = 352,
+ U8VEC4 = 353,
+ DVEC2 = 354,
+ DVEC3 = 355,
+ DVEC4 = 356,
+ DMAT2 = 357,
+ DMAT3 = 358,
+ DMAT4 = 359,
+ F16VEC2 = 360,
+ F16VEC3 = 361,
+ F16VEC4 = 362,
+ F16MAT2 = 363,
+ F16MAT3 = 364,
+ F16MAT4 = 365,
+ F32VEC2 = 366,
+ F32VEC3 = 367,
+ F32VEC4 = 368,
+ F32MAT2 = 369,
+ F32MAT3 = 370,
+ F32MAT4 = 371,
+ F64VEC2 = 372,
+ F64VEC3 = 373,
+ F64VEC4 = 374,
+ F64MAT2 = 375,
+ F64MAT3 = 376,
+ F64MAT4 = 377,
+ DMAT2X2 = 378,
+ DMAT2X3 = 379,
+ DMAT2X4 = 380,
+ DMAT3X2 = 381,
+ DMAT3X3 = 382,
+ DMAT3X4 = 383,
+ DMAT4X2 = 384,
+ DMAT4X3 = 385,
+ DMAT4X4 = 386,
+ F16MAT2X2 = 387,
+ F16MAT2X3 = 388,
+ F16MAT2X4 = 389,
+ F16MAT3X2 = 390,
+ F16MAT3X3 = 391,
+ F16MAT3X4 = 392,
+ F16MAT4X2 = 393,
+ F16MAT4X3 = 394,
+ F16MAT4X4 = 395,
+ F32MAT2X2 = 396,
+ F32MAT2X3 = 397,
+ F32MAT2X4 = 398,
+ F32MAT3X2 = 399,
+ F32MAT3X3 = 400,
+ F32MAT3X4 = 401,
+ F32MAT4X2 = 402,
+ F32MAT4X3 = 403,
+ F32MAT4X4 = 404,
+ F64MAT2X2 = 405,
+ F64MAT2X3 = 406,
+ F64MAT2X4 = 407,
+ F64MAT3X2 = 408,
+ F64MAT3X3 = 409,
+ F64MAT3X4 = 410,
+ F64MAT4X2 = 411,
+ F64MAT4X3 = 412,
+ F64MAT4X4 = 413,
+ ATOMIC_UINT = 414,
+ ACCSTRUCTNV = 415,
+ FCOOPMATNV = 416,
+ ICOOPMATNV = 417,
+ UCOOPMATNV = 418,
+ SAMPLERCUBEARRAY = 419,
+ SAMPLERCUBEARRAYSHADOW = 420,
+ ISAMPLERCUBEARRAY = 421,
+ USAMPLERCUBEARRAY = 422,
+ SAMPLER1D = 423,
+ SAMPLER1DARRAY = 424,
+ SAMPLER1DARRAYSHADOW = 425,
+ ISAMPLER1D = 426,
+ SAMPLER1DSHADOW = 427,
+ SAMPLER2DRECT = 428,
+ SAMPLER2DRECTSHADOW = 429,
+ ISAMPLER2DRECT = 430,
+ USAMPLER2DRECT = 431,
+ SAMPLERBUFFER = 432,
+ ISAMPLERBUFFER = 433,
+ USAMPLERBUFFER = 434,
+ SAMPLER2DMS = 435,
+ ISAMPLER2DMS = 436,
+ USAMPLER2DMS = 437,
+ SAMPLER2DMSARRAY = 438,
+ ISAMPLER2DMSARRAY = 439,
+ USAMPLER2DMSARRAY = 440,
+ SAMPLEREXTERNALOES = 441,
+ SAMPLEREXTERNAL2DY2YEXT = 442,
+ ISAMPLER1DARRAY = 443,
+ USAMPLER1D = 444,
+ USAMPLER1DARRAY = 445,
+ F16SAMPLER1D = 446,
+ F16SAMPLER2D = 447,
+ F16SAMPLER3D = 448,
+ F16SAMPLER2DRECT = 449,
+ F16SAMPLERCUBE = 450,
+ F16SAMPLER1DARRAY = 451,
+ F16SAMPLER2DARRAY = 452,
+ F16SAMPLERCUBEARRAY = 453,
+ F16SAMPLERBUFFER = 454,
+ F16SAMPLER2DMS = 455,
+ F16SAMPLER2DMSARRAY = 456,
+ F16SAMPLER1DSHADOW = 457,
+ F16SAMPLER2DSHADOW = 458,
+ F16SAMPLER1DARRAYSHADOW = 459,
+ F16SAMPLER2DARRAYSHADOW = 460,
+ F16SAMPLER2DRECTSHADOW = 461,
+ F16SAMPLERCUBESHADOW = 462,
+ F16SAMPLERCUBEARRAYSHADOW = 463,
+ IMAGE1D = 464,
+ IIMAGE1D = 465,
+ UIMAGE1D = 466,
+ IMAGE2D = 467,
+ IIMAGE2D = 468,
+ UIMAGE2D = 469,
+ IMAGE3D = 470,
+ IIMAGE3D = 471,
+ UIMAGE3D = 472,
+ IMAGE2DRECT = 473,
+ IIMAGE2DRECT = 474,
+ UIMAGE2DRECT = 475,
+ IMAGECUBE = 476,
+ IIMAGECUBE = 477,
+ UIMAGECUBE = 478,
+ IMAGEBUFFER = 479,
+ IIMAGEBUFFER = 480,
+ UIMAGEBUFFER = 481,
+ IMAGE1DARRAY = 482,
+ IIMAGE1DARRAY = 483,
+ UIMAGE1DARRAY = 484,
+ IMAGE2DARRAY = 485,
+ IIMAGE2DARRAY = 486,
+ UIMAGE2DARRAY = 487,
+ IMAGECUBEARRAY = 488,
+ IIMAGECUBEARRAY = 489,
+ UIMAGECUBEARRAY = 490,
+ IMAGE2DMS = 491,
+ IIMAGE2DMS = 492,
+ UIMAGE2DMS = 493,
+ IMAGE2DMSARRAY = 494,
+ IIMAGE2DMSARRAY = 495,
+ UIMAGE2DMSARRAY = 496,
+ F16IMAGE1D = 497,
+ F16IMAGE2D = 498,
+ F16IMAGE3D = 499,
+ F16IMAGE2DRECT = 500,
+ F16IMAGECUBE = 501,
+ F16IMAGE1DARRAY = 502,
+ F16IMAGE2DARRAY = 503,
+ F16IMAGECUBEARRAY = 504,
+ F16IMAGEBUFFER = 505,
+ F16IMAGE2DMS = 506,
+ F16IMAGE2DMSARRAY = 507,
+ TEXTURECUBEARRAY = 508,
+ ITEXTURECUBEARRAY = 509,
+ UTEXTURECUBEARRAY = 510,
+ TEXTURE1D = 511,
+ ITEXTURE1D = 512,
+ UTEXTURE1D = 513,
+ TEXTURE1DARRAY = 514,
+ ITEXTURE1DARRAY = 515,
+ UTEXTURE1DARRAY = 516,
+ TEXTURE2DRECT = 517,
+ ITEXTURE2DRECT = 518,
+ UTEXTURE2DRECT = 519,
+ TEXTUREBUFFER = 520,
+ ITEXTUREBUFFER = 521,
+ UTEXTUREBUFFER = 522,
TEXTURE2DMS = 523,
ITEXTURE2DMS = 524,
UTEXTURE2DMS = 525,
@@ -492,27 +492,27 @@ extern int yydebug;
DEFAULT = 624,
UNIFORM = 625,
SHARED = 626,
- FLAT = 627,
- SMOOTH = 628,
- LAYOUT = 629,
- DOUBLECONSTANT = 630,
- INT16CONSTANT = 631,
- UINT16CONSTANT = 632,
- FLOAT16CONSTANT = 633,
- INT32CONSTANT = 634,
- UINT32CONSTANT = 635,
- INT64CONSTANT = 636,
- UINT64CONSTANT = 637,
- SUBROUTINE = 638,
- DEMOTE = 639,
- PAYLOADNV = 640,
- PAYLOADINNV = 641,
- HITATTRNV = 642,
- CALLDATANV = 643,
- CALLDATAINNV = 644,
- PATCH = 645,
- SAMPLE = 646,
- BUFFER = 647,
+ BUFFER = 627,
+ FLAT = 628,
+ SMOOTH = 629,
+ LAYOUT = 630,
+ DOUBLECONSTANT = 631,
+ INT16CONSTANT = 632,
+ UINT16CONSTANT = 633,
+ FLOAT16CONSTANT = 634,
+ INT32CONSTANT = 635,
+ UINT32CONSTANT = 636,
+ INT64CONSTANT = 637,
+ UINT64CONSTANT = 638,
+ SUBROUTINE = 639,
+ DEMOTE = 640,
+ PAYLOADNV = 641,
+ PAYLOADINNV = 642,
+ HITATTRNV = 643,
+ CALLDATANV = 644,
+ CALLDATAINNV = 645,
+ PATCH = 646,
+ SAMPLE = 647,
NONUNIFORM = 648,
COHERENT = 649,
VOLATILE = 650,
@@ -960,7 +960,7 @@ static const yytype_uint16 yyrline[] =
1142, 1169, 1178, 1185, 1193, 1200, 1207, 1215, 1225, 1232,
1243, 1249, 1252, 1259, 1263, 1267, 1276, 1286, 1289, 1300,
1303, 1306, 1310, 1314, 1319, 1323, 1330, 1334, 1339, 1345,
- 1351, 1358, 1364, 1372, 1377, 1389, 1403, 1409, 1414, 1422,
+ 1351, 1358, 1363, 1371, 1377, 1389, 1403, 1409, 1414, 1422,
1430, 1438, 1446, 1453, 1457, 1462, 1467, 1472, 1477, 1482,
1486, 1490, 1494, 1498, 1504, 1515, 1522, 1525, 1534, 1539,
1549, 1554, 1562, 1566, 1576, 1579, 1585, 1591, 1598, 1608,
@@ -977,32 +977,32 @@ static const yytype_uint16 yyrline[] =
2173, 2179, 2185, 2191, 2197, 2203, 2209, 2215, 2221, 2227,
2233, 2239, 2245, 2251, 2257, 2263, 2269, 2275, 2281, 2287,
2293, 2299, 2305, 2311, 2317, 2321, 2326, 2332, 2337, 2342,
- 2347, 2352, 2358, 2363, 2368, 2374, 2379, 2384, 2389, 2395,
- 2401, 2407, 2413, 2419, 2425, 2431, 2437, 2443, 2449, 2455,
- 2461, 2467, 2473, 2479, 2484, 2489, 2495, 2501, 2506, 2512,
- 2518, 2523, 2528, 2534, 2540, 2545, 2551, 2556, 2561, 2567,
- 2573, 2578, 2583, 2588, 2594, 2599, 2604, 2609, 2615, 2620,
- 2625, 2630, 2636, 2641, 2646, 2651, 2656, 2661, 2667, 2672,
- 2678, 2683, 2689, 2694, 2700, 2705, 2711, 2716, 2722, 2727,
- 2733, 2738, 2743, 2748, 2753, 2758, 2763, 2768, 2773, 2778,
- 2783, 2788, 2793, 2798, 2803, 2808, 2814, 2819, 2824, 2829,
- 2835, 2840, 2845, 2850, 2856, 2861, 2866, 2871, 2877, 2882,
- 2887, 2892, 2898, 2903, 2908, 2913, 2919, 2924, 2929, 2934,
- 2940, 2945, 2950, 2955, 2961, 2966, 2971, 2976, 2982, 2987,
- 2992, 2997, 3003, 3008, 3013, 3018, 3024, 3029, 3034, 3039,
- 3045, 3050, 3055, 3060, 3066, 3071, 3076, 3081, 3087, 3092,
- 3097, 3102, 3108, 3113, 3118, 3124, 3130, 3136, 3142, 3149,
- 3156, 3162, 3168, 3174, 3180, 3186, 3192, 3199, 3204, 3220,
- 3225, 3230, 3238, 3238, 3249, 3249, 3259, 3262, 3275, 3297,
- 3324, 3328, 3334, 3339, 3350, 3354, 3360, 3371, 3374, 3381,
- 3385, 3386, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3400,
- 3406, 3415, 3416, 3420, 3416, 3432, 3433, 3437, 3437, 3444,
- 3444, 3458, 3461, 3469, 3477, 3488, 3489, 3493, 3497, 3504,
- 3511, 3515, 3523, 3527, 3540, 3544, 3551, 3551, 3571, 3574,
- 3580, 3592, 3604, 3608, 3615, 3615, 3630, 3630, 3646, 3646,
- 3667, 3670, 3676, 3679, 3685, 3689, 3696, 3701, 3706, 3713,
- 3716, 3725, 3729, 3738, 3741, 3745, 3754, 3754, 3777, 3783,
- 3786, 3791, 3794
+ 2347, 2352, 2357, 2362, 2368, 2373, 2378, 2383, 2388, 2393,
+ 2399, 2405, 2411, 2417, 2423, 2429, 2435, 2441, 2447, 2453,
+ 2459, 2465, 2471, 2477, 2482, 2487, 2492, 2497, 2502, 2507,
+ 2513, 2518, 2523, 2528, 2533, 2538, 2543, 2548, 2554, 2559,
+ 2564, 2569, 2574, 2579, 2584, 2589, 2594, 2599, 2604, 2609,
+ 2614, 2619, 2624, 2630, 2635, 2640, 2646, 2652, 2657, 2662,
+ 2667, 2673, 2678, 2683, 2688, 2694, 2699, 2704, 2709, 2715,
+ 2720, 2725, 2730, 2736, 2742, 2748, 2754, 2759, 2765, 2771,
+ 2777, 2782, 2787, 2792, 2797, 2802, 2808, 2813, 2818, 2823,
+ 2829, 2834, 2839, 2844, 2850, 2855, 2860, 2865, 2871, 2876,
+ 2881, 2886, 2892, 2897, 2902, 2907, 2913, 2918, 2923, 2928,
+ 2934, 2939, 2944, 2949, 2955, 2960, 2965, 2970, 2976, 2981,
+ 2986, 2991, 2997, 3002, 3007, 3012, 3018, 3023, 3028, 3033,
+ 3039, 3044, 3049, 3054, 3060, 3065, 3070, 3075, 3081, 3086,
+ 3091, 3096, 3102, 3107, 3112, 3118, 3124, 3130, 3136, 3143,
+ 3150, 3156, 3162, 3168, 3174, 3180, 3186, 3193, 3198, 3214,
+ 3219, 3224, 3232, 3232, 3243, 3243, 3253, 3256, 3269, 3291,
+ 3318, 3322, 3328, 3333, 3344, 3348, 3354, 3365, 3368, 3375,
+ 3379, 3380, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3394,
+ 3400, 3409, 3410, 3414, 3410, 3426, 3427, 3431, 3431, 3438,
+ 3438, 3452, 3455, 3463, 3471, 3482, 3483, 3487, 3491, 3498,
+ 3505, 3509, 3517, 3521, 3534, 3538, 3545, 3545, 3565, 3568,
+ 3574, 3586, 3598, 3602, 3609, 3609, 3624, 3624, 3640, 3640,
+ 3661, 3664, 3670, 3673, 3679, 3683, 3690, 3695, 3700, 3707,
+ 3710, 3719, 3723, 3732, 3735, 3739, 3748, 3748, 3771, 3777,
+ 3780, 3785, 3788
};
#endif
@@ -1018,9 +1018,11 @@ static const char *const yytname[] =
"MAT4X4", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE", "SAMPLER2DSHADOW",
"SAMPLERCUBESHADOW", "SAMPLER2DARRAY", "SAMPLER2DARRAYSHADOW",
"ISAMPLER2D", "ISAMPLER3D", "ISAMPLERCUBE", "ISAMPLER2DARRAY",
- "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE", "USAMPLER2DARRAY",
- "SAMPLERCUBEARRAY", "SAMPLERCUBEARRAYSHADOW", "ISAMPLERCUBEARRAY",
- "USAMPLERCUBEARRAY", "ATTRIBUTE", "VARYING", "FLOAT16_T", "FLOAT32_T",
+ "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE", "USAMPLER2DARRAY", "SAMPLER",
+ "SAMPLERSHADOW", "TEXTURE2D", "TEXTURE3D", "TEXTURECUBE",
+ "TEXTURE2DARRAY", "ITEXTURE2D", "ITEXTURE3D", "ITEXTURECUBE",
+ "ITEXTURE2DARRAY", "UTEXTURE2D", "UTEXTURE3D", "UTEXTURECUBE",
+ "UTEXTURE2DARRAY", "ATTRIBUTE", "VARYING", "FLOAT16_T", "FLOAT32_T",
"DOUBLE", "FLOAT64_T", "INT64_T", "UINT64_T", "INT32_T", "UINT32_T",
"INT16_T", "UINT16_T", "INT8_T", "UINT8_T", "I64VEC2", "I64VEC3",
"I64VEC4", "U64VEC2", "U64VEC3", "U64VEC4", "I32VEC2", "I32VEC3",
@@ -1038,14 +1040,15 @@ static const char *const yytname[] =
"F32MAT4X4", "F64MAT2X2", "F64MAT2X3", "F64MAT2X4", "F64MAT3X2",
"F64MAT3X3", "F64MAT3X4", "F64MAT4X2", "F64MAT4X3", "F64MAT4X4",
"ATOMIC_UINT", "ACCSTRUCTNV", "FCOOPMATNV", "ICOOPMATNV", "UCOOPMATNV",
- "SAMPLER1D", "SAMPLER1DARRAY", "SAMPLER1DARRAYSHADOW", "ISAMPLER1D",
- "SAMPLER1DSHADOW", "SAMPLER2DRECT", "SAMPLER2DRECTSHADOW",
- "ISAMPLER2DRECT", "USAMPLER2DRECT", "SAMPLERBUFFER", "ISAMPLERBUFFER",
- "USAMPLERBUFFER", "SAMPLER2DMS", "ISAMPLER2DMS", "USAMPLER2DMS",
- "SAMPLER2DMSARRAY", "ISAMPLER2DMSARRAY", "USAMPLER2DMSARRAY",
- "SAMPLEREXTERNALOES", "SAMPLEREXTERNAL2DY2YEXT", "ISAMPLER1DARRAY",
- "USAMPLER1D", "USAMPLER1DARRAY", "F16SAMPLER1D", "F16SAMPLER2D",
- "F16SAMPLER3D", "F16SAMPLER2DRECT", "F16SAMPLERCUBE",
+ "SAMPLERCUBEARRAY", "SAMPLERCUBEARRAYSHADOW", "ISAMPLERCUBEARRAY",
+ "USAMPLERCUBEARRAY", "SAMPLER1D", "SAMPLER1DARRAY",
+ "SAMPLER1DARRAYSHADOW", "ISAMPLER1D", "SAMPLER1DSHADOW", "SAMPLER2DRECT",
+ "SAMPLER2DRECTSHADOW", "ISAMPLER2DRECT", "USAMPLER2DRECT",
+ "SAMPLERBUFFER", "ISAMPLERBUFFER", "USAMPLERBUFFER", "SAMPLER2DMS",
+ "ISAMPLER2DMS", "USAMPLER2DMS", "SAMPLER2DMSARRAY", "ISAMPLER2DMSARRAY",
+ "USAMPLER2DMSARRAY", "SAMPLEREXTERNALOES", "SAMPLEREXTERNAL2DY2YEXT",
+ "ISAMPLER1DARRAY", "USAMPLER1D", "USAMPLER1DARRAY", "F16SAMPLER1D",
+ "F16SAMPLER2D", "F16SAMPLER3D", "F16SAMPLER2DRECT", "F16SAMPLERCUBE",
"F16SAMPLER1DARRAY", "F16SAMPLER2DARRAY", "F16SAMPLERCUBEARRAY",
"F16SAMPLERBUFFER", "F16SAMPLER2DMS", "F16SAMPLER2DMSARRAY",
"F16SAMPLER1DSHADOW", "F16SAMPLER2DSHADOW", "F16SAMPLER1DARRAYSHADOW",
@@ -1061,40 +1064,37 @@ static const char *const yytname[] =
"F16IMAGE1D", "F16IMAGE2D", "F16IMAGE3D", "F16IMAGE2DRECT",
"F16IMAGECUBE", "F16IMAGE1DARRAY", "F16IMAGE2DARRAY",
"F16IMAGECUBEARRAY", "F16IMAGEBUFFER", "F16IMAGE2DMS",
- "F16IMAGE2DMSARRAY", "SAMPLER", "SAMPLERSHADOW", "TEXTURE1D",
- "TEXTURE2D", "TEXTURE3D", "TEXTURECUBE", "TEXTURE1DARRAY",
- "TEXTURE2DARRAY", "ITEXTURE1D", "ITEXTURE2D", "ITEXTURE3D",
- "ITEXTURECUBE", "ITEXTURE1DARRAY", "ITEXTURE2DARRAY", "UTEXTURE1D",
- "UTEXTURE2D", "UTEXTURE3D", "UTEXTURECUBE", "UTEXTURE1DARRAY",
- "UTEXTURE2DARRAY", "TEXTURE2DRECT", "ITEXTURE2DRECT", "UTEXTURE2DRECT",
- "TEXTUREBUFFER", "ITEXTUREBUFFER", "UTEXTUREBUFFER", "TEXTURECUBEARRAY",
- "ITEXTURECUBEARRAY", "UTEXTURECUBEARRAY", "TEXTURE2DMS", "ITEXTURE2DMS",
- "UTEXTURE2DMS", "TEXTURE2DMSARRAY", "ITEXTURE2DMSARRAY",
- "UTEXTURE2DMSARRAY", "F16TEXTURE1D", "F16TEXTURE2D", "F16TEXTURE3D",
- "F16TEXTURE2DRECT", "F16TEXTURECUBE", "F16TEXTURE1DARRAY",
- "F16TEXTURE2DARRAY", "F16TEXTURECUBEARRAY", "F16TEXTUREBUFFER",
- "F16TEXTURE2DMS", "F16TEXTURE2DMSARRAY", "SUBPASSINPUT",
- "SUBPASSINPUTMS", "ISUBPASSINPUT", "ISUBPASSINPUTMS", "USUBPASSINPUT",
- "USUBPASSINPUTMS", "F16SUBPASSINPUT", "F16SUBPASSINPUTMS", "LEFT_OP",
- "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP",
- "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN", "DIV_ASSIGN", "ADD_ASSIGN",
- "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN", "XOR_ASSIGN",
- "OR_ASSIGN", "SUB_ASSIGN", "LEFT_PAREN", "RIGHT_PAREN", "LEFT_BRACKET",
- "RIGHT_BRACKET", "LEFT_BRACE", "RIGHT_BRACE", "DOT", "COMMA", "COLON",
- "EQUAL", "SEMICOLON", "BANG", "DASH", "TILDE", "PLUS", "STAR", "SLASH",
- "PERCENT", "LEFT_ANGLE", "RIGHT_ANGLE", "VERTICAL_BAR", "CARET",
- "AMPERSAND", "QUESTION", "INVARIANT", "HIGH_PRECISION",
- "MEDIUM_PRECISION", "LOW_PRECISION", "PRECISION", "PACKED", "RESOURCE",
- "SUPERP", "FLOATCONSTANT", "INTCONSTANT", "UINTCONSTANT", "BOOLCONSTANT",
- "IDENTIFIER", "TYPE_NAME", "CENTROID", "IN", "OUT", "INOUT", "STRUCT",
- "VOID", "WHILE", "BREAK", "CONTINUE", "DO", "ELSE", "FOR", "IF",
- "DISCARD", "RETURN", "SWITCH", "CASE", "DEFAULT", "UNIFORM", "SHARED",
- "FLAT", "SMOOTH", "LAYOUT", "DOUBLECONSTANT", "INT16CONSTANT",
- "UINT16CONSTANT", "FLOAT16CONSTANT", "INT32CONSTANT", "UINT32CONSTANT",
- "INT64CONSTANT", "UINT64CONSTANT", "SUBROUTINE", "DEMOTE", "PAYLOADNV",
- "PAYLOADINNV", "HITATTRNV", "CALLDATANV", "CALLDATAINNV", "PATCH",
- "SAMPLE", "BUFFER", "NONUNIFORM", "COHERENT", "VOLATILE", "RESTRICT",
- "READONLY", "WRITEONLY", "DEVICECOHERENT", "QUEUEFAMILYCOHERENT",
+ "F16IMAGE2DMSARRAY", "TEXTURECUBEARRAY", "ITEXTURECUBEARRAY",
+ "UTEXTURECUBEARRAY", "TEXTURE1D", "ITEXTURE1D", "UTEXTURE1D",
+ "TEXTURE1DARRAY", "ITEXTURE1DARRAY", "UTEXTURE1DARRAY", "TEXTURE2DRECT",
+ "ITEXTURE2DRECT", "UTEXTURE2DRECT", "TEXTUREBUFFER", "ITEXTUREBUFFER",
+ "UTEXTUREBUFFER", "TEXTURE2DMS", "ITEXTURE2DMS", "UTEXTURE2DMS",
+ "TEXTURE2DMSARRAY", "ITEXTURE2DMSARRAY", "UTEXTURE2DMSARRAY",
+ "F16TEXTURE1D", "F16TEXTURE2D", "F16TEXTURE3D", "F16TEXTURE2DRECT",
+ "F16TEXTURECUBE", "F16TEXTURE1DARRAY", "F16TEXTURE2DARRAY",
+ "F16TEXTURECUBEARRAY", "F16TEXTUREBUFFER", "F16TEXTURE2DMS",
+ "F16TEXTURE2DMSARRAY", "SUBPASSINPUT", "SUBPASSINPUTMS", "ISUBPASSINPUT",
+ "ISUBPASSINPUTMS", "USUBPASSINPUT", "USUBPASSINPUTMS", "F16SUBPASSINPUT",
+ "F16SUBPASSINPUTMS", "LEFT_OP", "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP",
+ "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN",
+ "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN",
+ "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "SUB_ASSIGN", "LEFT_PAREN",
+ "RIGHT_PAREN", "LEFT_BRACKET", "RIGHT_BRACKET", "LEFT_BRACE",
+ "RIGHT_BRACE", "DOT", "COMMA", "COLON", "EQUAL", "SEMICOLON", "BANG",
+ "DASH", "TILDE", "PLUS", "STAR", "SLASH", "PERCENT", "LEFT_ANGLE",
+ "RIGHT_ANGLE", "VERTICAL_BAR", "CARET", "AMPERSAND", "QUESTION",
+ "INVARIANT", "HIGH_PRECISION", "MEDIUM_PRECISION", "LOW_PRECISION",
+ "PRECISION", "PACKED", "RESOURCE", "SUPERP", "FLOATCONSTANT",
+ "INTCONSTANT", "UINTCONSTANT", "BOOLCONSTANT", "IDENTIFIER", "TYPE_NAME",
+ "CENTROID", "IN", "OUT", "INOUT", "STRUCT", "VOID", "WHILE", "BREAK",
+ "CONTINUE", "DO", "ELSE", "FOR", "IF", "DISCARD", "RETURN", "SWITCH",
+ "CASE", "DEFAULT", "UNIFORM", "SHARED", "BUFFER", "FLAT", "SMOOTH",
+ "LAYOUT", "DOUBLECONSTANT", "INT16CONSTANT", "UINT16CONSTANT",
+ "FLOAT16CONSTANT", "INT32CONSTANT", "UINT32CONSTANT", "INT64CONSTANT",
+ "UINT64CONSTANT", "SUBROUTINE", "DEMOTE", "PAYLOADNV", "PAYLOADINNV",
+ "HITATTRNV", "CALLDATANV", "CALLDATAINNV", "PATCH", "SAMPLE",
+ "NONUNIFORM", "COHERENT", "VOLATILE", "RESTRICT", "READONLY",
+ "WRITEONLY", "DEVICECOHERENT", "QUEUEFAMILYCOHERENT",
"WORKGROUPCOHERENT", "SUBGROUPCOHERENT", "NONPRIVATE", "NOPERSPECTIVE",
"EXPLICITINTERPAMD", "PERVERTEXNV", "PERPRIMITIVENV", "PERVIEWNV",
"PERTASKNV", "PRECISE", "$accept", "variable_identifier",
@@ -1189,10 +1189,10 @@ static const yytype_uint16 yytoknum[] =
};
# endif
-#define YYPACT_NINF -367
+#define YYPACT_NINF -453
#define yypact_value_is_default(Yystate) \
- (!!((Yystate) == (-367)))
+ (!!((Yystate) == (-453)))
#define YYTABLE_NINF -528
@@ -1203,79 +1203,79 @@ static const yytype_uint16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 3994, -367, -367, -367, -367, -367, -367, -367, -367, -367,
- -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
- -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
- -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
- -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
- -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
- -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
- -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
- -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
- -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
- -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
- -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
- -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
- -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
- -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
- -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
- -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
- -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
- -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
- -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
- -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
- -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
- -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
- -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
- -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
- -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
- -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
- -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
- -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
- -367, -367, -367, -367, -367, -367, -13, -367, -367, -367,
- -367, -367, 13, -367, -367, -367, -367, -367, 28, 40,
- -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
- -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
- -367, -367, -367, -367, -367, -367, -367, -2, -1, 88,
- 98, 6034, 116, -367, 74, -367, -367, -367, -367, 4402,
- -367, -367, -367, -367, 104, -367, -367, 730, -367, -367,
- 11, -367, 136, -25, 111, -367, 8, -367, 147, -367,
- 6034, -367, -367, -367, 6034, 139, 140, -367, 61, -367,
- 78, -367, -367, 8391, 155, -367, -367, -367, 149, 6034,
- -367, 152, -367, -309, -367, -367, 80, 6831, -367, 27,
- 1138, -367, -367, -367, -367, 155, 53, -367, 7221, 69,
- -367, 141, -367, 117, 8391, 8391, 8391, -367, -367, -367,
- -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
- -367, -367, -367, -367, -367, -367, 77, -367, -367, -367,
- 164, 89, 8781, 172, -367, 8391, -367, -367, -320, 176,
- -367, 6034, 143, 4810, -367, 6034, 8391, -367, -25, -367,
- 145, -367, -367, 138, 144, -231, 23, 65, 158, 153,
- 162, 196, 197, 16, 182, 7611, -367, 185, 183, -367,
- -367, 189, 180, 181, -367, 195, 198, 186, 8001, 200,
- 8391, 199, 187, 122, -367, -367, 123, -367, -1, 203,
- 204, -367, -367, -367, -367, -367, 1546, -367, -367, -367,
- -367, -367, -367, -367, -367, -367, -353, 176, 7221, 71,
- 7221, -367, -367, 7221, 6034, -367, 169, -367, -367, -367,
- 91, -367, -367, 8391, 170, -367, -367, 8391, 207, -367,
- -367, -367, 8391, -367, 143, 155, 125, -367, -367, -367,
- 5218, -367, -367, -367, -367, 8391, 8391, 8391, 8391, 8391,
+ 3994, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+ -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+ -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+ -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+ -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+ -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+ -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+ -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+ -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+ -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+ -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+ -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+ -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+ -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+ -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+ -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+ -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+ -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+ -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+ -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+ -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+ -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+ -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+ -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+ -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+ -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+ -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+ -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+ -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+ -453, -453, -453, -453, -453, -453, 97, -453, -453, -453,
+ -453, -453, 6, -453, -453, -453, -453, -453, -453, -307,
+ -241, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+ -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+ -453, -453, -453, -453, -453, -453, -453, -3, 95, 36,
+ 125, 6034, 82, -453, -22, -453, -453, -453, -453, 4402,
+ -453, -453, -453, -453, 131, -453, -453, 730, -453, -453,
+ 11, -453, 153, -28, 127, -453, 7, -453, 157, -453,
+ 6034, -453, -453, -453, 6034, 129, 134, -453, 13, -453,
+ 73, -453, -453, 8391, 162, -453, -453, -453, 161, 6034,
+ -453, 163, -453, -309, -453, -453, 27, 6831, -453, 16,
+ 1138, -453, -453, -453, -453, 162, 23, -453, 7221, 49,
+ -453, 138, -453, 87, 8391, 8391, 8391, -453, -453, -453,
+ -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+ -453, -453, -453, -453, -453, -453, 68, -453, -453, -453,
+ 174, 60, 8781, 176, -453, 8391, -453, -453, -320, 175,
+ -453, 6034, 142, 4810, -453, 6034, 8391, -453, -28, -453,
+ 143, -453, -453, 119, 128, 32, 21, 38, 158, 160,
+ 165, 195, 194, 18, 183, 7611, -453, 185, 184, -453,
+ -453, 188, 180, 181, -453, 196, 197, 190, 8001, 198,
+ 8391, 187, 193, 122, -453, -453, 91, -453, 95, 204,
+ 205, -453, -453, -453, -453, -453, 1546, -453, -453, -453,
+ -453, -453, -453, -453, -453, -453, -353, 175, 7221, 69,
+ 7221, -453, -453, 7221, 6034, -453, 170, -453, -453, -453,
+ 78, -453, -453, 8391, 171, -453, -453, 8391, 207, -453,
+ -453, -453, 8391, -453, 142, 162, 93, -453, -453, -453,
+ 5218, -453, -453, -453, -453, 8391, 8391, 8391, 8391, 8391,
8391, 8391, 8391, 8391, 8391, 8391, 8391, 8391, 8391, 8391,
- 8391, 8391, 8391, 8391, -367, -367, -367, 206, 177, -367,
- 1954, -367, -367, -367, 1954, -367, 8391, -367, -367, 135,
- 8391, 60, -367, -367, -367, -367, -367, -367, -367, -367,
- -367, -367, -367, -367, -367, 8391, 8391, -367, -367, -367,
- -367, -367, -367, -367, 7221, -367, 129, -367, 5626, -367,
- -367, 209, 208, -367, -367, -367, 142, 176, 143, -367,
- -367, -367, -367, -367, 138, 138, 144, 144, -231, -231,
- -231, -231, 23, 23, 65, 158, 153, 162, 196, 197,
- 8391, -367, 214, -314, -367, 1954, 3586, 173, 3178, 93,
- -367, 96, -367, -367, -367, -367, -367, 6441, -367, -367,
- -367, -367, 121, 8391, 213, 177, 215, 208, 188, 6034,
- 217, 221, -367, -367, 3586, 218, -367, -367, -367, 8391,
- 222, -367, -367, -367, 216, 2362, 8391, -367, 219, 226,
- 190, 224, 2770, -367, 227, -367, -367, 7221, -367, -367,
- -367, 100, 8391, 2362, 218, -367, -367, 1954, -367, 220,
- 208, -367, -367, 1954, 228, -367, -367
+ 8391, 8391, 8391, 8391, -453, -453, -453, 206, 177, -453,
+ 1954, -453, -453, -453, 1954, -453, 8391, -453, -453, 100,
+ 8391, 144, -453, -453, -453, -453, -453, -453, -453, -453,
+ -453, -453, -453, -453, -453, 8391, 8391, -453, -453, -453,
+ -453, -453, -453, -453, 7221, -453, 140, -453, 5626, -453,
+ -453, 209, 208, -453, -453, -453, 123, 175, 142, -453,
+ -453, -453, -453, -453, 119, 119, 128, 128, 32, 32,
+ 32, 32, 21, 21, 38, 158, 160, 165, 195, 194,
+ 8391, -453, 214, 56, -453, 1954, 3586, 172, 3178, 80,
+ -453, 81, -453, -453, -453, -453, -453, 6441, -453, -453,
+ -453, -453, 146, 8391, 215, 177, 212, 208, 186, 6034,
+ 219, 221, -453, -453, 3586, 220, -453, -453, -453, 8391,
+ 222, -453, -453, -453, 216, 2362, 8391, -453, 217, 227,
+ 182, 225, 2770, -453, 229, -453, -453, 7221, -453, -453,
+ -453, 89, 8391, 2362, 220, -453, -453, 1954, -453, 224,
+ 208, -453, -453, 1954, 226, -453, -453
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -1286,8 +1286,9 @@ static const yytype_uint16 yydefact[] =
0, 156, 203, 201, 202, 200, 207, 208, 209, 210,
211, 212, 213, 214, 215, 204, 205, 206, 216, 217,
218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
- 327, 328, 329, 330, 331, 335, 336, 353, 354, 355,
- 357, 360, 361, 362, 364, 337, 338, 358, 365, 164,
+ 327, 328, 329, 330, 331, 332, 333, 353, 354, 355,
+ 356, 357, 358, 359, 368, 381, 382, 369, 370, 372,
+ 371, 373, 374, 375, 376, 377, 378, 379, 380, 164,
165, 229, 230, 228, 231, 238, 239, 236, 237, 234,
235, 232, 233, 261, 262, 263, 273, 274, 275, 258,
259, 260, 270, 271, 272, 255, 256, 257, 267, 268,
@@ -1298,23 +1299,22 @@ static const yytype_uint16 yydefact[] =
291, 292, 293, 294, 295, 296, 297, 298, 299, 303,
304, 305, 306, 307, 308, 309, 310, 311, 315, 316,
317, 318, 319, 320, 321, 322, 323, 325, 324, 484,
- 485, 486, 326, 333, 334, 352, 332, 366, 367, 370,
- 371, 372, 374, 375, 376, 378, 379, 380, 382, 383,
- 474, 475, 356, 359, 363, 339, 340, 341, 368, 342,
- 346, 347, 350, 373, 377, 381, 343, 344, 348, 349,
- 369, 345, 351, 430, 432, 433, 434, 436, 437, 438,
- 440, 441, 442, 444, 445, 446, 448, 449, 450, 452,
- 453, 454, 456, 457, 458, 460, 461, 462, 464, 465,
- 466, 468, 469, 470, 472, 473, 431, 435, 439, 443,
- 447, 455, 459, 463, 451, 467, 471, 384, 385, 386,
- 388, 390, 392, 394, 396, 400, 401, 402, 403, 404,
- 405, 407, 408, 409, 410, 411, 412, 414, 416, 417,
- 418, 420, 421, 398, 406, 413, 422, 424, 425, 426,
- 428, 429, 387, 389, 391, 415, 393, 395, 397, 399,
+ 485, 486, 337, 338, 361, 364, 326, 335, 336, 352,
+ 334, 383, 384, 387, 388, 389, 391, 392, 393, 395,
+ 396, 397, 399, 400, 474, 475, 360, 362, 363, 339,
+ 340, 341, 385, 342, 346, 347, 350, 390, 394, 398,
+ 343, 344, 348, 349, 386, 345, 351, 430, 432, 433,
+ 434, 436, 437, 438, 440, 441, 442, 444, 445, 446,
+ 448, 449, 450, 452, 453, 454, 456, 457, 458, 460,
+ 461, 462, 464, 465, 466, 468, 469, 470, 472, 473,
+ 431, 435, 439, 443, 447, 455, 459, 463, 451, 467,
+ 471, 365, 366, 367, 401, 410, 412, 406, 411, 413,
+ 414, 416, 417, 418, 420, 421, 422, 424, 425, 426,
+ 428, 429, 402, 403, 404, 415, 405, 407, 408, 409,
419, 423, 427, 476, 477, 480, 481, 482, 483, 478,
479, 575, 131, 489, 490, 491, 0, 488, 160, 158,
- 159, 157, 0, 199, 161, 162, 133, 132, 0, 183,
- 169, 170, 168, 171, 172, 166, 167, 163, 185, 173,
+ 159, 157, 0, 199, 161, 162, 163, 133, 132, 0,
+ 183, 169, 170, 168, 171, 172, 166, 167, 185, 173,
179, 180, 181, 182, 174, 175, 176, 177, 178, 134,
135, 136, 137, 138, 139, 146, 574, 0, 576, 0,
108, 107, 0, 119, 124, 153, 152, 150, 154, 0,
@@ -1361,17 +1361,17 @@ static const yytype_uint16 yydefact[] =
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -367, -367, -367, -367, -367, -367, -367, -367, -367, -367,
- -367, -367, 8696, -367, -81, -78, -225, -82, -20, -18,
- -21, -17, -19, -16, -367, -85, -367, -98, -367, -110,
- -118, 2, -367, -367, -367, 4, -367, -367, -367, 184,
- 191, 192, -367, -367, -339, -367, -367, -367, -367, 102,
- -367, -37, -44, -367, 9, -367, 0, -71, -367, -367,
- -367, -367, 260, -367, -367, -367, -136, -137, 18, -65,
- -209, -367, -94, -198, -366, -367, -134, -367, -367, -148,
- -146, -367, -367, 202, -265, -87, -367, 56, -367, -111,
- -367, 59, -367, -367, -367, -367, 62, -367, -367, -367,
- -367, -367, -367, -367, -367, 225, -367, -367, -367, -367,
+ -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
+ -453, -453, 8696, -453, -89, -88, -122, -84, -19, -18,
+ -17, -16, -20, -15, -453, -85, -453, -98, -453, -110,
+ -119, 2, -453, -453, -453, 4, -453, -453, -453, 189,
+ 191, 192, -453, -453, -339, -453, -453, -453, -453, 98,
+ -453, -37, -44, -453, 9, -453, 0, -71, -453, -453,
+ -453, -453, 261, -453, -453, -453, -452, -137, 20, -68,
+ -209, -453, -96, -198, -326, -453, -136, -453, -453, -146,
+ -144, -453, -453, 200, -265, -87, -453, 57, -453, -112,
+ -453, 59, -453, -453, -453, -453, 61, -453, -453, -453,
+ -453, -453, -453, -453, -453, 228, -453, -453, -453, -453,
-99
};
@@ -1397,14 +1397,14 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 353, 542, 336, 674, 338, 481, 457, 675, 484, 352,
+ 353, 542, 336, 550, 338, 481, 457, 363, 484, 352,
485, 486, 458, 543, 489, 2, 3, 4, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 560, 561, 51, 52, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
+ 57, 58, 618, 364, 61, 62, 63, 64, 65, 66,
67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
@@ -1428,34 +1428,34 @@ static const yytype_int16 yytable[] =
267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
287, 288, 289, 290, 374, 381, 530, 409, 609, 613,
- 521, 615, 474, 449, 617, 655, 549, 678, 573, 550,
- 562, 563, 365, 367, 397, 391, 293, 294, 295, 708,
- 381, 361, 398, 374, 517, 519, 716, 638, 639, 640,
- 641, 375, 363, 475, 539, 678, 392, 708, 366, 382,
- 352, 476, 451, 574, 364, 564, 565, 353, 352, 336,
- 388, 338, 297, 362, 566, 567, 352, 302, 303, 397,
- 375, 551, 531, 532, 375, 407, 518, 397, 589, 352,
- 591, 606, 662, 352, 408, 475, 657, 475, 618, 452,
- 577, -34, 523, 533, 614, 459, 410, 534, 352, 411,
- 500, 460, 412, 369, 536, 665, 620, 381, 685, 499,
- 537, 686, 606, 549, 606, 719, 451, 606, 451, 370,
- 521, 606, 521, 622, 378, 521, 594, 595, 596, 597,
- 598, 599, 600, 601, 602, 603, 383, 376, 526, 624,
- 377, 527, 606, 689, 606, 604, 628, 607, 666, 629,
- 667, 544, 723, 452, 390, 452, 606, 609, 688, 660,
- 352, 395, 352, 628, 352, 400, 670, 555, 556, 557,
- 558, 397, 559, 450, 627, 456, 659, 634, 635, 535,
- 661, 549, 636, 637, 642, 643, 540, 451, 569, 405,
- 406, 525, 475, 545, 568, 554, 570, 571, 718, 575,
- 572, 578, 579, 581, 582, 583, 500, 663, 664, 585,
- 587, 593, 586, 451, 590, 499, 521, -35, -33, 619,
- 623, 592, -28, 651, 452, 609, 669, 652, 673, 606,
- 691, 681, 695, 352, 693, 696, -527, 706, 694, 707,
- 672, 713, 478, 712, 725, 717, 677, 726, 644, 646,
- 452, 645, 714, 648, 647, 690, 360, 649, 403, 352,
- 553, 402, 626, 671, 682, 721, 404, 715, 722, 521,
- 401, 683, 610, 697, 677, 611, 692, 0, 612, 0,
- 500, 451, 387, 0, 500, 0, 711, 0, 551, 499,
+ 521, 615, 474, 449, 617, 655, 549, 678, 562, 563,
+ 573, 365, 391, 397, 361, 560, 561, 407, 378, 397,
+ 381, 398, 475, 374, 517, 519, 408, 566, 567, 397,
+ 476, 375, 459, 392, 539, 678, 518, 366, 460, 382,
+ 352, 369, 451, 564, 565, 574, 362, 353, 352, 336,
+ 388, 338, 297, 531, 532, 475, 352, 302, 303, 708,
+ 375, 551, 523, 674, 375, 536, 716, 675, 589, 352,
+ 591, 537, -34, 352, 533, 475, 657, 708, 534, 452,
+ 577, 410, 614, 620, 411, 685, 686, 412, 352, 606,
+ 500, 606, 606, 376, 719, 665, 377, 381, 526, 499,
+ 606, 527, 606, 549, 628, 607, 451, 629, 451, 367,
+ 521, 606, 521, 622, 660, 521, 594, 595, 596, 597,
+ 598, 599, 600, 601, 602, 603, 293, 294, 295, 624,
+ 638, 639, 640, 641, 628, 604, 370, 670, 555, 556,
+ 557, 544, 723, 452, 558, 452, 559, 609, 688, 666,
+ 352, 667, 352, 383, 352, 606, 662, 606, 689, 634,
+ 635, 390, 636, 637, 627, 400, 659, 395, 397, 405,
+ 661, 549, 642, 643, 406, 450, 456, 451, 525, 535,
+ 540, 475, 545, 554, 568, 569, 571, 572, 718, 570,
+ 575, 578, 581, 579, 582, 583, 500, 663, 664, 592,
+ 585, 586, 590, 451, 587, 499, 521, 593, -35, -33,
+ 619, 623, -28, 651, 452, 609, 669, 652, 673, 606,
+ 681, 693, 691, 352, 695, 696, 694, 706, -527, 707,
+ 672, 712, 713, 478, 714, 726, 677, 717, 725, 644,
+ 452, 645, 648, 646, 690, 647, 553, 360, 649, 352,
+ 671, 402, 682, 403, 626, 715, 404, 721, 401, 521,
+ 722, 683, 697, 610, 677, 611, 692, 612, 0, 0,
+ 500, 451, 0, 0, 500, 387, 711, 0, 551, 499,
0, 705, 0, 499, 0, 0, 0, 0, 0, 0,
0, 0, 720, 0, 0, 0, 0, 0, 0, 521,
0, 0, 0, 0, 0, 0, 0, 0, 452, 679,
@@ -1507,8 +1507,8 @@ static const yytype_int16 yytable[] =
294, 295, 296, 0, 0, 0, 0, 0, 0, 0,
0, 297, 298, 299, 300, 301, 302, 303, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 304, 305, 306, 307, 308, 0, 0, 0, 0, 0,
- 0, 0, 0, 309, 0, 310, 311, 312, 313, 314,
+ 304, 305, 306, 307, 308, 309, 0, 0, 0, 0,
+ 0, 0, 0, 0, 310, 0, 311, 312, 313, 314,
315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
335, 1, 2, 3, 4, 5, 6, 7, 8, 9,
@@ -1548,8 +1548,8 @@ static const yytype_int16 yytable[] =
296, 0, 0, 0, 421, 422, 423, 424, 425, 297,
298, 299, 300, 301, 302, 303, 481, 482, 483, 484,
0, 485, 486, 487, 488, 489, 490, 491, 304, 305,
- 306, 307, 308, 426, 427, 428, 429, 430, 431, 432,
- 433, 309, 492, 310, 311, 312, 313, 314, 315, 316,
+ 306, 307, 308, 309, 426, 427, 428, 429, 430, 431,
+ 432, 433, 310, 492, 311, 312, 313, 314, 315, 316,
317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
327, 328, 329, 330, 331, 332, 333, 334, 335, 1,
2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
@@ -1589,8 +1589,8 @@ static const yytype_int16 yytable[] =
0, 0, 421, 422, 423, 424, 425, 297, 298, 299,
300, 301, 302, 303, 481, 482, 483, 484, 0, 485,
486, 487, 488, 489, 490, 491, 304, 305, 306, 307,
- 308, 426, 427, 428, 429, 430, 431, 432, 433, 309,
- 492, 310, 311, 312, 313, 314, 315, 316, 317, 318,
+ 308, 309, 426, 427, 428, 429, 430, 431, 432, 433,
+ 310, 492, 311, 312, 313, 314, 315, 316, 317, 318,
319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
329, 330, 331, 332, 333, 334, 335, 1, 2, 3,
4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
@@ -1629,8 +1629,8 @@ static const yytype_int16 yytable[] =
0, 0, 292, 293, 294, 295, 296, 0, 0, 0,
421, 422, 423, 424, 425, 297, 298, 299, 300, 301,
302, 303, 481, 482, 483, 484, 0, 485, 486, 487,
- 488, 489, 490, 491, 304, 305, 306, 307, 308, 426,
- 427, 428, 429, 430, 431, 432, 433, 309, 492, 310,
+ 488, 489, 490, 491, 304, 305, 306, 307, 308, 309,
+ 426, 427, 428, 429, 430, 431, 432, 433, 310, 492,
311, 312, 313, 314, 315, 316, 317, 318, 319, 320,
321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
331, 332, 333, 334, 335, 1, 2, 3, 4, 5,
@@ -1670,8 +1670,8 @@ static const yytype_int16 yytable[] =
292, 293, 294, 295, 296, 0, 0, 0, 421, 422,
423, 424, 425, 297, 298, 299, 300, 301, 302, 303,
481, 482, 483, 484, 0, 485, 486, 487, 488, 489,
- 490, 491, 304, 305, 306, 307, 308, 426, 427, 428,
- 429, 430, 431, 432, 433, 309, 492, 310, 311, 312,
+ 490, 491, 304, 305, 306, 307, 308, 309, 426, 427,
+ 428, 429, 430, 431, 432, 433, 310, 492, 311, 312,
313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
333, 334, 335, 1, 2, 3, 4, 5, 6, 7,
@@ -1711,8 +1711,8 @@ static const yytype_int16 yytable[] =
294, 295, 296, 0, 0, 0, 421, 422, 423, 424,
425, 297, 298, 299, 300, 301, 302, 303, 481, 482,
483, 484, 0, 485, 486, 487, 488, 489, 490, 491,
- 304, 305, 306, 307, 308, 426, 427, 428, 429, 430,
- 431, 432, 433, 309, 492, 310, 311, 312, 313, 314,
+ 304, 305, 306, 307, 308, 309, 426, 427, 428, 429,
+ 430, 431, 432, 433, 310, 492, 311, 312, 313, 314,
315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
335, 1, 2, 3, 4, 5, 6, 7, 8, 9,
@@ -1752,8 +1752,8 @@ static const yytype_int16 yytable[] =
296, 0, 0, 0, 421, 422, 423, 424, 425, 297,
298, 299, 300, 301, 302, 303, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 304, 305,
- 306, 307, 308, 426, 427, 428, 429, 430, 431, 432,
- 433, 309, 0, 310, 311, 312, 313, 314, 315, 316,
+ 306, 307, 308, 309, 426, 427, 428, 429, 430, 431,
+ 432, 433, 310, 0, 311, 312, 313, 314, 315, 316,
317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
327, 328, 329, 330, 331, 332, 333, 334, 335, 1,
2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
@@ -1793,8 +1793,8 @@ static const yytype_int16 yytable[] =
0, 0, 421, 422, 423, 424, 425, 297, 298, 299,
300, 301, 302, 303, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 304, 305, 306, 307,
- 308, 426, 427, 428, 429, 430, 431, 432, 433, 309,
- 0, 310, 311, 312, 313, 314, 315, 316, 317, 318,
+ 308, 309, 426, 427, 428, 429, 430, 431, 432, 433,
+ 310, 0, 311, 312, 313, 314, 315, 316, 317, 318,
319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
329, 330, 331, 332, 333, 334, 335, 1, 2, 3,
4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
@@ -1833,8 +1833,8 @@ static const yytype_int16 yytable[] =
0, 0, 292, 293, 294, 295, 296, 0, 0, 0,
0, 0, 0, 0, 0, 297, 298, 299, 300, 301,
302, 303, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 304, 305, 306, 307, 308, 0,
- 0, 0, 0, 0, 0, 0, 0, 309, 0, 310,
+ 0, 0, 0, 0, 304, 305, 306, 307, 308, 309,
+ 0, 0, 0, 0, 0, 0, 0, 0, 310, 0,
311, 312, 313, 314, 315, 316, 317, 318, 319, 320,
321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
331, 332, 333, 334, 335, 1, 2, 3, 4, 5,
@@ -1874,8 +1874,8 @@ static const yytype_int16 yytable[] =
292, 293, 294, 295, 0, 0, 0, 0, 0, 0,
0, 0, 380, 297, 298, 299, 300, 301, 302, 303,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 304, 305, 306, 307, 308, 0, 0, 0,
- 0, 0, 0, 0, 0, 309, 0, 310, 311, 312,
+ 0, 0, 304, 305, 306, 307, 308, 309, 0, 0,
+ 0, 0, 0, 0, 0, 0, 310, 0, 311, 312,
313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
333, 334, 335, 1, 2, 3, 4, 5, 6, 7,
@@ -1915,8 +1915,8 @@ static const yytype_int16 yytable[] =
294, 295, 0, 0, 0, 0, 0, 0, 0, 0,
0, 297, 298, 299, 300, 301, 302, 303, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 304, 305, 306, 307, 308, 0, 0, 0, 0, 0,
- 0, 0, 0, 309, 0, 310, 311, 312, 313, 314,
+ 304, 305, 306, 307, 308, 309, 0, 0, 0, 0,
+ 0, 0, 0, 0, 310, 0, 311, 312, 313, 314,
315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
335, 1, 2, 3, 4, 5, 6, 7, 8, 9,
@@ -1956,8 +1956,8 @@ static const yytype_int16 yytable[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 297,
298, 299, 300, 301, 302, 303, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 304, 305,
- 306, 307, 308, 0, 0, 0, 0, 0, 0, 0,
- 0, 309, 0, 310, 311, 312, 313, 314, 315, 316,
+ 306, 307, 308, 309, 0, 0, 0, 0, 0, 0,
+ 0, 0, 310, 0, 311, 312, 313, 314, 315, 316,
317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
327, 328, 329, 330, 331, 332, 333, 334, 335, 1,
2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
@@ -1997,8 +1997,8 @@ static const yytype_int16 yytable[] =
0, 0, 0, 0, 0, 0, 0, 297, 298, 299,
300, 301, 302, 303, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 304, 305, 306, 307,
- 308, 0, 0, 0, 0, 0, 0, 0, 0, 309,
- 0, 310, 311, 312, 313, 314, 315, 316, 317, 318,
+ 308, 309, 0, 0, 0, 0, 0, 0, 0, 0,
+ 310, 0, 311, 312, 313, 314, 315, 316, 317, 318,
319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
329, 330, 331, 332, 333, 334, 335, 1, 2, 3,
4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
@@ -2037,8 +2037,8 @@ static const yytype_int16 yytable[] =
0, 0, 292, 293, 294, 295, 0, 0, 0, 0,
0, 0, 0, 0, 0, 297, 298, 299, 300, 301,
302, 303, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 304, 305, 306, 307, 308, 0,
- 0, 0, 0, 0, 0, 0, 0, 309, 0, 310,
+ 0, 0, 0, 0, 304, 305, 306, 307, 308, 309,
+ 0, 0, 0, 0, 0, 0, 0, 0, 310, 0,
311, 312, 313, 314, 315, 316, 317, 318, 319, 320,
321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
331, 332, 333, 334, 335, 2, 3, 4, 5, 6,
@@ -2046,8 +2046,8 @@ static const yytype_int16 yytable[] =
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 0, 0, 51, 52, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
+ 57, 58, 0, 0, 61, 62, 63, 64, 65, 66,
67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
@@ -2078,15 +2078,15 @@ static const yytype_int16 yytable[] =
0, 0, 0, 0, 0, 0, 0, 421, 422, 423,
424, 425, 297, 0, 0, 0, 0, 302, 303, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 426, 427, 428, 429,
- 430, 431, 432, 433, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 426, 427, 428,
+ 429, 430, 431, 432, 433, 0, 0, 0, 0, 0,
0, 0, 0, 0, 318, 2, 3, 4, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 0, 0, 51, 52, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
+ 57, 58, 0, 0, 61, 62, 63, 64, 65, 66,
67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
@@ -2117,15 +2117,15 @@ static const yytype_int16 yytable[] =
0, 0, 0, 0, 0, 0, 0, 421, 422, 423,
424, 425, 297, 0, 0, 0, 0, 302, 303, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 426, 427, 428, 429,
- 430, 431, 432, 433, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 426, 427, 428,
+ 429, 430, 431, 432, 433, 0, 0, 0, 0, 0,
0, 0, 0, 0, 318, 2, 3, 4, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 0, 0, 51, 52, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
+ 57, 58, 0, 0, 61, 62, 63, 64, 65, 66,
67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
@@ -2156,15 +2156,15 @@ static const yytype_int16 yytable[] =
0, 0, 0, 0, 0, 0, 0, 421, 422, 423,
424, 425, 297, 0, 0, 0, 0, 302, 303, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 426, 427, 428, 429,
- 430, 431, 432, 433, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 426, 427, 428,
+ 429, 430, 431, 432, 433, 0, 0, 0, 0, 0,
0, 0, 0, 0, 318, 2, 3, 4, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 0, 0, 51, 52, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
+ 57, 58, 0, 0, 61, 62, 63, 64, 65, 66,
67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
@@ -2195,15 +2195,15 @@ static const yytype_int16 yytable[] =
0, 0, 0, 0, 0, 0, 0, 421, 422, 423,
424, 425, 297, 0, 0, 0, 0, 302, 303, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 426, 427, 428, 429,
- 430, 431, 432, 433, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 426, 427, 428,
+ 429, 430, 431, 432, 433, 0, 0, 0, 0, 0,
0, 0, 0, 0, 318, 2, 3, 4, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 0, 0, 51, 52, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
+ 57, 58, 0, 0, 61, 62, 63, 64, 65, 66,
67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
@@ -2234,15 +2234,15 @@ static const yytype_int16 yytable[] =
0, 0, 0, 0, 0, 0, 0, 421, 422, 423,
424, 425, 297, 0, 0, 0, 0, 302, 303, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 426, 427, 428, 429,
- 430, 431, 432, 433, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 426, 427, 428,
+ 429, 430, 431, 432, 433, 0, 0, 0, 0, 0,
0, 0, 0, 0, 318, 2, 3, 4, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 0, 0, 51, 52, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
+ 57, 58, 0, 0, 61, 62, 63, 64, 65, 66,
67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
@@ -2273,15 +2273,15 @@ static const yytype_int16 yytable[] =
0, 0, 0, 0, 0, 0, 0, 421, 422, 423,
424, 425, 297, 0, 0, 0, 0, 302, 303, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 426, 427, 428, 429,
- 430, 431, 432, 433, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 426, 427, 428,
+ 429, 430, 431, 432, 433, 0, 0, 0, 0, 0,
0, 0, 0, 0, 318, 2, 3, 4, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 0, 0, 51, 52, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
+ 57, 58, 0, 0, 61, 62, 63, 64, 65, 66,
67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
@@ -2312,8 +2312,8 @@ static const yytype_int16 yytable[] =
0, 0, 0, 0, 0, 0, 0, 421, 422, 423,
424, 425, 297, 0, 0, 0, 0, 302, 538, 0,
0, 541, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 462, 0, 0, 0, 426, 427, 428, 429,
- 430, 431, 432, 433, 0, 0, 0, 0, 0, 0,
+ 0, 0, 462, 0, 0, 0, 0, 426, 427, 428,
+ 429, 430, 431, 432, 433, 0, 0, 0, 0, 0,
0, 462, 0, 0, 318, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -2338,14 +2338,14 @@ static const yytype_int16 yytable[] =
static const yytype_int16 yycheck[] =
{
- 0, 321, 0, 317, 0, 358, 315, 321, 361, 0,
+ 0, 321, 0, 455, 0, 358, 315, 314, 361, 0,
363, 364, 321, 333, 367, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, 293, 294, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
+ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, 524, 314, 63, 64, 65, 66, 67, 68,
69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
@@ -2369,34 +2369,34 @@ static const yytype_int16 yycheck[] =
269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
289, 290, 291, 292, 341, 349, 416, 378, 506, 518,
- 408, 520, 397, 384, 523, 580, 453, 656, 302, 455,
- 297, 298, 324, 324, 316, 350, 339, 340, 341, 695,
- 374, 318, 324, 370, 405, 406, 702, 562, 563, 564,
- 565, 341, 314, 316, 442, 684, 371, 713, 350, 349,
- 341, 324, 389, 337, 314, 332, 333, 357, 349, 357,
- 360, 357, 351, 350, 299, 300, 357, 356, 357, 316,
- 370, 456, 295, 296, 374, 314, 323, 316, 488, 370,
- 490, 321, 322, 374, 323, 316, 584, 316, 524, 389,
- 475, 314, 323, 316, 323, 315, 318, 320, 389, 321,
- 400, 321, 324, 315, 315, 614, 315, 451, 315, 400,
- 321, 315, 321, 550, 321, 315, 453, 321, 455, 321,
- 518, 321, 520, 533, 350, 523, 304, 305, 306, 307,
- 308, 309, 310, 311, 312, 313, 332, 321, 321, 537,
- 324, 324, 321, 322, 321, 323, 321, 324, 319, 324,
- 321, 451, 717, 453, 318, 455, 321, 655, 667, 324,
- 451, 350, 453, 321, 455, 318, 324, 329, 330, 331,
- 326, 316, 328, 324, 545, 323, 586, 558, 559, 315,
- 590, 618, 560, 561, 566, 567, 314, 524, 335, 350,
- 350, 350, 316, 350, 336, 350, 334, 301, 707, 317,
- 303, 316, 319, 314, 324, 324, 506, 605, 606, 314,
- 324, 324, 314, 550, 314, 506, 614, 314, 314, 350,
- 350, 322, 315, 317, 524, 723, 317, 350, 314, 321,
- 317, 358, 315, 524, 319, 314, 318, 315, 350, 323,
- 650, 315, 318, 324, 324, 318, 656, 319, 568, 570,
- 550, 569, 362, 572, 571, 673, 296, 573, 374, 550,
- 458, 370, 544, 628, 658, 713, 374, 701, 714, 667,
- 368, 658, 516, 684, 684, 516, 675, -1, 516, -1,
- 580, 618, 357, -1, 584, -1, 696, -1, 673, 580,
+ 408, 520, 397, 384, 523, 580, 453, 656, 297, 298,
+ 302, 324, 350, 316, 318, 293, 294, 314, 350, 316,
+ 374, 324, 316, 370, 405, 406, 323, 299, 300, 316,
+ 324, 341, 315, 371, 442, 684, 323, 350, 321, 349,
+ 341, 315, 389, 332, 333, 337, 350, 357, 349, 357,
+ 360, 357, 351, 295, 296, 316, 357, 356, 357, 695,
+ 370, 456, 323, 317, 374, 315, 702, 321, 488, 370,
+ 490, 321, 314, 374, 316, 316, 584, 713, 320, 389,
+ 475, 318, 323, 315, 321, 315, 315, 324, 389, 321,
+ 400, 321, 321, 321, 315, 614, 324, 451, 321, 400,
+ 321, 324, 321, 550, 321, 324, 453, 324, 455, 324,
+ 518, 321, 520, 533, 324, 523, 304, 305, 306, 307,
+ 308, 309, 310, 311, 312, 313, 339, 340, 341, 537,
+ 562, 563, 564, 565, 321, 323, 321, 324, 329, 330,
+ 331, 451, 717, 453, 326, 455, 328, 655, 667, 319,
+ 451, 321, 453, 332, 455, 321, 322, 321, 322, 558,
+ 559, 318, 560, 561, 545, 318, 586, 350, 316, 350,
+ 590, 618, 566, 567, 350, 324, 323, 524, 350, 315,
+ 314, 316, 350, 350, 336, 335, 301, 303, 707, 334,
+ 317, 316, 314, 319, 324, 324, 506, 605, 606, 322,
+ 314, 314, 314, 550, 324, 506, 614, 324, 314, 314,
+ 350, 350, 315, 317, 524, 723, 317, 350, 314, 321,
+ 358, 319, 317, 524, 315, 314, 350, 315, 318, 323,
+ 650, 324, 315, 318, 362, 319, 656, 318, 324, 568,
+ 550, 569, 572, 570, 673, 571, 458, 296, 573, 550,
+ 628, 370, 658, 374, 544, 701, 374, 713, 368, 667,
+ 714, 658, 684, 516, 684, 516, 675, 516, -1, -1,
+ 580, 618, -1, -1, 584, 357, 696, -1, 673, 580,
-1, 689, -1, 584, -1, -1, -1, -1, -1, -1,
-1, -1, 712, -1, -1, -1, -1, -1, -1, 707,
-1, -1, -1, -1, -1, -1, -1, -1, 618, 656,
@@ -2448,8 +2448,8 @@ static const yytype_int16 yycheck[] =
340, 341, 342, -1, -1, -1, -1, -1, -1, -1,
-1, 351, 352, 353, 354, 355, 356, 357, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 370, 371, 372, 373, 374, -1, -1, -1, -1, -1,
- -1, -1, -1, 383, -1, 385, 386, 387, 388, 389,
+ 370, 371, 372, 373, 374, 375, -1, -1, -1, -1,
+ -1, -1, -1, -1, 384, -1, 386, 387, 388, 389,
390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
410, 3, 4, 5, 6, 7, 8, 9, 10, 11,
@@ -2694,7 +2694,7 @@ static const yytype_int16 yycheck[] =
352, 353, 354, 355, 356, 357, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 370, 371,
372, 373, 374, 375, 376, 377, 378, 379, 380, 381,
- 382, 383, -1, 385, 386, 387, 388, 389, 390, 391,
+ 382, 383, 384, -1, 386, 387, 388, 389, 390, 391,
392, 393, 394, 395, 396, 397, 398, 399, 400, 401,
402, 403, 404, 405, 406, 407, 408, 409, 410, 3,
4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
@@ -2735,7 +2735,7 @@ static const yytype_int16 yycheck[] =
354, 355, 356, 357, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 370, 371, 372, 373,
374, 375, 376, 377, 378, 379, 380, 381, 382, 383,
- -1, 385, 386, 387, 388, 389, 390, 391, 392, 393,
+ 384, -1, 386, 387, 388, 389, 390, 391, 392, 393,
394, 395, 396, 397, 398, 399, 400, 401, 402, 403,
404, 405, 406, 407, 408, 409, 410, 3, 4, 5,
6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
@@ -2774,8 +2774,8 @@ static const yytype_int16 yycheck[] =
-1, -1, 338, 339, 340, 341, 342, -1, -1, -1,
-1, -1, -1, -1, -1, 351, 352, 353, 354, 355,
356, 357, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 370, 371, 372, 373, 374, -1,
- -1, -1, -1, -1, -1, -1, -1, 383, -1, 385,
+ -1, -1, -1, -1, 370, 371, 372, 373, 374, 375,
+ -1, -1, -1, -1, -1, -1, -1, -1, 384, -1,
386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
406, 407, 408, 409, 410, 3, 4, 5, 6, 7,
@@ -2815,8 +2815,8 @@ static const yytype_int16 yycheck[] =
338, 339, 340, 341, -1, -1, -1, -1, -1, -1,
-1, -1, 350, 351, 352, 353, 354, 355, 356, 357,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 370, 371, 372, 373, 374, -1, -1, -1,
- -1, -1, -1, -1, -1, 383, -1, 385, 386, 387,
+ -1, -1, 370, 371, 372, 373, 374, 375, -1, -1,
+ -1, -1, -1, -1, -1, -1, 384, -1, 386, 387,
388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
408, 409, 410, 3, 4, 5, 6, 7, 8, 9,
@@ -2856,8 +2856,8 @@ static const yytype_int16 yycheck[] =
340, 341, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 351, 352, 353, 354, 355, 356, 357, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 370, 371, 372, 373, 374, -1, -1, -1, -1, -1,
- -1, -1, -1, 383, -1, 385, 386, 387, 388, 389,
+ 370, 371, 372, 373, 374, 375, -1, -1, -1, -1,
+ -1, -1, -1, -1, 384, -1, 386, 387, 388, 389,
390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
410, 3, 4, 5, 6, 7, 8, 9, 10, 11,
@@ -2897,8 +2897,8 @@ static const yytype_int16 yycheck[] =
-1, -1, -1, -1, -1, -1, -1, -1, -1, 351,
352, 353, 354, 355, 356, 357, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 370, 371,
- 372, 373, 374, -1, -1, -1, -1, -1, -1, -1,
- -1, 383, -1, 385, 386, 387, 388, 389, 390, 391,
+ 372, 373, 374, 375, -1, -1, -1, -1, -1, -1,
+ -1, -1, 384, -1, 386, 387, 388, 389, 390, 391,
392, 393, 394, 395, 396, 397, 398, 399, 400, 401,
402, 403, 404, 405, 406, 407, 408, 409, 410, 3,
4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
@@ -2938,8 +2938,8 @@ static const yytype_int16 yycheck[] =
-1, -1, -1, -1, -1, -1, -1, 351, 352, 353,
354, 355, 356, 357, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 370, 371, 372, 373,
- 374, -1, -1, -1, -1, -1, -1, -1, -1, 383,
- -1, 385, 386, 387, 388, 389, 390, 391, 392, 393,
+ 374, 375, -1, -1, -1, -1, -1, -1, -1, -1,
+ 384, -1, 386, 387, 388, 389, 390, 391, 392, 393,
394, 395, 396, 397, 398, 399, 400, 401, 402, 403,
404, 405, 406, 407, 408, 409, 410, 3, 4, 5,
6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
@@ -2978,8 +2978,8 @@ static const yytype_int16 yycheck[] =
-1, -1, 338, 339, 340, 341, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 351, 352, 353, 354, 355,
356, 357, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 370, 371, 372, 373, 374, -1,
- -1, -1, -1, -1, -1, -1, -1, 383, -1, 385,
+ -1, -1, -1, -1, 370, 371, 372, 373, 374, 375,
+ -1, -1, -1, -1, -1, -1, -1, -1, 384, -1,
386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
406, 407, 408, 409, 410, 4, 5, 6, 7, 8,
@@ -2987,8 +2987,8 @@ static const yytype_int16 yycheck[] =
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, -1, -1, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
+ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, -1, -1, 63, 64, 65, 66, 67, 68,
69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
@@ -3019,15 +3019,15 @@ static const yytype_int16 yycheck[] =
-1, -1, -1, -1, -1, -1, -1, 346, 347, 348,
349, 350, 351, -1, -1, -1, -1, 356, 357, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 375, 376, 377, 378,
- 379, 380, 381, 382, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 376, 377, 378,
+ 379, 380, 381, 382, 383, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 393, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, -1, -1, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
+ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, -1, -1, 63, 64, 65, 66, 67, 68,
69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
@@ -3058,15 +3058,15 @@ static const yytype_int16 yycheck[] =
-1, -1, -1, -1, -1, -1, -1, 346, 347, 348,
349, 350, 351, -1, -1, -1, -1, 356, 357, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 375, 376, 377, 378,
- 379, 380, 381, 382, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 376, 377, 378,
+ 379, 380, 381, 382, 383, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 393, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, -1, -1, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
+ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, -1, -1, 63, 64, 65, 66, 67, 68,
69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
@@ -3097,15 +3097,15 @@ static const yytype_int16 yycheck[] =
-1, -1, -1, -1, -1, -1, -1, 346, 347, 348,
349, 350, 351, -1, -1, -1, -1, 356, 357, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 375, 376, 377, 378,
- 379, 380, 381, 382, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 376, 377, 378,
+ 379, 380, 381, 382, 383, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 393, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, -1, -1, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
+ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, -1, -1, 63, 64, 65, 66, 67, 68,
69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
@@ -3136,15 +3136,15 @@ static const yytype_int16 yycheck[] =
-1, -1, -1, -1, -1, -1, -1, 346, 347, 348,
349, 350, 351, -1, -1, -1, -1, 356, 357, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 375, 376, 377, 378,
- 379, 380, 381, 382, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 376, 377, 378,
+ 379, 380, 381, 382, 383, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 393, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, -1, -1, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
+ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, -1, -1, 63, 64, 65, 66, 67, 68,
69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
@@ -3175,15 +3175,15 @@ static const yytype_int16 yycheck[] =
-1, -1, -1, -1, -1, -1, -1, 346, 347, 348,
349, 350, 351, -1, -1, -1, -1, 356, 357, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 375, 376, 377, 378,
- 379, 380, 381, 382, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 376, 377, 378,
+ 379, 380, 381, 382, 383, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 393, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, -1, -1, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
+ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, -1, -1, 63, 64, 65, 66, 67, 68,
69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
@@ -3214,15 +3214,15 @@ static const yytype_int16 yycheck[] =
-1, -1, -1, -1, -1, -1, -1, 346, 347, 348,
349, 350, 351, -1, -1, -1, -1, 356, 357, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 375, 376, 377, 378,
- 379, 380, 381, 382, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 376, 377, 378,
+ 379, 380, 381, 382, 383, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 393, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, -1, -1, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
+ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, -1, -1, 63, 64, 65, 66, 67, 68,
69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
@@ -3253,8 +3253,8 @@ static const yytype_int16 yycheck[] =
-1, -1, -1, -1, -1, -1, -1, 346, 347, 348,
349, 350, 351, -1, -1, -1, -1, 356, 357, -1,
-1, 445, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 456, -1, -1, -1, 375, 376, 377, 378,
- 379, 380, 381, 382, -1, -1, -1, -1, -1, -1,
+ -1, -1, 456, -1, -1, -1, -1, 376, 377, 378,
+ 379, 380, 381, 382, 383, -1, -1, -1, -1, -1,
-1, 475, -1, -1, 393, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
@@ -3311,8 +3311,8 @@ static const yytype_uint16 yystos[] =
272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
292, 324, 338, 339, 340, 341, 342, 351, 352, 353,
- 354, 355, 356, 357, 370, 371, 372, 373, 374, 383,
- 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
+ 354, 355, 356, 357, 370, 371, 372, 373, 374, 375,
+ 384, 386, 387, 388, 389, 390, 391, 392, 393, 394,
395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
405, 406, 407, 408, 409, 410, 442, 443, 446, 447,
448, 449, 453, 454, 455, 456, 457, 458, 461, 462,
@@ -3323,14 +3323,14 @@ static const yytype_uint16 yystos[] =
318, 350, 371, 459, 460, 350, 466, 316, 324, 468,
318, 494, 451, 450, 452, 350, 350, 314, 323, 468,
318, 321, 324, 445, 295, 296, 314, 325, 326, 327,
- 328, 346, 347, 348, 349, 350, 375, 376, 377, 378,
- 379, 380, 381, 382, 412, 413, 414, 416, 417, 418,
+ 328, 346, 347, 348, 349, 350, 376, 377, 378, 379,
+ 380, 381, 382, 383, 412, 413, 414, 416, 417, 418,
419, 420, 421, 422, 423, 424, 465, 467, 471, 468,
324, 462, 467, 477, 478, 475, 323, 315, 321, 315,
321, 317, 423, 425, 426, 427, 428, 429, 430, 431,
432, 433, 434, 435, 436, 316, 324, 316, 318, 319,
324, 358, 359, 360, 361, 363, 364, 365, 366, 367,
- 368, 369, 384, 423, 436, 438, 440, 442, 446, 465,
+ 368, 369, 385, 423, 436, 438, 440, 442, 446, 465,
467, 483, 484, 485, 486, 487, 495, 496, 497, 498,
501, 502, 505, 506, 507, 514, 519, 468, 323, 468,
318, 438, 481, 323, 444, 350, 321, 324, 423, 423,
@@ -5805,7 +5805,7 @@ yyreduce:
break;
case 162:
-#line 1364 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 1363 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.globalCheck((yyvsp[0].lex).loc, "shared");
parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared");
@@ -5818,7 +5818,7 @@ yyreduce:
break;
case 163:
-#line 1372 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 1371 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.globalCheck((yyvsp[0].lex).loc, "buffer");
(yyval.interm.type).init((yyvsp[0].lex).loc);
@@ -7619,21 +7619,21 @@ yyreduce:
break;
case 332:
-#line 2358 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2357 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtFloat, Esd1D, false, true);
+ (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true);
}
#line 7629 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 333:
-#line 2363 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2362 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true);
+ (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true);
}
#line 7639 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
@@ -7643,33 +7643,33 @@ yyreduce:
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true, true);
+ (yyval.interm.type).sampler.set(EbtFloat, Esd1D, false, true);
}
#line 7649 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 335:
-#line 2374 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2373 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true);
+ (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true);
}
#line 7659 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 336:
-#line 2379 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2378 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true);
+ (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true, true);
}
#line 7669 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 337:
-#line 2384 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2383 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -7679,7 +7679,7 @@ yyreduce:
break;
case 338:
-#line 2389 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2388 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -7689,7 +7689,7 @@ yyreduce:
break;
case 339:
-#line 2395 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2393 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
@@ -7700,7 +7700,7 @@ yyreduce:
break;
case 340:
-#line 2401 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2399 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
@@ -7711,7 +7711,7 @@ yyreduce:
break;
case 341:
-#line 2407 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2405 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
@@ -7722,7 +7722,7 @@ yyreduce:
break;
case 342:
-#line 2413 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2411 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
@@ -7733,7 +7733,7 @@ yyreduce:
break;
case 343:
-#line 2419 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2417 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
@@ -7744,7 +7744,7 @@ yyreduce:
break;
case 344:
-#line 2425 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2423 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
@@ -7755,7 +7755,7 @@ yyreduce:
break;
case 345:
-#line 2431 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2429 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
@@ -7766,7 +7766,7 @@ yyreduce:
break;
case 346:
-#line 2437 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2435 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
@@ -7777,7 +7777,7 @@ yyreduce:
break;
case 347:
-#line 2443 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2441 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
@@ -7788,7 +7788,7 @@ yyreduce:
break;
case 348:
-#line 2449 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2447 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
@@ -7799,7 +7799,7 @@ yyreduce:
break;
case 349:
-#line 2455 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2453 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
@@ -7810,7 +7810,7 @@ yyreduce:
break;
case 350:
-#line 2461 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2459 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
@@ -7821,7 +7821,7 @@ yyreduce:
break;
case 351:
-#line 2467 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2465 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
@@ -7832,7 +7832,7 @@ yyreduce:
break;
case 352:
-#line 2473 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2471 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -7842,7 +7842,7 @@ yyreduce:
break;
case 353:
-#line 2479 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2477 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -7852,7 +7852,7 @@ yyreduce:
break;
case 354:
-#line 2484 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2482 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -7862,7 +7862,7 @@ yyreduce:
break;
case 355:
-#line 2489 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2487 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -7872,77 +7872,77 @@ yyreduce:
break;
case 356:
-#line 2495 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2492 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtInt, Esd1D, true);
+ (yyval.interm.type).sampler.set(EbtInt, Esd2D, true);
}
#line 7882 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 357:
-#line 2501 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2497 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtInt, Esd2D, true);
+ (yyval.interm.type).sampler.set(EbtUint, Esd2D);
}
#line 7892 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 358:
-#line 2506 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2502 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtInt, EsdCube, true);
+ (yyval.interm.type).sampler.set(EbtUint, Esd3D);
}
#line 7902 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 359:
-#line 2512 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2507 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtUint, Esd1D);
+ (yyval.interm.type).sampler.set(EbtUint, EsdCube);
}
#line 7912 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 360:
-#line 2518 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2513 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtUint, Esd2D);
+ (yyval.interm.type).sampler.set(EbtInt, Esd1D, true);
}
#line 7922 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 361:
-#line 2523 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2518 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtUint, Esd3D);
+ (yyval.interm.type).sampler.set(EbtInt, EsdCube, true);
}
#line 7932 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 362:
-#line 2528 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2523 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtUint, EsdCube);
+ (yyval.interm.type).sampler.set(EbtUint, Esd1D);
}
#line 7942 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 363:
-#line 2534 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2528 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -7952,519 +7952,519 @@ yyreduce:
break;
case 364:
-#line 2540 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2533 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtUint, Esd2D, true);
+ (yyval.interm.type).sampler.set(EbtUint, EsdCube, true);
}
#line 7962 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 365:
-#line 2545 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2538 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtUint, EsdCube, true);
+ (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube, true);
}
#line 7972 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 366:
-#line 2551 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2543 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtFloat, EsdRect);
+ (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true);
}
#line 7982 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 367:
-#line 2556 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2548 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtFloat, EsdRect, false, true);
+ (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true);
}
#line 7992 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 368:
-#line 2561 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2554 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
- parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtFloat16, EsdRect);
+ (yyval.interm.type).sampler.set(EbtUint, Esd2D, true);
}
-#line 8003 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8002 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 369:
-#line 2567 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2559 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
- parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtFloat16, EsdRect, false, true);
+ (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D);
}
-#line 8014 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8012 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 370:
-#line 2573 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2564 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtInt, EsdRect);
+ (yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D);
}
-#line 8024 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8022 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 371:
-#line 2578 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2569 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtUint, EsdRect);
+ (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true);
}
-#line 8034 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8032 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 372:
-#line 2583 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2574 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtFloat, EsdBuffer);
+ (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube);
}
-#line 8044 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8042 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 373:
-#line 2588 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2579 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
- parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtFloat16, EsdBuffer);
+ (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D);
}
-#line 8055 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8052 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 374:
-#line 2594 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2584 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtInt, EsdBuffer);
+ (yyval.interm.type).sampler.setTexture(EbtInt, Esd3D);
}
-#line 8065 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8062 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 375:
-#line 2599 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2589 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtUint, EsdBuffer);
+ (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube);
}
-#line 8075 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8072 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 376:
-#line 2604 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2594 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, false, true);
+ (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true);
}
-#line 8085 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8082 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 377:
-#line 2609 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2599 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
- parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, false, true);
+ (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D);
}
-#line 8096 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8092 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 378:
-#line 2615 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2604 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtInt, Esd2D, false, false, true);
+ (yyval.interm.type).sampler.setTexture(EbtUint, Esd3D);
}
-#line 8106 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8102 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 379:
-#line 2620 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2609 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtUint, Esd2D, false, false, true);
+ (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube);
}
-#line 8116 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8112 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 380:
-#line 2625 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2614 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, false, true);
+ (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true);
}
-#line 8126 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8122 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 381:
-#line 2630 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2619 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
- parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, false, true);
+ (yyval.interm.type).sampler.setPureSampler(false);
}
-#line 8137 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8132 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 382:
-#line 2636 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2624 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtInt, Esd2D, true, false, true);
+ (yyval.interm.type).sampler.setPureSampler(true);
}
-#line 8147 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8142 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 383:
-#line 2641 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2630 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtUint, Esd2D, true, false, true);
+ (yyval.interm.type).sampler.set(EbtFloat, EsdRect);
}
-#line 8157 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8152 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 384:
-#line 2646 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2635 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setPureSampler(false);
+ (yyval.interm.type).sampler.set(EbtFloat, EsdRect, false, true);
}
-#line 8167 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8162 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 385:
-#line 2651 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2640 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
+ parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setPureSampler(true);
+ (yyval.interm.type).sampler.set(EbtFloat16, EsdRect);
}
-#line 8177 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8173 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 386:
-#line 2656 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2646 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
+ parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D);
+ (yyval.interm.type).sampler.set(EbtFloat16, EsdRect, false, true);
}
-#line 8187 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8184 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 387:
-#line 2661 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2652 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
- parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D);
+ (yyval.interm.type).sampler.set(EbtInt, EsdRect);
}
-#line 8198 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8194 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 388:
-#line 2667 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2657 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D);
+ (yyval.interm.type).sampler.set(EbtUint, EsdRect);
}
-#line 8208 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8204 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 389:
-#line 2672 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2662 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
- parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D);
+ (yyval.interm.type).sampler.set(EbtFloat, EsdBuffer);
}
-#line 8219 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8214 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 390:
-#line 2678 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2667 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
+ parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D);
+ (yyval.interm.type).sampler.set(EbtFloat16, EsdBuffer);
}
-#line 8229 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8225 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 391:
-#line 2683 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2673 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
- parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd3D);
+ (yyval.interm.type).sampler.set(EbtInt, EsdBuffer);
}
-#line 8240 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8235 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 392:
-#line 2689 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2678 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube);
+ (yyval.interm.type).sampler.set(EbtUint, EsdBuffer);
}
-#line 8250 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8245 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 393:
-#line 2694 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2683 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
- parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube);
+ (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, false, true);
}
-#line 8261 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8255 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 394:
-#line 2700 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2688 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
+ parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D, true);
+ (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, false, true);
}
-#line 8271 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8266 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 395:
-#line 2705 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2694 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
- parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D, true);
+ (yyval.interm.type).sampler.set(EbtInt, Esd2D, false, false, true);
}
-#line 8282 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8276 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 396:
-#line 2711 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2699 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true);
+ (yyval.interm.type).sampler.set(EbtUint, Esd2D, false, false, true);
}
-#line 8292 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8286 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 397:
-#line 2716 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2704 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
- parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true);
+ (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, false, true);
}
-#line 8303 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8296 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 398:
-#line 2722 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2709 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
+ parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube, true);
+ (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, false, true);
}
-#line 8313 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8307 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 399:
-#line 2727 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2715 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
- parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube, true);
+ (yyval.interm.type).sampler.set(EbtInt, Esd2D, true, false, true);
}
-#line 8324 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8317 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 400:
-#line 2733 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2720 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D);
+ (yyval.interm.type).sampler.set(EbtUint, Esd2D, true, false, true);
}
-#line 8334 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8327 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 401:
-#line 2738 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2725 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D);
+ (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D);
}
-#line 8344 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8337 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 402:
-#line 2743 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2730 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
+ parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtInt, Esd3D);
+ (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D);
}
-#line 8354 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8348 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 403:
-#line 2748 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2736 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
+ parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube);
+ (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D);
}
-#line 8364 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8359 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 404:
-#line 2753 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2742 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
+ parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D, true);
+ (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd3D);
}
-#line 8374 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8370 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 405:
-#line 2758 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2748 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
+ parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true);
+ (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube);
}
-#line 8384 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8381 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 406:
-#line 2763 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2754 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true);
+ (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D, true);
}
-#line 8394 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8391 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 407:
-#line 2768 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2759 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
+ parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D);
+ (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D, true);
}
-#line 8404 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8402 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 408:
-#line 2773 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2765 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
+ parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D);
+ (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true);
}
-#line 8414 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 8413 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 409:
-#line 2778 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2771 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
+ parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtUint, Esd3D);
+ (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube, true);
}
#line 8424 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 410:
-#line 2783 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2777 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube);
+ (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D);
}
#line 8434 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 411:
-#line 2788 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2782 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D, true);
+ (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D, true);
}
#line 8444 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 412:
-#line 2793 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2787 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true);
+ (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D);
}
#line 8454 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 413:
-#line 2798 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2792 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true);
+ (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D, true);
}
#line 8464 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 414:
-#line 2803 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2797 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -8474,7 +8474,7 @@ yyreduce:
break;
case 415:
-#line 2808 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2802 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
@@ -8485,7 +8485,7 @@ yyreduce:
break;
case 416:
-#line 2814 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2808 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -8495,7 +8495,7 @@ yyreduce:
break;
case 417:
-#line 2819 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2813 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -8505,7 +8505,7 @@ yyreduce:
break;
case 418:
-#line 2824 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2818 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -8515,7 +8515,7 @@ yyreduce:
break;
case 419:
-#line 2829 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2823 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
@@ -8526,7 +8526,7 @@ yyreduce:
break;
case 420:
-#line 2835 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2829 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -8536,7 +8536,7 @@ yyreduce:
break;
case 421:
-#line 2840 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2834 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -8546,7 +8546,7 @@ yyreduce:
break;
case 422:
-#line 2845 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2839 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -8556,7 +8556,7 @@ yyreduce:
break;
case 423:
-#line 2850 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2844 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
@@ -8567,7 +8567,7 @@ yyreduce:
break;
case 424:
-#line 2856 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2850 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -8577,7 +8577,7 @@ yyreduce:
break;
case 425:
-#line 2861 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2855 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -8587,7 +8587,7 @@ yyreduce:
break;
case 426:
-#line 2866 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2860 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -8597,7 +8597,7 @@ yyreduce:
break;
case 427:
-#line 2871 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2865 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
@@ -8608,7 +8608,7 @@ yyreduce:
break;
case 428:
-#line 2877 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2871 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -8618,7 +8618,7 @@ yyreduce:
break;
case 429:
-#line 2882 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2876 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -8628,7 +8628,7 @@ yyreduce:
break;
case 430:
-#line 2887 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2881 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -8638,7 +8638,7 @@ yyreduce:
break;
case 431:
-#line 2892 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2886 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
@@ -8649,7 +8649,7 @@ yyreduce:
break;
case 432:
-#line 2898 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2892 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -8659,7 +8659,7 @@ yyreduce:
break;
case 433:
-#line 2903 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2897 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -8669,7 +8669,7 @@ yyreduce:
break;
case 434:
-#line 2908 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2902 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -8679,7 +8679,7 @@ yyreduce:
break;
case 435:
-#line 2913 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2907 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
@@ -8690,7 +8690,7 @@ yyreduce:
break;
case 436:
-#line 2919 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2913 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -8700,7 +8700,7 @@ yyreduce:
break;
case 437:
-#line 2924 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2918 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -8710,7 +8710,7 @@ yyreduce:
break;
case 438:
-#line 2929 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2923 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -8720,7 +8720,7 @@ yyreduce:
break;
case 439:
-#line 2934 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2928 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
@@ -8731,7 +8731,7 @@ yyreduce:
break;
case 440:
-#line 2940 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2934 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -8741,7 +8741,7 @@ yyreduce:
break;
case 441:
-#line 2945 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2939 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -8751,7 +8751,7 @@ yyreduce:
break;
case 442:
-#line 2950 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2944 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -8761,7 +8761,7 @@ yyreduce:
break;
case 443:
-#line 2955 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2949 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
@@ -8772,7 +8772,7 @@ yyreduce:
break;
case 444:
-#line 2961 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2955 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -8782,7 +8782,7 @@ yyreduce:
break;
case 445:
-#line 2966 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2960 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -8792,7 +8792,7 @@ yyreduce:
break;
case 446:
-#line 2971 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2965 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -8802,7 +8802,7 @@ yyreduce:
break;
case 447:
-#line 2976 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2970 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
@@ -8813,7 +8813,7 @@ yyreduce:
break;
case 448:
-#line 2982 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2976 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -8823,7 +8823,7 @@ yyreduce:
break;
case 449:
-#line 2987 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2981 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -8833,7 +8833,7 @@ yyreduce:
break;
case 450:
-#line 2992 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2986 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -8843,7 +8843,7 @@ yyreduce:
break;
case 451:
-#line 2997 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2991 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
@@ -8854,7 +8854,7 @@ yyreduce:
break;
case 452:
-#line 3003 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2997 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -8864,7 +8864,7 @@ yyreduce:
break;
case 453:
-#line 3008 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3002 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -8874,7 +8874,7 @@ yyreduce:
break;
case 454:
-#line 3013 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3007 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -8884,7 +8884,7 @@ yyreduce:
break;
case 455:
-#line 3018 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3012 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
@@ -8895,7 +8895,7 @@ yyreduce:
break;
case 456:
-#line 3024 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3018 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -8905,7 +8905,7 @@ yyreduce:
break;
case 457:
-#line 3029 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3023 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -8915,7 +8915,7 @@ yyreduce:
break;
case 458:
-#line 3034 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3028 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -8925,7 +8925,7 @@ yyreduce:
break;
case 459:
-#line 3039 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3033 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
@@ -8936,7 +8936,7 @@ yyreduce:
break;
case 460:
-#line 3045 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3039 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -8946,7 +8946,7 @@ yyreduce:
break;
case 461:
-#line 3050 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3044 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -8956,7 +8956,7 @@ yyreduce:
break;
case 462:
-#line 3055 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3049 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -8966,7 +8966,7 @@ yyreduce:
break;
case 463:
-#line 3060 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3054 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
@@ -8977,7 +8977,7 @@ yyreduce:
break;
case 464:
-#line 3066 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3060 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -8987,7 +8987,7 @@ yyreduce:
break;
case 465:
-#line 3071 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3065 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -8997,7 +8997,7 @@ yyreduce:
break;
case 466:
-#line 3076 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3070 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -9007,7 +9007,7 @@ yyreduce:
break;
case 467:
-#line 3081 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3075 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
@@ -9018,7 +9018,7 @@ yyreduce:
break;
case 468:
-#line 3087 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3081 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -9028,7 +9028,7 @@ yyreduce:
break;
case 469:
-#line 3092 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3086 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -9038,7 +9038,7 @@ yyreduce:
break;
case 470:
-#line 3097 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3091 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -9048,7 +9048,7 @@ yyreduce:
break;
case 471:
-#line 3102 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3096 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
@@ -9059,7 +9059,7 @@ yyreduce:
break;
case 472:
-#line 3108 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3102 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -9069,7 +9069,7 @@ yyreduce:
break;
case 473:
-#line 3113 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3107 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -9079,7 +9079,7 @@ yyreduce:
break;
case 474:
-#line 3118 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3112 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ // GL_OES_EGL_image_external
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -9090,7 +9090,7 @@ yyreduce:
break;
case 475:
-#line 3124 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3118 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ // GL_EXT_YUV_target
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
@@ -9101,7 +9101,7 @@ yyreduce:
break;
case 476:
-#line 3130 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3124 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
@@ -9112,7 +9112,7 @@ yyreduce:
break;
case 477:
-#line 3136 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3130 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
@@ -9123,7 +9123,7 @@ yyreduce:
break;
case 478:
-#line 3142 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3136 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel());
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
@@ -9135,7 +9135,7 @@ yyreduce:
break;
case 479:
-#line 3149 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3143 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel());
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
@@ -9147,7 +9147,7 @@ yyreduce:
break;
case 480:
-#line 3156 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3150 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
@@ -9158,7 +9158,7 @@ yyreduce:
break;
case 481:
-#line 3162 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3156 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
@@ -9169,7 +9169,7 @@ yyreduce:
break;
case 482:
-#line 3168 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3162 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
@@ -9180,7 +9180,7 @@ yyreduce:
break;
case 483:
-#line 3174 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3168 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
@@ -9191,7 +9191,7 @@ yyreduce:
break;
case 484:
-#line 3180 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3174 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.fcoopmatCheck((yyvsp[0].lex).loc, "fcoopmatNV", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
@@ -9202,7 +9202,7 @@ yyreduce:
break;
case 485:
-#line 3186 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3180 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.intcoopmatCheck((yyvsp[0].lex).loc, "icoopmatNV", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
@@ -9213,7 +9213,7 @@ yyreduce:
break;
case 486:
-#line 3192 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3186 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.intcoopmatCheck((yyvsp[0].lex).loc, "ucoopmatNV", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
@@ -9224,7 +9224,7 @@ yyreduce:
break;
case 487:
-#line 3199 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3193 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type) = (yyvsp[0].interm.type);
(yyval.interm.type).qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
@@ -9234,7 +9234,7 @@ yyreduce:
break;
case 488:
-#line 3204 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3198 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
//
// This is for user defined type names. The lexical phase looked up the
@@ -9252,7 +9252,7 @@ yyreduce:
break;
case 489:
-#line 3220 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3214 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "highp precision qualifier");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
@@ -9262,7 +9262,7 @@ yyreduce:
break;
case 490:
-#line 3225 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3219 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
@@ -9272,7 +9272,7 @@ yyreduce:
break;
case 491:
-#line 3230 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3224 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
@@ -9282,13 +9282,13 @@ yyreduce:
break;
case 492:
-#line 3238 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3232 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ parseContext.nestedStructCheck((yyvsp[-2].lex).loc); }
#line 9288 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 493:
-#line 3238 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3232 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
TType* structure = new TType((yyvsp[-1].interm.typeList), *(yyvsp[-4].lex).string);
parseContext.structArrayCheck((yyvsp[-4].lex).loc, *structure);
@@ -9304,13 +9304,13 @@ yyreduce:
break;
case 494:
-#line 3249 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3243 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ parseContext.nestedStructCheck((yyvsp[-1].lex).loc); }
#line 9310 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 495:
-#line 3249 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3243 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
TType* structure = new TType((yyvsp[-1].interm.typeList), TString(""));
(yyval.interm.type).init((yyvsp[-4].lex).loc);
@@ -9322,7 +9322,7 @@ yyreduce:
break;
case 496:
-#line 3259 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3253 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.typeList) = (yyvsp[0].interm.typeList);
}
@@ -9330,7 +9330,7 @@ yyreduce:
break;
case 497:
-#line 3262 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3256 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
for (unsigned int i = 0; i < (yyvsp[0].interm.typeList)->size(); ++i) {
@@ -9345,7 +9345,7 @@ yyreduce:
break;
case 498:
-#line 3275 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3269 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
if ((yyvsp[-2].interm.type).arraySizes) {
parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
@@ -9372,7 +9372,7 @@ yyreduce:
break;
case 499:
-#line 3297 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3291 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
if ((yyvsp[-2].interm.type).arraySizes) {
parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
@@ -9401,7 +9401,7 @@ yyreduce:
break;
case 500:
-#line 3324 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3318 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.typeList) = new TTypeList;
(yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
@@ -9410,7 +9410,7 @@ yyreduce:
break;
case 501:
-#line 3328 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3322 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
}
@@ -9418,7 +9418,7 @@ yyreduce:
break;
case 502:
-#line 3334 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3328 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.typeLine).type = new TType(EbtVoid);
(yyval.interm.typeLine).loc = (yyvsp[0].lex).loc;
@@ -9428,7 +9428,7 @@ yyreduce:
break;
case 503:
-#line 3339 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3333 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, (yyvsp[0].interm).arraySizes);
@@ -9441,7 +9441,7 @@ yyreduce:
break;
case 504:
-#line 3350 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3344 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
@@ -9449,7 +9449,7 @@ yyreduce:
break;
case 505:
-#line 3354 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3348 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
const char* initFeature = "{ } style initializers";
parseContext.requireProfile((yyvsp[-2].lex).loc, ~EEsProfile, initFeature);
@@ -9460,7 +9460,7 @@ yyreduce:
break;
case 506:
-#line 3360 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3354 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
const char* initFeature = "{ } style initializers";
parseContext.requireProfile((yyvsp[-3].lex).loc, ~EEsProfile, initFeature);
@@ -9471,7 +9471,7 @@ yyreduce:
break;
case 507:
-#line 3371 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3365 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc());
}
@@ -9479,7 +9479,7 @@ yyreduce:
break;
case 508:
-#line 3374 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3368 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
}
@@ -9487,73 +9487,73 @@ yyreduce:
break;
case 509:
-#line 3381 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3375 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
#line 9493 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 510:
-#line 3385 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3379 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
#line 9499 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 511:
-#line 3386 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3380 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
#line 9505 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 512:
-#line 3392 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3386 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
#line 9511 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 513:
-#line 3393 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3387 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
#line 9517 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 514:
-#line 3394 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3388 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
#line 9523 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 515:
-#line 3395 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3389 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
#line 9529 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 516:
-#line 3396 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3390 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
#line 9535 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 517:
-#line 3397 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3391 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
#line 9541 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 518:
-#line 3398 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3392 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
#line 9547 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 519:
-#line 3400 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3394 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
#line 9553 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 520:
-#line 3406 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3400 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "demote");
parseContext.requireExtensions((yyvsp[-1].lex).loc, 1, &E_GL_EXT_demote_to_helper_invocation, "demote");
@@ -9563,13 +9563,13 @@ yyreduce:
break;
case 521:
-#line 3415 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3409 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm.intermNode) = 0; }
#line 9569 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 522:
-#line 3416 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3410 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.symbolTable.push();
++parseContext.statementNestingLevel;
@@ -9578,7 +9578,7 @@ yyreduce:
break;
case 523:
-#line 3420 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3414 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
--parseContext.statementNestingLevel;
@@ -9587,7 +9587,7 @@ yyreduce:
break;
case 524:
-#line 3424 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3418 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
if ((yyvsp[-2].interm.intermNode) && (yyvsp[-2].interm.intermNode)->getAsAggregate())
(yyvsp[-2].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
@@ -9597,19 +9597,19 @@ yyreduce:
break;
case 525:
-#line 3432 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3426 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
#line 9603 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 526:
-#line 3433 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3427 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
#line 9609 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 527:
-#line 3437 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3431 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
++parseContext.controlFlowNestingLevel;
}
@@ -9617,7 +9617,7 @@ yyreduce:
break;
case 528:
-#line 3440 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3434 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
--parseContext.controlFlowNestingLevel;
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
@@ -9626,7 +9626,7 @@ yyreduce:
break;
case 529:
-#line 3444 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3438 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.symbolTable.push();
++parseContext.statementNestingLevel;
@@ -9636,7 +9636,7 @@ yyreduce:
break;
case 530:
-#line 3449 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3443 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
--parseContext.statementNestingLevel;
@@ -9647,7 +9647,7 @@ yyreduce:
break;
case 531:
-#line 3458 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3452 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.intermNode) = 0;
}
@@ -9655,7 +9655,7 @@ yyreduce:
break;
case 532:
-#line 3461 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3455 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
if ((yyvsp[-1].interm.intermNode) && (yyvsp[-1].interm.intermNode)->getAsAggregate())
(yyvsp[-1].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
@@ -9665,7 +9665,7 @@ yyreduce:
break;
case 533:
-#line 3469 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3463 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode));
if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
@@ -9678,7 +9678,7 @@ yyreduce:
break;
case 534:
-#line 3477 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3471 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
(yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) {
@@ -9691,19 +9691,19 @@ yyreduce:
break;
case 535:
-#line 3488 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3482 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm.intermNode) = 0; }
#line 9697 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 536:
-#line 3489 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3483 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm.intermNode) = static_cast<TIntermNode*>((yyvsp[-1].interm.intermTypedNode)); }
#line 9703 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 537:
-#line 3493 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3487 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
@@ -9711,7 +9711,7 @@ yyreduce:
break;
case 538:
-#line 3497 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3491 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.handleSelectionAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
@@ -9720,7 +9720,7 @@ yyreduce:
break;
case 539:
-#line 3504 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3498 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-2].interm.intermTypedNode));
(yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.nodePair), (yyvsp[-4].lex).loc);
@@ -9729,7 +9729,7 @@ yyreduce:
break;
case 540:
-#line 3511 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3505 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode);
(yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode);
@@ -9738,7 +9738,7 @@ yyreduce:
break;
case 541:
-#line 3515 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3509 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode);
(yyval.interm.nodePair).node2 = 0;
@@ -9747,7 +9747,7 @@ yyreduce:
break;
case 542:
-#line 3523 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3517 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
parseContext.boolCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode));
@@ -9756,7 +9756,7 @@ yyreduce:
break;
case 543:
-#line 3527 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3521 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.boolCheck((yyvsp[-2].lex).loc, (yyvsp[-3].interm.type));
@@ -9771,7 +9771,7 @@ yyreduce:
break;
case 544:
-#line 3540 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3534 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
@@ -9779,7 +9779,7 @@ yyreduce:
break;
case 545:
-#line 3544 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3538 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.handleSwitchAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
@@ -9788,7 +9788,7 @@ yyreduce:
break;
case 546:
-#line 3551 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3545 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
// start new switch sequence on the switch stack
++parseContext.controlFlowNestingLevel;
@@ -9801,7 +9801,7 @@ yyreduce:
break;
case 547:
-#line 3559 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3553 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.intermNode) = parseContext.addSwitch((yyvsp[-7].lex).loc, (yyvsp[-5].interm.intermTypedNode), (yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0);
delete parseContext.switchSequenceStack.back();
@@ -9815,7 +9815,7 @@ yyreduce:
break;
case 548:
-#line 3571 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3565 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.intermNode) = 0;
}
@@ -9823,7 +9823,7 @@ yyreduce:
break;
case 549:
-#line 3574 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3568 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
@@ -9831,7 +9831,7 @@ yyreduce:
break;
case 550:
-#line 3580 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3574 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.intermNode) = 0;
if (parseContext.switchLevel.size() == 0)
@@ -9848,7 +9848,7 @@ yyreduce:
break;
case 551:
-#line 3592 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3586 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.intermNode) = 0;
if (parseContext.switchLevel.size() == 0)
@@ -9862,7 +9862,7 @@ yyreduce:
break;
case 552:
-#line 3604 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3598 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
@@ -9870,7 +9870,7 @@ yyreduce:
break;
case 553:
-#line 3608 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3602 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.handleLoopAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
@@ -9879,7 +9879,7 @@ yyreduce:
break;
case 554:
-#line 3615 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3609 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
if (! parseContext.limits.whileLoops)
parseContext.error((yyvsp[-1].lex).loc, "while loops not available", "limitation", "");
@@ -9892,7 +9892,7 @@ yyreduce:
break;
case 555:
-#line 3623 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3617 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
(yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, true, (yyvsp[-5].lex).loc);
@@ -9904,7 +9904,7 @@ yyreduce:
break;
case 556:
-#line 3630 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3624 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
++parseContext.loopNestingLevel;
++parseContext.statementNestingLevel;
@@ -9914,7 +9914,7 @@ yyreduce:
break;
case 557:
-#line 3635 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3629 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
if (! parseContext.limits.whileLoops)
parseContext.error((yyvsp[-7].lex).loc, "do-while loops not available", "limitation", "");
@@ -9930,7 +9930,7 @@ yyreduce:
break;
case 558:
-#line 3646 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3640 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.symbolTable.push();
++parseContext.loopNestingLevel;
@@ -9941,7 +9941,7 @@ yyreduce:
break;
case 559:
-#line 3652 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3646 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
(yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[-3].interm.intermNode), (yyvsp[-5].lex).loc);
@@ -9958,7 +9958,7 @@ yyreduce:
break;
case 560:
-#line 3667 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3661 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
@@ -9966,7 +9966,7 @@ yyreduce:
break;
case 561:
-#line 3670 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3664 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
@@ -9974,7 +9974,7 @@ yyreduce:
break;
case 562:
-#line 3676 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3670 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
@@ -9982,7 +9982,7 @@ yyreduce:
break;
case 563:
-#line 3679 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3673 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.intermTypedNode) = 0;
}
@@ -9990,7 +9990,7 @@ yyreduce:
break;
case 564:
-#line 3685 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3679 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode);
(yyval.interm.nodePair).node2 = 0;
@@ -9999,7 +9999,7 @@ yyreduce:
break;
case 565:
-#line 3689 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3683 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode);
(yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode);
@@ -10008,7 +10008,7 @@ yyreduce:
break;
case 566:
-#line 3696 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3690 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
if (parseContext.loopNestingLevel <= 0)
parseContext.error((yyvsp[-1].lex).loc, "continue statement only allowed in loops", "", "");
@@ -10018,7 +10018,7 @@ yyreduce:
break;
case 567:
-#line 3701 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3695 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0)
parseContext.error((yyvsp[-1].lex).loc, "break statement only allowed in switch and loops", "", "");
@@ -10028,7 +10028,7 @@ yyreduce:
break;
case 568:
-#line 3706 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3700 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].lex).loc);
if (parseContext.currentFunctionType->getBasicType() != EbtVoid)
@@ -10040,7 +10040,7 @@ yyreduce:
break;
case 569:
-#line 3713 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3707 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode));
}
@@ -10048,7 +10048,7 @@ yyreduce:
break;
case 570:
-#line 3716 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3710 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "discard");
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[-1].lex).loc);
@@ -10057,7 +10057,7 @@ yyreduce:
break;
case 571:
-#line 3725 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3719 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
@@ -10066,7 +10066,7 @@ yyreduce:
break;
case 572:
-#line 3729 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3723 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
if ((yyvsp[0].interm.intermNode) != nullptr) {
(yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
@@ -10077,7 +10077,7 @@ yyreduce:
break;
case 573:
-#line 3738 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3732 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
@@ -10085,7 +10085,7 @@ yyreduce:
break;
case 574:
-#line 3741 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3735 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
@@ -10093,7 +10093,7 @@ yyreduce:
break;
case 575:
-#line 3745 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3739 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "extraneous semicolon");
parseContext.profileRequires((yyvsp[0].lex).loc, ~EEsProfile, 460, nullptr, "extraneous semicolon");
@@ -10103,7 +10103,7 @@ yyreduce:
break;
case 576:
-#line 3754 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3748 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyvsp[0].interm).function = parseContext.handleFunctionDeclarator((yyvsp[0].interm).loc, *(yyvsp[0].interm).function, false /* not prototype */);
(yyvsp[0].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[0].interm).loc, *(yyvsp[0].interm).function);
@@ -10112,7 +10112,7 @@ yyreduce:
break;
case 577:
-#line 3758 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3752 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
// May be best done as post process phase on intermediate code
if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue)
@@ -10132,7 +10132,7 @@ yyreduce:
break;
case 578:
-#line 3777 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3771 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.attributes) = (yyvsp[-2].interm.attributes);
parseContext.requireExtensions((yyvsp[-4].lex).loc, 1, &E_GL_EXT_control_flow_attributes, "attribute");
@@ -10141,7 +10141,7 @@ yyreduce:
break;
case 579:
-#line 3783 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3777 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.attributes) = (yyvsp[0].interm.attributes);
}
@@ -10149,7 +10149,7 @@ yyreduce:
break;
case 580:
-#line 3786 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3780 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.attributes) = parseContext.mergeAttributes((yyvsp[-2].interm.attributes), (yyvsp[0].interm.attributes));
}
@@ -10157,7 +10157,7 @@ yyreduce:
break;
case 581:
-#line 3791 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3785 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[0].lex).string);
}
@@ -10165,7 +10165,7 @@ yyreduce:
break;
case 582:
-#line 3794 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 3788 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[-3].lex).string, (yyvsp[-1].interm.intermTypedNode));
}
@@ -10401,5 +10401,5 @@ yyreturn:
#endif
return yyresult;
}
-#line 3799 "MachineIndependent/glslang.y" /* yacc.c:1906 */
+#line 3793 "MachineIndependent/glslang.y" /* yacc.c:1906 */
diff --git a/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/glslang_tab.cpp.h b/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/glslang_tab.cpp.h
index f3f0251f22e..f4f41147305 100644
--- a/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/glslang_tab.cpp.h
+++ b/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/glslang_tab.cpp.h
@@ -89,227 +89,227 @@ extern int yydebug;
USAMPLER3D = 299,
USAMPLERCUBE = 300,
USAMPLER2DARRAY = 301,
- SAMPLERCUBEARRAY = 302,
- SAMPLERCUBEARRAYSHADOW = 303,
- ISAMPLERCUBEARRAY = 304,
- USAMPLERCUBEARRAY = 305,
- ATTRIBUTE = 306,
- VARYING = 307,
- FLOAT16_T = 308,
- FLOAT32_T = 309,
- DOUBLE = 310,
- FLOAT64_T = 311,
- INT64_T = 312,
- UINT64_T = 313,
- INT32_T = 314,
- UINT32_T = 315,
- INT16_T = 316,
- UINT16_T = 317,
- INT8_T = 318,
- UINT8_T = 319,
- I64VEC2 = 320,
- I64VEC3 = 321,
- I64VEC4 = 322,
- U64VEC2 = 323,
- U64VEC3 = 324,
- U64VEC4 = 325,
- I32VEC2 = 326,
- I32VEC3 = 327,
- I32VEC4 = 328,
- U32VEC2 = 329,
- U32VEC3 = 330,
- U32VEC4 = 331,
- I16VEC2 = 332,
- I16VEC3 = 333,
- I16VEC4 = 334,
- U16VEC2 = 335,
- U16VEC3 = 336,
- U16VEC4 = 337,
- I8VEC2 = 338,
- I8VEC3 = 339,
- I8VEC4 = 340,
- U8VEC2 = 341,
- U8VEC3 = 342,
- U8VEC4 = 343,
- DVEC2 = 344,
- DVEC3 = 345,
- DVEC4 = 346,
- DMAT2 = 347,
- DMAT3 = 348,
- DMAT4 = 349,
- F16VEC2 = 350,
- F16VEC3 = 351,
- F16VEC4 = 352,
- F16MAT2 = 353,
- F16MAT3 = 354,
- F16MAT4 = 355,
- F32VEC2 = 356,
- F32VEC3 = 357,
- F32VEC4 = 358,
- F32MAT2 = 359,
- F32MAT3 = 360,
- F32MAT4 = 361,
- F64VEC2 = 362,
- F64VEC3 = 363,
- F64VEC4 = 364,
- F64MAT2 = 365,
- F64MAT3 = 366,
- F64MAT4 = 367,
- DMAT2X2 = 368,
- DMAT2X3 = 369,
- DMAT2X4 = 370,
- DMAT3X2 = 371,
- DMAT3X3 = 372,
- DMAT3X4 = 373,
- DMAT4X2 = 374,
- DMAT4X3 = 375,
- DMAT4X4 = 376,
- F16MAT2X2 = 377,
- F16MAT2X3 = 378,
- F16MAT2X4 = 379,
- F16MAT3X2 = 380,
- F16MAT3X3 = 381,
- F16MAT3X4 = 382,
- F16MAT4X2 = 383,
- F16MAT4X3 = 384,
- F16MAT4X4 = 385,
- F32MAT2X2 = 386,
- F32MAT2X3 = 387,
- F32MAT2X4 = 388,
- F32MAT3X2 = 389,
- F32MAT3X3 = 390,
- F32MAT3X4 = 391,
- F32MAT4X2 = 392,
- F32MAT4X3 = 393,
- F32MAT4X4 = 394,
- F64MAT2X2 = 395,
- F64MAT2X3 = 396,
- F64MAT2X4 = 397,
- F64MAT3X2 = 398,
- F64MAT3X3 = 399,
- F64MAT3X4 = 400,
- F64MAT4X2 = 401,
- F64MAT4X3 = 402,
- F64MAT4X4 = 403,
- ATOMIC_UINT = 404,
- ACCSTRUCTNV = 405,
- FCOOPMATNV = 406,
- ICOOPMATNV = 407,
- UCOOPMATNV = 408,
- SAMPLER1D = 409,
- SAMPLER1DARRAY = 410,
- SAMPLER1DARRAYSHADOW = 411,
- ISAMPLER1D = 412,
- SAMPLER1DSHADOW = 413,
- SAMPLER2DRECT = 414,
- SAMPLER2DRECTSHADOW = 415,
- ISAMPLER2DRECT = 416,
- USAMPLER2DRECT = 417,
- SAMPLERBUFFER = 418,
- ISAMPLERBUFFER = 419,
- USAMPLERBUFFER = 420,
- SAMPLER2DMS = 421,
- ISAMPLER2DMS = 422,
- USAMPLER2DMS = 423,
- SAMPLER2DMSARRAY = 424,
- ISAMPLER2DMSARRAY = 425,
- USAMPLER2DMSARRAY = 426,
- SAMPLEREXTERNALOES = 427,
- SAMPLEREXTERNAL2DY2YEXT = 428,
- ISAMPLER1DARRAY = 429,
- USAMPLER1D = 430,
- USAMPLER1DARRAY = 431,
- F16SAMPLER1D = 432,
- F16SAMPLER2D = 433,
- F16SAMPLER3D = 434,
- F16SAMPLER2DRECT = 435,
- F16SAMPLERCUBE = 436,
- F16SAMPLER1DARRAY = 437,
- F16SAMPLER2DARRAY = 438,
- F16SAMPLERCUBEARRAY = 439,
- F16SAMPLERBUFFER = 440,
- F16SAMPLER2DMS = 441,
- F16SAMPLER2DMSARRAY = 442,
- F16SAMPLER1DSHADOW = 443,
- F16SAMPLER2DSHADOW = 444,
- F16SAMPLER1DARRAYSHADOW = 445,
- F16SAMPLER2DARRAYSHADOW = 446,
- F16SAMPLER2DRECTSHADOW = 447,
- F16SAMPLERCUBESHADOW = 448,
- F16SAMPLERCUBEARRAYSHADOW = 449,
- IMAGE1D = 450,
- IIMAGE1D = 451,
- UIMAGE1D = 452,
- IMAGE2D = 453,
- IIMAGE2D = 454,
- UIMAGE2D = 455,
- IMAGE3D = 456,
- IIMAGE3D = 457,
- UIMAGE3D = 458,
- IMAGE2DRECT = 459,
- IIMAGE2DRECT = 460,
- UIMAGE2DRECT = 461,
- IMAGECUBE = 462,
- IIMAGECUBE = 463,
- UIMAGECUBE = 464,
- IMAGEBUFFER = 465,
- IIMAGEBUFFER = 466,
- UIMAGEBUFFER = 467,
- IMAGE1DARRAY = 468,
- IIMAGE1DARRAY = 469,
- UIMAGE1DARRAY = 470,
- IMAGE2DARRAY = 471,
- IIMAGE2DARRAY = 472,
- UIMAGE2DARRAY = 473,
- IMAGECUBEARRAY = 474,
- IIMAGECUBEARRAY = 475,
- UIMAGECUBEARRAY = 476,
- IMAGE2DMS = 477,
- IIMAGE2DMS = 478,
- UIMAGE2DMS = 479,
- IMAGE2DMSARRAY = 480,
- IIMAGE2DMSARRAY = 481,
- UIMAGE2DMSARRAY = 482,
- F16IMAGE1D = 483,
- F16IMAGE2D = 484,
- F16IMAGE3D = 485,
- F16IMAGE2DRECT = 486,
- F16IMAGECUBE = 487,
- F16IMAGE1DARRAY = 488,
- F16IMAGE2DARRAY = 489,
- F16IMAGECUBEARRAY = 490,
- F16IMAGEBUFFER = 491,
- F16IMAGE2DMS = 492,
- F16IMAGE2DMSARRAY = 493,
- SAMPLER = 494,
- SAMPLERSHADOW = 495,
- TEXTURE1D = 496,
- TEXTURE2D = 497,
- TEXTURE3D = 498,
- TEXTURECUBE = 499,
- TEXTURE1DARRAY = 500,
- TEXTURE2DARRAY = 501,
- ITEXTURE1D = 502,
- ITEXTURE2D = 503,
- ITEXTURE3D = 504,
- ITEXTURECUBE = 505,
- ITEXTURE1DARRAY = 506,
- ITEXTURE2DARRAY = 507,
- UTEXTURE1D = 508,
- UTEXTURE2D = 509,
- UTEXTURE3D = 510,
- UTEXTURECUBE = 511,
- UTEXTURE1DARRAY = 512,
- UTEXTURE2DARRAY = 513,
- TEXTURE2DRECT = 514,
- ITEXTURE2DRECT = 515,
- UTEXTURE2DRECT = 516,
- TEXTUREBUFFER = 517,
- ITEXTUREBUFFER = 518,
- UTEXTUREBUFFER = 519,
- TEXTURECUBEARRAY = 520,
- ITEXTURECUBEARRAY = 521,
- UTEXTURECUBEARRAY = 522,
+ SAMPLER = 302,
+ SAMPLERSHADOW = 303,
+ TEXTURE2D = 304,
+ TEXTURE3D = 305,
+ TEXTURECUBE = 306,
+ TEXTURE2DARRAY = 307,
+ ITEXTURE2D = 308,
+ ITEXTURE3D = 309,
+ ITEXTURECUBE = 310,
+ ITEXTURE2DARRAY = 311,
+ UTEXTURE2D = 312,
+ UTEXTURE3D = 313,
+ UTEXTURECUBE = 314,
+ UTEXTURE2DARRAY = 315,
+ ATTRIBUTE = 316,
+ VARYING = 317,
+ FLOAT16_T = 318,
+ FLOAT32_T = 319,
+ DOUBLE = 320,
+ FLOAT64_T = 321,
+ INT64_T = 322,
+ UINT64_T = 323,
+ INT32_T = 324,
+ UINT32_T = 325,
+ INT16_T = 326,
+ UINT16_T = 327,
+ INT8_T = 328,
+ UINT8_T = 329,
+ I64VEC2 = 330,
+ I64VEC3 = 331,
+ I64VEC4 = 332,
+ U64VEC2 = 333,
+ U64VEC3 = 334,
+ U64VEC4 = 335,
+ I32VEC2 = 336,
+ I32VEC3 = 337,
+ I32VEC4 = 338,
+ U32VEC2 = 339,
+ U32VEC3 = 340,
+ U32VEC4 = 341,
+ I16VEC2 = 342,
+ I16VEC3 = 343,
+ I16VEC4 = 344,
+ U16VEC2 = 345,
+ U16VEC3 = 346,
+ U16VEC4 = 347,
+ I8VEC2 = 348,
+ I8VEC3 = 349,
+ I8VEC4 = 350,
+ U8VEC2 = 351,
+ U8VEC3 = 352,
+ U8VEC4 = 353,
+ DVEC2 = 354,
+ DVEC3 = 355,
+ DVEC4 = 356,
+ DMAT2 = 357,
+ DMAT3 = 358,
+ DMAT4 = 359,
+ F16VEC2 = 360,
+ F16VEC3 = 361,
+ F16VEC4 = 362,
+ F16MAT2 = 363,
+ F16MAT3 = 364,
+ F16MAT4 = 365,
+ F32VEC2 = 366,
+ F32VEC3 = 367,
+ F32VEC4 = 368,
+ F32MAT2 = 369,
+ F32MAT3 = 370,
+ F32MAT4 = 371,
+ F64VEC2 = 372,
+ F64VEC3 = 373,
+ F64VEC4 = 374,
+ F64MAT2 = 375,
+ F64MAT3 = 376,
+ F64MAT4 = 377,
+ DMAT2X2 = 378,
+ DMAT2X3 = 379,
+ DMAT2X4 = 380,
+ DMAT3X2 = 381,
+ DMAT3X3 = 382,
+ DMAT3X4 = 383,
+ DMAT4X2 = 384,
+ DMAT4X3 = 385,
+ DMAT4X4 = 386,
+ F16MAT2X2 = 387,
+ F16MAT2X3 = 388,
+ F16MAT2X4 = 389,
+ F16MAT3X2 = 390,
+ F16MAT3X3 = 391,
+ F16MAT3X4 = 392,
+ F16MAT4X2 = 393,
+ F16MAT4X3 = 394,
+ F16MAT4X4 = 395,
+ F32MAT2X2 = 396,
+ F32MAT2X3 = 397,
+ F32MAT2X4 = 398,
+ F32MAT3X2 = 399,
+ F32MAT3X3 = 400,
+ F32MAT3X4 = 401,
+ F32MAT4X2 = 402,
+ F32MAT4X3 = 403,
+ F32MAT4X4 = 404,
+ F64MAT2X2 = 405,
+ F64MAT2X3 = 406,
+ F64MAT2X4 = 407,
+ F64MAT3X2 = 408,
+ F64MAT3X3 = 409,
+ F64MAT3X4 = 410,
+ F64MAT4X2 = 411,
+ F64MAT4X3 = 412,
+ F64MAT4X4 = 413,
+ ATOMIC_UINT = 414,
+ ACCSTRUCTNV = 415,
+ FCOOPMATNV = 416,
+ ICOOPMATNV = 417,
+ UCOOPMATNV = 418,
+ SAMPLERCUBEARRAY = 419,
+ SAMPLERCUBEARRAYSHADOW = 420,
+ ISAMPLERCUBEARRAY = 421,
+ USAMPLERCUBEARRAY = 422,
+ SAMPLER1D = 423,
+ SAMPLER1DARRAY = 424,
+ SAMPLER1DARRAYSHADOW = 425,
+ ISAMPLER1D = 426,
+ SAMPLER1DSHADOW = 427,
+ SAMPLER2DRECT = 428,
+ SAMPLER2DRECTSHADOW = 429,
+ ISAMPLER2DRECT = 430,
+ USAMPLER2DRECT = 431,
+ SAMPLERBUFFER = 432,
+ ISAMPLERBUFFER = 433,
+ USAMPLERBUFFER = 434,
+ SAMPLER2DMS = 435,
+ ISAMPLER2DMS = 436,
+ USAMPLER2DMS = 437,
+ SAMPLER2DMSARRAY = 438,
+ ISAMPLER2DMSARRAY = 439,
+ USAMPLER2DMSARRAY = 440,
+ SAMPLEREXTERNALOES = 441,
+ SAMPLEREXTERNAL2DY2YEXT = 442,
+ ISAMPLER1DARRAY = 443,
+ USAMPLER1D = 444,
+ USAMPLER1DARRAY = 445,
+ F16SAMPLER1D = 446,
+ F16SAMPLER2D = 447,
+ F16SAMPLER3D = 448,
+ F16SAMPLER2DRECT = 449,
+ F16SAMPLERCUBE = 450,
+ F16SAMPLER1DARRAY = 451,
+ F16SAMPLER2DARRAY = 452,
+ F16SAMPLERCUBEARRAY = 453,
+ F16SAMPLERBUFFER = 454,
+ F16SAMPLER2DMS = 455,
+ F16SAMPLER2DMSARRAY = 456,
+ F16SAMPLER1DSHADOW = 457,
+ F16SAMPLER2DSHADOW = 458,
+ F16SAMPLER1DARRAYSHADOW = 459,
+ F16SAMPLER2DARRAYSHADOW = 460,
+ F16SAMPLER2DRECTSHADOW = 461,
+ F16SAMPLERCUBESHADOW = 462,
+ F16SAMPLERCUBEARRAYSHADOW = 463,
+ IMAGE1D = 464,
+ IIMAGE1D = 465,
+ UIMAGE1D = 466,
+ IMAGE2D = 467,
+ IIMAGE2D = 468,
+ UIMAGE2D = 469,
+ IMAGE3D = 470,
+ IIMAGE3D = 471,
+ UIMAGE3D = 472,
+ IMAGE2DRECT = 473,
+ IIMAGE2DRECT = 474,
+ UIMAGE2DRECT = 475,
+ IMAGECUBE = 476,
+ IIMAGECUBE = 477,
+ UIMAGECUBE = 478,
+ IMAGEBUFFER = 479,
+ IIMAGEBUFFER = 480,
+ UIMAGEBUFFER = 481,
+ IMAGE1DARRAY = 482,
+ IIMAGE1DARRAY = 483,
+ UIMAGE1DARRAY = 484,
+ IMAGE2DARRAY = 485,
+ IIMAGE2DARRAY = 486,
+ UIMAGE2DARRAY = 487,
+ IMAGECUBEARRAY = 488,
+ IIMAGECUBEARRAY = 489,
+ UIMAGECUBEARRAY = 490,
+ IMAGE2DMS = 491,
+ IIMAGE2DMS = 492,
+ UIMAGE2DMS = 493,
+ IMAGE2DMSARRAY = 494,
+ IIMAGE2DMSARRAY = 495,
+ UIMAGE2DMSARRAY = 496,
+ F16IMAGE1D = 497,
+ F16IMAGE2D = 498,
+ F16IMAGE3D = 499,
+ F16IMAGE2DRECT = 500,
+ F16IMAGECUBE = 501,
+ F16IMAGE1DARRAY = 502,
+ F16IMAGE2DARRAY = 503,
+ F16IMAGECUBEARRAY = 504,
+ F16IMAGEBUFFER = 505,
+ F16IMAGE2DMS = 506,
+ F16IMAGE2DMSARRAY = 507,
+ TEXTURECUBEARRAY = 508,
+ ITEXTURECUBEARRAY = 509,
+ UTEXTURECUBEARRAY = 510,
+ TEXTURE1D = 511,
+ ITEXTURE1D = 512,
+ UTEXTURE1D = 513,
+ TEXTURE1DARRAY = 514,
+ ITEXTURE1DARRAY = 515,
+ UTEXTURE1DARRAY = 516,
+ TEXTURE2DRECT = 517,
+ ITEXTURE2DRECT = 518,
+ UTEXTURE2DRECT = 519,
+ TEXTUREBUFFER = 520,
+ ITEXTUREBUFFER = 521,
+ UTEXTUREBUFFER = 522,
TEXTURE2DMS = 523,
ITEXTURE2DMS = 524,
UTEXTURE2DMS = 525,
@@ -414,27 +414,27 @@ extern int yydebug;
DEFAULT = 624,
UNIFORM = 625,
SHARED = 626,
- FLAT = 627,
- SMOOTH = 628,
- LAYOUT = 629,
- DOUBLECONSTANT = 630,
- INT16CONSTANT = 631,
- UINT16CONSTANT = 632,
- FLOAT16CONSTANT = 633,
- INT32CONSTANT = 634,
- UINT32CONSTANT = 635,
- INT64CONSTANT = 636,
- UINT64CONSTANT = 637,
- SUBROUTINE = 638,
- DEMOTE = 639,
- PAYLOADNV = 640,
- PAYLOADINNV = 641,
- HITATTRNV = 642,
- CALLDATANV = 643,
- CALLDATAINNV = 644,
- PATCH = 645,
- SAMPLE = 646,
- BUFFER = 647,
+ BUFFER = 627,
+ FLAT = 628,
+ SMOOTH = 629,
+ LAYOUT = 630,
+ DOUBLECONSTANT = 631,
+ INT16CONSTANT = 632,
+ UINT16CONSTANT = 633,
+ FLOAT16CONSTANT = 634,
+ INT32CONSTANT = 635,
+ UINT32CONSTANT = 636,
+ INT64CONSTANT = 637,
+ UINT64CONSTANT = 638,
+ SUBROUTINE = 639,
+ DEMOTE = 640,
+ PAYLOADNV = 641,
+ PAYLOADINNV = 642,
+ HITATTRNV = 643,
+ CALLDATANV = 644,
+ CALLDATAINNV = 645,
+ PATCH = 646,
+ SAMPLE = 647,
NONUNIFORM = 648,
COHERENT = 649,
VOLATILE = 650,
diff --git a/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/iomapper.h b/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/iomapper.h
index 01afc5a21e9..684e88d5710 100644
--- a/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/iomapper.h
+++ b/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/iomapper.h
@@ -114,7 +114,7 @@ public:
bool doAutoLocationMapping() const;
TSlotSet::iterator findSlot(int set, int slot);
bool checkEmpty(int set, int slot);
- bool validateInOut(EShLanguage /*stage*/, TVarEntryInfo& /*ent*/) override { return true; };
+ bool validateInOut(EShLanguage /*stage*/, TVarEntryInfo& /*ent*/) override { return true; }
int reserveSlot(int set, int slot, int size = 1);
int getFreeSlot(int set, int base, int size = 1);
int resolveSet(EShLanguage /*stage*/, TVarEntryInfo& ent) override;
@@ -125,7 +125,7 @@ public:
void addStage(EShLanguage stage) override {
if (stage < EShLangCount)
stageMask[stage] = true;
- };
+ }
uint32_t computeTypeLocationSize(const TType& type, EShLanguage stage);
TSlotSetMap slots;
@@ -191,7 +191,7 @@ public:
typedef std::map<TString, int> TVarSlotMap; // <resourceName, location/binding>
typedef std::map<int, TVarSlotMap> TSlotMap; // <resourceKey, TVarSlotMap>
TDefaultGlslIoResolver(const TIntermediate& intermediate);
- bool validateBinding(EShLanguage /*stage*/, TVarEntryInfo& /*ent*/) override { return true; };
+ bool validateBinding(EShLanguage /*stage*/, TVarEntryInfo& /*ent*/) override { return true; }
TResourceType getResourceType(const glslang::TType& type) override;
int resolveInOutLocation(EShLanguage stage, TVarEntryInfo& ent) override;
int resolveUniformLocation(EShLanguage /*stage*/, TVarEntryInfo& ent) override;
@@ -209,7 +209,7 @@ public:
int buildStorageKey(EShLanguage stage, TStorageQualifier type) {
assert(static_cast<uint32_t>(stage) <= 0x0000ffff && static_cast<uint32_t>(type) <= 0x0000ffff);
return (stage << 16) | type;
- };
+ }
protected:
// Use for mark pre stage, to get more interface symbol information.
@@ -242,7 +242,7 @@ struct TVarLivePair : std::pair<const TString, TVarEntryInfo> {
const_cast<TString&>(first) = _Right.first;
second = _Right.second;
return (*this);
- };
+ }
};
typedef std::vector<TVarLivePair> TVarLiveVector;
@@ -253,7 +253,7 @@ public:
virtual ~TIoMapper() {}
// grow the reflection stage by stage
bool virtual addStage(EShLanguage, TIntermediate&, TInfoSink&, TIoMapResolver*);
- bool virtual doMap(TIoMapResolver*, TInfoSink&) { return true; };
+ bool virtual doMap(TIoMapResolver*, TInfoSink&) { return true; }
};
// I/O mapper for OpenGL
diff --git a/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/linkValidate.cpp b/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/linkValidate.cpp
index 5b920f2d524..921eb84e58c 100644
--- a/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/linkValidate.cpp
+++ b/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/linkValidate.cpp
@@ -496,6 +496,7 @@ void TIntermediate::mergeImplicitArraySizes(TType& type, const TType& unitType)
//
void TIntermediate::mergeErrorCheck(TInfoSink& infoSink, const TIntermSymbol& symbol, const TIntermSymbol& unitSymbol, bool crossStage)
{
+#ifndef GLSLANG_WEB
bool writeTypeComparison = false;
// Types have to match
@@ -546,7 +547,6 @@ void TIntermediate::mergeErrorCheck(TInfoSink& infoSink, const TIntermSymbol& sy
writeTypeComparison = true;
}
-#ifndef GLSLANG_WEB
// Memory...
if (symbol.getQualifier().coherent != unitSymbol.getQualifier().coherent ||
symbol.getQualifier().devicecoherent != unitSymbol.getQualifier().devicecoherent ||
@@ -561,7 +561,6 @@ void TIntermediate::mergeErrorCheck(TInfoSink& infoSink, const TIntermSymbol& sy
error(infoSink, "Memory qualifiers must match:");
writeTypeComparison = true;
}
-#endif
// Layouts...
// TODO: 4.4 enhanced layouts: Generalize to include offset/align: current spec
@@ -591,6 +590,7 @@ void TIntermediate::mergeErrorCheck(TInfoSink& infoSink, const TIntermSymbol& sy
if (writeTypeComparison)
infoSink.info << " " << symbol.getName() << ": \"" << symbol.getType().getCompleteString() << "\" versus \"" <<
unitSymbol.getType().getCompleteString() << "\"\n";
+#endif
}
//
@@ -1095,7 +1095,7 @@ int TIntermediate::addUsedLocation(const TQualifier& qualifier, const TType& typ
}
// combine location and component ranges
- TIoRange range(locationRange, componentRange, type.getBasicType(), qualifier.hasIndex() ? qualifier.layoutIndex : 0);
+ TIoRange range(locationRange, componentRange, type.getBasicType(), qualifier.hasIndex() ? qualifier.getIndex() : 0);
// check for collisions, except for vertex inputs on desktop targeting OpenGL
if (! (!isEsProfile() && language == EShLangVertex && qualifier.isPipeInput()) || spvVersion.vulkan > 0)
diff --git a/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/localintermediate.h b/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/localintermediate.h
index 10f994788cf..5f34a6c745f 100644
--- a/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/localintermediate.h
+++ b/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/localintermediate.h
@@ -147,6 +147,7 @@ struct TOffsetRange {
TRange offset;
};
+#ifndef GLSLANG_WEB
// Things that need to be tracked per xfb buffer.
struct TXfbBuffer {
TXfbBuffer() : stride(TQualifier::layoutXfbStrideEnd), implicitStride(0), contains64BitType(false),
@@ -158,6 +159,7 @@ struct TXfbBuffer {
bool contains32BitType;
bool contains16BitType;
};
+#endif
// Track a set of strings describing how the module was processed.
// Using the form:
@@ -267,7 +269,6 @@ public:
uniformLocationBase(0)
#endif
{
-#ifndef GLSLANG_WEB
localSize[0] = 1;
localSize[1] = 1;
localSize[2] = 1;
@@ -277,6 +278,7 @@ public:
localSizeSpecId[0] = TQualifier::layoutNotSet;
localSizeSpecId[1] = TQualifier::layoutNotSet;
localSizeSpecId[2] = TQualifier::layoutNotSet;
+#ifndef GLSLANG_WEB
xfbBuffers.resize(TQualifier::layoutXfbBufferEnd);
shiftBinding.fill(0);
#endif
@@ -465,7 +467,23 @@ public:
bool usingStorageBuffer() const { return useStorageBuffer; }
void setDepthReplacing() { depthReplacing = true; }
bool isDepthReplacing() const { return depthReplacing; }
-
+ bool setLocalSize(int dim, int size)
+ {
+ if (localSizeNotDefault[dim])
+ return size == localSize[dim];
+ localSizeNotDefault[dim] = true;
+ localSize[dim] = size;
+ return true;
+ }
+ unsigned int getLocalSize(int dim) const { return localSize[dim]; }
+ bool setLocalSizeSpecId(int dim, int id)
+ {
+ if (localSizeSpecId[dim] != TQualifier::layoutNotSet)
+ return id == localSizeSpecId[dim];
+ localSizeSpecId[dim] = id;
+ return true;
+ }
+ int getLocalSizeSpecId(int dim) const { return localSizeSpecId[dim]; }
#ifdef GLSLANG_WEB
void output(TInfoSink&, bool tree) { }
@@ -492,6 +510,7 @@ public:
bool usingVariablePointers() const { return false; }
unsigned getXfbStride(int buffer) const { return 0; }
bool hasLayoutDerivativeModeNone() const { return false; }
+ ComputeDerivativeMode getLayoutDerivativeModeNone() const { return LayoutDerivativeNone; }
#else
void output(TInfoSink&, bool tree);
@@ -655,24 +674,6 @@ public:
}
TInterlockOrdering getInterlockOrdering() const { return interlockOrdering; }
- bool setLocalSize(int dim, int size)
- {
- if (localSizeNotDefault[dim])
- return size == localSize[dim];
- localSizeNotDefault[dim] = true;
- localSize[dim] = size;
- return true;
- }
- unsigned int getLocalSize(int dim) const { return localSize[dim]; }
-
- bool setLocalSizeSpecId(int dim, int id)
- {
- if (localSizeSpecId[dim] != TQualifier::layoutNotSet)
- return id == localSizeSpecId[dim];
- localSizeSpecId[dim] = id;
- return true;
- }
- int getLocalSizeSpecId(int dim) const { return localSizeSpecId[dim]; }
void setXfbMode() { xfbMode = true; }
bool getXfbMode() const { return xfbMode; }
void setMultiStream() { multiStream = true; }
@@ -757,7 +758,7 @@ public:
void setBinaryDoubleOutput() { binaryDoubleOutput = true; }
bool getBinaryDoubleOutput() { return binaryDoubleOutput; }
-#endif
+#endif // GLSLANG_WEB
#ifdef ENABLE_HLSL
void setHlslFunctionality1() { hlslFunctionality1 = true; }
@@ -786,6 +787,9 @@ public:
void merge(TInfoSink&, TIntermediate&);
void finalCheck(TInfoSink&, bool keepUncalled);
+ bool buildConvertOp(TBasicType dst, TBasicType src, TOperator& convertOp) const;
+ TIntermTyped* createConversion(TBasicType convertTo, TIntermTyped* node) const;
+
void addIoAccessed(const TString& name) { ioAccessed.insert(name); }
bool inIoAccessed(const TString& name) const { return ioAccessed.find(name) != ioAccessed.end(); }
@@ -876,7 +880,6 @@ protected:
bool specConstantPropagates(const TIntermTyped&, const TIntermTyped&);
void performTextureUpgradeAndSamplerRemovalTransformation(TIntermNode* root);
bool isConversionAllowed(TOperator op, TIntermTyped* node) const;
- TIntermTyped* createConversion(TBasicType convertTo, TIntermTyped* node) const;
std::tuple<TBasicType, TBasicType> getConversionDestinatonType(TBasicType type0, TBasicType type1, TOperator op) const;
// JohnK: I think this function should go away.
@@ -918,6 +921,9 @@ protected:
bool useStorageBuffer;
bool nanMinMaxClamp; // true if desiring min/max/clamp to favor non-NaN over NaN
bool depthReplacing;
+ int localSize[3];
+ bool localSizeNotDefault[3];
+ int localSizeSpecId[3];
#ifndef GLSLANG_WEB
bool useVulkanMemoryModel;
int invocations;
@@ -930,9 +936,6 @@ protected:
TVertexOrder vertexOrder;
TInterlockOrdering interlockOrdering;
bool pointMode;
- int localSize[3];
- bool localSizeNotDefault[3];
- int localSizeSpecId[3];
bool earlyFragmentTests;
bool postDepthCoverage;
TLayoutDepth depthLayout;
diff --git a/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/reflection.cpp b/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/reflection.cpp
index 9f1089ded71..b09367113cf 100644
--- a/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/reflection.cpp
+++ b/3rdparty/bgfx/3rdparty/glslang/glslang/MachineIndependent/reflection.cpp
@@ -137,7 +137,7 @@ public:
if (it == ioMapper.end()) {
// seperate pipe i/o params from uniforms and blocks
// in is only for input in first stage as out is only for last stage. check traverse in call stack.
- ioMapper[name.c_str()] = ioItems.size();
+ ioMapper[name.c_str()] = static_cast<int>(ioItems.size());
ioItems.push_back(
TObjectReflection(name.c_str(), type, 0, mapToGlType(type), mapToGlArraySize(type), 0));
EShLanguageMask& stages = ioItems.back().stages;
diff --git a/3rdparty/bgfx/3rdparty/glslang/glslang/OSDependent/Unix/CMakeLists.txt b/3rdparty/bgfx/3rdparty/glslang/glslang/OSDependent/Unix/CMakeLists.txt
index e652f456249..91fb45a7140 100644
--- a/3rdparty/bgfx/3rdparty/glslang/glslang/OSDependent/Unix/CMakeLists.txt
+++ b/3rdparty/bgfx/3rdparty/glslang/glslang/OSDependent/Unix/CMakeLists.txt
@@ -20,6 +20,7 @@ else()
endif()
if(ENABLE_GLSLANG_INSTALL)
- install(TARGETS OSDependent
+ install(TARGETS OSDependent EXPORT OSDependentTargets
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ install(EXPORT OSDependentTargets DESTINATION lib/cmake)
endif(ENABLE_GLSLANG_INSTALL)
diff --git a/3rdparty/bgfx/3rdparty/glslang/glslang/OSDependent/Windows/CMakeLists.txt b/3rdparty/bgfx/3rdparty/glslang/glslang/OSDependent/Windows/CMakeLists.txt
index f257418abbe..f6bd4e9db2e 100644
--- a/3rdparty/bgfx/3rdparty/glslang/glslang/OSDependent/Windows/CMakeLists.txt
+++ b/3rdparty/bgfx/3rdparty/glslang/glslang/OSDependent/Windows/CMakeLists.txt
@@ -15,6 +15,7 @@ if(WIN32)
endif(WIN32)
if(ENABLE_GLSLANG_INSTALL)
- install(TARGETS OSDependent
+ install(TARGETS OSDependent EXPORT OSDependentTargets
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ install(EXPORT OSDependentTargets DESTINATION lib/cmake)
endif(ENABLE_GLSLANG_INSTALL)
diff --git a/3rdparty/bgfx/3rdparty/glslang/glslang/Public/ShaderLang.h b/3rdparty/bgfx/3rdparty/glslang/glslang/Public/ShaderLang.h
index bb06acc0a3b..4cc6c2f4889 100644
--- a/3rdparty/bgfx/3rdparty/glslang/glslang/Public/ShaderLang.h
+++ b/3rdparty/bgfx/3rdparty/glslang/glslang/Public/ShaderLang.h
@@ -487,6 +487,8 @@ public:
environment.target.version = version;
}
+ void getStrings(const char* const* &s, int& n) { s = strings; n = numStrings; }
+
#ifdef ENABLE_HLSL
void setEnvTargetHlslFunctionality1() { environment.target.hlslFunctionality1 = true; }
bool getEnvTargetHlslFunctionality1() const { return environment.target.hlslFunctionality1; }
@@ -773,7 +775,7 @@ public:
TProgram();
virtual ~TProgram();
void addShader(TShader* shader) { stages[shader->stage].push_back(shader); }
-
+ std::list<TShader*>& getShaders(EShLanguage stage) { return stages[stage]; }
// Link Validation interface
bool link(EShMessages);
const char* getInfoLog();
diff --git a/3rdparty/bgfx/3rdparty/glslang/gtests/CMakeLists.txt b/3rdparty/bgfx/3rdparty/glslang/gtests/CMakeLists.txt
index f678cb6ea5c..77d217f1adb 100644
--- a/3rdparty/bgfx/3rdparty/glslang/gtests/CMakeLists.txt
+++ b/3rdparty/bgfx/3rdparty/glslang/gtests/CMakeLists.txt
@@ -31,8 +31,9 @@ if(BUILD_TESTING)
set_property(TARGET glslangtests PROPERTY FOLDER tests)
glslang_set_link_args(glslangtests)
if(ENABLE_GLSLANG_INSTALL)
- install(TARGETS glslangtests
+ install(TARGETS glslangtests EXPORT glslangtestsTargets
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ install(EXPORT glslangtestsTargets DESTINATION lib/cmake)
endif(ENABLE_GLSLANG_INSTALL)
set(GLSLANG_TEST_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../Test")
diff --git a/3rdparty/bgfx/3rdparty/glslang/gtests/Spv.FromFile.cpp b/3rdparty/bgfx/3rdparty/glslang/gtests/Spv.FromFile.cpp
index d0c075156a6..ce5960c8ea5 100644
--- a/3rdparty/bgfx/3rdparty/glslang/gtests/Spv.FromFile.cpp
+++ b/3rdparty/bgfx/3rdparty/glslang/gtests/Spv.FromFile.cpp
@@ -63,6 +63,7 @@ std::string FileNameAsCustomTestSuffixIoMap(
}
using CompileVulkanToSpirvTest = GlslangTest<::testing::TestWithParam<std::string>>;
+using CompileVulkanToSpirvDeadCodeElimTest = GlslangTest<::testing::TestWithParam<std::string>>;
using CompileVulkanToDebugSpirvTest = GlslangTest<::testing::TestWithParam<std::string>>;
using CompileVulkan1_1ToSpirvTest = GlslangTest<::testing::TestWithParam<std::string>>;
using CompileToSpirv14Test = GlslangTest<::testing::TestWithParam<std::string>>;
@@ -85,6 +86,13 @@ TEST_P(CompileVulkanToSpirvTest, FromFile)
Target::Spv);
}
+TEST_P(CompileVulkanToSpirvDeadCodeElimTest, FromFile)
+{
+ loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(),
+ Source::GLSL, Semantics::Vulkan, glslang::EShTargetVulkan_1_0, glslang::EShTargetSpv_1_0,
+ Target::Spv);
+}
+
// Compiling GLSL to SPIR-V with debug info under Vulkan semantics. Expected
// to successfully generate SPIR-V.
TEST_P(CompileVulkanToDebugSpirvTest, FromFile)
@@ -404,6 +412,7 @@ INSTANTIATE_TEST_CASE_P(
"spv.storageBuffer.vert",
"spv.precise.tese",
"spv.precise.tesc",
+ "spv.volatileAtomic.comp",
"spv.vulkan100.subgroupArithmetic.comp",
"spv.vulkan100.subgroupPartitioned.comp",
"spv.xfb.vert",
@@ -416,6 +425,23 @@ INSTANTIATE_TEST_CASE_P(
FileNameAsCustomTestSuffix
);
+// Cases with deliberately unreachable code.
+// By default the compiler will aggressively eliminate
+// unreachable merges and continues.
+INSTANTIATE_TEST_CASE_P(
+ GlslWithDeadCode, CompileVulkanToSpirvDeadCodeElimTest,
+ ::testing::ValuesIn(std::vector<std::string>({
+ "spv.dead-after-continue.vert",
+ "spv.dead-after-discard.frag",
+ "spv.dead-after-return.vert",
+ "spv.dead-after-loop-break.vert",
+ "spv.dead-after-switch-break.vert",
+ "spv.dead-complex-continue-after-return.vert",
+ "spv.dead-complex-merge-after-return.vert",
+ })),
+ FileNameAsCustomTestSuffix
+);
+
// clang-format off
INSTANTIATE_TEST_CASE_P(
Glsl, CompileVulkanToDebugSpirvTest,
diff --git a/3rdparty/bgfx/3rdparty/glslang/gtests/TestFixture.h b/3rdparty/bgfx/3rdparty/glslang/gtests/TestFixture.h
index 61a8f23268e..8d2ebd92575 100755
--- a/3rdparty/bgfx/3rdparty/glslang/gtests/TestFixture.h
+++ b/3rdparty/bgfx/3rdparty/glslang/gtests/TestFixture.h
@@ -113,7 +113,7 @@ public:
forceVersionProfile(false),
isForwardCompatible(false) {
// Perform validation by default.
- validatorOptions.validate = true;
+ spirvOptions.validate = true;
}
// Tries to load the contents from the file at the given |path|. On success,
@@ -693,14 +693,14 @@ public:
expectedOutputFname, result.spirvWarningsErrors);
}
- glslang::SpvOptions& options() { return validatorOptions; }
+ glslang::SpvOptions& options() { return spirvOptions; }
private:
const int defaultVersion;
const EProfile defaultProfile;
const bool forceVersionProfile;
const bool isForwardCompatible;
- glslang::SpvOptions validatorOptions;
+ glslang::SpvOptions spirvOptions;
};
} // namespace glslangtest
diff --git a/3rdparty/bgfx/3rdparty/glslang/hlsl/CMakeLists.txt b/3rdparty/bgfx/3rdparty/glslang/hlsl/CMakeLists.txt
index 7436dde69dc..44f9d6a26ff 100644
--- a/3rdparty/bgfx/3rdparty/glslang/hlsl/CMakeLists.txt
+++ b/3rdparty/bgfx/3rdparty/glslang/hlsl/CMakeLists.txt
@@ -33,12 +33,13 @@ endif(WIN32)
if(ENABLE_GLSLANG_INSTALL)
if(BUILD_SHARED_LIBS)
- install(TARGETS HLSL
+ install(TARGETS HLSL EXPORT HLSLTargets
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
else()
- install(TARGETS HLSL
+ install(TARGETS HLSL EXPORT HLSLTargets
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif()
+ install(EXPORT HLSLTargets DESTINATION lib/cmake)
endif(ENABLE_GLSLANG_INSTALL)
diff --git a/3rdparty/bgfx/3rdparty/glslang/known_good.json b/3rdparty/bgfx/3rdparty/glslang/known_good.json
index 6a13907090c..8bb705359bd 100644
--- a/3rdparty/bgfx/3rdparty/glslang/known_good.json
+++ b/3rdparty/bgfx/3rdparty/glslang/known_good.json
@@ -5,14 +5,14 @@
"site" : "github",
"subrepo" : "KhronosGroup/SPIRV-Tools",
"subdir" : "External/spirv-tools",
- "commit" : "bbb29870b510f83f99994358179c9ea6838c3100"
+ "commit" : "02910ffdffaa2966f613ede0c516645f5555c13c"
},
{
"name" : "spirv-tools/external/spirv-headers",
"site" : "github",
"subrepo" : "KhronosGroup/SPIRV-Headers",
"subdir" : "External/spirv-tools/external/spirv-headers",
- "commit" : "601d738723ac381741311c6c98c36d6170be14a2"
+ "commit" : "af64a9e826bf5bb5fcd2434dd71be1e41e922563"
}
]
}
diff --git a/3rdparty/bgfx/3rdparty/glslang/kokoro/linux-clang-release-bazel/build.sh b/3rdparty/bgfx/3rdparty/glslang/kokoro/linux-clang-release-bazel/build.sh
new file mode 100644
index 00000000000..f73162f6209
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/glslang/kokoro/linux-clang-release-bazel/build.sh
@@ -0,0 +1,60 @@
+#!/bin/bash
+
+# Copyright (C) 2019 Google, Inc.
+#
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided
+# with the distribution.
+#
+# Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+# Linux Build Script.
+
+# Fail on any error.
+set -e
+# Display commands being run.
+set -x
+
+CC=clang
+CXX=clang++
+SRC=$PWD/github/glslang
+cd $SRC
+
+# Bazel limitation: No 'External' directory is allowed!!
+mv External third_party
+
+gsutil cp gs://bazel/0.29.1/release/bazel-0.29.1-linux-x86_64 .
+chmod +x bazel-0.29.1-linux-x86_64
+
+echo $(date): Build everything...
+./bazel-0.29.1-linux-x86_64 build :all
+echo $(date): Build completed.
+
+echo $(date): Starting bazel test...
+./bazel-0.29.1-linux-x86_64 test :all
+echo $(date): Bazel test completed.
diff --git a/3rdparty/bgfx/3rdparty/glslang/kokoro/linux-clang-release-bazel/continuous.cfg b/3rdparty/bgfx/3rdparty/glslang/kokoro/linux-clang-release-bazel/continuous.cfg
new file mode 100644
index 00000000000..767556d0b4b
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/glslang/kokoro/linux-clang-release-bazel/continuous.cfg
@@ -0,0 +1,35 @@
+# Copyright (C) 2019 Google, Inc.
+#
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided
+# with the distribution.
+#
+# Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+# Continuous build configuration.
+build_file: "glslang/kokoro/linux-clang-release-bazel/build.sh"
diff --git a/3rdparty/bgfx/3rdparty/glslang/kokoro/linux-clang-release-bazel/presubmit.cfg b/3rdparty/bgfx/3rdparty/glslang/kokoro/linux-clang-release-bazel/presubmit.cfg
new file mode 100644
index 00000000000..669491f8294
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/glslang/kokoro/linux-clang-release-bazel/presubmit.cfg
@@ -0,0 +1,35 @@
+# Copyright (C) 2019 Google, Inc.
+#
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided
+# with the distribution.
+#
+# Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+# Presubmit build configuration.
+build_file: "glslang/kokoro/linux-clang-release-bazel/build.sh"
diff --git a/3rdparty/bgfx/3rdparty/glslang/kokoro/macos-clang-release-bazel/build.sh b/3rdparty/bgfx/3rdparty/glslang/kokoro/macos-clang-release-bazel/build.sh
new file mode 100644
index 00000000000..cc51fadf14e
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/glslang/kokoro/macos-clang-release-bazel/build.sh
@@ -0,0 +1,60 @@
+#!/bin/bash
+
+# Copyright (C) 2019 Google, Inc.
+#
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided
+# with the distribution.
+#
+# Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+# macOS Build Script.
+
+# Fail on any error.
+set -e
+# Display commands being run.
+set -x
+
+CC=clang
+CXX=clang++
+SRC=$PWD/github/glslang
+cd $SRC
+
+mv External third_party
+
+# Get bazel 0.29.1.
+gsutil cp gs://bazel/0.29.1/release/bazel-0.29.1-darwin-x86_64 .
+chmod +x bazel-0.29.1-darwin-x86_64
+
+echo $(date): Build everything...
+./bazel-0.29.1-darwin-x86_64 build :all
+echo $(date): Build completed.
+
+echo $(date): Starting bazel test...
+./bazel-0.29.1-darwin-x86_64 test :all
+echo $(date): Bazel test completed.
diff --git a/3rdparty/bgfx/3rdparty/glslang/kokoro/macos-clang-release-bazel/continuous.cfg b/3rdparty/bgfx/3rdparty/glslang/kokoro/macos-clang-release-bazel/continuous.cfg
new file mode 100644
index 00000000000..f1980790e28
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/glslang/kokoro/macos-clang-release-bazel/continuous.cfg
@@ -0,0 +1,35 @@
+# Copyright (C) 2019 Google, Inc.
+#
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided
+# with the distribution.
+#
+# Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+# Continuous build configuration.
+build_file: "glslang/kokoro/macos-clang-release-bazel/build.sh"
diff --git a/3rdparty/bgfx/3rdparty/glslang/kokoro/macos-clang-release-bazel/presubmit.cfg b/3rdparty/bgfx/3rdparty/glslang/kokoro/macos-clang-release-bazel/presubmit.cfg
new file mode 100644
index 00000000000..daa30be5cb1
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/glslang/kokoro/macos-clang-release-bazel/presubmit.cfg
@@ -0,0 +1,35 @@
+# Copyright (C) 2019 Google, Inc.
+#
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided
+# with the distribution.
+#
+# Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+# Presubmit build configuration.
+build_file: "glslang/kokoro/macos-clang-release-bazel/build.sh"
diff --git a/3rdparty/bgfx/3rdparty/glslang/kokoro/windows-msvc-2015-release-bazel/build.bat b/3rdparty/bgfx/3rdparty/glslang/kokoro/windows-msvc-2015-release-bazel/build.bat
new file mode 100644
index 00000000000..1a1557c980c
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/glslang/kokoro/windows-msvc-2015-release-bazel/build.bat
@@ -0,0 +1,75 @@
+:: Copyright (C) 2019 Google, Inc.
+::
+:: All rights reserved.
+::
+:: Redistribution and use in source and binary forms, with or without
+:: modification, are permitted provided that the following conditions
+:: are met:
+::
+:: Redistributions of source code must retain the above copyright
+:: notice, this list of conditions and the following disclaimer.
+::
+:: Redistributions in binary form must reproduce the above
+:: copyright notice, this list of conditions and the following
+:: disclaimer in the documentation and/or other materials provided
+:: with the distribution.
+::
+:: Neither the name of Google Inc. nor the names of its
+:: contributors may be used to endorse or promote products derived
+:: from this software without specific prior written permission.
+::
+:: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+:: "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+:: LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+:: FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+:: COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+:: INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+:: BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+:: LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+:: CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+:: LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+:: ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+:: POSSIBILITY OF SUCH DAMAGE.
+:: Copyright (c) 2019 Google LLC.
+::
+:: Windows Build Script.
+
+@echo on
+
+set SRC=%cd%\github\glslang
+
+:: Force usage of python 3.6
+set PATH=C:\python36;%PATH%
+cd %SRC%
+
+mv External third_party
+
+:: REM Install Bazel.
+wget -q https://github.com/bazelbuild/bazel/releases/download/0.29.1/bazel-0.29.1-windows-x86_64.zip
+unzip -q bazel-0.29.1-windows-x86_64.zip
+
+:: Set up MSVC
+call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x64
+set BAZEL_VS=C:\Program Files (x86)\Microsoft Visual Studio 14.0
+set BAZEL_VC=C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC
+set BAZEL_SH=c:\tools\msys64\usr\bin\bash.exe
+set BAZEL_PYTHON=c:\tools\python2\python.exe
+
+:: #########################################
+:: Start building.
+:: #########################################
+echo "Build everything... %DATE% %TIME%"
+bazel.exe build :all
+if %ERRORLEVEL% NEQ 0 exit /b %ERRORLEVEL%
+echo "Build Completed %DATE% %TIME%"
+
+:: ##############
+:: Run the tests
+:: ##############
+echo "Running Tests... %DATE% %TIME%"
+bazel.exe test :all
+if %ERRORLEVEL% NEQ 0 exit /b %ERRORLEVEL%
+echo "Tests Completed %DATE% %TIME%"
+
+exit /b 0
+
diff --git a/3rdparty/bgfx/3rdparty/glslang/kokoro/windows-msvc-2015-release-bazel/continuous.cfg b/3rdparty/bgfx/3rdparty/glslang/kokoro/windows-msvc-2015-release-bazel/continuous.cfg
new file mode 100644
index 00000000000..554d29de573
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/glslang/kokoro/windows-msvc-2015-release-bazel/continuous.cfg
@@ -0,0 +1,35 @@
+# Copyright (C) 2019 Google, Inc.
+#
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided
+# with the distribution.
+#
+# Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+# Continuous build configuration.
+build_file: "glslang/kokoro/windows-msvc-2015-release-bazel/build.bat"
diff --git a/3rdparty/bgfx/3rdparty/glslang/kokoro/windows-msvc-2015-release-bazel/presubmit.cfg b/3rdparty/bgfx/3rdparty/glslang/kokoro/windows-msvc-2015-release-bazel/presubmit.cfg
new file mode 100644
index 00000000000..4980bb6b581
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/glslang/kokoro/windows-msvc-2015-release-bazel/presubmit.cfg
@@ -0,0 +1,35 @@
+# Copyright (C) 2019 Google, Inc.
+#
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided
+# with the distribution.
+#
+# Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+# Presubmit build configuration.
+build_file: "glslang/kokoro/windows-msvc-2015-release-bazel/build.bat"