rusticl: support cl_khr_extended_bit_ops

Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35448>
This commit is contained in:
Karol Herbst
2025-06-11 02:08:26 +02:00
committed by Marge Bot
parent 6a36056f59
commit 93f24f0bd0
3 changed files with 6 additions and 1 deletions

View File

@@ -822,7 +822,7 @@ Rusticl extensions that are not part of any OpenCL version:
cl_khr_egl_image not started
cl_khr_expect_assume in progress (hints are ignored)
cl_khr_extended_async_copies not started
cl_khr_extended_bit_ops in progress
cl_khr_extended_bit_ops DONE
cl_khr_fp16 DONE (asahi, freedreno, llvmpipe, panfrost, radeonsi, zink)
cl_khr_gl_depth_images not started
cl_khr_gl_msaa_sharing not started

View File

@@ -52,3 +52,4 @@ VK_EXT_descriptor_indexing on panvk/v10+
cl_khr_priority_hints
VK_KHR_maintenance6 on panvk/v10+
CL_sRGBA and CL_sBGRA images
cl_khr_extended_bit_ops

View File

@@ -601,6 +601,7 @@ impl DeviceBase {
add_ext(1, 0, 0, "cl_khr_byte_addressable_store");
add_ext(1, 0, 0, "cl_khr_create_command_queue");
add_ext(1, 0, 0, "cl_khr_expect_assume");
add_ext(1, 0, 0, "cl_khr_extended_bit_ops");
add_ext(1, 0, 0, "cl_khr_extended_versioning");
add_ext(1, 0, 0, "cl_khr_global_int32_base_atomics");
add_ext(1, 0, 0, "cl_khr_global_int32_extended_atomics");
@@ -620,12 +621,14 @@ impl DeviceBase {
"__opencl_c_integer_dot_product_input_4x8bit_packed",
);
add_spirv(c"SPV_KHR_bit_instructions");
add_spirv(c"SPV_KHR_expect_assume");
add_spirv(c"SPV_KHR_float_controls");
add_spirv(c"SPV_KHR_integer_dot_product");
add_spirv(c"SPV_KHR_no_integer_wrap_decoration");
add_cap(SpvCapability::SpvCapabilityAddresses);
add_cap(SpvCapability::SpvCapabilityBitInstructions);
add_cap(SpvCapability::SpvCapabilityDotProduct);
add_cap(SpvCapability::SpvCapabilityDotProductInput4x8Bit);
add_cap(SpvCapability::SpvCapabilityDotProductInput4x8BitPacked);
@@ -1213,6 +1216,7 @@ impl DeviceBase {
pub fn cl_features(&self) -> clc_optional_features {
let subgroups_supported = self.subgroups_supported();
clc_optional_features {
extended_bit_ops: true,
fp16: self.fp16_supported(),
fp64: self.fp64_supported(),
int64: self.int64_supported(),