From e2fdd90122c9b02f13bc94a2acf8cfa35091a742 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Tue, 20 Aug 2024 10:07:08 -0700 Subject: [PATCH] dri: pass use_flags to dri_bo_create_with_modifiers We need use_flags when we implement the dri interface on top of hbm. Also, dri_bo_create_with_modifiers does not take use flags only because gbm_bo_create_with_modifiers does not. That has changed with gbm_bo_create_with_modifiers2 although minigbm does not reflect that. BUG=b:292148713 TEST=CQ Change-Id: I120358c843140a937fee1dd6183d1836ea622eec Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/5801181 Reviewed-by: Ryan Neph Commit-Queue: Chia-I Wu Tested-by: Chia-I Wu Reviewed-by: Dominik Behr --- amdgpu.c | 5 +++-- dri.c | 4 ++-- dri.h | 4 ++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/amdgpu.c b/amdgpu.c index 6528db3..85b34e9 100644 --- a/amdgpu.c +++ b/amdgpu.c @@ -641,7 +641,7 @@ static int amdgpu_create_bo(struct bo *bo, uint32_t width, uint32_t height, uint return dri_bo_create(priv->dri, bo, width, height, format, use_flags); } else if (combo->metadata.tiling == TILE_TYPE_DRI_MODIFIER) { - return dri_bo_create_with_modifiers(priv->dri, bo, width, height, format, + return dri_bo_create_with_modifiers(priv->dri, bo, width, height, format, use_flags, &combo->metadata.modifier, 1); } @@ -662,7 +662,8 @@ static int amdgpu_create_bo_with_modifiers(struct bo *bo, uint32_t width, uint32 if (only_use_linear) return amdgpu_create_bo_linear(bo, width, height, format, BO_USE_SCANOUT); - return dri_bo_create_with_modifiers(priv->dri, bo, width, height, format, modifiers, count); + return dri_bo_create_with_modifiers(priv->dri, bo, width, height, format, 0, modifiers, + count); } static int amdgpu_import_bo(struct bo *bo, struct drv_import_fd_data *data) diff --git a/dri.c b/dri.c index 926a7ab..bf980be 100644 --- a/dri.c +++ b/dri.c @@ -303,8 +303,8 @@ free_image: } int dri_bo_create_with_modifiers(struct dri_driver *dri, struct bo *bo, uint32_t width, - uint32_t height, uint32_t format, const uint64_t *modifiers, - uint32_t modifier_count) + uint32_t height, uint32_t format, uint64_t use_flags, + const uint64_t *modifiers, uint32_t modifier_count) { int ret, dri_format; diff --git a/dri.h b/dri.h index 715aa6c..955b950 100644 --- a/dri.h +++ b/dri.h @@ -19,8 +19,8 @@ void dri_close(struct dri_driver *dri); int dri_bo_create(struct dri_driver *dri, struct bo *bo, uint32_t width, uint32_t height, uint32_t format, uint64_t use_flags); int dri_bo_create_with_modifiers(struct dri_driver *dri, struct bo *bo, uint32_t width, - uint32_t height, uint32_t format, const uint64_t *modifiers, - uint32_t modifier_count); + uint32_t height, uint32_t format, uint64_t use_flags, + const uint64_t *modifiers, uint32_t modifier_count); int dri_bo_import(struct dri_driver *dri, struct bo *bo, struct drv_import_fd_data *data); int dri_bo_release(struct dri_driver *dri, struct bo *bo); int dri_bo_destroy(struct dri_driver *dri, struct bo *bo);