Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package glslang for openSUSE:Factory checked 
in at 2023-09-07 21:12:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/glslang (Old)
 and      /work/SRC/openSUSE:Factory/.glslang.new.1766 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "glslang"

Thu Sep  7 21:12:09 2023 rev:45 rq:1109372 version:13.0.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/glslang/glslang.changes  2023-08-30 
10:18:44.100404320 +0200
+++ /work/SRC/openSUSE:Factory/.glslang.new.1766/glslang.changes        
2023-09-07 21:12:17.680347967 +0200
@@ -1,0 +2,6 @@
+Wed Sep  6 22:49:08 UTC 2023 - Jan Engelhardt <jeng...@inai.de>
+
+- Update to release 13
+  * extension: GL_QCOM_image_processing
+
+-------------------------------------------------------------------

Old:
----
  sdk-1.3.261.0.tar.gz

New:
----
  13.0.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ glslang.spec ++++++
--- /var/tmp/diff_new_pack.r2nfyv/_old  2023-09-07 21:12:19.112399159 +0200
+++ /var/tmp/diff_new_pack.r2nfyv/_new  2023-09-07 21:12:19.116399302 +0200
@@ -16,16 +16,16 @@
 #
 
 
-%define lname libglslang12
+%define lname libglslang13
 Name:           glslang
-Version:        12.3.1+sdk261
+Version:        13.0.0
 Release:        0
 Summary:        OpenGL and OpenGL ES shader front end and validator
 License:        BSD-3-Clause
 Group:          Development/Libraries/C and C++
 URL:            https://www.khronos.org/opengles/sdk/tools/Reference-Compiler/
 #Git-URL:      https://github.com/KhronosGroup/glslang
-Source:         
https://github.com/KhronosGroup/glslang/archive/sdk-1.3.261.0.tar.gz
+Source:         https://github.com/KhronosGroup/glslang/archive/%version.tar.gz
 Source3:        baselibs.conf
 Patch1:         0001-Revert-CMake-Make-glslang-default-resource-limits-ST.patch
 BuildRequires:  bison
@@ -81,7 +81,7 @@
 but which some downstream packages rely on.
 
 %prep
-%autosetup -p1 -n %name-sdk-1.3.261.0
+%autosetup -p1
 
 %build
 %global _lto_cflags %{?_lto_cflags} -ffat-lto-objects
@@ -132,7 +132,7 @@
 %postun -n %lname -p /sbin/ldconfig
 
 %files -n %lname
-%_libdir/*.so.12*
+%_libdir/*.so.13*
 
 %files devel -f devel.files
 %_bindir/gls*

++++++ sdk-1.3.261.0.tar.gz -> 13.0.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/glslang-sdk-1.3.261.0/.github/workflows/scorecard.yml 
new/glslang-13.0.0/.github/workflows/scorecard.yml
--- old/glslang-sdk-1.3.261.0/.github/workflows/scorecard.yml   1970-01-01 
01:00:00.000000000 +0100
+++ new/glslang-13.0.0/.github/workflows/scorecard.yml  2023-08-24 
01:24:25.000000000 +0200
@@ -0,0 +1,53 @@
+name: Scorecard supply-chain security
+on:
+  # For Branch-Protection check. Only the default branch is supported. See
+  # 
https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection
+  branch_protection_rule:
+  # To guarantee Maintained check is occasionally updated. See
+  # https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained
+  schedule:
+    - cron: '36 17 * * 5'
+  push:
+    branches: [ "main" ]
+
+# Declare default permissions as read only.
+permissions: read-all
+
+jobs:
+  analysis:
+    name: Scorecard analysis
+    runs-on: ubuntu-latest
+    permissions:
+      security-events: write # to upload the results to code-scanning dashboard
+      id-token: write # to publish results and get a badge
+
+    steps:
+      - name: "Checkout code"
+        uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # 
v3.1.0
+        with:
+          persist-credentials: false
+
+      - name: "Run analysis"
+        uses: ossf/scorecard-action@e38b1902ae4f44df626f11ba0734b14fb91f8f86 # 
v2.1.2
+        with:
+          results_file: results.sarif
+          results_format: sarif
+          # To enable Branch-Protection uncomment the `repo_token` line below
+          # To create the Fine-grained PAT, follow the steps in 
https://github.com/ossf/scorecard-action#authentication-with-fine-grained-pat-optional.
+          # repo_token: ${{ secrets.SCORECARD_TOKEN }}
+          publish_results: true # allows the repo to include the Scorecard 
badge
+
+      # Upload the results as artifacts (optional). Commenting out will 
disable uploads of run results in SARIF
+      # format to the repository Actions tab.
+      - name: "Upload artifact"
+        uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 
# v3.1.0
+        with:
+          name: SARIF file
+          path: results.sarif
+          retention-days: 5
+
+      # Upload the results to GitHub's code scanning dashboard.
+      - name: "Upload to code-scanning"
+        uses: 
github/codeql-action/upload-sarif@17573ee1cc1b9d061760f3a006fc4aac4f944fd5 # 
v2.2.4
+        with:
+          sarif_file: results.sarif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/glslang-sdk-1.3.261.0/BUILD.gn 
new/glslang-13.0.0/BUILD.gn
--- old/glslang-sdk-1.3.261.0/BUILD.gn  2023-08-08 20:49:36.000000000 +0200
+++ new/glslang-13.0.0/BUILD.gn 2023-08-24 01:24:25.000000000 +0200
@@ -124,6 +124,7 @@
       "SPIRV/GLSL.ext.KHR.h",
       "SPIRV/GLSL.ext.NV.h",
       "SPIRV/GLSL.ext.ARM.h",
+      "SPIRV/GLSL.ext.QCOM.h",
       "SPIRV/GLSL.std.450.h",
       "SPIRV/GlslangToSpv.cpp",
       "SPIRV/GlslangToSpv.h",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/glslang-sdk-1.3.261.0/CHANGES.md 
new/glslang-13.0.0/CHANGES.md
--- old/glslang-sdk-1.3.261.0/CHANGES.md        2023-08-08 20:49:36.000000000 
+0200
+++ new/glslang-13.0.0/CHANGES.md       2023-08-24 01:24:25.000000000 +0200
@@ -3,6 +3,22 @@
 All notable changes to this project will be documented in this file.
 This project adheres to [Semantic Versioning](https://semver.org/).
 
+## 13.0.0 2023-08-23
+
+### Breaking changes
+* Simplify PoolAlloc via thread_local
+  * Remove InitializeDLL functions
+  * Remove OSDependent TLS functions
+* Remove GLSLANG_WEB and GLSLANG_WEB_DEVEL code paths
+
+### Other changes
+* Raise CMAKE minimum to 3.17.2
+* Support GL_KHR_cooperative_matrix 
+* Support GL_QCOM_image_processing_support
+* Support outputting each module to a filename with spirv-remap
+* Generate an error when gl_PrimitiveShaderRateEXT is used without enabling 
the extension
+* Improve layout checking when GL_EXT_spirv_intrinsics is enabled
+
 ## 12.3.1 2023-07-20
 
 ### Other changes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/glslang-sdk-1.3.261.0/CMakeLists.txt 
new/glslang-13.0.0/CMakeLists.txt
--- old/glslang-sdk-1.3.261.0/CMakeLists.txt    2023-08-08 20:49:36.000000000 
+0200
+++ new/glslang-13.0.0/CMakeLists.txt   2023-08-24 01:24:25.000000000 +0200
@@ -234,10 +234,9 @@
 function(glslang_only_export_explicit_symbols target)
     if(BUILD_SHARED_LIBS)
         target_compile_definitions(${target} PUBLIC 
"GLSLANG_IS_SHARED_LIBRARY=1")
+        set_target_properties(${target} PROPERTIES CMAKE_CXX_VISIBILITY_PRESET 
hidden)
         if(WIN32)
             target_compile_definitions(${target} PRIVATE "GLSLANG_EXPORTING=1")
-        else()
-            target_compile_options(${target} PRIVATE "-fvisibility=hidden")
         endif()
     endif()
 endfunction()
@@ -264,8 +263,15 @@
     add_subdirectory(External)
 endif()
 
+option(ALLOW_EXTERNAL_SPIRV_TOOLS "Allows to build against installed 
SPIRV-Tools-opt" OFF)
 if(NOT TARGET SPIRV-Tools-opt)
-    set(ENABLE_OPT OFF)
+    if(ALLOW_EXTERNAL_SPIRV_TOOLS)
+        # Look for external SPIR-V Tools build, if not building in-tree
+        find_package(SPIRV-Tools-opt)
+    endif()
+    if(NOT TARGET SPIRV-Tools-opt)
+        set(ENABLE_OPT OFF)
+    endif()
 endif()
 
 if(ENABLE_OPT)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/glslang-sdk-1.3.261.0/README.md 
new/glslang-13.0.0/README.md
--- old/glslang-sdk-1.3.261.0/README.md 2023-08-08 20:49:36.000000000 +0200
+++ new/glslang-13.0.0/README.md        2023-08-24 01:24:25.000000000 +0200
@@ -11,8 +11,9 @@
 
 2. C++17 (all platforms) and Visual Studio 2019 (Windows) are now required. 
This change was driven by the external dependency on SPIRV-Tools.
 
-[![appveyor 
status](https://ci.appveyor.com/api/projects/status/q6fi9cb0qnhkla68/branch/main?svg=true)](https://ci.appveyor.com/project/Khronoswebmaster/glslang/branch/main)
+![Continuous 
Integration](https://github.com/KhronosGroup/glslang/actions/workflows/continuous_integration.yml/badge.svg)
 ![Continuous 
Deployment](https://github.com/KhronosGroup/glslang/actions/workflows/continuous_deployment.yml/badge.svg)
+[![OpenSSF 
Scorecard](https://api.securityscorecards.dev/projects/github.com/KhronosGroup/glslang/badge)](https://securityscorecards.dev/viewer/?uri=github.com/KhronosGroup/glslang)
 
 # Glslang Components and Status
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/glslang-sdk-1.3.261.0/SPIRV/GLSL.ext.QCOM.h 
new/glslang-13.0.0/SPIRV/GLSL.ext.QCOM.h
--- old/glslang-sdk-1.3.261.0/SPIRV/GLSL.ext.QCOM.h     1970-01-01 
01:00:00.000000000 +0100
+++ new/glslang-13.0.0/SPIRV/GLSL.ext.QCOM.h    2023-08-24 01:24:25.000000000 
+0200
@@ -0,0 +1,41 @@
+/*
+** Copyright (c) 2021 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a copy
+** of this software and/or associated documentation files (the "Materials"),
+** to deal in the Materials without restriction, including without limitation
+** the rights to use, copy, modify, merge, publish, distribute, sublicense,
+** and/or sell copies of the Materials, and to permit persons to whom the
+** Materials are furnished to do so, subject to the following conditions:
+**
+** The above copyright notice and this permission notice shall be included in
+** all copies or substantial portions of the Materials.
+**
+** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
+** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
+** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
+** IN THE MATERIALS.
+*/
+
+#ifndef GLSLextQCOM_H
+#define GLSLextQCOM_H
+
+enum BuiltIn;
+enum Decoration;
+enum Op;
+enum Capability;
+
+static const int GLSLextQCOMVersion = 100;
+static const int GLSLextQCOMRevision = 1;
+
+//SPV_QCOM_image_processing
+const char* const E_SPV_QCOM_image_processing = "SPV_QCOM_image_processing";
+
+#endif  // #ifndef GLSLextQCOM_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/glslang-sdk-1.3.261.0/SPIRV/GlslangToSpv.cpp 
new/glslang-13.0.0/SPIRV/GlslangToSpv.cpp
--- old/glslang-sdk-1.3.261.0/SPIRV/GlslangToSpv.cpp    2023-08-08 
20:49:36.000000000 +0200
+++ new/glslang-13.0.0/SPIRV/GlslangToSpv.cpp   2023-08-24 01:24:25.000000000 
+0200
@@ -50,6 +50,7 @@
     #include "GLSL.ext.AMD.h"
     #include "GLSL.ext.NV.h"
     #include "GLSL.ext.ARM.h"
