drm/msm: Expose expanded UBWC config uapi
authorConnor Abbott <cwabbott0@gmail.com>
Wed, 7 Aug 2024 13:04:58 +0000 (14:04 +0100)
committerRob Clark <robdclark@chromium.org>
Fri, 30 Aug 2024 17:41:19 +0000 (10:41 -0700)
This adds extra parameters that affect UBWC tiling that will be used by
the Mesa implementation of VK_EXT_host_image_copy.

Signed-off-by: Connor Abbott <cwabbott0@gmail.com>
Patchwork: https://patchwork.freedesktop.org/patch/607401/
Signed-off-by: Rob Clark <robdclark@chromium.org>
drivers/gpu/drm/msm/adreno/adreno_gpu.c
include/uapi/drm/msm_drm.h

index 120b23542a952ad32d07376c2fa02f92ea3e40da..f742ebefb76981584f740afca05b6d2021e9ade6 100644 (file)
@@ -379,6 +379,12 @@ int adreno_get_param(struct msm_gpu *gpu, struct msm_file_private *ctx,
        case MSM_PARAM_RAYTRACING:
                *value = adreno_gpu->has_ray_tracing;
                return 0;
+       case MSM_PARAM_UBWC_SWIZZLE:
+               *value = adreno_gpu->ubwc_config.ubwc_swizzle;
+               return 0;
+       case MSM_PARAM_MACROTILE_MODE:
+               *value = adreno_gpu->ubwc_config.macrotile_mode;
+               return 0;
        default:
                DBG("%s: invalid param: %u", gpu->name, param);
                return -EINVAL;
index 3fca72f738614a3e229e1017fe4f2ab61cd98bdf..2377147b6af0b870b0e616af3ca969e0928b8962 100644 (file)
@@ -88,6 +88,8 @@ struct drm_msm_timespec {
 #define MSM_PARAM_VA_SIZE    0x0f  /* RO: size of valid GPU iova range (bytes) */
 #define MSM_PARAM_HIGHEST_BANK_BIT 0x10 /* RO */
 #define MSM_PARAM_RAYTRACING 0x11 /* RO */
+#define MSM_PARAM_UBWC_SWIZZLE 0x12 /* RO */
+#define MSM_PARAM_MACROTILE_MODE 0x13 /* RO */
 
 /* For backwards compat.  The original support for preemption was based on
  * a single ring per priority level so # of priority levels equals the #