From 08ff6b02855e6c680a14a9a326c718b1cf31b50f38cbe16ba98ce039e4f2f9cc Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Mon, 24 Oct 2022 19:53:03 +0000 Subject: [PATCH] - Update to release 2022.4 (SDK-1.3.231.0) OBS-URL: https://build.opensuse.org/package/show/X11:Wayland/spirv-tools?expand=0&rev=88 --- 0001-Fix-array-copy-propagation-4890.patch | 97 ---------------------- baselibs.conf | 4 +- gcc48.diff | 30 ------- spirv-tools.changes | 13 +++ spirv-tools.spec | 11 +-- v2022.3.tar.gz | 3 - v2022.4.tar.gz | 3 + 7 files changed, 21 insertions(+), 140 deletions(-) delete mode 100644 0001-Fix-array-copy-propagation-4890.patch delete mode 100644 gcc48.diff delete mode 100644 v2022.3.tar.gz create mode 100644 v2022.4.tar.gz diff --git a/0001-Fix-array-copy-propagation-4890.patch b/0001-Fix-array-copy-propagation-4890.patch deleted file mode 100644 index db93d18..0000000 --- a/0001-Fix-array-copy-propagation-4890.patch +++ /dev/null @@ -1,97 +0,0 @@ -From 3a8a961cffb7699422a05dcbafdd721226b4547d Mon Sep 17 00:00:00 2001 -From: Cassandra Beckley -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(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(before, false); -+} - } // namespace - } // namespace opt - } // namespace spvtools --- -2.37.2 - diff --git a/baselibs.conf b/baselibs.conf index 7111e2e..207fc54 100644 --- a/baselibs.conf +++ b/baselibs.conf @@ -1,4 +1,4 @@ -libSPIRV-Tools-2022_3 +libSPIRV-Tools-2022_4 spirv-tools-devel requires -spirv-tools- - requires "libSPIRV-Tools-2022_3- = " + requires "libSPIRV-Tools-2022_4- = " diff --git a/gcc48.diff b/gcc48.diff deleted file mode 100644 index 9c1d0da..0000000 --- a/gcc48.diff +++ /dev/null @@ -1,30 +0,0 @@ -From: Jan Engelhardt -Date: 2017-02-02 19:42:44.679588946 +0100 - -build: workaround gcc 4.8 bug - -tools/io.h:41:38: -error: ignoring return value of 'long int ftell(FILE*)', -declared with attribute warn_unused_result [-Werror=unused-result,-Werror] - if (sizeof(T) != 1 && (ftell(fp) % sizeof(T))) { - -Workaround gcc 4.8's wrongful idea that ftell's return value -were ignored. ---- - tools/io.h | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -Index: SPIRV-Tools-2021.1/tools/io.h -=================================================================== ---- SPIRV-Tools-2021.1.orig/tools/io.h -+++ SPIRV-Tools-2021.1/tools/io.h -@@ -60,7 +60,8 @@ bool WasFileCorrectlyRead(FILE* file, co - return false; - } - } else { -- if (sizeof(T) != 1 && (ftell(file) % sizeof(T))) { -+ long ftx = ftell(file); -+ if (sizeof(T) != 1 && ftx % sizeof(T) != 0) { - fprintf( - stderr, - "error: file size should be a multiple of %zd; file '%s' corrupt\n", diff --git a/spirv-tools.changes b/spirv-tools.changes index e18276f..c9d50d8 100644 --- a/spirv-tools.changes +++ b/spirv-tools.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Mon Oct 24 19:46:06 UTC 2022 - Jan Engelhardt + +- Update to release 2022.4 (SDK-1.3.231.0) + * Add structs to eliminate dead input components + * spirv-val: Add SPV_KHR_ray_tracing storage class + * Improve algorithm to reorder blocks in a function + * spirv-val: Add initial SPV_EXT_mesh_shader validation + * spirv-val: Add SPV_ARM_core_builtins validation + * Support Narrow Types in BitCast Folding Rule +- Drop gcc48.diff, that compiler is long past its time. +- Drop 0001-Fix-array-copy-propagation-4890.patch (merged). + ------------------------------------------------------------------- Mon Aug 22 23:12:02 UTC 2022 - Jan Engelhardt diff --git a/spirv-tools.spec b/spirv-tools.spec index 268dcd3..ee66c07 100644 --- a/spirv-tools.spec +++ b/spirv-tools.spec @@ -17,10 +17,10 @@ %define _lto_cflags %nil -%define lname libSPIRV-Tools-2022_3 +%define lname libSPIRV-Tools-2022_4 Name: spirv-tools -Version: 2022.3 +Version: 2022.4 Release: 0 Summary: API and commands for processing SPIR-V modules License: Apache-2.0 @@ -30,15 +30,13 @@ URL: https://github.com/KhronosGroup/SPIRV-Tools 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++ BuildRequires: pkg-config BuildRequires: python3-base BuildRequires: python3-xml -BuildRequires: spirv-headers >= 1.6.1+sdk216 +BuildRequires: spirv-headers >= 1.6.1+sdk231 %description The package includes an assembler, binary module parser, @@ -71,9 +69,6 @@ find . -type f -name CMakeLists.txt -exec \ perl -i -pe 's{\@PACKAGE_VERSION\@}{%version}' CMakeLists.txt {} + %build -%if 0%{?suse_version} >= 1550 -#export CXXFLAGS="%optflags -Wno-error=stringop-truncation" -%endif %cmake -DSPIRV-Headers_SOURCE_DIR="%_prefix" \ -DSPIRV_TOOLS_BUILD_STATIC:BOOL=OFF -DBUILD_SHARED_LIBS:BOOL=ON %cmake_build diff --git a/v2022.3.tar.gz b/v2022.3.tar.gz deleted file mode 100644 index dc83748..0000000 --- a/v2022.3.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:df6dc5ed5351f99aaaa6acc78111342d3400b27b99f18148d3be408570144a70 -size 3035130 diff --git a/v2022.4.tar.gz b/v2022.4.tar.gz new file mode 100644 index 0000000..7cd0f1e --- /dev/null +++ b/v2022.4.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a156215a2d7c6c5b267933ed691877a9a66f07d75970da33ce9ad627a71389d7 +size 3043339