1
0
forked from pool/spirv-tools

spirv-tools 2024.4~rc2

This commit is contained in:
Jan Engelhardt 2024-12-15 22:02:13 +01:00
parent b5d4e85baa
commit ec43b0d272
5 changed files with 24 additions and 86 deletions

View File

@ -1,73 +0,0 @@
From 01c8438ee4ac52c248119b7e03e0b021f853b51a Mon Sep 17 00:00:00 2001
From: Viktoria Maximova <viktoria.maksimova@intel.com>
Date: Fri, 20 Sep 2024 17:31:46 +0200
Subject: [PATCH] [SPV_KHR_untyped_pointers] Fix verification for OpenCL.std
instructions (#5810)
Allow `p` to be untyped pointer for `fract`, `frexp`, `lgamma_r`,
`modf`, `remquo`, and `sincos`.
```
operand must be a pointer(p1, ...).If it is a typed pointer, it must
point to data types.
```
https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/main/extensions/KHR/SPV_KHR_untyped_pointers.html#_modifications_to_the_opencl_std_extended_instruction_set
---
source/val/validate_extensions.cpp | 10 ++++++----
source/val/validate_memory.cpp | 4 +++-
2 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/source/val/validate_extensions.cpp b/source/val/validate_extensions.cpp
index e26df288..74974a4f 100644
--- a/source/val/validate_extensions.cpp
+++ b/source/val/validate_extensions.cpp
@@ -1980,7 +1980,7 @@ spv_result_t ValidateExtInst(ValidationState_t& _, const Instruction* inst) {
"CrossWorkgroup, Workgroup or Function";
}
- if (result_type != p_data_type) {
+ if (!_.ContainsUntypedPointer(p_type) && result_type != p_data_type) {
return _.diag(SPV_ERROR_INVALID_DATA, inst)
<< ext_inst_name() << ": "
<< "expected data type of the pointer to be equal to Result "
@@ -2042,15 +2042,17 @@ spv_result_t ValidateExtInst(ValidationState_t& _, const Instruction* inst) {
"CrossWorkgroup, Workgroup or Function";
}
- if (!_.IsIntScalarOrVectorType(p_data_type) ||
- _.GetBitWidth(p_data_type) != 32) {
+ if ((!_.IsIntScalarOrVectorType(p_data_type) ||
+ _.GetBitWidth(p_data_type) != 32) &&
+ !_.ContainsUntypedPointer(p_type)) {
return _.diag(SPV_ERROR_INVALID_DATA, inst)
<< ext_inst_name() << ": "
<< "expected data type of the pointer to be a 32-bit int "
"scalar or vector type";
}
- if (_.GetDimension(p_data_type) != num_components) {
+ if (!_.ContainsUntypedPointer(p_type) &&
+ _.GetDimension(p_data_type) != num_components) {
return _.diag(SPV_ERROR_INVALID_DATA, inst)
<< ext_inst_name() << ": "
<< "expected data type of the pointer to have the same number "
diff --git a/source/val/validate_memory.cpp b/source/val/validate_memory.cpp
index 9bfa3c21..a9ae3644 100644
--- a/source/val/validate_memory.cpp
+++ b/source/val/validate_memory.cpp
@@ -463,7 +463,9 @@ spv_result_t ValidateVariable(ValidationState_t& _, const Instruction* inst) {
const auto initializer_id = inst->GetOperandAs<uint32_t>(initializer_index);
const auto initializer = _.FindDef(initializer_id);
const auto is_module_scope_var =
- initializer && (initializer->opcode() == spv::Op::OpVariable) &&
+ initializer &&
+ (initializer->opcode() == spv::Op::OpVariable ||
+ initializer->opcode() == spv::Op::OpUntypedVariableKHR) &&
(initializer->GetOperandAs<spv::StorageClass>(storage_class_index) !=
spv::StorageClass::Function);
const auto is_constant =
--
2.46.1

View File

@ -1,3 +1,16 @@
-------------------------------------------------------------------
Sun Dec 15 18:56:06 UTC 2024 - Jan Engelhardt <jengelh@inai.de>
- Update to release 2024.4~rc2
* General:
* Add FPEncoding operand type. (#5726)
* Support SPV_KHR_untyped_pointers, SPV_INTEL_global_variable_host_access,
SPV_KHR_compute_shader_derivative
* Vulkan 1.4 support (#5899)
* Optimizer: Add knowledge of cooperative matrice
- Delete 0001-SPV_KHR_untyped_pointers-Fix-verification-for-OpenCL.patch
(merged)
-------------------------------------------------------------------
Tue Oct 8 16:12:56 UTC 2024 - Jan Engelhardt <jengelh@inai.de>

View File

@ -17,30 +17,29 @@
%define _lto_cflags %nil
%define lname libSPIRV-Tools-2024_4_rc1
%define lname libSPIRV-Tools-2024_4_rc2
Name: spirv-tools
Version: 2024.4~rc1
Version: 2024.4~rc2
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/refs/tags/v2024.4.rc1.tar.gz
Source: https://github.com/KhronosGroup/SPIRV-Tools/archive/refs/tags/v2024.4.rc2.tar.gz
Source9: baselibs.conf
Patch1: ver.diff
Patch2: 0001-SPV_KHR_untyped_pointers-Fix-verification-for-OpenCL.patch
BuildRequires: bison
BuildRequires: cmake >= 3.17.2
%if 0%{?suse_version} >= 1599
BuildRequires: gcc-c++
%else
BuildRequires: gcc11-c++
BuildRequires: gcc12-c++
%endif
BuildRequires: pkg-config
BuildRequires: python3-base
BuildRequires: python3-xml
BuildRequires: spirv-headers >= 1.6.1+sdk283+g8
BuildRequires: spirv-headers >= 1.6.4+sdk303
%description
The package includes an assembler, binary module parser,
@ -68,13 +67,13 @@ validator, and is used in the standalone tools whilst also enabling
integration into other code bases directly.
%prep
%autosetup -p1 -n SPIRV-Tools-2024.4.rc1
%autosetup -p1 -n SPIRV-Tools-2024.4.rc2
find . -type f -name CMakeLists.txt -exec \
perl -i -pe 's{\@PACKAGE_VERSION\@}{%version}' CMakeLists.txt {} +
%build
%if 0%{?suse_version} && 0%{?suse_version} < 1599
export CXX=g++-11
export CXX=g++-12
%endif
%cmake -DSPIRV-Headers_SOURCE_DIR="%_prefix" \
-DSPIRV_TOOLS_BUILD_STATIC:BOOL=OFF -DBUILD_SHARED_LIBS:BOOL=ON
@ -87,8 +86,7 @@ for i in "" "-diff" "-link" "-lint" "-opt" "-reduce" "-shared"; do
ln -s "libSPIRV-Tools$i-%version.so" "%buildroot/%_libdir/libSPIRV-Tools$i.so"
done
%post -n %lname -p /sbin/ldconfig
%postun -n %lname -p /sbin/ldconfig
%ldconfig_scriptlets -n %lname
%files
%_bindir/spirv-*

BIN
v2024.4.rc1.tar.gz (Stored with Git LFS)

Binary file not shown.

BIN
v2024.4.rc2.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.