+    #include "GLSL.ext.QCOM.h"
     #include "NonSemanticDebugPrintf.h"
 }
 
@@ -220,6 +221,7 @@
     spv::Id createNoArgOperation(glslang::TOperator op, spv::Decoration 
precision, spv::Id typeId);
     spv::Id getSymbolId(const glslang::TIntermSymbol* node);
     void addMeshNVDecoration(spv::Id id, int member, const glslang::TQualifier 
& qualifier);
+    void addImageProcessingQCOMDecoration(spv::Id id, spv::Decoration decor);
     spv::Id createSpvConstant(const glslang::TIntermTyped&);
     spv::Id createSpvConstantFromConstUnionArray(const glslang::TType& type, 
const glslang::TConstUnionArray&,
         int& nextConst, bool specConstant);
@@ -3276,6 +3278,20 @@
         noReturnValue = true;
         break;
 
+    case glslang::EOpImageSampleWeightedQCOM:
+        builder.addCapability(spv::CapabilityTextureSampleWeightedQCOM);
+        builder.addExtension(spv::E_SPV_QCOM_image_processing);
+        break;
+    case glslang::EOpImageBoxFilterQCOM:
+        builder.addCapability(spv::CapabilityTextureBoxFilterQCOM);
+        builder.addExtension(spv::E_SPV_QCOM_image_processing);
+        break;
+    case glslang::EOpImageBlockMatchSADQCOM:
+    case glslang::EOpImageBlockMatchSSDQCOM:
+        builder.addCapability(spv::CapabilityTextureBlockMatchQCOM);
+        builder.addExtension(spv::E_SPV_QCOM_image_processing);
+        break;
+
     case glslang::EOpDebugPrintf:
         noReturnValue = true;
         break;
@@ -9023,6 +9039,27 @@
         return 0;
 
     }
+
+    case glslang::EOpImageSampleWeightedQCOM:
+        typeId = builder.makeVectorType(builder.makeFloatType(32), 4);
+        opCode = spv::OpImageSampleWeightedQCOM;
+        addImageProcessingQCOMDecoration(operands[2], 
spv::DecorationWeightTextureQCOM);
+        break;
+    case glslang::EOpImageBoxFilterQCOM:
+        typeId = builder.makeVectorType(builder.makeFloatType(32), 4);
+        opCode = spv::OpImageBoxFilterQCOM;
+        break;
+    case glslang::EOpImageBlockMatchSADQCOM:
+        typeId = builder.makeVectorType(builder.makeFloatType(32), 4);
+        opCode = spv::OpImageBlockMatchSADQCOM;
+        addImageProcessingQCOMDecoration(operands[0], 
spv::DecorationBlockMatchTextureQCOM);
+        addImageProcessingQCOMDecoration(operands[2], 
spv::DecorationBlockMatchTextureQCOM);
+        break;
+    case glslang::EOpImageBlockMatchSSDQCOM:
+        typeId = builder.makeVectorType(builder.makeFloatType(32), 4);
+        opCode = spv::OpImageBlockMatchSSDQCOM;
+        addImageProcessingQCOMDecoration(operands[0], 
spv::DecorationBlockMatchTextureQCOM);
+        addImageProcessingQCOMDecoration(operands[2], 
spv::DecorationBlockMatchTextureQCOM);
         break;
     default:
         return 0;
@@ -9568,6 +9605,20 @@
     }
 }
 
+void TGlslangToSpvTraverser::addImageProcessingQCOMDecoration(spv::Id id, 
spv::Decoration decor)
+{
+  spv::Op opc = builder.getOpCode(id);
+  if (opc == spv::OpSampledImage) {
+    id  = builder.getIdOperand(id, 0);
+    opc = builder.getOpCode(id);
+  }
+
+  if (opc == spv::OpLoad) {
+    spv::Id texid = builder.getIdOperand(id, 0);
+    builder.addDecoration(texid, decor);
+  }
+}
+
 // Make a full tree of instructions to build a SPIR-V specialization constant,
 // or regular constant if possible.
 //
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/glslang-sdk-1.3.261.0/SPIRV/SpvBuilder.h 
new/glslang-13.0.0/SPIRV/SpvBuilder.h
--- old/glslang-sdk-1.3.261.0/SPIRV/SpvBuilder.h        2023-08-08 
20:49:36.000000000 +0200
+++ new/glslang-13.0.0/SPIRV/SpvBuilder.h       2023-08-24 01:24:25.000000000 
+0200
@@ -261,6 +261,7 @@
     ImageFormat getImageTypeFormat(Id typeId) const
         { return 
(ImageFormat)module.getInstruction(typeId)->getImmediateOperand(6); }
     Id getResultingAccessChainType() const;
+    Id getIdOperand(Id resultId, int idx) { return 
module.getInstruction(resultId)->getIdOperand(idx); }
 
     bool isPointer(Id resultId)      const { return 
isPointerType(getTypeId(resultId)); }
     bool isScalar(Id resultId)       const { return 
isScalarType(getTypeId(resultId)); }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/glslang-sdk-1.3.261.0/SPIRV/SpvPostProcess.cpp 
new/glslang-13.0.0/SPIRV/SpvPostProcess.cpp
--- old/glslang-sdk-1.3.261.0/SPIRV/SpvPostProcess.cpp  2023-08-08 
20:49:36.000000000 +0200
+++ new/glslang-13.0.0/SPIRV/SpvPostProcess.cpp 2023-08-24 01:24:25.000000000 
+0200
@@ -53,6 +53,7 @@
     #include "GLSL.ext.AMD.h"
     #include "GLSL.ext.NV.h"
     #include "GLSL.ext.ARM.h"
+    #include "GLSL.ext.QCOM.h"
 }
 
 namespace spv {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/glslang-sdk-1.3.261.0/SPIRV/disassemble.cpp 
new/glslang-13.0.0/SPIRV/disassemble.cpp
--- old/glslang-sdk-1.3.261.0/SPIRV/disassemble.cpp     2023-08-08 
20:49:36.000000000 +0200
+++ new/glslang-13.0.0/SPIRV/disassemble.cpp    2023-08-24 01:24:25.000000000 
+0200
@@ -56,6 +56,7 @@
         #include "GLSL.ext.NV.h"
         #include "GLSL.ext.ARM.h"
         #include "NonSemanticShaderDebugInfo100.h"
+        #include "GLSL.ext.QCOM.h"
     }
 }
 const char* GlslStd450DebugNames[spv::GLSLstd450Count];
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/glslang-sdk-1.3.261.0/SPIRV/doc.cpp 
new/glslang-13.0.0/SPIRV/doc.cpp
--- old/glslang-sdk-1.3.261.0/SPIRV/doc.cpp     2023-08-08 20:49:36.000000000 
+0200
+++ new/glslang-13.0.0/SPIRV/doc.cpp    2023-08-24 01:24:25.000000000 +0200
@@ -55,6 +55,7 @@
         #include "GLSL.ext.AMD.h"
         #include "GLSL.ext.NV.h"
         #include "GLSL.ext.ARM.h"
+        #include "GLSL.ext.QCOM.h"
     }
 }
 
@@ -311,7 +312,9 @@
     case DecorationCeiling:
     default:  return "Bad";
 
-    case DecorationExplicitInterpAMD: return "ExplicitInterpAMD";
+    case DecorationWeightTextureQCOM:           return 
"DecorationWeightTextureQCOM";
+    case DecorationBlockMatchTextureQCOM:       return 
"DecorationBlockMatchTextureQCOM";
+    case DecorationExplicitInterpAMD:           return "ExplicitInterpAMD";
     case DecorationOverrideCoverageNV:          return "OverrideCoverageNV";
     case DecorationPassthroughNV:               return "PassthroughNV";
     case DecorationViewportRelativeNV:          return "ViewportRelativeNV";
@@ -1040,6 +1043,11 @@
     case CapabilityCoreBuiltinsARM:                             return 
"CoreBuiltinsARM";
 
     case CapabilityShaderInvocationReorderNV:                return 
"ShaderInvocationReorderNV";
+
+    case CapabilityTextureSampleWeightedQCOM:           return 
"TextureSampleWeightedQCOM";
+    case CapabilityTextureBoxFilterQCOM:                return 
"TextureBoxFilterQCOM";
+    case CapabilityTextureBlockMatchQCOM:               return 
"TextureBlockMatchQCOM";
+
     default: return "Bad";
     }
 }
