Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package spirv-tools for openSUSE:Factory 
checked in at 2022-08-24 15:10:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/spirv-tools (Old)
 and      /work/SRC/openSUSE:Factory/.spirv-tools.new.2083 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "spirv-tools"

Wed Aug 24 15:10:52 2022 rev:34 rq:998870 version:2022.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/spirv-tools/spirv-tools.changes  2022-06-17 
21:18:54.702656200 +0200
+++ /work/SRC/openSUSE:Factory/.spirv-tools.new.2083/spirv-tools.changes        
2022-08-24 15:11:04.532499451 +0200
@@ -1,0 +2,16 @@
+Mon Aug 22 23:12:02 UTC 2022 - Jan Engelhardt <[email protected]>
+
+- Update to release 2022.3~sdk224 (SDK-1.3.224.0)
+  * spirv-val: Add support for SPV_AMD_shader_early_and_late_fragment_tests
+  * Avoid replacing access chain with OOB access
+  * Avoid undefined divide-by-0
+  * Fixed crash unrolling loops with residual iterations
+  * Fix segfault in `SpirvTools::Disassemble` when printing
+  * Avoid undefined behaviour when getting debug opcode
+  * spirv-val: Add Vulkan decoration interface
+  * Implement SPV_NV_bindless_texture related changes
+- Update to release 2022.3
+  * spirv-val: Add SPV_KHR_ray_tracing instructions
+- Add 0001-Fix-array-copy-propagation-4890.patch
+
+-------------------------------------------------------------------

Old:
----
  sdk-1.3.216.0.tar.gz

New:
----
  0001-Fix-array-copy-propagation-4890.patch
  v2022.3.tar.gz

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

Other differences:
------------------
++++++ spirv-tools.spec ++++++
--- /var/tmp/diff_new_pack.jGWqwB/_old  2022-08-24 15:11:06.860501697 +0200
+++ /var/tmp/diff_new_pack.jGWqwB/_new  2022-08-24 15:11:06.868501705 +0200
@@ -17,21 +17,21 @@
 
 
 %define _lto_cflags %nil
-%define lname libSPIRV-Tools-2022_3_sdk216
+%define lname libSPIRV-Tools-2022_3
 
 Name:           spirv-tools
-Version:        2022.3~sdk216
+Version:        2022.3
 Release:        0
 Summary:        API and commands for processing SPIR-V modules
 License:        Apache-2.0
 Group:          Development/Libraries/C and C++
 URL:            https://github.com/KhronosGroup/SPIRV-Tools
 
-#Source:         
https://github.com/KhronosGroup/SPIRV-Tools/archive/v%version.tar.gz
-Source:         
https://github.com/KhronosGroup/SPIRV-Tools/archive/refs/tags/sdk-1.3.216.0.tar.gz
+Source:         
https://github.com/KhronosGroup/SPIRV-Tools/archive/refs/tags/v%version.tar.gz
 Source9:        baselibs.conf
 Patch1:         ver.diff
 Patch2:         gcc48.diff
+Patch3:         0001-Fix-array-copy-propagation-4890.patch
 BuildRequires:  bison
 BuildRequires:  cmake >= 2.8.12
 BuildRequires:  gcc-c++
@@ -66,7 +66,7 @@
 integration into other code bases directly.
 
 %prep
-%autosetup -p1 -n SPIRV-Tools-sdk-1.3.216.0
+%autosetup -p1 -n SPIRV-Tools-%version
 find . -type f -name CMakeLists.txt -exec \
        perl -i -pe 's{\@PACKAGE_VERSION\@}{%version}' CMakeLists.txt {} +
 

