From f4d03c2244a291e31952858dafc83feb19d8a5eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Branimir=20Karad=C5=BEi=C4=87?= Date: Sat, 9 Jun 2018 17:15:06 -0700 Subject: [PATCH] Updated glslang. --- 3rdparty/glslang/SPIRV/CMakeLists.txt | 1 + 3rdparty/glslang/SPIRV/GlslangToSpv.cpp | 169 ++--- 3rdparty/glslang/SPIRV/SpvBuilder.cpp | 4 +- .../hlsl.aliasOpaque.frag.out | 2 +- .../hlsl.flattenOpaque.frag.out | 2 +- .../hlsl.flattenOpaqueInit.vert.out | 2 +- .../hlsl.flattenOpaqueInitMix.vert.out | 2 +- .../hlsl.flattenSubset.frag.out | 2 +- .../hlsl.flattenSubset2.frag.out | 2 +- .../hlsl.partialFlattenLocal.vert.out | 2 +- .../hlsl.partialFlattenMixed.vert.out | 2 +- .../Test/baseResults/compoundsuffix.frag.hlsl | 2 +- .../glsl.entryPointRename.vert.bad.out | 2 +- .../glsl.entryPointRename.vert.out | 2 +- .../Test/baseResults/glspv.version.frag.out | 2 +- .../Test/baseResults/hlsl.PointSize.geom.out | 2 +- .../Test/baseResults/hlsl.PointSize.vert.out | 2 +- .../baseResults/hlsl.aliasOpaque.frag.out | 2 +- .../Test/baseResults/hlsl.amend.frag.out | 2 +- .../baseResults/hlsl.array.flatten.frag.out | 2 +- .../Test/baseResults/hlsl.array.frag.out | 2 +- .../hlsl.array.implicit-size.frag.out | 2 +- .../baseResults/hlsl.array.multidim.frag.out | 2 +- .../Test/baseResults/hlsl.assoc.frag.out | 2 +- .../hlsl.attribute.expression.comp.out | 2 +- .../Test/baseResults/hlsl.attribute.frag.out | 2 +- .../baseResults/hlsl.attributeC11.frag.out | 2 +- .../hlsl.attributeGlobalBuffer.frag.out | 2 +- .../Test/baseResults/hlsl.basic.comp.out | 2 +- .../Test/baseResults/hlsl.basic.geom.out | 2 +- .../Test/baseResults/hlsl.boolConv.vert.out | 2 +- .../Test/baseResults/hlsl.buffer.frag.out | 2 +- .../hlsl.calculatelod.dx10.frag.out | 2 +- .../Test/baseResults/hlsl.cast.frag.out | 2 +- .../hlsl.cbuffer-identifier.vert.out | 2 +- .../Test/baseResults/hlsl.charLit.vert.out | 2 +- .../Test/baseResults/hlsl.clip.frag.out | 2 +- .../baseResults/hlsl.clipdistance-1.frag.out | 2 +- .../baseResults/hlsl.clipdistance-1.geom.out | 2 +- .../baseResults/hlsl.clipdistance-1.vert.out | 2 +- .../baseResults/hlsl.clipdistance-2.frag.out | 2 +- .../baseResults/hlsl.clipdistance-2.geom.out | 2 +- .../baseResults/hlsl.clipdistance-2.vert.out | 2 +- .../baseResults/hlsl.clipdistance-3.frag.out | 2 +- .../baseResults/hlsl.clipdistance-3.geom.out | 2 +- .../baseResults/hlsl.clipdistance-3.vert.out | 2 +- .../baseResults/hlsl.clipdistance-4.frag.out | 2 +- .../baseResults/hlsl.clipdistance-4.geom.out | 2 +- .../baseResults/hlsl.clipdistance-4.vert.out | 2 +- .../baseResults/hlsl.clipdistance-5.frag.out | 2 +- .../baseResults/hlsl.clipdistance-5.vert.out | 2 +- .../baseResults/hlsl.clipdistance-6.frag.out | 2 +- .../baseResults/hlsl.clipdistance-6.vert.out | 2 +- .../baseResults/hlsl.clipdistance-7.frag.out | 2 +- .../baseResults/hlsl.clipdistance-7.vert.out | 2 +- .../baseResults/hlsl.clipdistance-8.frag.out | 2 +- .../baseResults/hlsl.clipdistance-8.vert.out | 2 +- .../baseResults/hlsl.clipdistance-9.frag.out | 2 +- .../baseResults/hlsl.clipdistance-9.vert.out | 2 +- .../Test/baseResults/hlsl.color.hull.tesc.out | 2 +- .../baseResults/hlsl.comparison.vec.frag.out | 2 +- .../baseResults/hlsl.conditional.frag.out | 2 +- .../baseResults/hlsl.constantbuffer.frag.out | 2 +- .../baseResults/hlsl.constructArray.vert.out | 2 +- .../baseResults/hlsl.constructexpr.frag.out | 2 +- .../baseResults/hlsl.constructimat.frag.out | 2 +- .../Test/baseResults/hlsl.coverage.frag.out | 2 +- .../Test/baseResults/hlsl.dashI.vert.out | 2 +- .../hlsl.deadFunctionMissingBody.vert.out | 2 +- .../baseResults/hlsl.depthGreater.frag.out | 2 +- .../Test/baseResults/hlsl.depthLess.frag.out | 2 +- .../Test/baseResults/hlsl.discard.frag.out | 2 +- .../Test/baseResults/hlsl.doLoop.frag.out | 2 +- .../Test/baseResults/hlsl.domain.1.tese.out | 2 +- .../Test/baseResults/hlsl.domain.2.tese.out | 2 +- .../Test/baseResults/hlsl.domain.3.tese.out | 2 +- .../hlsl.emptystruct.init.vert.out | 2 +- .../hlsl.emptystructreturn.frag.out | 2 +- .../hlsl.emptystructreturn.vert.out | 2 +- .../Test/baseResults/hlsl.entry-in.frag.out | 2 +- .../Test/baseResults/hlsl.entry-out.frag.out | 2 +- .../baseResults/hlsl.entry.rename.frag.out | 2 +- .../hlsl.explicitDescriptorSet-2.frag.out | 2 +- .../hlsl.explicitDescriptorSet.frag.out | 2 +- .../baseResults/hlsl.flatten.return.frag.out | 2 +- .../baseResults/hlsl.flattenOpaque.frag.out | 2 +- .../hlsl.flattenOpaqueInit.vert.out | 2 +- .../hlsl.flattenOpaqueInitMix.vert.out | 2 +- .../baseResults/hlsl.flattenSubset.frag.out | 2 +- .../baseResults/hlsl.flattenSubset2.frag.out | 2 +- .../Test/baseResults/hlsl.float1.frag.out | 2 +- .../Test/baseResults/hlsl.float4.frag.out | 2 +- .../Test/baseResults/hlsl.forLoop.frag.out | 2 +- .../Test/baseResults/hlsl.fraggeom.frag.out | 2 +- .../hlsl.gather.array.dx10.frag.out | 2 +- .../hlsl.gather.basic.dx10.frag.out | 2 +- .../hlsl.gather.basic.dx10.vert.out | 2 +- .../hlsl.gather.offset.dx10.frag.out | 2 +- .../hlsl.gather.offsetarray.dx10.frag.out | 2 +- .../hlsl.gatherRGBA.array.dx10.frag.out | 2 +- .../hlsl.gatherRGBA.basic.dx10.frag.out | 2 +- .../hlsl.gatherRGBA.offset.dx10.frag.out | 2 +- .../hlsl.gatherRGBA.offsetarray.dx10.frag.out | 2 +- .../hlsl.gathercmpRGBA.offset.dx10.frag.out | 3 +- .../hlsl.getdimensions.dx10.frag.out | 2 +- .../hlsl.getdimensions.dx10.vert.out | 2 +- .../hlsl.getdimensions.rw.dx10.frag.out | 2 +- .../hlsl.getsampleposition.dx10.frag.out | 2 +- .../hlsl.global-const-init.frag.out | 2 +- .../Test/baseResults/hlsl.groupid.comp.out | 2 +- .../Test/baseResults/hlsl.gs-hs-mix.tesc.out | 2 +- .../Test/baseResults/hlsl.hlslOffset.vert.out | 2 +- .../Test/baseResults/hlsl.hull.1.tesc.out | 2 +- .../Test/baseResults/hlsl.hull.2.tesc.out | 2 +- .../Test/baseResults/hlsl.hull.3.tesc.out | 2 +- .../Test/baseResults/hlsl.hull.4.tesc.out | 2 +- .../baseResults/hlsl.hull.ctrlpt-1.tesc.out | 2 +- .../baseResults/hlsl.hull.ctrlpt-2.tesc.out | 2 +- .../Test/baseResults/hlsl.hull.void.tesc.out | 2 +- .../hlsl.identifier.sample.frag.out | 2 +- .../glslang/Test/baseResults/hlsl.if.frag.out | 2 +- .../hlsl.imagefetch-subvec4.comp.out | 2 +- .../baseResults/hlsl.implicitBool.frag.out | 2 +- .../Test/baseResults/hlsl.include.vert.out | 2 +- .../Test/baseResults/hlsl.inf.vert.out | 2 +- .../Test/baseResults/hlsl.init.frag.out | 2 +- .../Test/baseResults/hlsl.init2.frag.out | 2 +- .../Test/baseResults/hlsl.inoutquals.frag.out | 2 +- .../baseResults/hlsl.intrinsic.frexp.frag.out | 2 +- .../baseResults/hlsl.intrinsic.frexp.vert.out | 2 +- .../hlsl.intrinsics.barriers.comp.out | 2 +- .../Test/baseResults/hlsl.intrinsics.comp.out | 2 +- .../hlsl.intrinsics.d3dcolortoubyte4.frag.out | 2 +- .../hlsl.intrinsics.double.frag.out | 2 +- .../hlsl.intrinsics.evalfns.frag.out | 2 +- .../hlsl.intrinsics.f1632.frag.out | 2 +- .../hlsl.intrinsics.f3216.frag.out | 2 +- .../Test/baseResults/hlsl.intrinsics.frag.out | 2 +- .../baseResults/hlsl.intrinsics.lit.frag.out | 2 +- .../hlsl.intrinsics.negative.comp.out | 2 +- .../hlsl.intrinsics.negative.vert.out | 2 +- .../hlsl.intrinsics.promote.down.frag.out | 2 +- .../hlsl.intrinsics.promote.frag.out | 2 +- .../hlsl.intrinsics.promote.outputs.frag.out | 2 +- .../Test/baseResults/hlsl.intrinsics.vert.out | 2 +- .../Test/baseResults/hlsl.isfinite.frag.out | 2 +- .../Test/baseResults/hlsl.layout.frag.out | 2 +- .../baseResults/hlsl.layoutOverride.vert.out | 2 +- .../baseResults/hlsl.load.2dms.dx10.frag.out | 2 +- .../baseResults/hlsl.load.array.dx10.frag.out | 2 +- .../baseResults/hlsl.load.basic.dx10.frag.out | 2 +- .../baseResults/hlsl.load.basic.dx10.vert.out | 2 +- .../hlsl.load.buffer.dx10.frag.out | 2 +- .../hlsl.load.buffer.float.dx10.frag.out | 2 +- .../hlsl.load.offset.dx10.frag.out | 2 +- .../hlsl.load.offsetarray.dx10.frag.out | 2 +- .../hlsl.load.rwbuffer.dx10.frag.out | 2 +- .../hlsl.load.rwtexture.array.dx10.frag.out | 2 +- .../hlsl.load.rwtexture.dx10.frag.out | 2 +- .../baseResults/hlsl.logical.binary.frag.out | 2 +- .../hlsl.logical.binary.vec.frag.out | 2 +- .../baseResults/hlsl.logical.unary.frag.out | 2 +- .../baseResults/hlsl.logicalConvert.frag.out | 2 +- .../Test/baseResults/hlsl.loopattr.frag.out | 2 +- .../Test/baseResults/hlsl.matNx1.frag.out | 2 +- .../baseResults/hlsl.matType.bool.frag.out | 2 +- .../Test/baseResults/hlsl.matType.frag.out | 2 +- .../baseResults/hlsl.matType.int.frag.out | 2 +- .../Test/baseResults/hlsl.matpack-1.frag.out | 2 +- .../baseResults/hlsl.matpack-pragma.frag.out | 2 +- .../baseResults/hlsl.matrixSwizzle.vert.out | 2 +- .../baseResults/hlsl.matrixindex.frag.out | 2 +- .../Test/baseResults/hlsl.max.frag.out | 2 +- .../baseResults/hlsl.memberFunCall.frag.out | 2 +- .../Test/baseResults/hlsl.mintypes.frag.out | 2 +- .../baseResults/hlsl.mip.operator.frag.out | 2 +- .../baseResults/hlsl.mul-truncate.frag.out | 2 +- .../hlsl.multiDescriptorSet.frag.out | 2 +- .../Test/baseResults/hlsl.multiEntry.vert.out | 2 +- .../baseResults/hlsl.multiReturn.frag.out | 2 +- .../Test/baseResults/hlsl.namespace.frag.out | 2 +- .../hlsl.noSemantic.functionality1.comp.out | 2 +- .../baseResults/hlsl.nonint-index.frag.out | 2 +- .../hlsl.nonstaticMemberFunction.frag.out | 2 +- .../baseResults/hlsl.numericsuffixes.frag.out | 2 +- .../Test/baseResults/hlsl.numthreads.comp.out | 2 +- .../baseResults/hlsl.opaque-type-bug.frag.out | 2 +- .../Test/baseResults/hlsl.overload.frag.out | 2 +- .../baseResults/hlsl.params.default.frag.out | 2 +- .../hlsl.partialFlattenLocal.vert.out | 2 +- .../hlsl.partialFlattenMixed.vert.out | 2 +- .../baseResults/hlsl.partialInit.frag.out | 2 +- .../Test/baseResults/hlsl.pp.line.frag.out | 2 +- .../glslang/Test/baseResults/hlsl.pp.vert.out | 2 +- .../Test/baseResults/hlsl.precedence.frag.out | 2 +- .../baseResults/hlsl.precedence2.frag.out | 2 +- .../Test/baseResults/hlsl.precise.frag.out | 2 +- .../baseResults/hlsl.preprocessor.frag.out | 2 +- .../baseResults/hlsl.promote.atomic.frag.out | 2 +- .../baseResults/hlsl.promote.binary.frag.out | 2 +- .../baseResults/hlsl.promote.vec1.frag.out | 2 +- .../Test/baseResults/hlsl.promotions.frag.out | 2 +- .../Test/baseResults/hlsl.rw.atomics.frag.out | 2 +- .../Test/baseResults/hlsl.rw.bracket.frag.out | 2 +- .../baseResults/hlsl.rw.register.frag.out | 2 +- .../hlsl.rw.scalar.bracket.frag.out | 2 +- .../Test/baseResults/hlsl.rw.swizzle.frag.out | 2 +- .../baseResults/hlsl.rw.vec2.bracket.frag.out | 2 +- .../hlsl.sample.array.dx10.frag.out | 2 +- .../hlsl.sample.basic.dx10.frag.out | 2 +- .../hlsl.sample.offset.dx10.frag.out | 2 +- .../hlsl.sample.offsetarray.dx10.frag.out | 2 +- .../hlsl.sample.sub-vec4.dx10.frag.out | 2 +- .../hlsl.samplebias.array.dx10.frag.out | 2 +- .../hlsl.samplebias.basic.dx10.frag.out | 2 +- .../hlsl.samplebias.offset.dx10.frag.out | 2 +- .../hlsl.samplebias.offsetarray.dx10.frag.out | 2 +- .../hlsl.samplecmp.array.dx10.frag.out | 2 +- .../hlsl.samplecmp.basic.dx10.frag.out | 2 +- .../hlsl.samplecmp.dualmode.frag.out | 2 +- .../hlsl.samplecmp.offset.dx10.frag.out | 2 +- .../hlsl.samplecmp.offsetarray.dx10.frag.out | 2 +- ...lsl.samplecmplevelzero.array.dx10.frag.out | 2 +- ...lsl.samplecmplevelzero.basic.dx10.frag.out | 2 +- ...sl.samplecmplevelzero.offset.dx10.frag.out | 2 +- ...mplecmplevelzero.offsetarray.dx10.frag.out | 2 +- .../hlsl.samplegrad.array.dx10.frag.out | 2 +- .../hlsl.samplegrad.basic.dx10.frag.out | 2 +- .../hlsl.samplegrad.basic.dx10.vert.out | 2 +- .../hlsl.samplegrad.offset.dx10.frag.out | 2 +- .../hlsl.samplegrad.offsetarray.dx10.frag.out | 2 +- .../hlsl.samplelevel.array.dx10.frag.out | 2 +- .../hlsl.samplelevel.basic.dx10.frag.out | 2 +- .../hlsl.samplelevel.basic.dx10.vert.out | 2 +- .../hlsl.samplelevel.offset.dx10.frag.out | 2 +- ...hlsl.samplelevel.offsetarray.dx10.frag.out | 2 +- .../baseResults/hlsl.scalar-length.frag.out | 2 +- .../baseResults/hlsl.scalar2matrix.frag.out | 2 +- .../Test/baseResults/hlsl.scalarCast.vert.out | 2 +- .../Test/baseResults/hlsl.scope.frag.out | 2 +- .../Test/baseResults/hlsl.self_cast.frag.out | 2 +- .../Test/baseResults/hlsl.semantic-1.vert.out | 2 +- .../Test/baseResults/hlsl.semantic.geom.out | 2 +- .../Test/baseResults/hlsl.semantic.vert.out | 2 +- .../Test/baseResults/hlsl.semicolons.frag.out | 2 +- .../Test/baseResults/hlsl.shapeConv.frag.out | 2 +- .../baseResults/hlsl.shapeConvRet.frag.out | 2 +- .../Test/baseResults/hlsl.sin.frag.out | 2 +- .../Test/baseResults/hlsl.snorm.uav.comp.out | 2 +- .../hlsl.staticMemberFunction.frag.out | 2 +- ...sl.store.rwbyteaddressbuffer.type.comp.out | 2 +- .../Test/baseResults/hlsl.string.frag.out | 2 +- .../baseResults/hlsl.stringtoken.frag.out | 2 +- .../Test/baseResults/hlsl.struct.frag.out | 2 +- .../baseResults/hlsl.struct.split-1.vert.out | 2 +- .../hlsl.struct.split.array.geom.out | 2 +- .../hlsl.struct.split.assign.frag.out | 2 +- .../hlsl.struct.split.call.vert.out | 2 +- .../hlsl.struct.split.nested.geom.out | 2 +- .../hlsl.struct.split.trivial.geom.out | 2 +- .../hlsl.struct.split.trivial.vert.out | 2 +- .../baseResults/hlsl.structIoFourWay.frag.out | 2 +- .../hlsl.structStructName.frag.out | 2 +- .../hlsl.structarray.flatten.frag.out | 2 +- .../hlsl.structarray.flatten.geom.out | 2 +- .../hlsl.structbuffer.append.fn.frag.out | 2 +- .../hlsl.structbuffer.append.frag.out | 2 +- .../hlsl.structbuffer.atomics.frag.out | 2 +- .../hlsl.structbuffer.byte.frag.out | 2 +- .../hlsl.structbuffer.coherent.frag.out | 2 +- .../hlsl.structbuffer.floatidx.comp.out | 2 +- .../baseResults/hlsl.structbuffer.fn.frag.out | 2 +- .../hlsl.structbuffer.fn2.comp.out | 2 +- .../baseResults/hlsl.structbuffer.frag.out | 2 +- ...hlsl.structbuffer.incdec.frag.hlslfun1.out | 2 +- .../hlsl.structbuffer.incdec.frag.out | 2 +- .../baseResults/hlsl.structbuffer.rw.frag.out | 2 +- .../hlsl.structbuffer.rwbyte.frag.out | 2 +- .../Test/baseResults/hlsl.structin.vert.out | 2 +- .../Test/baseResults/hlsl.subpass.frag.out | 2 +- .../Test/baseResults/hlsl.switch.frag.out | 2 +- .../Test/baseResults/hlsl.swizzle.frag.out | 2 +- .../baseResults/hlsl.synthesizeInput.frag.out | 2 +- .../Test/baseResults/hlsl.target.frag.out | 2 +- .../baseResults/hlsl.targetStruct1.frag.out | 2 +- .../baseResults/hlsl.targetStruct2.frag.out | 2 +- .../baseResults/hlsl.templatetypes.frag.out | 2 +- .../baseResults/hlsl.texture.struct.frag.out | 2 +- .../baseResults/hlsl.texture.subvec4.frag.out | 2 +- .../baseResults/hlsl.texturebuffer.frag.out | 2 +- .../Test/baseResults/hlsl.this.frag.out | 2 +- .../hlsl.tristream-append.geom.out | 2 +- .../Test/baseResults/hlsl.tx.bracket.frag.out | 2 +- .../baseResults/hlsl.tx.overload.frag.out | 2 +- .../Test/baseResults/hlsl.type.half.frag.out | 2 +- .../baseResults/hlsl.type.identifier.frag.out | 2 +- .../baseResults/hlsl.typeGraphCopy.vert.out | 2 +- .../Test/baseResults/hlsl.typedef.frag.out | 2 +- .../Test/baseResults/hlsl.void.frag.out | 2 +- .../baseResults/hlsl.wavebroadcast.comp.out | 2 +- .../Test/baseResults/hlsl.waveprefix.comp.out | 2 +- .../Test/baseResults/hlsl.wavequad.comp.out | 2 +- .../Test/baseResults/hlsl.wavequery.comp.out | 2 +- .../Test/baseResults/hlsl.wavequery.frag.out | 2 +- .../baseResults/hlsl.wavereduction.comp.out | 2 +- .../Test/baseResults/hlsl.wavevote.comp.out | 2 +- .../Test/baseResults/hlsl.whileLoop.frag.out | 2 +- .../Test/baseResults/hlsl.y-negate-1.vert.out | 2 +- .../Test/baseResults/hlsl.y-negate-2.vert.out | 2 +- .../Test/baseResults/hlsl.y-negate-3.vert.out | 2 +- .../Test/baseResults/link1.vk.frag.out | 2 +- .../baseResults/remap.basic.dcefunc.frag.out | 2 +- .../remap.basic.everything.frag.out | 2 +- .../baseResults/remap.basic.none.frag.out | 2 +- .../baseResults/remap.basic.strip.frag.out | 2 +- ...emap.hlsl.sample.basic.everything.frag.out | 2 +- .../remap.hlsl.sample.basic.none.frag.out | 2 +- .../remap.hlsl.sample.basic.strip.frag.out | 2 +- ...map.hlsl.templatetypes.everything.frag.out | 2 +- .../remap.hlsl.templatetypes.none.frag.out | 2 +- .../baseResults/remap.if.everything.frag.out | 2 +- .../Test/baseResults/remap.if.none.frag.out | 2 +- .../remap.similar_1a.everything.frag.out | 2 +- .../remap.similar_1a.none.frag.out | 2 +- .../remap.similar_1b.everything.frag.out | 2 +- .../remap.similar_1b.none.frag.out | 2 +- .../Test/baseResults/remap.specconst.comp.out | 2 +- .../remap.switch.everything.frag.out | 2 +- .../baseResults/remap.switch.none.frag.out | 2 +- .../remap.uniformarray.everything.frag.out | 2 +- .../remap.uniformarray.none.frag.out | 2 +- .../Test/baseResults/spv.100ops.frag.out | 2 +- .../glslang/Test/baseResults/spv.130.frag.out | 2 +- .../glslang/Test/baseResults/spv.140.frag.out | 2 +- .../glslang/Test/baseResults/spv.150.geom.out | 2 +- .../glslang/Test/baseResults/spv.150.vert.out | 2 +- .../Test/baseResults/spv.300BuiltIns.vert.out | 2 +- .../Test/baseResults/spv.300layout.frag.out | 2 +- .../Test/baseResults/spv.300layout.vert.out | 2 +- .../Test/baseResults/spv.300layoutp.vert.out | 2 +- .../Test/baseResults/spv.310.bitcast.frag.out | 2 +- .../glslang/Test/baseResults/spv.310.comp.out | 2 +- .../glslang/Test/baseResults/spv.330.geom.out | 2 +- .../glslang/Test/baseResults/spv.400.frag.out | 2 +- .../glslang/Test/baseResults/spv.400.tesc.out | 2 +- .../glslang/Test/baseResults/spv.400.tese.out | 2 +- .../glslang/Test/baseResults/spv.420.geom.out | 2 +- .../glslang/Test/baseResults/spv.430.frag.out | 2 +- .../glslang/Test/baseResults/spv.430.vert.out | 2 +- .../glslang/Test/baseResults/spv.450.geom.out | 2 +- .../baseResults/spv.450.noRedecl.tesc.out | 2 +- .../glslang/Test/baseResults/spv.450.tesc.out | 2 +- .../glslang/Test/baseResults/spv.460.comp.out | 2 +- .../glslang/Test/baseResults/spv.460.frag.out | 2 +- .../glslang/Test/baseResults/spv.460.vert.out | 2 +- .../Test/baseResults/spv.AofA.frag.out | 2 +- .../spv.GeometryShaderPassthrough.geom.out | 2 +- .../baseResults/spv.OVR_multiview.vert.out | 2 +- .../Test/baseResults/spv.Operations.frag.out | 2 +- .../Test/baseResults/spv.accessChain.frag.out | 2 +- .../Test/baseResults/spv.aggOps.frag.out | 2 +- .../baseResults/spv.always-discard.frag.out | 2 +- .../baseResults/spv.always-discard2.frag.out | 2 +- .../spv.arbPostDepthCoverage.frag.out | 2 +- .../Test/baseResults/spv.atomic.comp.out | 2 +- .../Test/baseResults/spv.atomicInt64.comp.out | 2 +- .../Test/baseResults/spv.barrier.vert.out | 2 +- .../Test/baseResults/spv.bitCast.frag.out | 2 +- .../Test/baseResults/spv.bool.vert.out | 2 +- .../Test/baseResults/spv.boolInBlock.frag.out | 2 +- .../baseResults/spv.branch-return.vert.out | 2 +- .../spv.buffer.autoassign.frag.out | 2 +- .../Test/baseResults/spv.builtInXFB.vert.out | 2 +- .../spv.conditionalDiscard.frag.out | 2 +- .../Test/baseResults/spv.constStruct.vert.out | 2 +- .../spv.controlFlowAttributes.frag.out | 2 +- .../Test/baseResults/spv.conversion.frag.out | 2 +- .../Test/baseResults/spv.dataOut.frag.out | 2 +- .../baseResults/spv.dataOutIndirect.frag.out | 2 +- .../baseResults/spv.dataOutIndirect.vert.out | 2 +- .../baseResults/spv.debugInfo.1.1.frag.out | 2 +- .../Test/baseResults/spv.debugInfo.frag.out | 2 +- .../Test/baseResults/spv.deepRvalue.frag.out | 2 +- .../Test/baseResults/spv.depthOut.frag.out | 2 +- .../Test/baseResults/spv.deviceGroup.frag.out | 2 +- .../Test/baseResults/spv.discard-dce.frag.out | 2 +- .../Test/baseResults/spv.do-simple.vert.out | 2 +- .../spv.do-while-continue-break.vert.out | 2 +- .../Test/baseResults/spv.doWhileLoop.frag.out | 2 +- .../Test/baseResults/spv.double.comp.out | 2 +- .../Test/baseResults/spv.drawParams.vert.out | 2 +- .../spv.earlyReturnDiscard.frag.out | 2 +- .../baseResults/spv.explicittypes.frag.out | 678 +++++++++--------- .../spv.extPostDepthCoverage.frag.out | 2 +- .../Test/baseResults/spv.float16.frag.out | 2 +- .../baseResults/spv.float16Fetch.frag.out | 3 +- .../Test/baseResults/spv.float32.frag.out | 2 +- .../Test/baseResults/spv.float64.frag.out | 2 +- .../Test/baseResults/spv.flowControl.frag.out | 2 +- .../spv.for-complex-condition.vert.out | 2 +- .../spv.for-continue-break.vert.out | 2 +- .../Test/baseResults/spv.for-nobody.vert.out | 2 +- .../Test/baseResults/spv.for-notest.vert.out | 2 +- .../Test/baseResults/spv.for-simple.vert.out | 2 +- .../Test/baseResults/spv.forLoop.frag.out | 2 +- .../Test/baseResults/spv.forwardFun.frag.out | 2 +- .../baseResults/spv.fullyCovered.frag.out | 2 +- .../baseResults/spv.functionCall.frag.out | 2 +- .../spv.functionNestedOpaque.vert.out | 2 +- .../spv.functionSemantics.frag.out | 2 +- .../Test/baseResults/spv.glFragColor.frag.out | 2 +- .../spv.glsl.register.autoassign.frag.out | 2 +- .../spv.glsl.register.noautoassign.frag.out | 2 +- .../baseResults/spv.hlslDebugInfo.frag.out | 2 +- .../Test/baseResults/spv.hlslOffsets.vert.out | 2 +- .../Test/baseResults/spv.image.frag.out | 2 +- .../spv.imageLoadStoreLod.frag.out | 2 +- .../Test/baseResults/spv.int16.amd.frag.out | 66 +- .../Test/baseResults/spv.int16.frag.out | 54 +- .../Test/baseResults/spv.int32.frag.out | 106 +-- .../Test/baseResults/spv.int64.frag.out | 10 +- .../Test/baseResults/spv.int8.frag.out | 258 +++---- .../Test/baseResults/spv.intOps.vert.out | 2 +- .../Test/baseResults/spv.interpOps.frag.out | 2 +- .../baseResults/spv.layoutNested.vert.out | 2 +- .../Test/baseResults/spv.length.frag.out | 2 +- .../baseResults/spv.localAggregates.frag.out | 2 +- .../Test/baseResults/spv.loops.frag.out | 2 +- .../baseResults/spv.loopsArtificial.frag.out | 2 +- .../Test/baseResults/spv.matFun.vert.out | 2 +- .../Test/baseResults/spv.matrix.frag.out | 2 +- .../Test/baseResults/spv.matrix2.frag.out | 2 +- .../baseResults/spv.memoryQualifier.frag.out | 4 +- .../spv.merge-unreachable.frag.out | 2 +- .../Test/baseResults/spv.multiStruct.comp.out | 2 +- .../spv.multiStructFuncall.frag.out | 2 +- .../Test/baseResults/spv.multiView.frag.out | 2 +- .../spv.multiviewPerViewAttributes.tesc.out | 2 +- .../spv.multiviewPerViewAttributes.vert.out | 2 +- .../Test/baseResults/spv.newTexture.frag.out | 2 +- .../baseResults/spv.noBuiltInLoc.vert.out | 2 +- .../spv.noDeadDecorations.vert.out | 2 +- .../Test/baseResults/spv.noWorkgroup.comp.out | 2 +- .../Test/baseResults/spv.nonSquare.vert.out | 2 +- .../Test/baseResults/spv.nonuniform.frag.out | 2 +- .../Test/baseResults/spv.offsets.frag.out | 2 +- .../Test/baseResults/spv.paramMemory.frag.out | 2 +- .../Test/baseResults/spv.precise.tesc.out | 2 +- .../Test/baseResults/spv.precise.tese.out | 2 +- .../Test/baseResults/spv.precision.frag.out | 2 +- .../spv.precisionNonESSamp.frag.out | 2 +- .../Test/baseResults/spv.prepost.frag.out | 2 +- .../baseResults/spv.pushConstant.vert.out | 2 +- .../baseResults/spv.pushConstantAnon.vert.out | 2 +- .../Test/baseResults/spv.qualifiers.vert.out | 2 +- .../Test/baseResults/spv.queryL.frag.out | 2 +- .../Test/baseResults/spv.rankShift.comp.out | 2 +- .../spv.register.autoassign-2.frag.out | 2 +- .../spv.register.autoassign.frag.out | 2 +- .../spv.register.noautoassign.frag.out | 2 +- .../baseResults/spv.register.subpass.frag.out | 2 +- .../baseResults/spv.rw.autoassign.frag.out | 2 +- .../Test/baseResults/spv.sample.frag.out | 2 +- .../Test/baseResults/spv.sampleId.frag.out | 2 +- .../spv.sampleMaskOverrideCoverage.frag.out | 2 +- .../baseResults/spv.samplePosition.frag.out | 2 +- .../Test/baseResults/spv.separate.frag.out | 2 +- .../glslang/Test/baseResults/spv.set.vert.out | 2 +- .../baseResults/spv.shaderBallot.comp.out | 2 +- .../baseResults/spv.shaderBallotAMD.comp.out | 2 +- .../baseResults/spv.shaderDrawParams.vert.out | 2 +- .../spv.shaderFragMaskAMD.frag.out | 2 +- .../baseResults/spv.shaderGroupVote.comp.out | 2 +- .../spv.shaderStencilExport.frag.out | 2 +- .../Test/baseResults/spv.shiftOps.frag.out | 2 +- .../baseResults/spv.shortCircuit.frag.out | 2 +- .../spv.simpleFunctionCall.frag.out | 2 +- .../Test/baseResults/spv.simpleMat.vert.out | 2 +- .../baseResults/spv.sparseTexture.frag.out | 3 +- .../spv.sparseTextureClamp.frag.out | 2 +- .../Test/baseResults/spv.specConst.vert.out | 2 +- .../baseResults/spv.specConstant.comp.out | 2 +- .../baseResults/spv.specConstant.vert.out | 2 +- .../spv.specConstantComposite.vert.out | 2 +- .../spv.specConstantOperations.vert.out | 2 +- .../baseResults/spv.ssbo.autoassign.frag.out | 2 +- .../Test/baseResults/spv.ssboAlias.frag.out | 2 +- .../spv.stereoViewRendering.tesc.out | 2 +- .../spv.stereoViewRendering.vert.out | 2 +- .../baseResults/spv.storageBuffer.vert.out | 2 +- .../baseResults/spv.structAssignment.frag.out | 2 +- .../Test/baseResults/spv.structDeref.frag.out | 2 +- .../Test/baseResults/spv.structure.frag.out | 2 +- .../Test/baseResults/spv.subgroup.frag.out | 2 +- .../Test/baseResults/spv.subgroup.geom.out | 2 +- .../Test/baseResults/spv.subgroup.tesc.out | 2 +- .../Test/baseResults/spv.subgroup.tese.out | 2 +- .../Test/baseResults/spv.subgroup.vert.out | 2 +- .../spv.subgroupArithmetic.comp.out | 2 +- .../baseResults/spv.subgroupBallot.comp.out | 2 +- .../baseResults/spv.subgroupBasic.comp.out | 2 +- .../spv.subgroupClustered.comp.out | 2 +- .../spv.subgroupPartitioned.comp.out | 2 +- .../baseResults/spv.subgroupQuad.comp.out | 2 +- .../baseResults/spv.subgroupShuffle.comp.out | 2 +- .../spv.subgroupShuffleRelative.comp.out | 2 +- .../baseResults/spv.subgroupVote.comp.out | 2 +- .../Test/baseResults/spv.subpass.frag.out | 2 +- .../Test/baseResults/spv.switch.frag.out | 2 +- .../Test/baseResults/spv.swizzle.frag.out | 2 +- .../baseResults/spv.swizzleInversion.frag.out | 2 +- .../Test/baseResults/spv.test.frag.out | 2 +- .../Test/baseResults/spv.test.vert.out | 2 +- .../Test/baseResults/spv.texture.frag.out | 2 +- .../spv.texture.sampler.transform.frag.out | 2 +- .../Test/baseResults/spv.texture.vert.out | 2 +- .../baseResults/spv.textureBuffer.vert.out | 2 +- .../spv.textureGatherBiasLod.frag.out | 3 +- .../Test/baseResults/spv.types.frag.out | 2 +- .../Test/baseResults/spv.uint.frag.out | 2 +- .../baseResults/spv.uniformArray.frag.out | 2 +- .../spv.variableArrayIndex.frag.out | 2 +- .../baseResults/spv.varyingArray.frag.out | 2 +- .../spv.varyingArrayIndirect.frag.out | 2 +- .../baseResults/spv.vecMatConstruct.frag.out | 2 +- .../baseResults/spv.viewportArray2.tesc.out | 2 +- .../baseResults/spv.viewportArray2.vert.out | 2 +- .../baseResults/spv.voidFunction.frag.out | 2 +- .../baseResults/spv.vulkan110.int16.frag.out | 54 +- .../spv.vulkan110.storageBuffer.vert.out | 2 +- .../spv.while-continue-break.vert.out | 2 +- .../baseResults/spv.while-simple.vert.out | 2 +- .../Test/baseResults/spv.whileLoop.frag.out | 2 +- .../glslang/Test/baseResults/spv.xfb.vert.out | 2 +- .../Test/baseResults/spv.xfb2.vert.out | 2 +- .../Test/baseResults/spv.xfb3.vert.out | 2 +- .../Test/baseResults/stringToDouble.vert.out | 4 +- .../Test/baseResults/vulkan.ast.vert.out | 2 +- 3rdparty/glslang/Test/stringToDouble.vert | 2 +- 3rdparty/glslang/glslang/CMakeLists.txt | 1 + 3rdparty/glslang/glslang/Include/revision.h | 2 +- .../glslang/MachineIndependent/Scan.cpp | 0 .../glslang/MachineIndependent/intermOut.cpp | 6 +- .../preprocessor/PpTokens.cpp | 4 +- 3rdparty/glslang/known_good.json | 2 +- 545 files changed, 1227 insertions(+), 1254 deletions(-) mode change 100644 => 100755 3rdparty/glslang/SPIRV/SpvBuilder.cpp mode change 100644 => 100755 3rdparty/glslang/glslang/MachineIndependent/Scan.cpp diff --git a/3rdparty/glslang/SPIRV/CMakeLists.txt b/3rdparty/glslang/SPIRV/CMakeLists.txt index 9d9d8033a..1e5513c73 100755 --- a/3rdparty/glslang/SPIRV/CMakeLists.txt +++ b/3rdparty/glslang/SPIRV/CMakeLists.txt @@ -43,6 +43,7 @@ endif(ENABLE_NV_EXTENSIONS) 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 ..) add_library(SPVRemapper ${LIB_TYPE} ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS}) set_property(TARGET SPVRemapper PROPERTY FOLDER glslang) diff --git a/3rdparty/glslang/SPIRV/GlslangToSpv.cpp b/3rdparty/glslang/SPIRV/GlslangToSpv.cpp index 36fb8a127..4838f20cb 100755 --- a/3rdparty/glslang/SPIRV/GlslangToSpv.cpp +++ b/3rdparty/glslang/SPIRV/GlslangToSpv.cpp @@ -190,7 +190,7 @@ protected: glslang::TBasicType typeProxy); spv::Id createConversion(glslang::TOperator op, OpDecorations&, spv::Id destTypeId, spv::Id operand, glslang::TBasicType typeProxy); - spv::Id createConversionOperation(glslang::TOperator op, spv::Id operand, int vectorSize); + spv::Id createIntWidthConversion(glslang::TOperator op, spv::Id operand, int vectorSize); spv::Id makeSmearedConstant(spv::Id constant, int vectorSize); spv::Id createAtomicOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId, std::vector& operands, glslang::TBasicType typeProxy); spv::Id createInvocationsOperation(glslang::TOperator op, spv::Id typeId, std::vector& operands, glslang::TBasicType typeProxy); @@ -340,8 +340,10 @@ void TranslateMemoryDecoration(const glslang::TQualifier& qualifier, std::vector { if (qualifier.coherent) memory.push_back(spv::DecorationCoherent); - if (qualifier.volatil) + if (qualifier.volatil) { memory.push_back(spv::DecorationVolatile); + memory.push_back(spv::DecorationCoherent); + } if (qualifier.restrict) memory.push_back(spv::DecorationRestrict); if (qualifier.readonly) @@ -4828,109 +4830,45 @@ spv::Id TGlslangToSpvTraverser::createUnaryMatrixOperation(spv::Op op, OpDecorat return result; } -spv::Id TGlslangToSpvTraverser::createConversionOperation(glslang::TOperator op, spv::Id operand, int vectorSize) +// For converting integers where both the bitwidth and the signedness could +// change, but only do the width change here. The caller is still responsible +// for the signedness conversion. +spv::Id TGlslangToSpvTraverser::createIntWidthConversion(glslang::TOperator op, spv::Id operand, int vectorSize) { - spv::Op convOp = spv::OpNop; - spv::Id type = 0; - - spv::Id result = 0; - + // Get the result type width, based on the type to convert to. + int width = 32; switch(op) { + case glslang::EOpConvInt16ToUint8: + case glslang::EOpConvIntToUint8: + case glslang::EOpConvInt64ToUint8: + case glslang::EOpConvUint16ToInt8: + case glslang::EOpConvUintToInt8: + case glslang::EOpConvUint64ToInt8: + width = 8; + break; case glslang::EOpConvInt8ToUint16: - convOp = spv::OpSConvert; - type = builder.makeIntType(16); + case glslang::EOpConvIntToUint16: + case glslang::EOpConvInt64ToUint16: + case glslang::EOpConvUint8ToInt16: + case glslang::EOpConvUintToInt16: + case glslang::EOpConvUint64ToInt16: + width = 16; break; case glslang::EOpConvInt8ToUint: - convOp = spv::OpSConvert; - type = builder.makeIntType(32); + case glslang::EOpConvInt16ToUint: + case glslang::EOpConvInt64ToUint: + case glslang::EOpConvUint8ToInt: + case glslang::EOpConvUint16ToInt: + case glslang::EOpConvUint64ToInt: + width = 32; break; case glslang::EOpConvInt8ToUint64: - convOp = spv::OpSConvert; - type = builder.makeIntType(64); - break; - case glslang::EOpConvInt16ToUint8: - convOp = spv::OpSConvert; - type = builder.makeIntType(8); - break; - case glslang::EOpConvInt16ToUint: - convOp = spv::OpSConvert; - type = builder.makeIntType(32); - break; case glslang::EOpConvInt16ToUint64: - convOp = spv::OpSConvert; - type = builder.makeIntType(64); - break; - case glslang::EOpConvIntToUint8: - convOp = spv::OpSConvert; - type = builder.makeIntType(8); - break; - case glslang::EOpConvIntToUint16: - convOp = spv::OpSConvert; - type = builder.makeIntType(16); - break; case glslang::EOpConvIntToUint64: - convOp = spv::OpSConvert; - type = builder.makeIntType(64); - break; - case glslang::EOpConvInt64ToUint8: - convOp = spv::OpSConvert; - type = builder.makeIntType(8); - break; - case glslang::EOpConvInt64ToUint16: - convOp = spv::OpSConvert; - type = builder.makeIntType(16); - break; - case glslang::EOpConvInt64ToUint: - convOp = spv::OpSConvert; - type = builder.makeIntType(32); - break; - case glslang::EOpConvUint8ToInt16: - convOp = spv::OpUConvert; - type = builder.makeIntType(16); - break; - case glslang::EOpConvUint8ToInt: - convOp = spv::OpUConvert; - type = builder.makeIntType(32); - break; case glslang::EOpConvUint8ToInt64: - convOp = spv::OpUConvert; - type = builder.makeIntType(64); - break; - case glslang::EOpConvUint16ToInt8: - convOp = spv::OpUConvert; - type = builder.makeIntType(8); - break; - case glslang::EOpConvUint16ToInt: - convOp = spv::OpUConvert; - type = builder.makeIntType(32); - break; case glslang::EOpConvUint16ToInt64: - convOp = spv::OpUConvert; - type = builder.makeIntType(64); - break; - case glslang::EOpConvUintToInt8: - convOp = spv::OpUConvert; - type = builder.makeIntType(8); - break; - case glslang::EOpConvUintToInt16: - convOp = spv::OpUConvert; - type = builder.makeIntType(16); - break; case glslang::EOpConvUintToInt64: - convOp = spv::OpUConvert; - type = builder.makeIntType(64); - break; - case glslang::EOpConvUint64ToInt8: - convOp = spv::OpUConvert; - type = builder.makeIntType(8); - break; - case glslang::EOpConvUint64ToInt16: - convOp = spv::OpUConvert; - type = builder.makeIntType(16); - break; - case glslang::EOpConvUint64ToInt: - convOp = spv::OpUConvert; - type = builder.makeIntType(32); + width = 64; break; default: @@ -4938,11 +4876,36 @@ spv::Id TGlslangToSpvTraverser::createConversionOperation(glslang::TOperator op, break; } + // Get the conversion operation and result type, + // based on the target width, but the source type. + spv::Id type = spv::NoType; + spv::Op convOp = spv::OpNop; + switch(op) { + case glslang::EOpConvInt8ToUint16: + case glslang::EOpConvInt8ToUint: + case glslang::EOpConvInt8ToUint64: + case glslang::EOpConvInt16ToUint8: + case glslang::EOpConvInt16ToUint: + case glslang::EOpConvInt16ToUint64: + case glslang::EOpConvIntToUint8: + case glslang::EOpConvIntToUint16: + case glslang::EOpConvIntToUint64: + case glslang::EOpConvInt64ToUint8: + case glslang::EOpConvInt64ToUint16: + case glslang::EOpConvInt64ToUint: + convOp = spv::OpSConvert; + type = builder.makeIntType(width); + break; + default: + convOp = spv::OpUConvert; + type = builder.makeUintType(width); + break; + } + if (vectorSize > 0) type = builder.makeVectorType(type, vectorSize); - result = builder.createUnaryOp(convOp, type, operand); - return result; + return builder.createUnaryOp(convOp, type, operand); } spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, OpDecorations& decorations, spv::Id destType, @@ -5217,7 +5180,7 @@ spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, OpDecora case glslang::EOpConvUint64ToInt16: case glslang::EOpConvUint64ToInt: // OpSConvert/OpUConvert + OpBitCast - operand = createConversionOperation(op, operand, vectorSize); + operand = createIntWidthConversion(op, operand, vectorSize); if (builder.isInSpecConstCodeGenMode()) { // Build zero scalar or vector for OpIAdd. @@ -6922,8 +6885,9 @@ int GetSpirvGeneratorVersion() // return 3; // change/correct barrier-instruction operands, to match memory model group decisions // return 4; // some deeper access chains: for dynamic vector component, and local Boolean component // 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 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 } // Write SPIR-V out to a binary file @@ -7024,18 +6988,16 @@ void GlslangToSpv(const glslang::TIntermediate& intermediate, std::vectoroptimizeSize) { optimizer.RegisterPass(CreateRedundancyEliminationPass()); @@ -7043,6 +7005,7 @@ void GlslangToSpv(const glslang::TIntermediate& intermediate, std::vector 0.0 && (fabs(value) < 1e-5 || fabs(value) > 1e12)) format = "%-.13e"; - snprintf(buf, maxSize, format, value); + int len = snprintf(buf, maxSize, format, value); + assert(len < maxSize); // remove a leading zero in the 100s slot in exponent; it is not portable // pattern: XX...XXXe+0XX or XX...XXXe-0XX - int len = (int)strnlen(buf, maxSize); if (len > 5) { if (buf[len-5] == 'e' && (buf[len-4] == '+' || buf[len-4] == '-') && buf[len-3] == '0') { buf[len-3] = buf[len-2]; @@ -1131,7 +1131,7 @@ static void OutputDouble(TInfoSink& out, double value, TOutputTraverser::EExtraO { out.debug << " : "; long long b = *reinterpret_cast(&value); - for (int i = 0; i < 8 * sizeof(value); ++i, ++b) { + for (size_t i = 0; i < 8 * sizeof(value); ++i, ++b) { out.debug << ((b & 0x8000000000000000) != 0 ? "1" : "0"); b <<= 1; } diff --git a/3rdparty/glslang/glslang/MachineIndependent/preprocessor/PpTokens.cpp b/3rdparty/glslang/glslang/MachineIndependent/preprocessor/PpTokens.cpp index d8088e7d4..7dc2722ce 100755 --- a/3rdparty/glslang/glslang/MachineIndependent/preprocessor/PpTokens.cpp +++ b/3rdparty/glslang/glslang/MachineIndependent/preprocessor/PpTokens.cpp @@ -188,7 +188,7 @@ void TPpContext::TokenStream::putToken(int atom, TPpToken* ppToken) // save the numeric value if (SaveValue(atom)) { const char* n = reinterpret_cast(&ppToken->i64val); - for (int i = 0; i < sizeof(ppToken->i64val); ++i) + for (size_t i = 0; i < sizeof(ppToken->i64val); ++i) putSubtoken(*n++); } } @@ -238,7 +238,7 @@ int TPpContext::TokenStream::getToken(TParseContextBase& parseContext, TPpToken // get the numeric value if (SaveValue(atom)) { char* n = reinterpret_cast(&ppToken->i64val); - for (int i = 0; i < sizeof(ppToken->i64val); ++i) + for (size_t i = 0; i < sizeof(ppToken->i64val); ++i) *n++ = getSubtoken(); } diff --git a/3rdparty/glslang/known_good.json b/3rdparty/glslang/known_good.json index 3b202f6c3..66593490c 100644 --- a/3rdparty/glslang/known_good.json +++ b/3rdparty/glslang/known_good.json @@ -5,7 +5,7 @@ "site" : "github", "subrepo" : "KhronosGroup/SPIRV-Tools", "subdir" : "External/spirv-tools", - "commit" : "a579e720a8d7805ec9ebf657a4c6fa67ec268f7e" + "commit" : "f2c93c6e124836797311facb8449f9a0b76fefc2" }, { "name" : "spirv-tools/external/spirv-headers",