@@ -1538,6 +1546,11 @@
     case OpDepthAttachmentReadEXT:          return "OpDepthAttachmentReadEXT";
     case OpStencilAttachmentReadEXT:        return 
"OpStencilAttachmentReadEXT";
 
+    case OpImageSampleWeightedQCOM:         return "OpImageSampleWeightedQCOM";
+    case OpImageBoxFilterQCOM:              return "OpImageBoxFilterQCOM";
+    case OpImageBlockMatchSADQCOM:          return "OpImageBlockMatchSADQCOM";
+    case OpImageBlockMatchSSDQCOM:          return "OpImageBlockMatchSSDQCOM";
+
     default:
         return "Bad";
     }
@@ -3339,6 +3352,34 @@
         InstructionDesc[OpColorAttachmentReadEXT].operands.push(OperandId, 
"'Sample'", true);
         InstructionDesc[OpStencilAttachmentReadEXT].operands.push(OperandId, 
"'Sample'", true);
         InstructionDesc[OpDepthAttachmentReadEXT].operands.push(OperandId, 
"'Sample'", true);
+
+        InstructionDesc[OpImageSampleWeightedQCOM].operands.push(OperandId, 
"'source texture'");
+        InstructionDesc[OpImageSampleWeightedQCOM].operands.push(OperandId, 
"'texture coordinates'");
+        InstructionDesc[OpImageSampleWeightedQCOM].operands.push(OperandId, 
"'weights texture'");
+        
InstructionDesc[OpImageSampleWeightedQCOM].operands.push(OperandImageOperands, 
"", true);
+        InstructionDesc[OpImageSampleWeightedQCOM].setResultAndType(true, 
true);
+
+        InstructionDesc[OpImageBoxFilterQCOM].operands.push(OperandId, 
"'source texture'");
+        InstructionDesc[OpImageBoxFilterQCOM].operands.push(OperandId, 
"'texture coordinates'");
+        InstructionDesc[OpImageBoxFilterQCOM].operands.push(OperandId, "'box 
size'");
+        
InstructionDesc[OpImageBoxFilterQCOM].operands.push(OperandImageOperands, "", 
true);
+        InstructionDesc[OpImageBoxFilterQCOM].setResultAndType(true, true);
+
+        InstructionDesc[OpImageBlockMatchSADQCOM].operands.push(OperandId, 
"'target texture'");
+        InstructionDesc[OpImageBlockMatchSADQCOM].operands.push(OperandId, 
"'target coordinates'");
+        InstructionDesc[OpImageBlockMatchSADQCOM].operands.push(OperandId, 
"'reference texture'");
+        InstructionDesc[OpImageBlockMatchSADQCOM].operands.push(OperandId, 
"'reference coordinates'");
+        InstructionDesc[OpImageBlockMatchSADQCOM].operands.push(OperandId, 
"'block size'");
+        
InstructionDesc[OpImageBlockMatchSADQCOM].operands.push(OperandImageOperands, 
"", true);
+        InstructionDesc[OpImageBlockMatchSADQCOM].setResultAndType(true, true);
+
+        InstructionDesc[OpImageBlockMatchSSDQCOM].operands.push(OperandId, 
"'target texture'");
+        InstructionDesc[OpImageBlockMatchSSDQCOM].operands.push(OperandId, 
"'target coordinates'");
+        InstructionDesc[OpImageBlockMatchSSDQCOM].operands.push(OperandId, 
"'reference texture'");
+        InstructionDesc[OpImageBlockMatchSSDQCOM].operands.push(OperandId, 
"'reference coordinates'");
+        InstructionDesc[OpImageBlockMatchSSDQCOM].operands.push(OperandId, 
"'block size'");
+        
InstructionDesc[OpImageBlockMatchSSDQCOM].operands.push(OperandImageOperands, 
"", true);
+        InstructionDesc[OpImageBlockMatchSSDQCOM].setResultAndType(true, true);
     });
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/glslang-sdk-1.3.261.0/SPIRV/spirv.hpp 
new/glslang-13.0.0/SPIRV/spirv.hpp
--- old/glslang-sdk-1.3.261.0/SPIRV/spirv.hpp   2023-08-08 20:49:36.000000000 
+0200
+++ new/glslang-13.0.0/SPIRV/spirv.hpp  2023-08-24 01:24:25.000000000 +0200
@@ -513,6 +513,8 @@
     DecorationMaxByteOffsetId = 47,
     DecorationNoSignedWrap = 4469,
     DecorationNoUnsignedWrap = 4470,
+    DecorationWeightTextureQCOM = 4487,
+    DecorationBlockMatchTextureQCOM = 4488,
     DecorationExplicitInterpAMD = 4999,
     DecorationOverrideCoverageNV = 5248,
     DecorationPassthroughNV = 5250,
@@ -1023,6 +1025,9 @@
     CapabilityRayQueryKHR = 4472,
     CapabilityRayTraversalPrimitiveCullingKHR = 4478,
     CapabilityRayTracingKHR = 4479,
+    CapabilityTextureSampleWeightedQCOM = 4484,
+    CapabilityTextureBoxFilterQCOM = 4485,
+    CapabilityTextureBlockMatchQCOM = 4486,
     CapabilityFloat16ImageAMD = 5008,
     CapabilityImageGatherBiasLodAMD = 5009,
     CapabilityFragmentMaskAMD = 5010,
@@ -1678,6 +1683,10 @@
     OpRayQueryConfirmIntersectionKHR = 4476,
     OpRayQueryProceedKHR = 4477,
     OpRayQueryGetIntersectionTypeKHR = 4479,
+    OpImageSampleWeightedQCOM = 4480,
+    OpImageBoxFilterQCOM = 4481,
+    OpImageBlockMatchSSDQCOM = 4482,
+    OpImageBlockMatchSADQCOM = 4483,
     OpGroupIAddNonUniformAMD = 5000,
     OpGroupFAddNonUniformAMD = 5001,
     OpGroupFMinNonUniformAMD = 5002,
@@ -2395,6 +2404,10 @@
     case OpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType 
= false; break;
     case OpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;
     case OpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = 
true; break;
+    case OpImageSampleWeightedQCOM: *hasResult = true; *hasResultType = true; 
break;
+    case OpImageBoxFilterQCOM: *hasResult = true; *hasResultType = true; break;
+    case OpImageBlockMatchSSDQCOM: *hasResult = true; *hasResultType = true; 
break;
+    case OpImageBlockMatchSADQCOM: *hasResult = true; *hasResultType = true; 
break;
     case OpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; 
break;
     case OpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; 
break;
     case OpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; 
break;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/glslang-sdk-1.3.261.0/StandAlone/CMakeLists.txt 
new/glslang-13.0.0/StandAlone/CMakeLists.txt
--- old/glslang-sdk-1.3.261.0/StandAlone/CMakeLists.txt 2023-08-08 
20:49:36.000000000 +0200
+++ new/glslang-13.0.0/StandAlone/CMakeLists.txt        2023-08-24 
01:24:25.000000000 +0200
@@ -58,10 +58,6 @@
     SPIRV
     glslang-default-resource-limits)
 
-if(ENABLE_SPVREMAPPER)
-    set(LIBRARIES ${LIBRARIES} SPVRemapper)
-endif()
-
 if(WIN32)
     set(LIBRARIES ${LIBRARIES} psapi)
 elseif(UNIX)
@@ -86,7 +82,7 @@
     add_executable(spirv-remap ${REMAPPER_SOURCES})
     set_property(TARGET spirv-remap PROPERTY FOLDER tools)
     glslang_set_link_args(spirv-remap)
-    target_link_libraries(spirv-remap ${LIBRARIES})
+    target_link_libraries(spirv-remap SPVRemapper ${LIBRARIES})
 endif()
 
 if(WIN32)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/glslang-sdk-1.3.261.0/Test/baseResults/spv.intrinsicsFakeEnable.vert.out 
new/glslang-13.0.0/Test/baseResults/spv.intrinsicsFakeEnable.vert.out
--- 
old/glslang-sdk-1.3.261.0/Test/baseResults/spv.intrinsicsFakeEnable.vert.out    
    1970-01-01 01:00:00.000000000 +0100
