forked from pool/spirv-tools
spirv-tools 2024.4~rc1
This commit is contained in:
parent
3177890571
commit
1cffec9d73
@ -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
|
||||
|
@ -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>"
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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)
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
BIN
v2024.4.rc1.tar.gz
(Stored with Git LFS)
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user