Update SPIRV-Headers, add cache control operand kinds (#5406)
* Update SPIRV-Headers, add cache control operand kinds
Adds SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL
and SPV_OPERAND_TYPE_STORE_CACHE_CONTROL,
from SPV_INTEL_cache_controls
Fixes: #5404
* Update tests: remove Kernel from constant sampler enum dependencies
This corresponds to header change
https://github.com/KhronosGroup/SPIRV-Headers/pull/378
diff --git a/DEPS b/DEPS
index 30c9ba9..b181769 100644
--- a/DEPS
+++ b/DEPS
@@ -13,7 +13,7 @@
'protobuf_revision': 'v21.12',
're2_revision': 'a807e8a3aac2cc33c77b7071efea54fcabe38e0c',
- 'spirv_headers_revision': 'd790ced752b5bfc06b6988baadef6eb2d16bdf96',
+ 'spirv_headers_revision': 'fc7d2462765183c784a0c46beb13eee9e506a067',
}
deps = {
diff --git a/include/spirv-tools/libspirv.h b/include/spirv-tools/libspirv.h
index a699ddc..b70f084 100644
--- a/include/spirv-tools/libspirv.h
+++ b/include/spirv-tools/libspirv.h
@@ -297,6 +297,10 @@
SPV_OPERAND_TYPE_INITIALIZATION_MODE_QUALIFIER,
// Enum type from SPV_INTEL_global_variable_host_access
SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER,
+ // Enum type from SPV_INTEL_cache_controls
+ SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL,
+ // Enum type from SPV_INTEL_cache_controls
+ SPV_OPERAND_TYPE_STORE_CACHE_CONTROL,
// This is a sentinel value, and does not represent an operand type.
// It should come last.
diff --git a/source/operand.cpp b/source/operand.cpp
index 5349a2d..6577f8f 100644
--- a/source/operand.cpp
+++ b/source/operand.cpp
@@ -216,6 +216,10 @@
return "initialization mode qualifier";
case SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER:
return "host access qualifier";
+ case SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL:
+ return "load cache control";
+ case SPV_OPERAND_TYPE_STORE_CACHE_CONTROL:
+ return "store cache control";
case SPV_OPERAND_TYPE_IMAGE:
case SPV_OPERAND_TYPE_OPTIONAL_IMAGE:
return "image";
@@ -354,6 +358,8 @@
case SPV_OPERAND_TYPE_COOPERATIVE_MATRIX_USE:
case SPV_OPERAND_TYPE_INITIALIZATION_MODE_QUALIFIER:
case SPV_OPERAND_TYPE_HOST_ACCESS_QUALIFIER:
+ case SPV_OPERAND_TYPE_LOAD_CACHE_CONTROL:
+ case SPV_OPERAND_TYPE_STORE_CACHE_CONTROL:
return true;
default:
break;
diff --git a/test/operand_capabilities_test.cpp b/test/operand_capabilities_test.cpp
index 607d351..4872228 100644
--- a/test/operand_capabilities_test.cpp
+++ b/test/operand_capabilities_test.cpp
@@ -266,25 +266,21 @@
SamplerAddressingMode, EnumCapabilityTest,
Combine(Values(SPV_ENV_UNIVERSAL_1_0, SPV_ENV_UNIVERSAL_1_1),
ValuesIn(std::vector<EnumCapabilityCase>{
- CASE1(SAMPLER_ADDRESSING_MODE, SamplerAddressingMode::None,
- Kernel),
- CASE1(SAMPLER_ADDRESSING_MODE,
- SamplerAddressingMode::ClampToEdge, Kernel),
- CASE1(SAMPLER_ADDRESSING_MODE, SamplerAddressingMode::Clamp,
- Kernel),
- CASE1(SAMPLER_ADDRESSING_MODE, SamplerAddressingMode::Repeat,
- Kernel),
- CASE1(SAMPLER_ADDRESSING_MODE,
- SamplerAddressingMode::RepeatMirrored, Kernel),
- })));
+ CASE0(SAMPLER_ADDRESSING_MODE, SamplerAddressingMode::None),
+ CASE0(SAMPLER_ADDRESSING_MODE,
+ SamplerAddressingMode::ClampToEdge),
+ CASE0(SAMPLER_ADDRESSING_MODE, SamplerAddressingMode::Clamp),
+ CASE0(SAMPLER_ADDRESSING_MODE, SamplerAddressingMode::Repeat),
+ CASE0(SAMPLER_ADDRESSING_MODE,
+ SamplerAddressingMode::RepeatMirrored)})));
// See SPIR-V Section 3.10 Sampler Filter Mode
INSTANTIATE_TEST_SUITE_P(
SamplerFilterMode, EnumCapabilityTest,
Combine(Values(SPV_ENV_UNIVERSAL_1_0, SPV_ENV_UNIVERSAL_1_1),
ValuesIn(std::vector<EnumCapabilityCase>{
- CASE1(SAMPLER_FILTER_MODE, SamplerFilterMode::Nearest, Kernel),
- CASE1(SAMPLER_FILTER_MODE, SamplerFilterMode::Linear, Kernel),
+ CASE0(SAMPLER_FILTER_MODE, SamplerFilterMode::Nearest),
+ CASE0(SAMPLER_FILTER_MODE, SamplerFilterMode::Linear),
})));
// See SPIR-V Section 3.11 Image Format