+++ new/glslang-13.0.0/Test/baseResults/spv.intrinsicsFakeEnable.vert.out       
2023-08-24 01:24:25.000000000 +0200
@@ -0,0 +1,6 @@
+spv.intrinsicsFakeEnable.vert
+ERROR: 0:7: 'location' : overlapping use of location 0
+ERROR: 1 compilation errors.  No code generated.
+
+
+SPIR-V is not generated for failed compile or link
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/glslang-sdk-1.3.261.0/Test/baseResults/spv.tpipBlockMatchSAD.frag.out 
new/glslang-13.0.0/Test/baseResults/spv.tpipBlockMatchSAD.frag.out
--- old/glslang-sdk-1.3.261.0/Test/baseResults/spv.tpipBlockMatchSAD.frag.out   
1970-01-01 01:00:00.000000000 +0100
+++ new/glslang-13.0.0/Test/baseResults/spv.tpipBlockMatchSAD.frag.out  
2023-08-24 01:24:25.000000000 +0200
@@ -0,0 +1,123 @@
+spv.tpipBlockMatchSAD.frag
+// Module Version 10000
+// Generated by (magic number): 8000b
+// Id's are bound by 72
+
+                              Capability Shader
+                              Capability TextureBlockMatchQCOM
+                              Extension  "SPV_QCOM_image_processing"
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 13 41
+                              ExecutionMode 4 OriginUpperLeft
+                              Source GLSL 450
+                              SourceExtension  "GL_QCOM_image_processing"
+                              Name 4  "main"
+                              Name 9  "tgt_coords"
+                              Name 13  "v_texcoord"
+                              Name 26  "ref_coords"
+                              Name 37  "blockSize"
+                              Name 41  "fragColor"
+                              Name 44  "tex2D_src1"
+                              Name 48  "samp"
+                              Name 53  "tex2D_src2"
+                              Name 61  "target_samp"
+                              Name 64  "ref_samp"
+                              Name 71  "tex2DArray_weights"
+                              Decorate 13(v_texcoord) Location 0
+                              Decorate 41(fragColor) Location 0
+                              Decorate 44(tex2D_src1) DescriptorSet 0
+                              Decorate 44(tex2D_src1) Binding 1
+                              Decorate 48(samp) DescriptorSet 0
+                              Decorate 48(samp) Binding 3
+                              Decorate 53(tex2D_src2) DescriptorSet 0
+                              Decorate 53(tex2D_src2) Binding 2
+                              Decorate 44(tex2D_src1) 
DecorationBlockMatchTextureQCOM
+                              Decorate 53(tex2D_src2) 
DecorationBlockMatchTextureQCOM
+                              Decorate 61(target_samp) DescriptorSet 0
+                              Decorate 61(target_samp) Binding 4
+                              Decorate 64(ref_samp) DescriptorSet 0
+                              Decorate 64(ref_samp) Binding 5
+                              Decorate 61(target_samp) 
DecorationBlockMatchTextureQCOM
+                              Decorate 64(ref_samp) 
DecorationBlockMatchTextureQCOM
+                              Decorate 71(tex2DArray_weights) DescriptorSet 0
+                              Decorate 71(tex2DArray_weights) Binding 0
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 0
+               7:             TypeVector 6(int) 2
+               8:             TypePointer Function 7(ivec2)
+              10:             TypeFloat 32
+              11:             TypeVector 10(float) 4
+              12:             TypePointer Input 11(fvec4)
+  13(v_texcoord):     12(ptr) Variable Input
+              14:      6(int) Constant 0
+              15:             TypePointer Input 10(float)
+              19:             TypePointer Function 6(int)
+              21:      6(int) Constant 1
+              27:      6(int) Constant 2
+              32:      6(int) Constant 3
+              38:      6(int) Constant 4
+              39:    7(ivec2) ConstantComposite 38 38
+              40:             TypePointer Output 11(fvec4)
+   41(fragColor):     40(ptr) Variable Output
+              42:             TypeImage 10(float) 2D sampled format:Unknown
+              43:             TypePointer UniformConstant 42
+  44(tex2D_src1):     43(ptr) Variable UniformConstant
+              46:             TypeSampler
+              47:             TypePointer UniformConstant 46
+        48(samp):     47(ptr) Variable UniformConstant
+              50:             TypeSampledImage 42
+  53(tex2D_src2):     43(ptr) Variable UniformConstant
+              60:             TypePointer UniformConstant 50
+ 61(target_samp):     60(ptr) Variable UniformConstant
+    64(ref_samp):     60(ptr) Variable UniformConstant
+              69:             TypeImage 10(float) 2D array sampled 
format:Unknown
+              70:             TypePointer UniformConstant 69
+71(tex2DArray_weights):     70(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+   9(tgt_coords):      8(ptr) Variable Function
+  26(ref_coords):      8(ptr) Variable Function
+   37(blockSize):      8(ptr) Variable Function
+              16:     15(ptr) AccessChain 13(v_texcoord) 14
+              17:   10(float) Load 16
+              18:      6(int) ConvertFToU 17
+              20:     19(ptr) AccessChain 9(tgt_coords) 14
+                              Store 20 18
+              22:     15(ptr) AccessChain 13(v_texcoord) 21
+              23:   10(float) Load 22
+              24:      6(int) ConvertFToU 23
+              25:     19(ptr) AccessChain 9(tgt_coords) 14
+                              Store 25 24
+              28:     15(ptr) AccessChain 13(v_texcoord) 27
+              29:   10(float) Load 28
+              30:      6(int) ConvertFToU 29
+              31:     19(ptr) AccessChain 26(ref_coords) 14
+                              Store 31 30
+              33:     15(ptr) AccessChain 13(v_texcoord) 32
+              34:   10(float) Load 33
+              35:      6(int) ConvertFToU 34
+              36:     19(ptr) AccessChain 26(ref_coords) 21
+                              Store 36 35
+                              Store 37(blockSize) 39
+              45:          42 Load 44(tex2D_src1)
+              49:          46 Load 48(samp)
+              51:          50 SampledImage 45 49
+              52:    7(ivec2) Load 9(tgt_coords)
+              54:          42 Load 53(tex2D_src2)
+              55:          46 Load 48(samp)
+              56:          50 SampledImage 54 55
+              57:    7(ivec2) Load 26(ref_coords)
+              58:    7(ivec2) Load 37(blockSize)
+              59:   11(fvec4) ImageBlockMatchSADQCOM 51 52 56 57 58
+                              Store 41(fragColor) 59
+              62:          50 Load 61(target_samp)
+              63:    7(ivec2) Load 9(tgt_coords)
+              65:          50 Load 64(ref_samp)
+              66:    7(ivec2) Load 26(ref_coords)
+              67:    7(ivec2) Load 37(blockSize)
+              68:   11(fvec4) ImageBlockMatchSADQCOM 62 63 65 66 67
+                              Store 41(fragColor) 68
+                              Return
+                              FunctionEnd
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/glslang-sdk-1.3.261.0/Test/baseResults/spv.tpipBlockMatchSSD.frag.out 
new/glslang-13.0.0/Test/baseResults/spv.tpipBlockMatchSSD.frag.out
--- old/glslang-sdk-1.3.261.0/Test/baseResults/spv.tpipBlockMatchSSD.frag.out   
1970-01-01 01:00:00.000000000 +0100
+++ new/glslang-13.0.0/Test/baseResults/spv.tpipBlockMatchSSD.frag.out  
2023-08-24 01:24:25.000000000 +0200
@@ -0,0 +1,123 @@
+spv.tpipBlockMatchSSD.frag
+// Module Version 10000
+// Generated by (magic number): 8000b
+// Id's are bound by 72
+
+                              Capability Shader
+                              Capability TextureBlockMatchQCOM
+                              Extension  "SPV_QCOM_image_processing"
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 13 41
+                              ExecutionMode 4 OriginUpperLeft
+                              Source GLSL 450
+                              SourceExtension  "GL_QCOM_image_processing"
+                              Name 4  "main"
+                              Name 9  "tgt_coords"
+                              Name 13  "v_texcoord"
+                              Name 26  "ref_coords"
+                              Name 37  "blockSize"
+                              Name 41  "fragColor"
+                              Name 44  "tex2D_src1"
+                              Name 48  "samp"
+                              Name 53  "tex2D_src2"
+                              Name 61  "target_samp"
+                              Name 64  "ref_samp"
+                              Name 71  "tex2DArray_weights"
+                              Decorate 13(v_texcoord) Location 0
+                              Decorate 41(fragColor) Location 0
+                              Decorate 44(tex2D_src1) DescriptorSet 0
+                              Decorate 44(tex2D_src1) Binding 1
+                              Decorate 48(samp) DescriptorSet 0
+                              Decorate 48(samp) Binding 3
+                              Decorate 53(tex2D_src2) DescriptorSet 0
+                              Decorate 53(tex2D_src2) Binding 2
+                              Decorate 44(tex2D_src1) 
DecorationBlockMatchTextureQCOM
+                              Decorate 53(tex2D_src2) 
DecorationBlockMatchTextureQCOM
+                              Decorate 61(target_samp) DescriptorSet 0
+                              Decorate 61(target_samp) Binding 4
+                              Decorate 64(ref_samp) DescriptorSet 0
+                              Decorate 64(ref_samp) Binding 5
+                              Decorate 61(target_samp) 
DecorationBlockMatchTextureQCOM
+                              Decorate 64(ref_samp) 
DecorationBlockMatchTextureQCOM
+                              Decorate 71(tex2DArray_weights) DescriptorSet 0
+                              Decorate 71(tex2DArray_weights) Binding 0
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 0
+               7:             TypeVector 6(int) 2
+               8:             TypePointer Function 7(ivec2)
+              10:             TypeFloat 32
+              11:             TypeVector 10(float) 4
+              12:             TypePointer Input 11(fvec4)
+  13(v_texcoord):     12(ptr) Variable Input
+              14:      6(int) Constant 0
+              15:             TypePointer Input 10(float)
+              19:             TypePointer Function 6(int)
+              21:      6(int) Constant 1
+              27:      6(int) Constant 2
+              32:      6(int) Constant 3
+              38:      6(int) Constant 4
+              39:    7(ivec2) ConstantComposite 38 38
+              40:             TypePointer Output 11(fvec4)
+   41(fragColor):     40(ptr) Variable Output
+              42:             TypeImage 10(float) 2D sampled format:Unknown
+              43:             TypePointer UniformConstant 42
+  44(tex2D_src1):     43(ptr) Variable UniformConstant
+              46:             TypeSampler
+              47:             TypePointer UniformConstant 46
+        48(samp):     47(ptr) Variable UniformConstant
+              50:             TypeSampledImage 42
+  53(tex2D_src2):     43(ptr) Variable UniformConstant
+              60:             TypePointer UniformConstant 50
+ 61(target_samp):     60(ptr) Variable UniformConstant
+    64(ref_samp):     60(ptr) Variable UniformConstant
+              69:             TypeImage 10(float) 2D array sampled 
format:Unknown
+              70:             TypePointer UniformConstant 69
+71(tex2DArray_weights):     70(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+   9(tgt_coords):      8(ptr) Variable Function
+  26(ref_coords):      8(ptr) Variable Function
+   37(blockSize):      8(ptr) Variable Function
+              16:     15(ptr) AccessChain 13(v_texcoord) 14
+              17:   10(float) Load 16
+              18:      6(int) ConvertFToU 17
+              20:     19(ptr) AccessChain 9(tgt_coords) 14
+                              Store 20 18
+              22:     15(ptr) AccessChain 13(v_texcoord) 21
+              23:   10(float) Load 22
+              24:      6(int) ConvertFToU 23
+              25:     19(ptr) AccessChain 9(tgt_coords) 14
+                              Store 25 24
+              28:     15(ptr) AccessChain 13(v_texcoord) 27
+              29:   10(float) Load 28
+              30:      6(int) ConvertFToU 29
+              31:     19(ptr) AccessChain 26(ref_coords) 14
+                              Store 31 30
+              33:     15(ptr) AccessChain 13(v_texcoord) 32
+              34:   10(float) Load 33
+              35:      6(int) ConvertFToU 34
+              36:     19(ptr) AccessChain 26(ref_coords) 21
+                              Store 36 35
+                              Store 37(blockSize) 39
+              45:          42 Load 44(tex2D_src1)
+              49:          46 Load 48(samp)
+              51:          50 SampledImage 45 49
+              52:    7(ivec2) Load 9(tgt_coords)
+              54:          42 Load 53(tex2D_src2)
+              55:          46 Load 48(samp)
+              56:          50 SampledImage 54 55
+              57:    7(ivec2) Load 26(ref_coords)
+              58:    7(ivec2) Load 37(blockSize)
+              59:   11(fvec4) ImageBlockMatchSSDQCOM 51 52 56 57 58
+                              Store 41(fragColor) 59
+              62:          50 Load 61(target_samp)
+              63:    7(ivec2) Load 9(tgt_coords)
+              65:          50 Load 64(ref_samp)
+              66:    7(ivec2) Load 26(ref_coords)
+              67:    7(ivec2) Load 37(blockSize)
+              68:   11(fvec4) ImageBlockMatchSSDQCOM 62 63 65 66 67
+                              Store 41(fragColor) 68
+                              Return
+                              FunctionEnd
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/glslang-sdk-1.3.261.0/Test/baseResults/spv.tpipBoxFilter.frag.out 
new/glslang-13.0.0/Test/baseResults/spv.tpipBoxFilter.frag.out
--- old/glslang-sdk-1.3.261.0/Test/baseResults/spv.tpipBoxFilter.frag.out       
1970-01-01 01:00:00.000000000 +0100
+++ new/glslang-13.0.0/Test/baseResults/spv.tpipBoxFilter.frag.out      
2023-08-24 01:24:25.000000000 +0200
@@ -0,0 +1,81 @@
+spv.tpipBoxFilter.frag
+// Module Version 10000
+// Generated by (magic number): 8000b
+// Id's are bound by 43
+
+                              Capability Shader
+                              Capability TextureBoxFilterQCOM
+                              Extension  "SPV_QCOM_image_processing"
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 15 27
+                              ExecutionMode 4 OriginUpperLeft
+                              Source GLSL 450
+                              SourceExtension  "GL_QCOM_image_processing"
+                              Name 4  "main"
+                              Name 9  "boxSize"
+                              Name 15  "fragColor"
+                              Name 18  "tex2D_src1"
+                              Name 22  "samp"
+                              Name 27  "v_texcoord"
+                              Name 33  "tex_samp"
+                              Name 41  "tex2DArray_weights"
+                              Name 42  "tex2D_src2"
+                              Decorate 15(fragColor) Location 0
+                              Decorate 18(tex2D_src1) DescriptorSet 0
+                              Decorate 18(tex2D_src1) Binding 1
+                              Decorate 22(samp) DescriptorSet 0
+                              Decorate 22(samp) Binding 3
+                              Decorate 27(v_texcoord) Location 0
+                              Decorate 33(tex_samp) DescriptorSet 0
+                              Decorate 33(tex_samp) Binding 4
+                              Decorate 41(tex2DArray_weights) DescriptorSet 0
+                              Decorate 41(tex2DArray_weights) Binding 0
+                              Decorate 42(tex2D_src2) DescriptorSet 0
+                              Decorate 42(tex2D_src2) Binding 2
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 2
+               8:             TypePointer Function 7(fvec2)
+              10:    6(float) Constant 1075838976
+              11:    6(float) Constant 1083179008
+              12:    7(fvec2) ConstantComposite 10 11
+              13:             TypeVector 6(float) 4
+              14:             TypePointer Output 13(fvec4)
+   15(fragColor):     14(ptr) Variable Output
+              16:             TypeImage 6(float) 2D sampled format:Unknown
+              17:             TypePointer UniformConstant 16
+  18(tex2D_src1):     17(ptr) Variable UniformConstant
+              20:             TypeSampler
+              21:             TypePointer UniformConstant 20
+        22(samp):     21(ptr) Variable UniformConstant
+              24:             TypeSampledImage 16
+              26:             TypePointer Input 13(fvec4)
+  27(v_texcoord):     26(ptr) Variable Input
+              32:             TypePointer UniformConstant 24
+    33(tex_samp):     32(ptr) Variable UniformConstant
+              39:             TypeImage 6(float) 2D array sampled 
format:Unknown
+              40:             TypePointer UniformConstant 39
+41(tex2DArray_weights):     40(ptr) Variable UniformConstant
+  42(tex2D_src2):     17(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+      9(boxSize):      8(ptr) Variable Function
+                              Store 9(boxSize) 12
+              19:          16 Load 18(tex2D_src1)
+              23:          20 Load 22(samp)
+              25:          24 SampledImage 19 23
+              28:   13(fvec4) Load 27(v_texcoord)
+              29:    7(fvec2) VectorShuffle 28 28 0 1
+              30:    7(fvec2) Load 9(boxSize)
+              31:   13(fvec4) ImageBoxFilterQCOM 25 29 30
+                              Store 15(fragColor) 31
+              34:          24 Load 33(tex_samp)
+              35:   13(fvec4) Load 27(v_texcoord)
+              36:    7(fvec2) VectorShuffle 35 35 0 1
+              37:    7(fvec2) Load 9(boxSize)
+              38:   13(fvec4) ImageBoxFilterQCOM 34 36 37
+                              Store 15(fragColor) 38
+                              Return
+                              FunctionEnd
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/glslang-sdk-1.3.261.0/Test/baseResults/spv.tpipSampleWeighted.frag.out 
new/glslang-13.0.0/Test/baseResults/spv.tpipSampleWeighted.frag.out
--- old/glslang-sdk-1.3.261.0/Test/baseResults/spv.tpipSampleWeighted.frag.out  
1970-01-01 01:00:00.000000000 +0100
+++ new/glslang-13.0.0/Test/baseResults/spv.tpipSampleWeighted.frag.out 
2023-08-24 01:24:25.000000000 +0200
@@ -0,0 +1,84 @@
+spv.tpipSampleWeighted.frag
+// Module Version 10000
+// Generated by (magic number): 8000b
+// Id's are bound by 43
+
+                              Capability Shader
+                              Capability TextureSampleWeightedQCOM
+                              Extension  "SPV_QCOM_image_processing"
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 9 21
+                              ExecutionMode 4 OriginUpperLeft
+                              Source GLSL 450
+                              SourceExtension  "GL_QCOM_image_processing"
+                              Name 4  "main"
+                              Name 9  "fragColor"
+                              Name 12  "tex2D_src1"
+                              Name 16  "samp"
+                              Name 21  "v_texcoord"
+                              Name 27  "tex2DArray_weights"
+                              Name 34  "tex_samp"
+                              Name 39  "tex_samp_array"
+                              Name 42  "tex2D_src2"
+                              Decorate 9(fragColor) Location 0
+                              Decorate 12(tex2D_src1) DescriptorSet 0
+                              Decorate 12(tex2D_src1) Binding 1
+                              Decorate 16(samp) DescriptorSet 0
+                              Decorate 16(samp) Binding 3
+                              Decorate 21(v_texcoord) Location 0
+                              Decorate 27(tex2DArray_weights) DescriptorSet 0
+                              Decorate 27(tex2DArray_weights) Binding 0
+                              Decorate 27(tex2DArray_weights) 
DecorationWeightTextureQCOM
+                              Decorate 34(tex_samp) DescriptorSet 0
+                              Decorate 34(tex_samp) Binding 4
+                              Decorate 39(tex_samp_array) DescriptorSet 0
+                              Decorate 39(tex_samp_array) Binding 5
+                              Decorate 39(tex_samp_array) 
DecorationWeightTextureQCOM
+                              Decorate 42(tex2D_src2) DescriptorSet 0
+                              Decorate 42(tex2D_src2) Binding 2
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 4
+               8:             TypePointer Output 7(fvec4)
+    9(fragColor):      8(ptr) Variable Output
+              10:             TypeImage 6(float) 2D sampled format:Unknown
+              11:             TypePointer UniformConstant 10
+  12(tex2D_src1):     11(ptr) Variable UniformConstant
+              14:             TypeSampler
+              15:             TypePointer UniformConstant 14
+        16(samp):     15(ptr) Variable UniformConstant
+              18:             TypeSampledImage 10
+              20:             TypePointer Input 7(fvec4)
+  21(v_texcoord):     20(ptr) Variable Input
+              22:             TypeVector 6(float) 2
+              25:             TypeImage 6(float) 2D array sampled 
format:Unknown
+              26:             TypePointer UniformConstant 25
+27(tex2DArray_weights):     26(ptr) Variable UniformConstant
+              30:             TypeSampledImage 25
+              33:             TypePointer UniformConstant 18
+    34(tex_samp):     33(ptr) Variable UniformConstant
+              38:             TypePointer UniformConstant 30
+39(tex_samp_array):     38(ptr) Variable UniformConstant
+  42(tex2D_src2):     11(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+              13:          10 Load 12(tex2D_src1)
+              17:          14 Load 16(samp)
+              19:          18 SampledImage 13 17
+              23:    7(fvec4) Load 21(v_texcoord)
+              24:   22(fvec2) VectorShuffle 23 23 0 1
+              28:          25 Load 27(tex2DArray_weights)
+              29:          14 Load 16(samp)
+              31:          30 SampledImage 28 29
+              32:    7(fvec4) ImageSampleWeightedQCOM 19 24 31
+                              Store 9(fragColor) 32
+              35:          18 Load 34(tex_samp)
+              36:    7(fvec4) Load 21(v_texcoord)
+              37:   22(fvec2) VectorShuffle 36 36 0 1
+              40:          30 Load 39(tex_samp_array)
+              41:    7(fvec4) ImageSampleWeightedQCOM 35 37 40
+                              Store 9(fragColor) 41
+                              Return
+                              FunctionEnd
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/glslang-sdk-1.3.261.0/Test/baseResults/spv.tpipTextureArrays.frag.out 
new/glslang-13.0.0/Test/baseResults/spv.tpipTextureArrays.frag.out
--- old/glslang-sdk-1.3.261.0/Test/baseResults/spv.tpipTextureArrays.frag.out   
1970-01-01 01:00:00.000000000 +0100
+++ new/glslang-13.0.0/Test/baseResults/spv.tpipTextureArrays.frag.out  
2023-08-24 01:24:25.000000000 +0200
@@ -0,0 +1,128 @@
+spv.tpipTextureArrays.frag
+// Module Version 10000
+// Generated by (magic number): 8000b
+// Id's are bound by 84
+
+                              Capability Shader
+                              Capability TextureBlockMatchQCOM
+                              Extension  "SPV_QCOM_image_processing"
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 13 46
+                              ExecutionMode 4 OriginUpperLeft
+                              Source GLSL 450
+                              SourceExtension  "GL_QCOM_image_processing"
+                              Name 4  "main"
+                              Name 9  "tgt_coords"
+                              Name 13  "v_texcoord"
+                              Name 26  "ref_coords"
+                              Name 37  "blockSize"
+                              Name 40  "ii"
+                              Name 46  "fragColor"
+                              Name 51  "samplers"
+                              Name 60  "tex2D_srcs"
+                              Name 67  "samp"
+                              Decorate 13(v_texcoord) Location 0
+                              Decorate 46(fragColor) Location 0
+                              Decorate 51(samplers) DescriptorSet 0
+                              Decorate 51(samplers) Binding 5
+                              Decorate 60(tex2D_srcs) DescriptorSet 0
+                              Decorate 60(tex2D_srcs) Binding 4
+                              Decorate 67(samp) DescriptorSet 0
+                              Decorate 67(samp) Binding 3
+                              Decorate 55 DecorationBlockMatchTextureQCOM
+                              Decorate 63 DecorationBlockMatchTextureQCOM
+                              Decorate 74 DecorationBlockMatchTextureQCOM
+                              Decorate 79 DecorationBlockMatchTextureQCOM
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 0
+               7:             TypeVector 6(int) 2
+               8:             TypePointer Function 7(ivec2)
+              10:             TypeFloat 32
+              11:             TypeVector 10(float) 4
+              12:             TypePointer Input 11(fvec4)
+  13(v_texcoord):     12(ptr) Variable Input
+              14:      6(int) Constant 0
+              15:             TypePointer Input 10(float)
+              19:             TypePointer Function 6(int)
+              21:      6(int) Constant 1
+              27:      6(int) Constant 2
+              32:      6(int) Constant 3
+              38:      6(int) Constant 4
+              39:    7(ivec2) ConstantComposite 38 38
+              43:      6(int) Constant 8
+              45:             TypePointer Output 11(fvec4)
+   46(fragColor):     45(ptr) Variable Output
+              47:             TypeImage 10(float) 2D sampled format:Unknown
+              48:             TypeSampledImage 47
+              49:             TypeArray 48 32
+              50:             TypePointer UniformConstant 49
+    51(samplers):     50(ptr) Variable UniformConstant
+              52:             TypeInt 32 1
+              53:     52(int) Constant 0
+              54:             TypePointer UniformConstant 48
+              58:             TypeArray 47 43
+              59:             TypePointer UniformConstant 58
+  60(tex2D_srcs):     59(ptr) Variable UniformConstant
+              62:             TypePointer UniformConstant 47
+              65:             TypeSampler
+              66:             TypePointer UniformConstant 65
+        67(samp):     66(ptr) Variable UniformConstant
+              73:     52(int) Constant 1
+         4(main):           2 Function None 3
+               5:             Label
+   9(tgt_coords):      8(ptr) Variable Function
+  26(ref_coords):      8(ptr) Variable Function
+   37(blockSize):      8(ptr) Variable Function
+          40(ii):     19(ptr) Variable Function
+              16:     15(ptr) AccessChain 13(v_texcoord) 14
+              17:   10(float) Load 16
+              18:      6(int) ConvertFToU 17
+              20:     19(ptr) AccessChain 9(tgt_coords) 14
+                              Store 20 18
+              22:     15(ptr) AccessChain 13(v_texcoord) 21
+              23:   10(float) Load 22
+              24:      6(int) ConvertFToU 23
+              25:     19(ptr) AccessChain 9(tgt_coords) 14
+                              Store 25 24
+              28:     15(ptr) AccessChain 13(v_texcoord) 27
+              29:   10(float) Load 28
+              30:      6(int) ConvertFToU 29
+              31:     19(ptr) AccessChain 26(ref_coords) 14
+                              Store 31 30
+              33:     15(ptr) AccessChain 13(v_texcoord) 32
+              34:   10(float) Load 33
+              35:      6(int) ConvertFToU 34
+              36:     19(ptr) AccessChain 26(ref_coords) 21
+                              Store 36 35
+                              Store 37(blockSize) 39
+              41:     19(ptr) AccessChain 9(tgt_coords) 14
+              42:      6(int) Load 41
+              44:      6(int) UMod 42 43
+                              Store 40(ii) 44
+              55:     54(ptr) AccessChain 51(samplers) 53
+              56:          48 Load 55
+              57:    7(ivec2) Load 9(tgt_coords)
+              61:      6(int) Load 40(ii)
+              63:     62(ptr) AccessChain 60(tex2D_srcs) 61
+              64:          47 Load 63
+              68:          65 Load 67(samp)
+              69:          48 SampledImage 64 68
+              70:    7(ivec2) Load 26(ref_coords)
+              71:    7(ivec2) Load 37(blockSize)
+              72:   11(fvec4) ImageBlockMatchSSDQCOM 56 57 69 70 71
+                              Store 46(fragColor) 72
+              74:     62(ptr) AccessChain 60(tex2D_srcs) 73
+              75:          47 Load 74
+              76:          65 Load 67(samp)
+              77:          48 SampledImage 75 76
+              78:    7(ivec2) Load 9(tgt_coords)
+              79:     54(ptr) AccessChain 51(samplers) 73
+              80:          48 Load 79
+              81:    7(ivec2) Load 26(ref_coords)
+              82:    7(ivec2) Load 37(blockSize)
+              83:   11(fvec4) ImageBlockMatchSADQCOM 77 78 80 81 82
+                              Store 46(fragColor) 83
+                              Return
+                              FunctionEnd
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/glslang-sdk-1.3.261.0/Test/spv.intrinsicsFakeEnable.vert 
new/glslang-13.0.0/Test/spv.intrinsicsFakeEnable.vert
--- old/glslang-sdk-1.3.261.0/Test/spv.intrinsicsFakeEnable.vert        
1970-01-01 01:00:00.000000000 +0100
+++ new/glslang-13.0.0/Test/spv.intrinsicsFakeEnable.vert       2023-08-24 
01:24:25.000000000 +0200
@@ -0,0 +1,10 @@
+#version 460 core
+#extension GL_EXT_spirv_intrinsics : enable
+
+// ERROR: Overlapped input location. Make sure it could be detected even
+// if GL_EXT_spirv_intrinsics is enabled.
+layout(location = 0) in vec4 v4;
+layout(location = 0) in vec3 v3;
+
+void main() {
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/glslang-sdk-1.3.261.0/Test/spv.tpipBlockMatchSAD.frag 
new/glslang-13.0.0/Test/spv.tpipBlockMatchSAD.frag
--- old/glslang-sdk-1.3.261.0/Test/spv.tpipBlockMatchSAD.frag   1970-01-01 
01:00:00.000000000 +0100
+++ new/glslang-13.0.0/Test/spv.tpipBlockMatchSAD.frag  2023-08-24 
01:24:25.000000000 +0200
@@ -0,0 +1,38 @@
+#version 450
+#extension GL_QCOM_image_processing : require
+
+precision highp float;
+
+// fragment shader inputs and outputs
+layout (location = 0) in vec4 v_texcoord;
+
+layout (location = 0) out vec4 fragColor;
+
+// fragment shader resources
+layout(set = 0, binding = 0) uniform texture2DArray tex2DArray_weights;
+layout(set = 0, binding = 1) uniform texture2D tex2D_src1;
+layout(set = 0, binding = 2) uniform texture2D tex2D_src2;
+layout(set = 0, binding = 3) uniform sampler samp;
+layout(set = 0, binding = 4) uniform sampler2D target_samp;
+layout(set = 0, binding = 5) uniform sampler2D ref_samp;
+
+void main()
+{
+
+    uvec2 tgt_coords; tgt_coords.x = uint(v_texcoord.x); tgt_coords.x = 
uint(v_texcoord.y);
+    uvec2 ref_coords; ref_coords.x = uint(v_texcoord.z); ref_coords.y = 
uint(v_texcoord.w);
+    uvec2 blockSize = uvec2(4, 4);
+    fragColor = textureBlockMatchSADQCOM(
+                    sampler2D(tex2D_src1, samp),                   // target 
texture
+                    tgt_coords,                                    // target 
coords
+                    sampler2D(tex2D_src2, samp),                   // 
reference texture
+                    ref_coords,                                    // 
reference coords
+                    blockSize);                                    // block 
size
+    fragColor = textureBlockMatchSADQCOM(
+                    target_samp,                                   // target 
texture
+                    tgt_coords,                                    // target 
coords
+                    ref_samp,                                      // 
reference texture
+                    ref_coords,                                    // 
reference coords
+                    blockSize);                                    // block 
size
+}
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/glslang-sdk-1.3.261.0/Test/spv.tpipBlockMatchSSD.frag 
new/glslang-13.0.0/Test/spv.tpipBlockMatchSSD.frag
--- old/glslang-sdk-1.3.261.0/Test/spv.tpipBlockMatchSSD.frag   1970-01-01 
01:00:00.000000000 +0100
+++ new/glslang-13.0.0/Test/spv.tpipBlockMatchSSD.frag  2023-08-24 
01:24:25.000000000 +0200
@@ -0,0 +1,38 @@
+#version 450
+#extension GL_QCOM_image_processing : require
+
+precision highp float;
+
+// fragment shader inputs and outputs
+layout (location = 0) in vec4 v_texcoord;
+
+layout (location = 0) out vec4 fragColor;
+
+// fragment shader resources
+layout(set = 0, binding = 0) uniform texture2DArray tex2DArray_weights;
+layout(set = 0, binding = 1) uniform texture2D tex2D_src1;
+layout(set = 0, binding = 2) uniform texture2D tex2D_src2;
+layout(set = 0, binding = 3) uniform sampler samp;
+layout(set = 0, binding = 4) uniform sampler2D target_samp;
+layout(set = 0, binding = 5) uniform sampler2D ref_samp;
+
+void main()
+{
+
+    uvec2 tgt_coords; tgt_coords.x = uint(v_texcoord.x); tgt_coords.x = 
uint(v_texcoord.y);
+    uvec2 ref_coords; ref_coords.x = uint(v_texcoord.z); ref_coords.y = 
uint(v_texcoord.w);
+    uvec2 blockSize = uvec2(4, 4);
+    fragColor = textureBlockMatchSSDQCOM(
+                    sampler2D(tex2D_src1, samp),                   // target 
texture
+                    tgt_coords,                                    // target 
coords
+                    sampler2D(tex2D_src2, samp),                   // 
reference texture
+                    ref_coords,                                    // 
reference coords
+                    blockSize);                                    // block 
size
+    fragColor = textureBlockMatchSSDQCOM(
+                    target_samp,                                   // target 
texture
+                    tgt_coords,                                    // target 
coords
+                    ref_samp,                                      // 
reference texture
+                    ref_coords,                                    // 
reference coords
+                    blockSize);                                    // block 
size
+}
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/glslang-sdk-1.3.261.0/Test/spv.tpipBoxFilter.frag 
new/glslang-13.0.0/Test/spv.tpipBoxFilter.frag
--- old/glslang-sdk-1.3.261.0/Test/spv.tpipBoxFilter.frag       1970-01-01 
01:00:00.000000000 +0100
+++ new/glslang-13.0.0/Test/spv.tpipBoxFilter.frag      2023-08-24 
01:24:25.000000000 +0200
@@ -0,0 +1,32 @@
+#version 450
+#extension GL_QCOM_image_processing : require
+
+precision highp float;
+
+// fragment shader inputs and outputs
+layout (location = 0) in vec4 v_texcoord;
+
+layout (location = 0) out vec4 fragColor;
+
+// fragment shader resources
+layout(set = 0, binding = 0) uniform texture2DArray tex2DArray_weights;
+layout(set = 0, binding = 1) uniform texture2D tex2D_src1;
+layout(set = 0, binding = 2) uniform texture2D tex2D_src2;
+layout(set = 0, binding = 3) uniform sampler samp;
+layout(set = 0, binding = 4) uniform sampler2D tex_samp;
+
+void main()
+{
+
+    vec2 boxSize = vec2(2.5, 4.5);
+    fragColor = textureBoxFilterQCOM(
+                    sampler2D(tex2D_src1, samp),                   // source 
texture
+                    v_texcoord.xy,                                 // tex 
coords
+                    boxSize);                                      // box size
+    fragColor = textureBoxFilterQCOM(
+                    tex_samp,                                      // combined 
source texture
+                    v_texcoord.xy,                                 // tex 
coords
+                    boxSize);                                      // box size
+
+}
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/glslang-sdk-1.3.261.0/Test/spv.tpipSampleWeighted.frag 
new/glslang-13.0.0/Test/spv.tpipSampleWeighted.frag
--- old/glslang-sdk-1.3.261.0/Test/spv.tpipSampleWeighted.frag  1970-01-01 
01:00:00.000000000 +0100
+++ new/glslang-13.0.0/Test/spv.tpipSampleWeighted.frag 2023-08-24 
01:24:25.000000000 +0200
@@ -0,0 +1,32 @@
+#version 450
+#extension GL_QCOM_image_processing : require
+
+precision highp float;
+
+// fragment shader inputs and outputs
+layout (location = 0) in vec4 v_texcoord;
+
+layout (location = 0) out vec4 fragColor;
+
+// fragment shader resources
+layout(set = 0, binding = 0) uniform texture2DArray tex2DArray_weights;
+layout(set = 0, binding = 1) uniform texture2D tex2D_src1;
+layout(set = 0, binding = 2) uniform texture2D tex2D_src2;
+layout(set = 0, binding = 3) uniform sampler samp;
+layout(set = 0, binding = 4) uniform sampler2D tex_samp;
+layout(set = 0, binding = 5) uniform sampler2DArray tex_samp_array;
+
+void main()
+{
+
+    fragColor = textureWeightedQCOM(
+                    sampler2D(tex2D_src1, samp),                   // source 
texture
+                    v_texcoord.xy,                                 // tex 
coords
+                    sampler2DArray(tex2DArray_weights, samp));     // weight 
texture
+    fragColor = textureWeightedQCOM(
+                    tex_samp,                                      // combined 
source texture
+                    v_texcoord.xy,                                 // tex 
coords
+                    tex_samp_array);                               // combined 
weight texture
+
+}
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/glslang-sdk-1.3.261.0/Test/spv.tpipTextureArrays.frag 
new/glslang-13.0.0/Test/spv.tpipTextureArrays.frag
--- old/glslang-sdk-1.3.261.0/Test/spv.tpipTextureArrays.frag   1970-01-01 
01:00:00.000000000 +0100
+++ new/glslang-13.0.0/Test/spv.tpipTextureArrays.frag  2023-08-24 
01:24:25.000000000 +0200
@@ -0,0 +1,40 @@
+#version 450
+#extension GL_QCOM_image_processing : require
+
+precision highp float;
+
+// fragment shader inputs and outputs
+layout (location = 0) in vec4 v_texcoord;
+
+layout (location = 0) out vec4 fragColor;
+
+// fragment shader resources
+layout(set = 0, binding = 3) uniform sampler samp;
+
+
+layout(set = 0, binding = 4) uniform texture2D tex2D_srcs[8];
+layout(set = 0, binding = 5) uniform sampler2D samplers[3];
+
+void main()
+{
+
+    uvec2 tgt_coords; tgt_coords.x = uint(v_texcoord.x); tgt_coords.x = 
uint(v_texcoord.y);
+    uvec2 ref_coords; ref_coords.x = uint(v_texcoord.z); ref_coords.y = 
uint(v_texcoord.w);
+    uvec2 blockSize = uvec2(4, 4);
+    uint  ii = tgt_coords.x % 8;
+    fragColor = textureBlockMatchSSDQCOM(
+                    samplers[0],                                   // target 
texture
+                    tgt_coords,                                    // target 
coords
+                    sampler2D(tex2D_srcs[ii], samp),               // 
reference texture
+                    ref_coords,                                    // 
reference coords
+                    blockSize);                                    // block 
size
+
+    fragColor = textureBlockMatchSADQCOM(
+                    sampler2D(tex2D_srcs[1], samp),                // target 
texture
+                    tgt_coords,                                    // target 
coords
+                    samplers[1],                                   // 
reference texture
+                    ref_coords,                                    // 
reference coords
+                    blockSize);                                    // block 
size
+
+}
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/glslang-sdk-1.3.261.0/glslang/Include/intermediate.h 
new/glslang-13.0.0/glslang/Include/intermediate.h
--- old/glslang-sdk-1.3.261.0/glslang/Include/intermediate.h    2023-08-08 
20:49:36.000000000 +0200
+++ new/glslang-13.0.0/glslang/Include/intermediate.h   2023-08-24 
01:24:25.000000000 +0200
@@ -1100,6 +1100,12 @@
     // Shader tile image ops
     EOpStencilAttachmentReadEXT, // Fragment only
     EOpDepthAttachmentReadEXT, // Fragment only
+
+    // Image processing
+    EOpImageSampleWeightedQCOM,
+    EOpImageBoxFilterQCOM,
+    EOpImageBlockMatchSADQCOM,
+    EOpImageBlockMatchSSDQCOM,
 };
 
 class TIntermTraverser;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/glslang-sdk-1.3.261.0/glslang/MachineIndependent/Initialize.cpp 
new/glslang-13.0.0/glslang/MachineIndependent/Initialize.cpp
--- old/glslang-sdk-1.3.261.0/glslang/MachineIndependent/Initialize.cpp 
2023-08-08 20:49:36.000000000 +0200
+++ new/glslang-13.0.0/glslang/MachineIndependent/Initialize.cpp        
2023-08-24 01:24:25.000000000 +0200
@@ -4135,6 +4135,18 @@
 
     }
 
+    // QCOM_image_processing
+    if ((profile == EEsProfile && version >= 310) ||
+         (profile != EEsProfile && version >= 140)) {
+        commonBuiltins.append(
+           "vec4 textureWeightedQCOM(sampler2D, vec2, sampler2DArray);"
+           "vec4 textureWeightedQCOM(sampler2D, vec2, sampler1DArray);"
+           "vec4 textureBoxFilterQCOM(sampler2D, vec2, vec2);"
+           "vec4 textureBlockMatchSADQCOM(sampler2D, uvec2, sampler2D, uvec2, 
uvec2);"
+           "vec4 textureBlockMatchSSDQCOM(sampler2D, uvec2, sampler2D, uvec2, 
uvec2);"
+           "\n");
+    }
+
     
//============================================================================
     //
     // Prototypes for built-in functions seen by vertex shaders only.
@@ -4624,7 +4636,7 @@
             "uvec4 fragmentFetchAMD(usubpassInputMS, uint);"
 
             "\n");
