1
0
forked from pool/spirv-tools

spirv-tools 2024.4~rc1

This commit is contained in:
Jan Engelhardt 2024-10-08 18:23:20 +02:00
parent 3177890571
commit 1cffec9d73
6 changed files with 101 additions and 8 deletions

View File

@ -0,0 +1,73 @@
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,4 +1,4 @@
libSPIRV-Tools-2024_3
libSPIRV-Tools-2024_4_rc1
spirv-tools-devel
requires -spirv-tools-<targettype>
requires "libSPIRV-Tools-2024_3-<targettype> = <version>"
requires "libSPIRV-Tools-2024_4_rc1-<targettype> = <version>"

View File

@ -1,3 +1,22 @@
-------------------------------------------------------------------
Tue Oct 8 16:12:56 UTC 2024 - Jan Engelhardt <jengelh@inai.de>
- Update to release 2024.4~rc1
* Add knowledge of cooperative matrices
* Add FPEncoding operand type
* Allow for empty list of enums for an operand
* Support SPV_KHR_untyped_pointers
* properly handle the load and store cache control operand types
* spirv-link: allow linking functions with different pointer arguments
* Allow ArrayStride on untyped pointers
* [OPT] Add SPV_KHR_ray_tracing_position_fetch to allow lists
* Validate presence of Stride operand to OpCooperativeMatrix{Load,Store}KHR
* [SPV_KHR_untyped_pointers] Fix verification of vload/vstore OpenCL.std instructions
* spirv-opt: make traversal deterministic
* add support for SPV_INTEL_global_variable_host_access
- Add 0001-SPV_KHR_untyped_pointers-Fix-verification-for-OpenCL.patch
for shaderc.
-------------------------------------------------------------------
Tue Jun 25 20:47:23 UTC 2024 - Jan Engelhardt <jengelh@inai.de>

View File

@ -20,15 +20,16 @@
%define lname libSPIRV-Tools-2024_3
Name: spirv-tools
Version: 2024.3
Version: 2024.4~rc1
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/v%version.tar.gz
Source: https://github.com/KhronosGroup/SPIRV-Tools/archive/refs/tags/v2024.4.rc1.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
@ -67,7 +68,7 @@ validator, and is used in the standalone tools whilst also enabling
integration into other code bases directly.
%prep
%autosetup -p1 -n SPIRV-Tools-%version
%autosetup -p1 -n SPIRV-Tools-2024.4.rc1
find . -type f -name CMakeLists.txt -exec \
perl -i -pe 's{\@PACKAGE_VERSION\@}{%version}' CMakeLists.txt {} +

BIN
v2024.3.tar.gz (Stored with Git LFS)

Binary file not shown.

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

Binary file not shown.