++++++ 0001-Fix-array-copy-propagation-4890.patch ++++++
>From 3a8a961cffb7699422a05dcbafdd721226b4547d Mon Sep 17 00:00:00 2001
From: Cassandra Beckley <[email protected]>
Date: Thu, 11 Aug 2022 09:59:37 -0700
Subject: [PATCH] Fix array copy propagation (#4890)

Array copy propagation was interpreting OpEntryPoint as a store
---
 source/opt/copy_prop_arrays.cpp   |  2 ++
 source/opt/copy_prop_arrays.h     |  2 +-
 test/opt/copy_prop_array_test.cpp | 45 +++++++++++++++++++++++++++++++
 3 files changed, 48 insertions(+), 1 deletion(-)

diff --git a/source/opt/copy_prop_arrays.cpp b/source/opt/copy_prop_arrays.cpp
index 321d4969..1c30138e 100644
--- a/source/opt/copy_prop_arrays.cpp
+++ b/source/opt/copy_prop_arrays.cpp
@@ -168,6 +168,8 @@ bool CopyPropagateArrays::HasNoStores(Instruction* 
ptr_inst) {
       return false;
     } else if (use->opcode() == SpvOpImageTexelPointer) {
       return true;
+    } else if (use->opcode() == SpvOpEntryPoint) {
+      return true;
     }
     // Some other instruction.  Be conservative.
     return false;
diff --git a/source/opt/copy_prop_arrays.h b/source/opt/copy_prop_arrays.h
index 46a508cf..07747c10 100644
--- a/source/opt/copy_prop_arrays.h
+++ b/source/opt/copy_prop_arrays.h
@@ -195,7 +195,7 @@ class CopyPropagateArrays : public MemPass {
   // Return true if |type_id| is a pointer type whose pointee type is an array.
   bool IsPointerToArrayType(uint32_t type_id);
 
-  // Returns true of there are not stores using |ptr_inst| or something derived
+  // Returns true if there are not stores using |ptr_inst| or something derived
   // from it.
   bool HasNoStores(Instruction* ptr_inst);
 
diff --git a/test/opt/copy_prop_array_test.cpp 
b/test/opt/copy_prop_array_test.cpp
index a4599f0f..f322f4ad 100644
--- a/test/opt/copy_prop_array_test.cpp
+++ b/test/opt/copy_prop_array_test.cpp
@@ -1839,6 +1839,51 @@ OpFunctionEnd
 
   SinglePassRunAndCheck<CopyPropagateArrays>(text, text, false);
 }
+
+// Since Spir-V 1.4, resources that are used by a shader must be on the
+// OpEntryPoint instruction with the inputs and outputs. This test ensures that
+// this does not stop the pass from working.
+TEST_F(CopyPropArrayPassTest, EntryPointUser) {
+  const std::string before = R"(OpCapability Shader
+OpMemoryModel Logical GLSL450
+OpEntryPoint GLCompute %main "main" %g_rwTexture3d
+OpExecutionMode %main LocalSize 256 1 1
+OpSource HLSL 660
+OpName %type_3d_image "type.3d.image"
+OpName %g_rwTexture3d "g_rwTexture3d"
+OpName %main "main"
+OpDecorate %g_rwTexture3d DescriptorSet 0
+OpDecorate %g_rwTexture3d Binding 0
+%uint = OpTypeInt 32 0
+%uint_0 = OpConstant %uint 0
+%uint_1 = OpConstant %uint 1
+%uint_2 = OpConstant %uint 2
+%uint_3 = OpConstant %uint 3
+%v3uint = OpTypeVector %uint 3
+%10 = OpConstantComposite %v3uint %uint_1 %uint_2 %uint_3
+%type_3d_image = OpTypeImage %uint 3D 2 0 0 2 R32ui
+%_ptr_UniformConstant_type_3d_image = OpTypePointer UniformConstant 
%type_3d_image
+%void = OpTypeVoid
+%13 = OpTypeFunction %void
+%_ptr_Function_type_3d_image = OpTypePointer Function %type_3d_image
+%_ptr_Image_uint = OpTypePointer Image %uint
+%g_rwTexture3d = OpVariable %_ptr_UniformConstant_type_3d_image UniformConstant
+%main = OpFunction %void None %13
+%16 = OpLabel
+%17 = OpVariable %_ptr_Function_type_3d_image Function
+%18 = OpLoad %type_3d_image %g_rwTexture3d
+OpStore %17 %18
+; CHECK: %19 = OpImageTexelPointer %_ptr_Image_uint %g_rwTexture3d %10 %uint_0
+%19 = OpImageTexelPointer %_ptr_Image_uint %17 %10 %uint_0
+%20 = OpAtomicIAdd %uint %19 %uint_1 %uint_0 %uint_1
+OpReturn
+OpFunctionEnd
+)";
+
+  SetAssembleOptions(SPV_TEXT_TO_BINARY_OPTION_PRESERVE_NUMERIC_IDS);
+  SetTargetEnv(SPV_ENV_UNIVERSAL_1_4);
+  SinglePassRunAndMatch<CopyPropagateArrays>(before, false);
+}
 }  // namespace
 }  // namespace opt
 }  // namespace spvtools
-- 
2.37.2


++++++ baselibs.conf ++++++
--- /var/tmp/diff_new_pack.jGWqwB/_old  2022-08-24 15:11:06.912501747 +0200
+++ /var/tmp/diff_new_pack.jGWqwB/_new  2022-08-24 15:11:06.916501751 +0200
@@ -1,5 +1,5 @@
-libSPIRV-Tools-2022_3_sdk216
+libSPIRV-Tools-2022_3
 spirv-tools-devel
        requires -spirv-tools-<targettype>
-       requires "libSPIRV-Tools-2022_3_sdk216-<targettype> = <version>"
+       requires "libSPIRV-Tools-2022_3-<targettype> = <version>"
 

Reply via email to