-        }
+    }
 
     // Builtins for 
GL_NV_ray_tracing/GL_NV_ray_tracing_motion_blur/GL_EXT_ray_tracing/GL_EXT_ray_query/
     // GL_NV_shader_invocation_reorder/GL_KHR_ray_tracing_position_Fetch
@@ -8095,7 +8107,7 @@
             BuiltInVariable("gl_ViewIndex", EbvViewIndex, symbolTable);
         }
 
-       if (profile != EEsProfile) {
+        if (profile != EEsProfile) {
             BuiltInVariable("gl_SubGroupInvocationARB", EbvSubGroupInvocation, 
symbolTable);
             BuiltInVariable("gl_SubGroupEqMaskARB",     EbvSubGroupEqMask,     
symbolTable);
             BuiltInVariable("gl_SubGroupGeMaskARB",     EbvSubGroupGeMask,     
symbolTable);
@@ -8725,6 +8737,14 @@
         symbolTable.setFunctionExtensions("stencilAttachmentReadEXT", 1, 
&E_GL_EXT_shader_tile_image);
         symbolTable.setFunctionExtensions("depthAttachmentReadEXT", 1, 
&E_GL_EXT_shader_tile_image);
         symbolTable.setFunctionExtensions("colorAttachmentReadEXT", 1, 
&E_GL_EXT_shader_tile_image);
+
+        if ((profile == EEsProfile && version >= 310) ||
+            (profile != EEsProfile && version >= 140)) {
+            symbolTable.setFunctionExtensions("textureWeightedQCOM",      1, 
&E_GL_QCOM_image_processing);
+            symbolTable.setFunctionExtensions("textureBoxFilterQCOM",     1, 
&E_GL_QCOM_image_processing);
+            symbolTable.setFunctionExtensions("textureBlockMatchSADQCOM", 1, 
&E_GL_QCOM_image_processing);
+            symbolTable.setFunctionExtensions("textureBlockMatchSSDQCOM", 1, 
&E_GL_QCOM_image_processing);
+        }
         break;
 
     case EShLangCompute:
@@ -9890,6 +9910,14 @@
             symbolTable.relateToOperator("shadow2DEXT",              
EOpTexture);
             symbolTable.relateToOperator("shadow2DProjEXT",          
EOpTextureProj);
         }
+
+        if ((profile == EEsProfile && version >= 310) ||
+            (profile != EEsProfile && version >= 140)) {
+            symbolTable.relateToOperator("textureWeightedQCOM",      
EOpImageSampleWeightedQCOM);
+            symbolTable.relateToOperator("textureBoxFilterQCOM",     
EOpImageBoxFilterQCOM);
+            symbolTable.relateToOperator("textureBlockMatchSADQCOM", 
EOpImageBlockMatchSADQCOM);
+            symbolTable.relateToOperator("textureBlockMatchSSDQCOM", 
EOpImageBlockMatchSSDQCOM);
+        }
     }
 
     switch(language) {
@@ -10030,7 +10058,7 @@
         if (profile != EEsProfile && version >= 460) {
             symbolTable.relateToOperator("reportIntersectionNV", 
EOpReportIntersection);
             symbolTable.relateToOperator("reportIntersectionEXT", 
EOpReportIntersection);
-       }
+        }
         break;
     case EShLangAnyHit:
         if (profile != EEsProfile && version >= 460) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/glslang-sdk-1.3.261.0/glslang/MachineIndependent/ParseHelper.cpp 
