From 5d2a76894ddada1db4adace75526a7724efbf321 Mon Sep 17 00:00:00 2001 From: Sushma Venkatesh Reddy Date: Fri, 14 Apr 2023 09:04:37 -0700 Subject: [PATCH] minigbm: Use clflushopt if supported Use clflushopt if it is supported instead of clflush. clflushopt is more optimized and suggested by the HW engineers. It has improved MTL unmap operation times significantly. BUG=b:274641129 TEST=camera preview should be minimum of 30fps Signed-off-by: Nirmoy Das Signed-off-by: Sushma Venkatesh Reddy Change-Id: I9bf7e355d5ebdfb1647c578173123bb73db5571d Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/4382538 Reviewed-by: Dominik Behr --- i915.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/i915.c b/i915.c index a76aec5..3ae3d7f 100644 --- a/i915.c +++ b/i915.c @@ -406,9 +406,14 @@ static void i915_clflush(void *start, size_t size) __builtin_ia32_mfence(); while (p < end) { +#if defined(__CLFLUSHOPT__) + __builtin_ia32_clflushopt(p); +#else __builtin_ia32_clflush(p); +#endif p = (void *)((uintptr_t)p + I915_CACHELINE_SIZE); } + __builtin_ia32_mfence(); } static int i915_init(struct driver *drv)