From 64eba87a676ddb294f0b3eafc4325ea55343603e Mon Sep 17 00:00:00 2001 From: Karol Herbst Date: Sun, 10 May 2026 15:45:13 +0200 Subject: [PATCH] rusticl: more intel compat stuff Part-of: --- src/gallium/frontends/rusticl/api/memory.rs | 12 ++++++++++++ src/gallium/frontends/rusticl/core/program.rs | 2 ++ 2 files changed, 14 insertions(+) diff --git a/src/gallium/frontends/rusticl/api/memory.rs b/src/gallium/frontends/rusticl/api/memory.rs index a60537d907f..8960db4cae3 100644 --- a/src/gallium/frontends/rusticl/api/memory.rs +++ b/src/gallium/frontends/rusticl/api/memory.rs @@ -13,6 +13,7 @@ use crate::core::event::EventSig; use crate::core::format::*; use crate::core::gl::*; use crate::core::memory::*; +use crate::core::platform::Platform; use crate::core::queue::*; use crate::rusticl_warn_once; @@ -53,6 +54,14 @@ fn validate_mem_flags(flags: cl_mem_flags, validation: MemFlagValidationType) -> | CL_MEM_ALLOW_UNRESTRICTED_SIZE_INTEL, ); + if Platform::features().intel { + valid_flags |= cl_bitfield::from( + CL_MEM_FORCE_HOST_MEMORY_INTEL + | CL_MEM_COMPRESSED_HINT_INTEL + | CL_MEM_UNCOMPRESSED_HINT_INTEL, + ); + } + if validation != MemFlagValidationType::Imported { valid_flags |= cl_bitfield::from( CL_MEM_USE_HOST_PTR @@ -327,6 +336,9 @@ unsafe impl CLInfo for cl_mem { }), CL_MEM_SIZE => v.write::(mem.size), CL_MEM_TYPE => v.write::(mem.mem_type), + CL_MEM_USES_COMPRESSION_INTEL if Platform::features().intel => { + v.write::(CL_FALSE) + } CL_MEM_USES_SVM_POINTER | CL_MEM_USES_SVM_POINTER_ARM => { v.write::(mem.is_svm().into()) } diff --git a/src/gallium/frontends/rusticl/core/program.rs b/src/gallium/frontends/rusticl/core/program.rs index 2a13a0f6523..c9c1093dee7 100644 --- a/src/gallium/frontends/rusticl/core/program.rs +++ b/src/gallium/frontends/rusticl/core/program.rs @@ -325,6 +325,8 @@ fn prepare_options(options: &str, dev: &Device) -> Vec { "-cl-denorms-are-zero" => Some("-fdenormal-fp-math=positive-zero"), // We can ignore it as long as we don't support ifp "-cl-no-subgroup-ifp" => None, + // This indicates how many registers per thread should be used, we just ignore it. + "-cl-intel-256-GRF-per-thread" => None, // Some applications use this argument when they detect Intel hardware. "-cl-intel-greater-than-4GB-buffer-required" => None, // Some applications use this when they detect QC hardware