new/glslang-13.0.0/glslang/MachineIndependent/ParseHelper.cpp
--- old/glslang-sdk-1.3.261.0/glslang/MachineIndependent/ParseHelper.cpp        
2023-08-08 20:49:36.000000000 +0200
+++ new/glslang-13.0.0/glslang/MachineIndependent/ParseHelper.cpp       
2023-08-24 01:24:25.000000000 +0200
@@ -6324,9 +6324,6 @@
 // Do layout error checking with respect to a type.
 void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type)
 {
-    if (extensionTurnedOn(E_GL_EXT_spirv_intrinsics))
-        return; // Skip any check if GL_EXT_spirv_intrinsics is turned on
-
     const TQualifier& qualifier = type.getQualifier();
 
     // first, intra-layout qualifier-only error checking
@@ -6380,6 +6377,7 @@
         case EvqCallableData:
         case EvqCallableDataIn:
         case EvqHitObjectAttrNV:
+        case EvqSpirvStorageClass:
             break;
         case EvqTileImageEXT:
             break;
@@ -6436,7 +6434,7 @@
         // an array of size N, all elements of the array from binding through 
binding + N - 1 must be within this
         // range."
         //
-        if (! type.isOpaque() && type.getBasicType() != EbtBlock)
+        if (!type.isOpaque() && type.getBasicType() != EbtBlock && 
type.getBasicType() != EbtSpirvType)
             error(loc, "requires block, or sampler/image, or atomic-counter 
type", "binding", "");
         if (type.getBasicType() == EbtSampler) {
             int lastBinding = qualifier.layoutBinding;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/glslang-sdk-1.3.261.0/glslang/MachineIndependent/Versions.cpp 
new/glslang-13.0.0/glslang/MachineIndependent/Versions.cpp
--- old/glslang-sdk-1.3.261.0/glslang/MachineIndependent/Versions.cpp   
2023-08-08 20:49:36.000000000 +0200
+++ new/glslang-13.0.0/glslang/MachineIndependent/Versions.cpp  2023-08-24 
01:24:25.000000000 +0200
@@ -307,6 +307,9 @@
     // ARM
     extensionBehavior[E_GL_ARM_shader_core_builtins]                 = 
EBhDisable;
 
+    // QCOM
+    extensionBehavior[E_GL_QCOM_image_processing]                    = 
EBhDisable;
+
     // AEP
     extensionBehavior[E_GL_ANDROID_extension_pack_es31a]             = 
EBhDisable;
     extensionBehavior[E_GL_KHR_blend_equation_advanced]              = 
EBhDisable;
@@ -431,6 +434,8 @@
             "#define GL_OES_texture_buffer 1\n"
             "#define GL_OES_texture_cube_map_array 1\n"
             "#define GL_EXT_shader_non_constant_global_initializers 1\n"
+
+            "#define GL_QCOM_image_processing 1\n"
             ;
 
             if (version >= 300) {
@@ -555,6 +560,8 @@
             "#define GL_NV_integer_cooperative_matrix 1\n"
             "#define GL_NV_shader_invocation_reorder 1\n"
 
+            "#define GL_QCOM_image_processing 1\n"
+
             "#define GL_EXT_shader_explicit_arithmetic_types 1\n"
             "#define GL_EXT_shader_explicit_arithmetic_types_int8 1\n"
             "#define GL_EXT_shader_explicit_arithmetic_types_int16 1\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/glslang-sdk-1.3.261.0/glslang/MachineIndependent/Versions.h 
new/glslang-13.0.0/glslang/MachineIndependent/Versions.h
--- old/glslang-sdk-1.3.261.0/glslang/MachineIndependent/Versions.h     
2023-08-08 20:49:36.000000000 +0200
+++ new/glslang-13.0.0/glslang/MachineIndependent/Versions.h    2023-08-24 
01:24:25.000000000 +0200
@@ -281,6 +281,8 @@
 const char* const E_GL_NV_integer_cooperative_matrix            = 
"GL_NV_integer_cooperative_matrix";
 const char* const E_GL_NV_shader_invocation_reorder             = 
"GL_NV_shader_invocation_reorder";
 
+const char* const E_GL_QCOM_image_processing                    = 
"GL_QCOM_image_processing";
+
 // AEP
 const char* const E_GL_ANDROID_extension_pack_es31a             = 
"GL_ANDROID_extension_pack_es31a";
 const char* const E_GL_KHR_blend_equation_advanced              = 
"GL_KHR_blend_equation_advanced";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/glslang-sdk-1.3.261.0/gtests/Spv.FromFile.cpp 
new/glslang-13.0.0/gtests/Spv.FromFile.cpp
--- old/glslang-sdk-1.3.261.0/gtests/Spv.FromFile.cpp   2023-08-08 
20:49:36.000000000 +0200
+++ new/glslang-13.0.0/gtests/Spv.FromFile.cpp  2023-08-24 01:24:25.000000000 
+0200
@@ -76,6 +76,7 @@
 using VulkanAstSemantics = GlslangTest<::testing::TestWithParam<std::string>>;
 using HlslIoMap = GlslangTest<::testing::TestWithParam<IoMapData>>;
 using GlslIoMap = GlslangTest<::testing::TestWithParam<IoMapData>>;
+using CompileVulkanToSpirvTestQCOM = 
GlslangTest<::testing::TestWithParam<std::string>>;
 using CompileVulkanToSpirvTestAMD = 
GlslangTest<::testing::TestWithParam<std::string>>;
 using CompileVulkanToSpirvTestNV = 
GlslangTest<::testing::TestWithParam<std::string>>;
 using CompileVulkanToSpirv14TestNV = 
GlslangTest<::testing::TestWithParam<std::string>>;
@@ -196,6 +197,15 @@
                                  GetParam().flattenUniforms);
 }
 
+// Compiling GLSL to SPIR-V under Vulkan semantics (QCOM extensions enabled).
+// Expected to successfully generate SPIR-V.
+TEST_P(CompileVulkanToSpirvTestQCOM, FromFile)
+{
+    loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(),
+                            Source::GLSL, Semantics::Vulkan, 
glslang::EShTargetVulkan_1_0, glslang::EShTargetSpv_1_0,
+                            Target::Spv);
+}
+
 // Compiling GLSL to SPIR-V under Vulkan semantics (AMD extensions enabled).
 // Expected to successfully generate SPIR-V.
 TEST_P(CompileVulkanToSpirvTestAMD, FromFile)
@@ -757,6 +767,7 @@
         "vulkan.vert",
         "vulkan.comp",
         "samplerlessTextureFunctions.frag",
+        "spv.intrinsicsFakeEnable.vert",
         "spv.specConstArrayCheck.vert",
     })),
     FileNameAsCustomTestSuffix
