[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

vulkan: Changes to 'debian-unstable'



 .appveyor.yml                                                                         |    1 
 BUILD.md                                                                              |   31 
 CMakeLists.txt                                                                        |   11 
 common/android_util.cpp                                                               |    1 
 debian/changelog                                                                      |    8 
 debian/patches/install-vk-layer-dispatch-table-h.diff                                 |   10 
 debian/patches/series                                                                 |    1 
 debian/patches/use-mxgot-for-mips64.patch                                             |    4 
 demos/android/jni/Android.mk                                                          |    1 
 demos/cube.c                                                                          |  125 
 demos/cube.cpp                                                                        |  629 -
 demos/smoke/CMakeLists.txt                                                            |    4 
 demos/smoke/ShellAndroid.cpp                                                          |    1 
 demos/smoke/ShellWayland.cpp                                                          |  147 
 demos/smoke/ShellWayland.h                                                            |   51 
 demos/smoke/Simulation.cpp                                                            |    1 
 demos/smoke/android/CMakeLists.txt                                                    |    5 
 demos/vulkaninfo.c                                                                    |  353 
 external/glslang/.gitignore                                                           |    4 
 external/glslang/SPIRV/GLSL.ext.AMD.h                                                 |   28 
 external/glslang/SPIRV/GLSL.ext.KHR.h                                                 |    2 
 external/glslang/SPIRV/GlslangToSpv.cpp                                               |  191 
 external/glslang/SPIRV/SpvBuilder.cpp                                                 |   50 
 external/glslang/SPIRV/SpvBuilder.h                                                   |   10 
 external/glslang/SPIRV/doc.cpp                                                        |   10 
 external/glslang/SPIRV/hex_float.h                                                    |    2 
 external/glslang/SPIRV/spirv.hpp                                                      |   25 
 external/glslang/SPIRV/spvIR.h                                                        |    8 
 external/glslang/StandAlone/StandAlone.cpp                                            |   75 
 external/glslang/Test/320.comp                                                        |    5 
 external/glslang/Test/320.frag                                                        |  225 
 external/glslang/Test/320.geom                                                        |  134 
 external/glslang/Test/320.tesc                                                        |  150 
 external/glslang/Test/320.tese                                                        |  114 
 external/glslang/Test/320.vert                                                        |  255 
 external/glslang/Test/435.vert                                                        |    2 
 external/glslang/Test/450.vert                                                        |   20 
 external/glslang/Test/460.frag                                                        |   17 
 external/glslang/Test/460.vert                                                        |   15 
 external/glslang/Test/baseResults/310.frag.out                                        |    2 
 external/glslang/Test/baseResults/320.comp.out                                        |   19 
 external/glslang/Test/baseResults/320.frag.out                                        |  576 
 external/glslang/Test/baseResults/320.geom.out                                        |  251 
 external/glslang/Test/baseResults/320.tesc.out                                        |  516 
 external/glslang/Test/baseResults/320.tese.out                                        |  276 
 external/glslang/Test/baseResults/320.vert.out                                        |  797 +
 external/glslang/Test/baseResults/435.vert.out                                        |   25 
 external/glslang/Test/baseResults/450.vert.out                                        |   54 
 external/glslang/Test/baseResults/460.frag.out                                        |   55 
 external/glslang/Test/baseResults/460.vert.out                                        |   51 
 external/glslang/Test/baseResults/glspv.frag.out                                      |    4 
 external/glslang/Test/baseResults/hlsl.aliasOpaque.frag.out                           |   58 
 external/glslang/Test/baseResults/hlsl.amend.frag.out                                 |    6 
 external/glslang/Test/baseResults/hlsl.array.flatten.frag.out                         |   16 
 external/glslang/Test/baseResults/hlsl.array.multidim.frag.out                        |   16 
 external/glslang/Test/baseResults/hlsl.attribute.frag.out                             |    2 
 external/glslang/Test/baseResults/hlsl.basic.geom.out                                 |  162 
 external/glslang/Test/baseResults/hlsl.calculatelod.dx10.frag.out                     |   32 
 external/glslang/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out            |   16 
 external/glslang/Test/baseResults/hlsl.clipdistance-1.frag.out                        |  190 
 external/glslang/Test/baseResults/hlsl.clipdistance-1.geom.out                        |  737 +
 external/glslang/Test/baseResults/hlsl.clipdistance-1.vert.out                        |    8 
 external/glslang/Test/baseResults/hlsl.clipdistance-2.frag.out                        |  419 
 external/glslang/Test/baseResults/hlsl.clipdistance-2.geom.out                        |  924 +
 external/glslang/Test/baseResults/hlsl.clipdistance-2.vert.out                        |   32 
 external/glslang/Test/baseResults/hlsl.clipdistance-3.frag.out                        |  190 
 external/glslang/Test/baseResults/hlsl.clipdistance-3.geom.out                        |  830 +
 external/glslang/Test/baseResults/hlsl.clipdistance-4.frag.out                        |  262 
 external/glslang/Test/baseResults/hlsl.clipdistance-4.geom.out                        |  819 +
 external/glslang/Test/baseResults/hlsl.clipdistance-4.vert.out                        |   90 
 external/glslang/Test/baseResults/hlsl.clipdistance-5.frag.out                        |  325 
 external/glslang/Test/baseResults/hlsl.clipdistance-5.vert.out                        |   90 
 external/glslang/Test/baseResults/hlsl.clipdistance-6.frag.out                        |  399 
 external/glslang/Test/baseResults/hlsl.clipdistance-6.vert.out                        |  556 
 external/glslang/Test/baseResults/hlsl.clipdistance-7.frag.out                        |  385 
 external/glslang/Test/baseResults/hlsl.clipdistance-7.vert.out                        |  505 
 external/glslang/Test/baseResults/hlsl.clipdistance-8.frag.out                        |  285 
 external/glslang/Test/baseResults/hlsl.clipdistance-8.vert.out                        |  336 
 external/glslang/Test/baseResults/hlsl.clipdistance-9.frag.out                        |  250 
 external/glslang/Test/baseResults/hlsl.clipdistance-9.vert.out                        |  299 
 external/glslang/Test/baseResults/hlsl.comparison.vec.frag.out                        |   16 
 external/glslang/Test/baseResults/hlsl.constructexpr.frag.out                         |   16 
 external/glslang/Test/baseResults/hlsl.domain.1.tese.out                              |  385 
 external/glslang/Test/baseResults/hlsl.domain.2.tese.out                              |  220 
 external/glslang/Test/baseResults/hlsl.domain.3.tese.out                              |  159 
 external/glslang/Test/baseResults/hlsl.emptystructreturn.frag.out                     |   17 
 external/glslang/Test/baseResults/hlsl.emptystructreturn.vert.out                     |   21 
 external/glslang/Test/baseResults/hlsl.entry-in.frag.out                              |  112 
 external/glslang/Test/baseResults/hlsl.entry-out.frag.out                             |   64 
 external/glslang/Test/baseResults/hlsl.entry.rename.frag.out                          |   16 
 external/glslang/Test/baseResults/hlsl.explicitDescriptorSet-2.frag.out               |   66 
 external/glslang/Test/baseResults/hlsl.explicitDescriptorSet.frag.out                 |   66 
 external/glslang/Test/baseResults/hlsl.flatten.return.frag.out                        |   64 
 external/glslang/Test/baseResults/hlsl.flattenOpaque.frag.out                         |  140 
 external/glslang/Test/baseResults/hlsl.flattenOpaqueInit.vert.out                     |  213 
 external/glslang/Test/baseResults/hlsl.flattenOpaqueInitMix.vert.out                  |  159 
 external/glslang/Test/baseResults/hlsl.gather.array.dx10.frag.out                     |   32 
 external/glslang/Test/baseResults/hlsl.gather.basic.dx10.frag.out                     |   32 
 external/glslang/Test/baseResults/hlsl.gather.basic.dx10.vert.out                     |   26 
 external/glslang/Test/baseResults/hlsl.gather.offset.dx10.frag.out                    |   32 
 external/glslang/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out               |   32 
 external/glslang/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out                 |   34 
 external/glslang/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out                 |   34 
 external/glslang/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out                |   36 
 external/glslang/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out           |   36 
 external/glslang/Test/baseResults/hlsl.gathercmpRGBA.offset.dx10.frag.out             |   34 
 external/glslang/Test/baseResults/hlsl.getdimensions.dx10.frag.out                    |   33 
 external/glslang/Test/baseResults/hlsl.getdimensions.dx10.vert.out                    |   26 
 external/glslang/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out                 |   40 
 external/glslang/Test/baseResults/hlsl.getsampleposition.dx10.frag.out                |   33 
 external/glslang/Test/baseResults/hlsl.global-const-init.frag.out                     |  178 
 external/glslang/Test/baseResults/hlsl.hull.1.tesc.out                                |   37 
 external/glslang/Test/baseResults/hlsl.hull.2.tesc.out                                |   37 
 external/glslang/Test/baseResults/hlsl.hull.3.tesc.out                                |   37 
 external/glslang/Test/baseResults/hlsl.hull.ctrlpt-1.tesc.out                         |   61 
 external/glslang/Test/baseResults/hlsl.hull.ctrlpt-2.tesc.out                         |   61 
 external/glslang/Test/baseResults/hlsl.if.frag.out                                    |    2 
 external/glslang/Test/baseResults/hlsl.implicitBool.frag.out                          |    4 
 external/glslang/Test/baseResults/hlsl.init2.frag.out                                 |   16 
 external/glslang/Test/baseResults/hlsl.inoutquals.frag.out                            |   32 
 external/glslang/Test/baseResults/hlsl.intrinsic.frexp.frag.out                       |   16 
 external/glslang/Test/baseResults/hlsl.intrinsics.frag.out                            |   16 
 external/glslang/Test/baseResults/hlsl.intrinsics.promote.down.frag.out               |   16 
 external/glslang/Test/baseResults/hlsl.intrinsics.promote.frag.out                    |   16 
 external/glslang/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out            |   16 
 external/glslang/Test/baseResults/hlsl.isfinite.frag.out                              |    2 
 external/glslang/Test/baseResults/hlsl.load.2dms.dx10.frag.out                        |   37 
 external/glslang/Test/baseResults/hlsl.load.array.dx10.frag.out                       |   36 
 external/glslang/Test/baseResults/hlsl.load.basic.dx10.frag.out                       |   36 
 external/glslang/Test/baseResults/hlsl.load.basic.dx10.vert.out                       |   30 
 external/glslang/Test/baseResults/hlsl.load.buffer.dx10.frag.out                      |   36 
 external/glslang/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out                |   36 
 external/glslang/Test/baseResults/hlsl.load.offset.dx10.frag.out                      |   36 
 external/glslang/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out                 |   36 
 external/glslang/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out                    |   22 
 external/glslang/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out             |   38 
 external/glslang/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out                   |   38 
 external/glslang/Test/baseResults/hlsl.logical.binary.frag.out                        |   16 
 external/glslang/Test/baseResults/hlsl.logical.binary.vec.frag.out                    |   16 
 external/glslang/Test/baseResults/hlsl.logical.unary.frag.out                         |   16 
 external/glslang/Test/baseResults/hlsl.matNx1.frag.out                                |   16 
 external/glslang/Test/baseResults/hlsl.matType.bool.frag.out                          |   16 
 external/glslang/Test/baseResults/hlsl.matType.int.frag.out                           |   16 
 external/glslang/Test/baseResults/hlsl.matpack-1.frag.out                             |  187 
 external/glslang/Test/baseResults/hlsl.matpack-pragma.frag.out                        |  268 
 external/glslang/Test/baseResults/hlsl.matrixindex.frag.out                           |   16 
 external/glslang/Test/baseResults/hlsl.mintypes.frag.out                              |   16 
 external/glslang/Test/baseResults/hlsl.multiDescriptorSet.frag.out                    |   67 
 external/glslang/Test/baseResults/hlsl.numericsuffixes.frag.out                       |   16 
 external/glslang/Test/baseResults/hlsl.partialInit.frag.out                           |   64 
 external/glslang/Test/baseResults/hlsl.pp.line.frag.out                               |   32 
 external/glslang/Test/baseResults/hlsl.precise.frag.out                               |   16 
 external/glslang/Test/baseResults/hlsl.preprocessor.frag.out                          |  163 
 external/glslang/Test/baseResults/hlsl.promote.atomic.frag.out                        |    2 
 external/glslang/Test/baseResults/hlsl.promote.binary.frag.out                        |   16 
 external/glslang/Test/baseResults/hlsl.promotions.frag.out                            |   16 
 external/glslang/Test/baseResults/hlsl.rw.atomics.frag.out                            |   22 
 external/glslang/Test/baseResults/hlsl.rw.bracket.frag.out                            |   22 
 external/glslang/Test/baseResults/hlsl.rw.register.frag.out                           |   20 
 external/glslang/Test/baseResults/hlsl.rw.scalar.bracket.frag.out                     |   22 
 external/glslang/Test/baseResults/hlsl.rw.swizzle.frag.out                            |    2 
 external/glslang/Test/baseResults/hlsl.rw.vec2.bracket.frag.out                       |   22 
 external/glslang/Test/baseResults/hlsl.sample.array.dx10.frag.out                     |   32 
 external/glslang/Test/baseResults/hlsl.sample.basic.dx10.frag.out                     |   32 
 external/glslang/Test/baseResults/hlsl.sample.offset.dx10.frag.out                    |   32 
 external/glslang/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out               |   32 
 external/glslang/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out                  |   16 
 external/glslang/Test/baseResults/hlsl.samplebias.array.dx10.frag.out                 |   32 
 external/glslang/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out                 |   32 
 external/glslang/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out                |   32 
 external/glslang/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out           |   32 
 external/glslang/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out                  |   32 
 external/glslang/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out                  |   32 
 external/glslang/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out                 |   32 
 external/glslang/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out            |   32 
 external/glslang/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out         |   38 
 external/glslang/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out         |   32 
 external/glslang/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out        |   32 
 external/glslang/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out   |   32 
 external/glslang/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out                 |   32 
 external/glslang/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out                 |   32 
 external/glslang/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out                 |   26 
 external/glslang/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out                |   32 
 external/glslang/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out           |   32 
 external/glslang/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out                |   32 
 external/glslang/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out                |   32 
 external/glslang/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out                |   26 
 external/glslang/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out               |   32 
 external/glslang/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out          |   32 
 external/glslang/Test/baseResults/hlsl.scalarCast.vert.out                            |   55 
 external/glslang/Test/baseResults/hlsl.semantic-1.vert.out                            |  374 
 external/glslang/Test/baseResults/hlsl.semantic.geom.out                              |  425 
 external/glslang/Test/baseResults/hlsl.semantic.vert.out                              |  621 -
 external/glslang/Test/baseResults/hlsl.semicolons.frag.out                            |   16 
 external/glslang/Test/baseResults/hlsl.stringtoken.frag.out                           |   16 
 external/glslang/Test/baseResults/hlsl.struct.frag.out                                |  305 
 external/glslang/Test/baseResults/hlsl.struct.split-1.vert.out                        |  128 
 external/glslang/Test/baseResults/hlsl.struct.split.array.geom.out                    |   39 
 external/glslang/Test/baseResults/hlsl.struct.split.assign.frag.out                   |  236 
 external/glslang/Test/baseResults/hlsl.struct.split.call.vert.out                     |  128 
 external/glslang/Test/baseResults/hlsl.struct.split.nested.geom.out                   |  451 
 external/glslang/Test/baseResults/hlsl.struct.split.trivial.geom.out                  |   61 
 external/glslang/Test/baseResults/hlsl.struct.split.trivial.vert.out                  |   42 
 external/glslang/Test/baseResults/hlsl.structIoFourWay.frag.out                       |  305 
 external/glslang/Test/baseResults/hlsl.structarray.flatten.frag.out                   |  159 
 external/glslang/Test/baseResults/hlsl.structarray.flatten.geom.out                   |  112 
 external/glslang/Test/baseResults/hlsl.structbuffer.coherent.frag.out                 |    2 
 external/glslang/Test/baseResults/hlsl.structbuffer.fn.frag.out                       |    1 
 external/glslang/Test/baseResults/hlsl.structbuffer.fn2.comp.out                      |    3 
 external/glslang/Test/baseResults/hlsl.structbuffer.frag.out                          |    3 
 external/glslang/Test/baseResults/hlsl.structin.vert.out                              |  550 
 external/glslang/Test/baseResults/hlsl.switch.frag.out                                |    2 
 external/glslang/Test/baseResults/hlsl.synthesizeInput.frag.out                       |   67 
 external/glslang/Test/baseResults/hlsl.target.frag.out                                |   79 
 external/glslang/Test/baseResults/hlsl.targetStruct1.frag.out                         |   99 
 external/glslang/Test/baseResults/hlsl.targetStruct2.frag.out                         |   99 
 external/glslang/Test/baseResults/hlsl.texture.struct.frag.out                        | 1184 +
 external/glslang/Test/baseResults/hlsl.tx.bracket.frag.out                            |   20 
 external/glslang/Test/baseResults/reflection.vert.out                                 |    9 
 external/glslang/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out         |   14 
 external/glslang/Test/baseResults/remap.hlsl.sample.basic.none.frag.out               |   16 
 external/glslang/Test/baseResults/spv.450.geom.out                                    |   16 
 external/glslang/Test/baseResults/spv.450.tesc.out                                    |  156 
 external/glslang/Test/baseResults/spv.460.comp.out                                    |   33 
 external/glslang/Test/baseResults/spv.460.frag.out                                    |   51 
 external/glslang/Test/baseResults/spv.460.vert.out                                    |   45 
 external/glslang/Test/baseResults/spv.buffer.autoassign.frag.out                      |    8 
 external/glslang/Test/baseResults/spv.debugInfo.frag.out                              |   18 
 external/glslang/Test/baseResults/spv.hlslDebugInfo.frag.out                          |   58 
 external/glslang/Test/baseResults/spv.image.frag.out                                  |    9 
 external/glslang/Test/baseResults/spv.imageLoadStoreLod.frag.out                      |  135 
 external/glslang/Test/baseResults/spv.looseUniformNoLoc.vert.out                      |    8 
 external/glslang/Test/baseResults/spv.memoryQualifier.frag.out                        |    6 
 external/glslang/Test/baseResults/spv.noBuiltInLoc.vert.out                           |   74 
 external/glslang/Test/baseResults/spv.paramMemory.frag.out                            |  137 
 external/glslang/Test/baseResults/spv.register.autoassign-2.frag.out                  |    8 
 external/glslang/Test/baseResults/spv.register.autoassign.frag.out                    |    8 
 external/glslang/Test/baseResults/spv.register.noautoassign.frag.out                  |    8 
 external/glslang/Test/baseResults/spv.rw.autoassign.frag.out                          |   12 
 external/glslang/Test/baseResults/spv.separate.frag.out                               |    1 
 external/glslang/Test/baseResults/spv.shaderStencilExport.frag.out                    |    4 
 external/glslang/Test/baseResults/spv.sparseTexture.frag.out                          |    1 
 external/glslang/Test/baseResults/spv.ssbo.autoassign.frag.out                        |    2 
 external/glslang/Test/baseResults/spv.stereoViewRendering.vert.out                    |    1 
 external/glslang/Test/baseResults/spv.subpass.frag.out                                |    1 
 external/glslang/Test/baseResults/spv.viewportArray2.tesc.out                         |    1 
 external/glslang/Test/baseResults/spv.viewportArray2.vert.out                         |    1 
 external/glslang/Test/glspv.frag                                                      |    7 
 external/glslang/Test/hlsl.clipdistance-1.frag                                        |    6 
 external/glslang/Test/hlsl.clipdistance-1.geom                                        |   19 
 external/glslang/Test/hlsl.clipdistance-2.frag                                        |    7 
 external/glslang/Test/hlsl.clipdistance-2.geom                                        |   19 
 external/glslang/Test/hlsl.clipdistance-3.frag                                        |    6 
 external/glslang/Test/hlsl.clipdistance-3.geom                                        |   20 
 external/glslang/Test/hlsl.clipdistance-4.frag                                        |    9 
 external/glslang/Test/hlsl.clipdistance-4.geom                                        |   21 
 external/glslang/Test/hlsl.clipdistance-5.frag                                        |    9 
 external/glslang/Test/hlsl.clipdistance-6.frag                                        |   10 
 external/glslang/Test/hlsl.clipdistance-6.vert                                        |   23 
 external/glslang/Test/hlsl.clipdistance-7.frag                                        |   10 
 external/glslang/Test/hlsl.clipdistance-7.vert                                        |   23 
 external/glslang/Test/hlsl.clipdistance-8.frag                                        |   10 
 external/glslang/Test/hlsl.clipdistance-8.vert                                        |   20 
 external/glslang/Test/hlsl.clipdistance-9.frag                                        |    8 
 external/glslang/Test/hlsl.clipdistance-9.vert                                        |   19 
 external/glslang/Test/hlsl.domain.1.tese                                              |    4 
 external/glslang/Test/hlsl.explicitDescriptorSet.frag                                 |   15 
 external/glslang/Test/hlsl.flattenOpaqueInit.vert                                     |   22 
 external/glslang/Test/hlsl.flattenOpaqueInitMix.vert                                  |   13 
 external/glslang/Test/hlsl.function.frag                                              |    2 
 external/glslang/Test/hlsl.global-const-init.frag                                     |   14 
 external/glslang/Test/hlsl.matpack-1.frag                                             |   27 
 external/glslang/Test/hlsl.matpack-pragma.frag                                        |   33 
 external/glslang/Test/hlsl.preprocessor.frag                                          |   13 
 external/glslang/Test/hlsl.semantic-1.vert                                            |   24 
 external/glslang/Test/hlsl.semantic.geom                                              |    5 
 external/glslang/Test/hlsl.semantic.vert                                              |    8 
 external/glslang/Test/hlsl.struct.split.assign.frag                                   |    2 
 external/glslang/Test/hlsl.struct.split.nested.geom                                   |    7 
 external/glslang/Test/hlsl.structin.vert                                              |   13 
 external/glslang/Test/hlsl.switch.frag                                                |    2 
 external/glslang/Test/hlsl.texture.struct.frag                                        |   55 
 external/glslang/Test/hlsl.texture.subvec4.frag                                       |    2 
 external/glslang/Test/reflection.vert                                                 |   24 
 external/glslang/Test/runtests                                                        |   23 
 external/glslang/Test/spv.450.geom                                                    |    2 
 external/glslang/Test/spv.450.tesc                                                    |    3 
 external/glslang/Test/spv.460.comp                                                    |    9 
 external/glslang/Test/spv.460.frag                                                    |   17 
 external/glslang/Test/spv.460.vert                                                    |    6 
 external/glslang/Test/spv.hlslDebugInfo.vert                                          |    4 
 external/glslang/Test/spv.imageLoadStoreLod.frag                                      |   36 
 external/glslang/Test/spv.looseUniformNoLoc.vert                                      |   15 
 external/glslang/Test/spv.noBuiltInLoc.vert                                           |   17 
 external/glslang/Test/spv.paramMemory.frag                                            |   30 
 external/glslang/Test/spv.targetOpenGL.vert                                           |    5 
 external/glslang/Test/vulkan.frag                                                     |    2 
 external/glslang/glslang/Include/Common.h                                             |    2 
 external/glslang/glslang/Include/Types.h                                              |   86 
 external/glslang/glslang/Include/intermediate.h                                       |   42 
 external/glslang/glslang/MachineIndependent/Initialize.cpp                            |  189 
 external/glslang/glslang/MachineIndependent/Intermediate.cpp                          |    7 
 external/glslang/glslang/MachineIndependent/ParseHelper.cpp                           |   73 
 external/glslang/glslang/MachineIndependent/ParseHelper.h                             |    5 
 external/glslang/glslang/MachineIndependent/Scan.cpp                                  |   28 
 external/glslang/glslang/MachineIndependent/ShaderLang.cpp                            |   82 
 external/glslang/glslang/MachineIndependent/SymbolTable.cpp                           |   19 
 external/glslang/glslang/MachineIndependent/Versions.cpp                              |    4 
 external/glslang/glslang/MachineIndependent/Versions.h                                |    3 
 external/glslang/glslang/MachineIndependent/glslang.y                                 |   11 
 external/glslang/glslang/MachineIndependent/glslang_tab.cpp                           | 3037 ++---
 external/glslang/glslang/MachineIndependent/intermOut.cpp                             |   15 
 external/glslang/glslang/MachineIndependent/iomapper.cpp                              |   50 
 external/glslang/glslang/MachineIndependent/localintermediate.h                       |  208 
 external/glslang/glslang/MachineIndependent/preprocessor/Pp.cpp                       |    4 
 external/glslang/glslang/MachineIndependent/reflection.cpp                            |   30 
 external/glslang/glslang/MachineIndependent/reflection.h                              |   21 
 external/glslang/glslang/Public/ShaderLang.h                                          |   16 
 external/glslang/gtests/AST.FromFile.cpp                                              |    9 
 external/glslang/gtests/Hlsl.FromFile.cpp                                             |   25 
 external/glslang/gtests/Spv.FromFile.cpp                                              |    5 
 external/glslang/hlsl/hlslGrammar.cpp                                                 |   54 
 external/glslang/hlsl/hlslGrammar.h                                                   |    4 
 external/glslang/hlsl/hlslParseHelper.cpp                                             | 1667 +-
 external/glslang/hlsl/hlslParseHelper.h                                               |   91 
 external/glslang/hlsl/hlslScanContext.cpp                                             |   26 
 external/spirv-tools/.appveyor.yml                                                    |    1 
 external/spirv-tools/CHANGES                                                          |   28 
 external/spirv-tools/CMakeLists.txt                                                   |    4 
 external/spirv-tools/README.md                                                        |   40 
 external/spirv-tools/external/spirv-headers/include/spirv/1.0/spirv.core.grammar.json |   60 
 external/spirv-tools/external/spirv-headers/include/spirv/1.0/spirv.h                 |    9 
 external/spirv-tools/external/spirv-headers/include/spirv/1.0/spirv.hpp               |    9 
 external/spirv-tools/external/spirv-headers/include/spirv/1.0/spirv.hpp11             |    9 
 external/spirv-tools/external/spirv-headers/include/spirv/1.0/spirv.json              |    9 
 external/spirv-tools/external/spirv-headers/include/spirv/1.0/spirv.lua               |    7 
 external/spirv-tools/external/spirv-headers/include/spirv/1.0/spirv.py                |    7 
 external/spirv-tools/external/spirv-headers/include/spirv/1.1/spirv.core.grammar.json |   60 
 external/spirv-tools/external/spirv-headers/include/spirv/1.1/spirv.h                 |    9 
 external/spirv-tools/external/spirv-headers/include/spirv/1.1/spirv.hpp               |    9 
 external/spirv-tools/external/spirv-headers/include/spirv/1.1/spirv.hpp11             |    9 
 external/spirv-tools/external/spirv-headers/include/spirv/1.1/spirv.json              |    9 
 external/spirv-tools/external/spirv-headers/include/spirv/1.1/spirv.lua               |    7 
 external/spirv-tools/external/spirv-headers/include/spirv/1.1/spirv.py                |    7 
 external/spirv-tools/external/spirv-headers/include/spirv/1.2/spirv.core.grammar.json |   60 
 external/spirv-tools/external/spirv-headers/include/spirv/1.2/spirv.h                 |    9 
 external/spirv-tools/external/spirv-headers/include/spirv/1.2/spirv.hpp               |    9 
 external/spirv-tools/external/spirv-headers/include/spirv/1.2/spirv.hpp11             |    9 
 external/spirv-tools/external/spirv-headers/include/spirv/1.2/spirv.json              |    9 
 external/spirv-tools/external/spirv-headers/include/spirv/1.2/spirv.lua               |    7 
 external/spirv-tools/external/spirv-headers/include/spirv/1.2/spirv.py                |    7 
 external/spirv-tools/external/spirv-headers/include/spirv/spir-v.xml                  |    4 
 external/spirv-tools/include/spirv-tools/optimizer.hpp                                |  134 
 external/spirv-tools/source/CMakeLists.txt                                            |    2 
 external/spirv-tools/source/comp/markv_codec.cpp                                      |    2 
 external/spirv-tools/source/id_descriptor.cpp                                         |   78 
 external/spirv-tools/source/id_descriptor.h                                           |   59 
 external/spirv-tools/source/opt/CMakeLists.txt                                        |   15 
 external/spirv-tools/source/opt/aggressive_dead_code_elim_pass.cpp                    |  529 
 external/spirv-tools/source/opt/aggressive_dead_code_elim_pass.h                      |  136 
 external/spirv-tools/source/opt/basic_block.cpp                                       |   61 
 external/spirv-tools/source/opt/basic_block.h                                         |   21 
 external/spirv-tools/source/opt/block_merge_pass.cpp                                  |   68 
 external/spirv-tools/source/opt/block_merge_pass.h                                    |   10 
 external/spirv-tools/source/opt/common_uniform_elim_pass.cpp                          |  622 +
 external/spirv-tools/source/opt/common_uniform_elim_pass.h                            |  212 
 external/spirv-tools/source/opt/dead_branch_elim_pass.cpp                             |  391 
 external/spirv-tools/source/opt/dead_branch_elim_pass.h                               |  133 
 external/spirv-tools/source/opt/def_use_manager.cpp                                   |   34 
 external/spirv-tools/source/opt/def_use_manager.h                                     |    6 
 external/spirv-tools/source/opt/inline_exhaustive_pass.cpp                            |   74 
 external/spirv-tools/source/opt/inline_exhaustive_pass.h                              |   54 
 external/spirv-tools/source/opt/inline_opaque_pass.cpp                                |  122 
 external/spirv-tools/source/opt/inline_opaque_pass.h                                  |   61 
 external/spirv-tools/source/opt/inline_pass.cpp                                       |  246 
 external/spirv-tools/source/opt/inline_pass.h                                         |   23 
 external/spirv-tools/source/opt/insert_extract_elim.cpp                               |   81 
 external/spirv-tools/source/opt/insert_extract_elim.h                                 |   11 
 external/spirv-tools/source/opt/instruction.h                                         |   24 
 external/spirv-tools/source/opt/local_access_chain_convert_pass.cpp                   |  231 
 external/spirv-tools/source/opt/local_access_chain_convert_pass.h                     |   64 
 external/spirv-tools/source/opt/local_single_block_elim_pass.cpp                      |  275 
 external/spirv-tools/source/opt/local_single_block_elim_pass.h                        |   78 
 external/spirv-tools/source/opt/local_single_store_elim_pass.cpp                      |  271 
 external/spirv-tools/source/opt/local_single_store_elim_pass.h                        |   74 
 external/spirv-tools/source/opt/local_ssa_elim_pass.cpp                               |  597 
 external/spirv-tools/source/opt/local_ssa_elim_pass.h                                 |  193 
 external/spirv-tools/source/opt/mem_pass.cpp                                          |  299 
 external/spirv-tools/source/opt/mem_pass.h                                            |  136 
 external/spirv-tools/source/opt/module.cpp                                            |    9 
 external/spirv-tools/source/opt/module.h                                              |   16 
 external/spirv-tools/source/opt/optimizer.cpp                                         |   30 
 external/spirv-tools/source/opt/pass.cpp                                              |   65 
 external/spirv-tools/source/opt/pass.h                                                |   14 
 external/spirv-tools/source/opt/passes.h                                              |    7 
 external/spirv-tools/source/print.cpp                                                 |   64 
 external/spirv-tools/source/spirv_stats.cpp                                           |  109 
 external/spirv-tools/source/spirv_stats.h                                             |   40 
 external/spirv-tools/source/util/bit_stream.cpp                                       |    2 
 external/spirv-tools/source/util/huffman_codec.h                                      |  256 
 external/spirv-tools/source/util/move_to_front.h                                      |  215 
 external/spirv-tools/source/validate_id.cpp                                           |    4 
 external/spirv-tools/source/validate_type_unique.cpp                                  |    9 
 external/spirv-tools/test/bit_stream.cpp                                              |   19 
 external/spirv-tools/test/enum_string_mapping_test.cpp                                |    5 
 external/spirv-tools/test/huffman_codec.cpp                                           |   98 
 external/spirv-tools/test/move_to_front_test.cpp                                      |  142 
 external/spirv-tools/test/operand_capabilities_test.cpp                               |    2 
 external/spirv-tools/test/opt/CMakeLists.txt                                          |   25 
 external/spirv-tools/test/opt/aggressive_dead_code_elim_test.cpp                      | 1061 +
 external/spirv-tools/test/opt/common_uniform_elim_test.cpp                            |  673 +
 external/spirv-tools/test/opt/dead_branch_elim_test.cpp                               | 1076 +
 external/spirv-tools/test/opt/inline_opaque_test.cpp                                  |  412 
 external/spirv-tools/test/opt/inline_test.cpp                                         |  519 
 external/spirv-tools/test/opt/insert_extract_elim_test.cpp                            |   82 
 external/spirv-tools/test/opt/instruction_test.cpp                                    |   73 
 external/spirv-tools/test/opt/local_access_chain_convert_test.cpp                     |  209 
 external/spirv-tools/test/opt/local_single_block_elim.cpp                             |  428 
 external/spirv-tools/test/opt/local_single_store_elim_test.cpp                        |  204 
 external/spirv-tools/test/opt/local_ssa_elim_test.cpp                                 | 1239 ++
 external/spirv-tools/test/stats/stats_aggregate_test.cpp                              |   51 
 external/spirv-tools/test/val/val_capability_test.cpp                                 |    2 
 external/spirv-tools/test/val/val_type_unique_test.cpp                                |   33 
 external/spirv-tools/tools/dis/dis.cpp                                                |   14 
 external/spirv-tools/tools/opt/opt.cpp                                                |   67 
 external/spirv-tools/tools/stats/stats.cpp                                            |  152 
 external/spirv-tools/tools/stats/stats_analyzer.cpp                                   |  574 
 external/spirv-tools/tools/stats/stats_analyzer.h                                     |   29 
 external_revisions/glslang_revision                                                   |    2 
 external_revisions/spirv-headers_revision                                             |    2 
 external_revisions/spirv-tools_revision                                               |    2 
 include/vulkan/vk_icd.h                                                               |    2 
 include/vulkan/vulkan.h                                                               |  624 -
 include/vulkan/vulkan.hpp                                                             | 2507 +++-
 layers/CMakeLists.txt                                                                 |    7 
 layers/buffer_validation.cpp                                                          |  586 
 layers/buffer_validation.h                                                            |   17 
 layers/core_validation.cpp                                                            | 1730 +-
 layers/core_validation_types.h                                                        |   42 
 layers/descriptor_sets.cpp                                                            |   46 
 layers/descriptor_sets.h                                                              |    5 
 layers/linux/VkLayer_core_validation.json                                             |    2 
 layers/linux/VkLayer_object_tracker.json                                              |    2 
 layers/linux/VkLayer_parameter_validation.json                                        |    2 
 layers/linux/VkLayer_standard_validation.json                                         |    2 
 layers/linux/VkLayer_threading.json                                                   |    2 
 layers/linux/VkLayer_unique_objects.json                                              |    2 
 layers/object_tracker.cpp                                                             | 5527 ---------
 layers/object_tracker.h                                                               |  193 
 layers/object_tracker_utils.cpp                                                       | 1096 +
 layers/parameter_validation.cpp                                                       | 6004 ----------
 layers/parameter_validation.h                                                         |  897 +
 layers/parameter_validation_utils.cpp                                                 | 2467 ++++
 layers/parameter_validation_utils.h                                                   |  898 -
 layers/shader_validation.cpp                                                          |   25 
 layers/threading.h                                                                    |    7 
 layers/unique_objects.cpp                                                             |    4 
 layers/vk_layer_logging.h                                                             |   15 
 layers/vk_layer_settings.txt                                                          |    2 
 layers/vk_layer_utils.cpp                                                             |   14 
 layers/vk_validation_error_database.txt                                               |  932 +
 layers/vk_validation_error_messages.h                                                 |  824 +
 layers/vu_csv_stats.sh                                                                |   38 
 layers/windows/VkLayer_core_validation.json                                           |    2 
 layers/windows/VkLayer_object_tracker.json                                            |    2 
 layers/windows/VkLayer_parameter_validation.json                                      |    2 
 layers/windows/VkLayer_standard_validation.json                                       |    2 
 layers/windows/VkLayer_threading.json                                                 |    2 
 layers/windows/VkLayer_unique_objects.json                                            |    2 
 libs/vkjson/vkjson.cc                                                                 |    6 
 libs/vkjson/vkjson_info.cc                                                            |   12 
 libs/vkjson/vkjson_instance.cc                                                        |    3 
 loader/CMakeLists.txt                                                                 |    4 
 loader/LoaderAndLayerInterface.md                                                     |   90 
 loader/loader.c                                                                       |  386 
 loader/loader.h                                                                       |    1 
 loader/trampoline.c                                                                   |    5 
 loader/unknown_ext_chain_gas.asm                                                      |    4 
 loader/vk_loader_platform.h                                                           |   26 
 scripts/cgenerator.py                                                                 |   18 
 scripts/generator.py                                                                  |    7 
 scripts/helper_file_generator.py                                                      |   30 
 scripts/lvl_genvk.py                                                                  |   33 
 scripts/object_tracker_generator.py                                                   |  949 +
 scripts/parameter_validation_generator.py                                             |  396 
 scripts/reg.py                                                                        |   14 
 scripts/unique_objects_generator.py                                                   |   16 
 scripts/vk.xml                                                                        | 2459 ++--
 scripts/vk_validation_stats.py                                                        |   11 
 scripts/vuid_mapping.py                                                               |   69 
 tests/_run_all_tests.ps1                                                              |    3 
 tests/layer_validation_tests.cpp                                                      | 4093 +++---
 tests/layers/device_profile_api.cpp                                                   |   92 
 tests/layers/linux/VkLayer_device_profile_api.json                                    |    2 
 tests/layers/linux/VkLayer_test.json                                                  |    2 
 tests/layers/linux/VkLayer_wrap_objects.json                                          |    2 
 tests/layers/vk_device_profile_api_layer.h                                            |    2 
 tests/layers/vk_lunarg_device_profile_api_layer.h                                     |    4 
 tests/layers/windows/VkLayer_device_profile_api.json                                  |    2 
 tests/layers/windows/VkLayer_test.json                                                |    2 
 tests/layers/windows/VkLayer_wrap_objects.json                                        |    2 
 tests/loader_validation_tests.cpp                                                     |   85 
 tests/run_wrap_objects_tests.sh                                                       |    2 
 tests/vkrenderframework.cpp                                                           |   32 
 tests/vkrenderframework.h                                                             |    5 
 update_external_sources.bat                                                           |  140 
 update_external_sources.sh                                                            |  101 
 507 files changed, 53588 insertions(+), 25500 deletions(-)

New commits:
commit 6bb8dedc75208a38b8409492fac46397f1372948
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Thu Sep 21 15:29:08 2017 +0300

    release to unstable

diff --git a/debian/changelog b/debian/changelog
index a9ac23e..a150545 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,10 +1,10 @@
-vulkan (1.0.61.1+dfsg1-1) UNRELEASED; urgency=medium
+vulkan (1.0.61.1+dfsg1-1) unstable; urgency=medium
 
   * New upstream release.
   * patches: Dropped install-vk-layer-dispatch-table-h.diff which is
     upstream, refresh use-mxgot-for-mips64.patch.
 
- -- Timo Aaltonen <tjaalton@debian.org>  Thu, 21 Sep 2017 15:16:32 +0300
+ -- Timo Aaltonen <tjaalton@debian.org>  Thu, 21 Sep 2017 15:28:57 +0300
 
 vulkan (1.0.54.0+dfsg1-1) unstable; urgency=medium
 

commit 40d9e4434c99d5e53940da8305fee1bd6157526b
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Thu Sep 21 15:27:35 2017 +0300

    patches: Dropped install-vk-layer-dispatch-table-h.diff which is upstream, refresh use-mxgot-for-mips64.patch.

diff --git a/debian/changelog b/debian/changelog
index 919c74d..a9ac23e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,8 @@
 vulkan (1.0.61.1+dfsg1-1) UNRELEASED; urgency=medium
 
   * New upstream release.
+  * patches: Dropped install-vk-layer-dispatch-table-h.diff which is
+    upstream, refresh use-mxgot-for-mips64.patch.
 
  -- Timo Aaltonen <tjaalton@debian.org>  Thu, 21 Sep 2017 15:16:32 +0300
 
diff --git a/debian/patches/install-vk-layer-dispatch-table-h.diff b/debian/patches/install-vk-layer-dispatch-table-h.diff
deleted file mode 100644
index 86a4ad7..0000000
--- a/debian/patches/install-vk-layer-dispatch-table-h.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -318,6 +318,7 @@ endif()
- if(UNIX)
-     if(INSTALL_LVL_FILES)
-         install(DIRECTORY "${PROJECT_SOURCE_DIR}/include/vulkan" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
-+        install(FILES "${CMAKE_BINARY_DIR}/vk_layer_dispatch_table.h" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/vulkan)
-     endif()
- 
- # uninstall target
diff --git a/debian/patches/series b/debian/patches/series
index 382d831..146bbf8 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,4 +1,3 @@
 demos-dont-build-cube.diff
 use-mxgot-for-mips64.patch
 install-vulkan-intel-header.diff
-install-vk-layer-dispatch-table-h.diff
diff --git a/debian/patches/use-mxgot-for-mips64.patch b/debian/patches/use-mxgot-for-mips64.patch
index f2755c3..b32c3b1 100644
--- a/debian/patches/use-mxgot-for-mips64.patch
+++ b/debian/patches/use-mxgot-for-mips64.patch
@@ -3,7 +3,7 @@ Author: Dejan Latinovic <Dejan.Latinovic@imgtec.com>
 
 --- a/layers/CMakeLists.txt
 +++ b/layers/CMakeLists.txt
-@@ -138,6 +138,12 @@ if (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "
+@@ -167,6 +167,12 @@ if (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "
      endif()
  endif()
  
@@ -14,5 +14,5 @@ Author: Dejan Latinovic <Dejan.Latinovic@imgtec.com>
 +endif()
 +
  run_vk_xml_generate(threading_generator.py thread_check.h)
- run_vk_xml_generate(parameter_validation_generator.py parameter_validation.h)
+ run_vk_xml_generate(parameter_validation_generator.py parameter_validation.cpp)
  run_vk_xml_generate(unique_objects_generator.py unique_objects_wrappers.h)

commit d1557e281d367f2a2f7a1de846bf87717a45934c
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Thu Sep 21 15:16:58 2017 +0300

    update changelog

diff --git a/debian/changelog b/debian/changelog
index 097b46a..919c74d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+vulkan (1.0.61.1+dfsg1-1) UNRELEASED; urgency=medium
+
+  * New upstream release.
+
+ -- Timo Aaltonen <tjaalton@debian.org>  Thu, 21 Sep 2017 15:16:32 +0300
+
 vulkan (1.0.54.0+dfsg1-1) unstable; urgency=medium
 
   * New upstream release.

commit 2aa57af4ae93d5d73f3485ed68c74a0cd0cc2ebc
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Thu Sep 21 15:16:30 2017 +0300

    Refresh external/

diff --git a/external/glslang/.gitignore b/external/glslang/.gitignore
index 30889ac..3e6cc14 100644
--- a/external/glslang/.gitignore
+++ b/external/glslang/.gitignore
@@ -6,8 +6,4 @@ tags
 TAGS
 build/
 Test/localResults/
-Test/multiThread.out
-Test/singleThread.out
-Test/vert.spv
-Test/frag.spv
 External/googletest
diff --git a/external/glslang/SPIRV/GLSL.ext.AMD.h b/external/glslang/SPIRV/GLSL.ext.AMD.h
index 4fff8c8..5121ed9 100644
--- a/external/glslang/SPIRV/GLSL.ext.AMD.h
+++ b/external/glslang/SPIRV/GLSL.ext.AMD.h
@@ -33,20 +33,11 @@ enum Decoration;
 enum Op;
 
 static const int GLSLextAMDVersion = 100;
-static const int GLSLextAMDRevision = 4;
+static const int GLSLextAMDRevision = 5;
 
 // SPV_AMD_shader_ballot
 static const char* const E_SPV_AMD_shader_ballot = "SPV_AMD_shader_ballot";
 
-static const Op OpGroupIAddNonUniformAMD = static_cast<Op>(5000);
-static const Op OpGroupFAddNonUniformAMD = static_cast<Op>(5001);
-static const Op OpGroupFMinNonUniformAMD = static_cast<Op>(5002);
-static const Op OpGroupUMinNonUniformAMD = static_cast<Op>(5003);
-static const Op OpGroupSMinNonUniformAMD = static_cast<Op>(5004);
-static const Op OpGroupFMaxNonUniformAMD = static_cast<Op>(5005);
-static const Op OpGroupUMaxNonUniformAMD = static_cast<Op>(5006);
-static const Op OpGroupSMaxNonUniformAMD = static_cast<Op>(5007);
-
 enum ShaderBallotAMD {
     ShaderBallotBadAMD = 0, // Don't use
 
@@ -80,16 +71,6 @@ enum ShaderTrinaryMinMaxAMD {
 // SPV_AMD_shader_explicit_vertex_parameter
 static const char* const E_SPV_AMD_shader_explicit_vertex_parameter = "SPV_AMD_shader_explicit_vertex_parameter";
 
-static const BuiltIn BuiltInBaryCoordNoPerspAMD           = static_cast<BuiltIn>(4992);
-static const BuiltIn BuiltInBaryCoordNoPerspCentroidAMD   = static_cast<BuiltIn>(4993);
-static const BuiltIn BuiltInBaryCoordNoPerspSampleAMD     = static_cast<BuiltIn>(4994);
-static const BuiltIn BuiltInBaryCoordSmoothAMD            = static_cast<BuiltIn>(4995);
-static const BuiltIn BuiltInBaryCoordSmoothCentroidAMD    = static_cast<BuiltIn>(4996);
-static const BuiltIn BuiltInBaryCoordSmoothSampleAMD      = static_cast<BuiltIn>(4997);
-static const BuiltIn BuiltInBaryCoordPullModelAMD         = static_cast<BuiltIn>(4998);
-
-static const Decoration DecorationExplicitInterpAMD       = static_cast<Decoration>(4999);
-
 enum ShaderExplicitVertexParameterAMD {
     ShaderExplicitVertexParameterBadAMD = 0, // Don't use
 
@@ -117,9 +98,12 @@ static const char* const E_SPV_AMD_gpu_shader_half_float = "SPV_AMD_gpu_shader_h
 // SPV_AMD_texture_gather_bias_lod
 static const char* const E_SPV_AMD_texture_gather_bias_lod = "SPV_AMD_texture_gather_bias_lod";
 
-static const Capability CapabilityImageGatherBiasLodAMD = static_cast<Capability>(5009);
-
 // SPV_AMD_gpu_shader_int16
 static const char* const E_SPV_AMD_gpu_shader_int16 = "SPV_AMD_gpu_shader_int16";
 
+// SPV_AMD_shader_image_load_store_lod
+static const char* const E_SPV_AMD_shader_image_load_store_lod = "SPV_AMD_shader_image_load_store_lod";
+
+static const Capability CapabilityImageReadWriteLodAMD = static_cast<Capability>(5015);
+
 #endif  // #ifndef GLSLextAMD_H
diff --git a/external/glslang/SPIRV/GLSL.ext.KHR.h b/external/glslang/SPIRV/GLSL.ext.KHR.h
index 6e02529..2eb10ae 100644
--- a/external/glslang/SPIRV/GLSL.ext.KHR.h
+++ b/external/glslang/SPIRV/GLSL.ext.KHR.h
@@ -42,5 +42,7 @@ static const char* const E_SPV_KHR_shader_draw_parameters       = "SPV_KHR_shade
 static const char* const E_SPV_KHR_16bit_storage                = "SPV_KHR_16bit_storage";
 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_EXT_shader_stencil_export        = "SPV_EXT_shader_stencil_export";
+static const char* const E_SPV_EXT_shader_viewport_index_layer  = "SPV_EXT_shader_viewport_index_layer";
 
 #endif  // #ifndef GLSLextKHR_H
diff --git a/external/glslang/SPIRV/GlslangToSpv.cpp b/external/glslang/SPIRV/GlslangToSpv.cpp
index 50806d0..b6c9705 100755
--- a/external/glslang/SPIRV/GlslangToSpv.cpp
+++ b/external/glslang/SPIRV/GlslangToSpv.cpp
@@ -122,6 +122,7 @@ protected:
     spv::Decoration TranslateAuxiliaryStorageDecoration(const glslang::TQualifier& qualifier);
     spv::BuiltIn TranslateBuiltInDecoration(glslang::TBuiltInVariable, bool memberDeclaration);
     spv::ImageFormat TranslateImageFormat(const glslang::TType& type);
+    spv::SelectionControlMask TranslateSelectionControl(glslang::TSelectionControl) const;
     spv::LoopControlMask TranslateLoopControl(glslang::TLoopControl) const;
     spv::StorageClass TranslateStorageClass(const glslang::TType&);
     spv::Id createSpvVariable(const glslang::TIntermSymbol*);
@@ -454,15 +455,13 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI
     case glslang::EbvViewportIndex:
         if (!memberDeclaration) {
             builder.addCapability(spv::CapabilityMultiViewport);
-#ifdef NV_EXTENSIONS
             if (glslangIntermediate->getStage() == EShLangVertex ||
                 glslangIntermediate->getStage() == EShLangTessControl ||
                 glslangIntermediate->getStage() == EShLangTessEvaluation) {
 
-                builder.addExtension(spv::E_SPV_NV_viewport_array2);
-                builder.addCapability(spv::CapabilityShaderViewportIndexLayerNV);
+                builder.addExtension(spv::E_SPV_EXT_shader_viewport_index_layer);
+                builder.addCapability(spv::CapabilityShaderViewportIndexLayerEXT);
             }
-#endif
         }
         return spv::BuiltInViewportIndex;
 
@@ -481,15 +480,13 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI
     case glslang::EbvLayer:
         if (!memberDeclaration) {
             builder.addCapability(spv::CapabilityGeometry);
-#ifdef NV_EXTENSIONS
             if (glslangIntermediate->getStage() == EShLangVertex ||
                 glslangIntermediate->getStage() == EShLangTessControl ||
                 glslangIntermediate->getStage() == EShLangTessEvaluation) {
 
-                builder.addExtension(spv::E_SPV_NV_viewport_array2);
-                builder.addCapability(spv::CapabilityShaderViewportIndexLayerNV);
+                builder.addExtension(spv::E_SPV_EXT_shader_viewport_index_layer);
+                builder.addCapability(spv::CapabilityShaderViewportIndexLayerEXT);
             }
-#endif
         }
 
         return spv::BuiltInLayer;
@@ -521,8 +518,9 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI
         return spv::BuiltInPrimitiveId;
 
     case glslang::EbvFragStencilRef:
-        logger->missingFunctionality("shader stencil export");
-        return spv::BuiltInMax;
+        builder.addExtension(spv::E_SPV_EXT_shader_stencil_export);
+        builder.addCapability(spv::CapabilityStencilExportEXT);
+        return spv::BuiltInFragStencilRefEXT;
 
     case glslang::EbvInvocationId:         return spv::BuiltInInvocationId;
     case glslang::EbvTessLevelInner:       return spv::BuiltInTessLevelInner;
@@ -741,6 +739,16 @@ spv::ImageFormat TGlslangToSpvTraverser::TranslateImageFormat(const glslang::TTy
     }
 }
 
+spv::SelectionControlMask TGlslangToSpvTraverser::TranslateSelectionControl(glslang::TSelectionControl selectionControl) const
+{
+    switch (selectionControl) {
+    case glslang::ESelectionControlNone:        return spv::SelectionControlMaskNone;
+    case glslang::ESelectionControlFlatten:     return spv::SelectionControlFlattenMask;
+    case glslang::ESelectionControlDontFlatten: return spv::SelectionControlDontFlattenMask;
+    default:                                    return spv::SelectionControlMaskNone;
+    }
+}
+
 spv::LoopControlMask TGlslangToSpvTraverser::TranslateLoopControl(glslang::TLoopControl loopControl) const
 {
     switch (loopControl) {
@@ -869,11 +877,30 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(const glslang::TIntermediate* gls
     spv::ExecutionModel executionModel = TranslateExecutionModel(glslangIntermediate->getStage());
 
     builder.clearAccessChain();
-    builder.setSource(TranslateSourceLanguage(glslangIntermediate->getSource(), glslangIntermediate->getProfile()), glslangIntermediate->getVersion());
+    builder.setSource(TranslateSourceLanguage(glslangIntermediate->getSource(), glslangIntermediate->getProfile()),
+                      glslangIntermediate->getVersion());
+
     if (options.generateDebugInfo) {
-        builder.setSourceFile(glslangIntermediate->getSourceFile());
-        builder.setSourceText(glslangIntermediate->getSourceText());
         builder.setEmitOpLines();
+        builder.setSourceFile(glslangIntermediate->getSourceFile());
+
+        // Set the source shader's text. If for SPV version 1.0, include
+        // a preamble in comments stating the OpModuleProcessed instructions.
+        // Otherwise, emit those as actual instructions.
+        std::string text;
+        const std::vector<std::string>& processes = glslangIntermediate->getProcesses();
+        for (int p = 0; p < (int)processes.size(); ++p) {
+            if (glslangIntermediate->getSpv().spv < 0x00010100) {
+                text.append("// OpModuleProcessed ");
+                text.append(processes[p]);
+                text.append("\n");
+            } else
+                builder.addModuleProcessed(processes[p]);
+        }
+        if (glslangIntermediate->getSpv().spv < 0x00010100 && (int)processes.size() > 0)
+            text.append("#line 1\n");
+        text.append(glslangIntermediate->getSourceText());
+        builder.setSourceText(text);
     }
     stdBuiltins = builder.import("GLSL.std.450");
     builder.setMemoryModel(spv::AddressingModelLogical, spv::MemoryModelGLSL450);
@@ -1441,7 +1468,11 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
         builder.setAccessChainRValue(result);
 
         return false;
+#ifdef AMD_EXTENSIONS
+    } else if (node->getOp() == glslang::EOpImageStore || node->getOp() == glslang::EOpImageStoreLod) {
+#else
     } else if (node->getOp() == glslang::EOpImageStore) {
+#endif
         // "imageStore" is a special case, which has no result
         return false;
     }
@@ -1734,6 +1765,20 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
         atomic = true;
         break;
 
+    case glslang::EOpAtomicCounterAdd:
+    case glslang::EOpAtomicCounterSubtract:
+    case glslang::EOpAtomicCounterMin:
+    case glslang::EOpAtomicCounterMax:
+    case glslang::EOpAtomicCounterAnd:
+    case glslang::EOpAtomicCounterOr:
+    case glslang::EOpAtomicCounterXor:
+    case glslang::EOpAtomicCounterExchange:
+    case glslang::EOpAtomicCounterCompSwap:
+        builder.addExtension("SPV_KHR_shader_atomic_counter_ops");
+        builder.addCapability(spv::CapabilityAtomicStorageOps);
+        atomic = true;
+        break;
+
     default:
         break;
     }
@@ -1804,6 +1849,15 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
         case glslang::EOpAtomicXor:
         case glslang::EOpAtomicExchange:
         case glslang::EOpAtomicCompSwap:
+        case glslang::EOpAtomicCounterAdd:
+        case glslang::EOpAtomicCounterSubtract:
+        case glslang::EOpAtomicCounterMin:
+        case glslang::EOpAtomicCounterMax:
+        case glslang::EOpAtomicCounterAnd:
+        case glslang::EOpAtomicCounterOr:
+        case glslang::EOpAtomicCounterXor:
+        case glslang::EOpAtomicCounterExchange:
+        case glslang::EOpAtomicCounterCompSwap:
             if (arg == 0)
                 lvalue = true;
             break;
@@ -1941,8 +1995,7 @@ bool TGlslangToSpvTraverser::visitSelection(glslang::TVisit /* visit */, glslang
         return false;
     }
 
-    // Instead, emit control flow...
-
+    // Instead, emit control flow...    
     // Don't handle results as temporaries, because there will be two names
     // and better to leave SSA to later passes.
     spv::Id result = (node->getBasicType() == glslang::EbtVoid)
@@ -1952,8 +2005,11 @@ bool TGlslangToSpvTraverser::visitSelection(glslang::TVisit /* visit */, glslang
     // emit the condition before doing anything with selection
     node->getCondition()->traverse(this);
 
+    // Selection control:
+    const spv::SelectionControlMask control = TranslateSelectionControl(node->getSelectionControl());
+
     // make an "if" based on the value created by the condition
-    spv::Builder::If ifBuilder(accessChainLoad(node->getCondition()->getType()), builder);
+    spv::Builder::If ifBuilder(accessChainLoad(node->getCondition()->getType()), control, builder);
 
     // emit the "then" statement
     if (node->getTrueBlock() != nullptr) {
@@ -1991,6 +2047,9 @@ bool TGlslangToSpvTraverser::visitSwitch(glslang::TVisit /* visit */, glslang::T
     node->getCondition()->traverse(this);
     spv::Id selector = accessChainLoad(node->getCondition()->getAsTyped()->getType());
 
+    // Selection control:
+    const spv::SelectionControlMask control = TranslateSelectionControl(node->getSelectionControl());
+
     // browse the children to sort out code segments
     int defaultSegment = -1;
     std::vector<TIntermNode*> codeSegments;
@@ -2016,7 +2075,7 @@ bool TGlslangToSpvTraverser::visitSwitch(glslang::TVisit /* visit */, glslang::T
 
     // make the switch statement
     std::vector<spv::Block*> segmentBlocks; // returned, as the blocks allocated in the call
-    builder.makeSwitch(selector, (int)codeSegments.size(), caseValues, valueIndexToSegment, defaultSegment, segmentBlocks);
+    builder.makeSwitch(selector, control, (int)codeSegments.size(), caseValues, valueIndexToSegment, defaultSegment, segmentBlocks);
 
     // emit all the code in the segments
     breakForLoop.push(false);
@@ -2426,6 +2485,10 @@ bool TGlslangToSpvTraverser::filterMember(const glslang::TType& member)
     if (member.getFieldName() == "gl_ViewportMaskPerViewNV" &&
         extensions.find("GL_NVX_multiview_per_view_attributes") == extensions.end())
         return true;
+    if ((member.getFieldName() == "gl_ViewportIndex" || member.getFieldName() == "gl_Layer") &&
+        extensions.find(glslang::E_GL_ARB_shader_viewport_layer_array) == extensions.end() &&
+        extensions.find("GL_NV_viewport_array2") == extensions.end())
+        return true;
 
     return false;
 };
@@ -2515,7 +2578,9 @@ void TGlslangToSpvTraverser::decorateStructType(const glslang::TType& type,
             }
             addMemberDecoration(spvType, member, TranslateInvariantDecoration(memberQualifier));
 
-            if (qualifier.storage == glslang::EvqBuffer) {
+            if (type.getBasicType() == glslang::EbtBlock &&
+                qualifier.storage == glslang::EvqBuffer) {
+                // Add memory decorations only to top-level members of shader storage block
                 std::vector<spv::Decoration> memory;
                 TranslateMemoryDecoration(memberQualifier, memory);
                 for (unsigned int i = 0; i < memory.size(); ++i)
@@ -2806,7 +2871,7 @@ int TGlslangToSpvTraverser::getMatrixStride(const glslang::TType& matrixType, gl
 // 'currentOffset' should be passed in already initialized, ready to modify, and reflecting
 // the migration of data from nextOffset -> currentOffset.  It should be -1 on the first call.
 // -1 means a non-forced member offset (no decoration needed).
-void TGlslangToSpvTraverser::updateMemberOffset(const glslang::TType& /*structType*/, const glslang::TType& memberType, int& currentOffset, int& nextOffset,
+void TGlslangToSpvTraverser::updateMemberOffset(const glslang::TType& structType, const glslang::TType& memberType, int& currentOffset, int& nextOffset,
                                                 glslang::TLayoutPacking explicitLayout, glslang::TLayoutMatrix matrixLayout)
 {
     // this will get a positive value when deemed necessary
@@ -2840,8 +2905,12 @@ void TGlslangToSpvTraverser::updateMemberOffset(const glslang::TType& /*structTy
     int memberAlignment = glslangIntermediate->getBaseAlignment(memberType, memberSize, dummyStride, explicitLayout == glslang::ElpStd140, matrixLayout == glslang::ElmRowMajor);
 
     // Adjust alignment for HLSL rules
+    // TODO: make this consistent in early phases of code:
+    //       adjusting this late means inconsistencies with earlier code, which for reflection is an issue
+    // Until reflection is brought in sync with these adjustments, don't apply to $Global,
+    // which is the most likely to rely on reflection, and least likely to rely implicit layouts
     if (glslangIntermediate->usingHlslOFfsets() &&
-        ! memberType.isArray() && memberType.isVector()) {
+        ! memberType.isArray() && memberType.isVector() && structType.getTypeName().compare("$Global") != 0) {
         int dummySize;
         int componentAlignment = glslangIntermediate->getBaseAlignmentScalar(memberType, dummySize);
         if (componentAlignment <= 4)
@@ -2894,6 +2963,13 @@ bool TGlslangToSpvTraverser::isShaderEntryPoint(const glslang::TIntermAggregate*
 // Make all the functions, skeletally, without actually visiting their bodies.
 void TGlslangToSpvTraverser::makeFunctions(const glslang::TIntermSequence& glslFunctions)
 {
+    const auto getParamDecorations = [](std::vector<spv::Decoration>& decorations, const glslang::TType& type) {
+        spv::Decoration paramPrecision = TranslatePrecisionDecoration(type);
+        if (paramPrecision != spv::NoPrecision)
+            decorations.push_back(paramPrecision);
+        TranslateMemoryDecoration(type.getQualifier(), decorations);
+    };
+
     for (int f = 0; f < (int)glslFunctions.size(); ++f) {
         glslang::TIntermAggregate* glslFunction = glslFunctions[f]->getAsAggregate();
         if (! glslFunction || glslFunction->getOp() != glslang::EOpFunction || isShaderEntryPoint(glslFunction))
@@ -2914,11 +2990,13 @@ void TGlslangToSpvTraverser::makeFunctions(const glslang::TIntermSequence& glslF
         //   GLSL has copy-in/copy-out semantics.  They can be handled though with a pointer to a copy.
 
         std::vector<spv::Id> paramTypes;
-        std::vector<spv::Decoration> paramPrecisions;
+        std::vector<std::vector<spv::Decoration>> paramDecorations; // list of decorations per parameter
         glslang::TIntermSequence& parameters = glslFunction->getSequence()[0]->getAsAggregate()->getSequence();
 
-        bool implicitThis = (int)parameters.size() > 0 && parameters[0]->getAsSymbolNode()->getName() == glslangIntermediate->implicitThisName;
+        bool implicitThis = (int)parameters.size() > 0 && parameters[0]->getAsSymbolNode()->getName() ==
+                                                          glslangIntermediate->implicitThisName;
 
+        paramDecorations.resize(parameters.size());
         for (int p = 0; p < (int)parameters.size(); ++p) {
             const glslang::TType& paramType = parameters[p]->getAsTyped()->getType();
             spv::Id typeId = convertGlslangToSpvType(paramType);
@@ -2932,14 +3010,15 @@ void TGlslangToSpvTraverser::makeFunctions(const glslang::TIntermSequence& glslF
                 typeId = builder.makePointer(spv::StorageClassFunction, typeId);
             else
                 rValueParameters.insert(parameters[p]->getAsSymbolNode()->getId());
-            paramPrecisions.push_back(TranslatePrecisionDecoration(paramType));
+            getParamDecorations(paramDecorations[p], paramType);
             paramTypes.push_back(typeId);
         }
 
         spv::Block* functionBlock;
         spv::Function *function = builder.makeFunctionEntry(TranslatePrecisionDecoration(glslFunction->getType()),
                                                             convertGlslangToSpvType(glslFunction->getType()),
-                                                            glslFunction->getName().c_str(), paramTypes, paramPrecisions, &functionBlock);
+                                                            glslFunction->getName().c_str(), paramTypes,


Reply to: