Mesa (master): freedreno: Set up supported modifiers in fd*_resource_screen_init()

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Feb 5 22:23:35 UTC 2020


Module: Mesa
Branch: master
Commit: af6fb4f0a9ffe3250612acd3eb382f5eb5227e48
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=af6fb4f0a9ffe3250612acd3eb382f5eb5227e48

Author: Kristian H. Kristensen <hoegsberg at google.com>
Date:   Tue Feb  4 17:41:27 2020 -0800

freedreno: Set up supported modifiers in fd*_resource_screen_init()

Keep the modifier logic together.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3704>

---

 src/gallium/drivers/freedreno/a6xx/fd6_screen.c    | 8 --------
 src/gallium/drivers/freedreno/freedreno_resource.c | 8 ++++++++
 src/gallium/drivers/freedreno/freedreno_screen.c   | 9 ---------
 3 files changed, 8 insertions(+), 17 deletions(-)

diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_screen.c b/src/gallium/drivers/freedreno/a6xx/fd6_screen.c
index 32d06ed13a4..bf1f9680c7c 100644
--- a/src/gallium/drivers/freedreno/a6xx/fd6_screen.c
+++ b/src/gallium/drivers/freedreno/a6xx/fd6_screen.c
@@ -138,14 +138,6 @@ fd6_screen_init(struct pipe_screen *pscreen)
 
 	screen->tile_mode = fd6_tile_mode;
 
-	static const uint64_t supported_modifiers[] = {
-		DRM_FORMAT_MOD_LINEAR,
-		DRM_FORMAT_MOD_QCOM_COMPRESSED,
-	};
-
-	screen->supported_modifiers = supported_modifiers;
-	screen->num_supported_modifiers = ARRAY_SIZE(supported_modifiers);
-
 	fd6_resource_screen_init(pscreen);
 	fd6_emit_init_screen(pscreen);
 }
diff --git a/src/gallium/drivers/freedreno/freedreno_resource.c b/src/gallium/drivers/freedreno/freedreno_resource.c
index 59b1d9793fa..54bf359a0cc 100644
--- a/src/gallium/drivers/freedreno/freedreno_resource.c
+++ b/src/gallium/drivers/freedreno/freedreno_resource.c
@@ -1206,6 +1206,10 @@ static const struct u_transfer_vtbl transfer_vtbl = {
 		.get_stencil              = fd_resource_get_stencil,
 };
 
+static const uint64_t supported_modifiers[] = {
+	DRM_FORMAT_MOD_LINEAR,
+};
+
 void
 fd_resource_screen_init(struct pipe_screen *pscreen)
 {
@@ -1226,6 +1230,10 @@ fd_resource_screen_init(struct pipe_screen *pscreen)
 
 	if (!screen->setup_slices)
 		screen->setup_slices = fd_setup_slices;
+	if (!screen->supported_modifiers) {
+		screen->supported_modifiers = supported_modifiers;
+		screen->num_supported_modifiers = ARRAY_SIZE(supported_modifiers);
+	}
 }
 
 static void
diff --git a/src/gallium/drivers/freedreno/freedreno_screen.c b/src/gallium/drivers/freedreno/freedreno_screen.c
index 3c0ed69a9cb..f79d858e11e 100644
--- a/src/gallium/drivers/freedreno/freedreno_screen.c
+++ b/src/gallium/drivers/freedreno/freedreno_screen.c
@@ -985,15 +985,6 @@ fd_screen_create(struct fd_device *dev, struct renderonly *ro)
 
 	pscreen->query_dmabuf_modifiers = fd_screen_query_dmabuf_modifiers;
 
-	if (!screen->supported_modifiers) {
-		static const uint64_t supported_modifiers[] = {
-			DRM_FORMAT_MOD_LINEAR,
-		};
-
-		screen->supported_modifiers = supported_modifiers;
-		screen->num_supported_modifiers = ARRAY_SIZE(supported_modifiers);
-	}
-
 	slab_create_parent(&screen->transfer_pool, sizeof(struct fd_transfer), 16);
 
 	return pscreen;



More information about the mesa-commit mailing list