@@ -781,6 +792,18 @@
     })),
     FileNameAsCustomTestSuffix
 );
+
+INSTANTIATE_TEST_SUITE_P(
+    Glsl, CompileVulkanToSpirvTestQCOM,
+    ::testing::ValuesIn(std::vector<std::string>({
+        "spv.tpipSampleWeighted.frag",
+        "spv.tpipBoxFilter.frag",
+        "spv.tpipBlockMatchSSD.frag",
+        "spv.tpipBlockMatchSAD.frag",
+        "spv.tpipTextureArrays.frag",
+    })),
+    FileNameAsCustomTestSuffix
+);
 
 INSTANTIATE_TEST_SUITE_P(
     Glsl, CompileVulkanToSpirvTestAMD,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/glslang-sdk-1.3.261.0/known_good.json 
new/glslang-13.0.0/known_good.json
--- old/glslang-sdk-1.3.261.0/known_good.json   2023-08-08 20:49:36.000000000 
+0200
+++ new/glslang-13.0.0/known_good.json  2023-08-24 01:24:25.000000000 +0200
@@ -5,7 +5,7 @@
       "site" : "github",
       "subrepo" : "KhronosGroup/SPIRV-Tools",
       "subdir" : "External/spirv-tools",
-      "commit" : "v2023.4.rc2"
+      "commit" : "89ca3aa571fe238944b31e88d5d8fe75fab0227a"
     },
     {
       "name" : "spirv-tools/external/spirv-headers",

++++++ baselibs.conf ++++++
--- /var/tmp/diff_new_pack.r2nfyv/_old  2023-09-07 21:12:20.392444918 +0200
+++ /var/tmp/diff_new_pack.r2nfyv/_new  2023-09-07 21:12:20.400445204 +0200
@@ -1,2 +1,2 @@
-libglslang12
+libglslang13
 

Reply via email to