Mesa (master): lima,panfrost: Move lima_tiling.c/h to /src/panfrost

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Jun 20 15:24:07 UTC 2019


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

Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date:   Tue Jun 18 11:16:21 2019 -0700

lima,panfrost: Move lima_tiling.c/h to /src/panfrost

This will allow both drivers to share this code. Both drivers
build-tested with meson. Android build not tested.

v2: Change naming from tiling->shared, in case Lima and Panfrost can
share more in the future. Fix Android build system.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Reviewed-and-tested-by: Qiang Yu <yuq825 at gmail.com>

---

 src/gallium/drivers/lima/Android.mk                |  2 -
 src/gallium/drivers/lima/lima_resource.c           |  6 +--
 src/gallium/drivers/lima/meson.build               |  5 +--
 src/gallium/drivers/panfrost/meson.build           |  6 +--
 src/meson.build                                    |  3 ++
 src/panfrost/Android.mk                            | 28 ++++++++++++++
 src/panfrost/Android.shared.mk                     | 43 ++++++++++++++++++++++
 src/panfrost/Makefile.sources                      |  3 ++
 src/panfrost/meson.build                           | 24 ++++++++++++
 src/panfrost/shared/meson.build                    | 34 +++++++++++++++++
 .../lima_tiling.c => panfrost/shared/pan_tiling.c} | 22 +++++------
 .../lima_tiling.h => panfrost/shared/pan_tiling.h} | 24 ++++++------
 12 files changed, 166 insertions(+), 34 deletions(-)

diff --git a/src/gallium/drivers/lima/Android.mk b/src/gallium/drivers/lima/Android.mk
index eb8653e8524..516e714deff 100644
--- a/src/gallium/drivers/lima/Android.mk
+++ b/src/gallium/drivers/lima/Android.mk
@@ -67,8 +67,6 @@ LOCAL_SRC_FILES := \
 	lima_submit.h \
 	lima_texture.c \
 	lima_texture.h \
-	lima_tiling.c \
-	lima_tiling.h \
 	lima_util.c \
 	lima_util.h
 
diff --git a/src/gallium/drivers/lima/lima_resource.c b/src/gallium/drivers/lima/lima_resource.c
index 0aefb2c7900..b5dbfe5d3ef 100644
--- a/src/gallium/drivers/lima/lima_resource.c
+++ b/src/gallium/drivers/lima/lima_resource.c
@@ -44,7 +44,7 @@
 #include "lima_resource.h"
 #include "lima_bo.h"
 #include "lima_util.h"
-#include "lima_tiling.h"
+#include "pan_tiling.h"
 
 static struct pipe_resource *
 lima_resource_create_scanout(struct pipe_screen *pscreen,
@@ -505,7 +505,7 @@ lima_transfer_map(struct pipe_context *pctx,
       trans->staging = malloc(ptrans->stride * ptrans->box.height * ptrans->box.depth);
 
       if (usage & PIPE_TRANSFER_READ)
-         lima_load_tiled_image(trans->staging, bo->map + res->levels[level].offset,
+         panfrost_load_tiled_image(trans->staging, bo->map + res->levels[level].offset,
                               &ptrans->box,
                               ptrans->stride,
                               res->levels[level].stride,
@@ -545,7 +545,7 @@ lima_transfer_unmap(struct pipe_context *pctx,
    if (trans->staging) {
       pres = &res->base;
       if (ptrans->usage & PIPE_TRANSFER_WRITE)
-         lima_store_tiled_image(bo->map + res->levels[ptrans->level].offset, trans->staging,
+         panfrost_store_tiled_image(bo->map + res->levels[ptrans->level].offset, trans->staging,
                               &ptrans->box,
                               res->levels[ptrans->level].stride,
                               ptrans->stride,
diff --git a/src/gallium/drivers/lima/meson.build b/src/gallium/drivers/lima/meson.build
index a05f0e275ed..b6a197fcc8d 100644
--- a/src/gallium/drivers/lima/meson.build
+++ b/src/gallium/drivers/lima/meson.build
@@ -69,8 +69,6 @@ files_lima = files(
   'lima_texture.h',
   'lima_fence.c',
   'lima_fence.h',
-  'lima_tiling.c',
-  'lima_tiling.h',
 )
 
 liblima = static_library(
@@ -78,12 +76,13 @@ liblima = static_library(
   files_lima,
   include_directories : [
     inc_src, inc_include, inc_gallium, inc_gallium_aux, inc_gallium_drivers,
+    inc_panfrost
   ],
   dependencies : [dep_libdrm, idep_nir_headers],
 )
 
 driver_lima = declare_dependency(
   compile_args : '-DGALLIUM_LIMA',
-  link_with : [liblima, liblimawinsys],
+  link_with : [liblima, liblimawinsys, libpanfrost_shared],
   dependencies : idep_nir,
 )
diff --git a/src/gallium/drivers/panfrost/meson.build b/src/gallium/drivers/panfrost/meson.build
index 39f1fd8e6b0..94b89098bc8 100644
--- a/src/gallium/drivers/panfrost/meson.build
+++ b/src/gallium/drivers/panfrost/meson.build
@@ -63,7 +63,7 @@ files_panfrost = files(
   'pan_tiler.c',
 )
 
-inc_panfrost = [
+panfrost_includes = [
   inc_common,
   inc_gallium,
   inc_gallium_aux,
@@ -99,7 +99,7 @@ libpanfrost = static_library(
     dep_libdrm,
     idep_nir
   ],
-  include_directories : inc_panfrost,
+  include_directories : panfrost_includes,
   c_args : [c_vis_args, c_msvc_compat_args, compile_args_panfrost],
 )
 
@@ -151,7 +151,7 @@ files_pandecode = files(
 pandecode = executable(
   'pandecode',
   files_pandecode,
-  include_directories : inc_panfrost,
+  include_directories : panfrost_includes,
   dependencies : [
     dep_thread,
   ],
diff --git a/src/meson.build b/src/meson.build
index 8b983c15b60..0dcd7eef65d 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -70,6 +70,9 @@ endif
 if with_gallium_freedreno or with_freedreno_vk
   subdir('freedreno')
 endif
+if with_gallium_panfrost or with_gallium_lima
+  subdir('panfrost')
+endif
 if with_dri_i965 or with_intel_vk or with_gallium_iris
   subdir('intel')
 endif
diff --git a/src/panfrost/Android.mk b/src/panfrost/Android.mk
new file mode 100644
index 00000000000..9ab5ddf9fdf
--- /dev/null
+++ b/src/panfrost/Android.mk
@@ -0,0 +1,28 @@
+# Mesa 3-D graphics library
+#
+# Copyright (C)
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+
+# Android.mk for libpanfrost_*
+
+LOCAL_PATH := $(call my-dir)
+
+include $(LOCAL_PATH)/Makefile.sources
+include $(LOCAL_PATH)/Android.shared.mk
diff --git a/src/panfrost/Android.shared.mk b/src/panfrost/Android.shared.mk
new file mode 100644
index 00000000000..e1dd3babfe6
--- /dev/null
+++ b/src/panfrost/Android.shared.mk
@@ -0,0 +1,43 @@
+# Mesa 3-D graphics library
+#
+# Copyright (C)
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+
+# Android.mk for libpanfrost_shared.a
+
+# ---------------------------------------
+# Build libpanfrost_shared
+# ---------------------------------------
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := \
+	$(shared_SOURCES)
+
+LOCAL_C_INCLUDES := \
+
+LOCAL_STATIC_LIBRARIES := \
+
+LOCAL_MODULE := libpanfrost_shared
+
+LOCAL_GENERATED_SOURCES := \
+
+include $(MESA_COMMON_MK)
+include $(BUILD_STATIC_LIBRARY)
diff --git a/src/panfrost/Makefile.sources b/src/panfrost/Makefile.sources
new file mode 100644
index 00000000000..3ab90f27913
--- /dev/null
+++ b/src/panfrost/Makefile.sources
@@ -0,0 +1,3 @@
+shared_FILES := \
+        shared/pan_tiling.c \
+        shared/pan_tiling.h
diff --git a/src/panfrost/meson.build b/src/panfrost/meson.build
new file mode 100644
index 00000000000..6b167d04b9c
--- /dev/null
+++ b/src/panfrost/meson.build
@@ -0,0 +1,24 @@
+# Copyright © 2018 Rob Clark
+# Copyright © 2019 Collabora
+
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+inc_panfrost = include_directories(['.', 'shared'])
+
+subdir('shared')
diff --git a/src/panfrost/shared/meson.build b/src/panfrost/shared/meson.build
new file mode 100644
index 00000000000..0bf09dbbbf8
--- /dev/null
+++ b/src/panfrost/shared/meson.build
@@ -0,0 +1,34 @@
+# Copyright © 2018 Rob Clark
+# Copyright © 2019 Collabora
+
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+libpanfrost_shared_files = files(
+  'pan_tiling.c',
+  'pan_tiling.h',
+)
+
+libpanfrost_shared = static_library(
+  'panfrost_shared',
+  [libpanfrost_shared_files],
+  include_directories : [inc_common],
+  c_args : [c_vis_args, no_override_init_args],
+  cpp_args : [cpp_vis_args],
+  build_by_default : false,
+)
diff --git a/src/gallium/drivers/lima/lima_tiling.c b/src/panfrost/shared/pan_tiling.c
similarity index 90%
rename from src/gallium/drivers/lima/lima_tiling.c
rename to src/panfrost/shared/pan_tiling.c
index 6332e47055d..413cd89420b 100644
--- a/src/gallium/drivers/lima/lima_tiling.c
+++ b/src/panfrost/shared/pan_tiling.c
@@ -24,7 +24,7 @@
  *
  */
 
-#include "lima_tiling.h"
+#include "pan_tiling.h"
 
 uint32_t space_filler[16][16] = {
    { 0,   1,   4,   5,   16,  17,  20,  21,  64,  65,  68,  69,  80,  81,  84,  85, },
@@ -46,7 +46,7 @@ uint32_t space_filler[16][16] = {
 };
 
 static void
-lima_store_tiled_image_bpp4(void *dst, const void *src,
+panfrost_store_tiled_image_bpp4(void *dst, const void *src,
                                const struct pipe_box *box,
                                uint32_t dst_stride,
                                uint32_t src_stride)
@@ -71,7 +71,7 @@ lima_store_tiled_image_bpp4(void *dst, const void *src,
 }
 
 static void
-lima_store_tiled_image_generic(void *dst, const void *src,
+panfrost_store_tiled_image_generic(void *dst, const void *src,
                                const struct pipe_box *box,
                                uint32_t dst_stride,
                                uint32_t src_stride,
@@ -99,7 +99,7 @@ lima_store_tiled_image_generic(void *dst, const void *src,
 }
 
 static void
-lima_load_tiled_image_bpp4(void *dst, const void *src,
+panfrost_load_tiled_image_bpp4(void *dst, const void *src,
                               const struct pipe_box *box,
                               uint32_t dst_stride,
                               uint32_t src_stride)
@@ -124,7 +124,7 @@ lima_load_tiled_image_bpp4(void *dst, const void *src,
 }
 
 static void
-lima_load_tiled_image_generic(void *dst, const void *src,
+panfrost_load_tiled_image_generic(void *dst, const void *src,
                               const struct pipe_box *box,
                               uint32_t dst_stride,
                               uint32_t src_stride,
@@ -152,7 +152,7 @@ lima_load_tiled_image_generic(void *dst, const void *src,
 }
 
 void
-lima_store_tiled_image(void *dst, const void *src,
+panfrost_store_tiled_image(void *dst, const void *src,
                            const struct pipe_box *box,
                            uint32_t dst_stride,
                            uint32_t src_stride,
@@ -160,15 +160,15 @@ lima_store_tiled_image(void *dst, const void *src,
 {
 	switch (bpp) {
 	case 4:
-		lima_store_tiled_image_bpp4(dst, src, box, dst_stride, src_stride);
+		panfrost_store_tiled_image_bpp4(dst, src, box, dst_stride, src_stride);
 		break;
 	default:
-		lima_store_tiled_image_generic(dst, src, box, dst_stride, src_stride, bpp);
+		panfrost_store_tiled_image_generic(dst, src, box, dst_stride, src_stride, bpp);
 	}
 }
 
 void
-lima_load_tiled_image(void *dst, const void *src,
+panfrost_load_tiled_image(void *dst, const void *src,
                            const struct pipe_box *box,
                            uint32_t dst_stride,
                            uint32_t src_stride,
@@ -176,9 +176,9 @@ lima_load_tiled_image(void *dst, const void *src,
 {
 	switch (bpp) {
 	case 4:
-		lima_load_tiled_image_bpp4(dst, src, box, dst_stride, src_stride);
+		panfrost_load_tiled_image_bpp4(dst, src, box, dst_stride, src_stride);
 		break;
 	default:
-		lima_load_tiled_image_generic(dst, src, box, dst_stride, src_stride, bpp);
+		panfrost_load_tiled_image_generic(dst, src, box, dst_stride, src_stride, bpp);
 	}
 }
diff --git a/src/gallium/drivers/lima/lima_tiling.h b/src/panfrost/shared/pan_tiling.h
similarity index 69%
rename from src/gallium/drivers/lima/lima_tiling.h
rename to src/panfrost/shared/pan_tiling.h
index ea3a4219d66..1d55939ecbd 100644
--- a/src/gallium/drivers/lima/lima_tiling.h
+++ b/src/panfrost/shared/pan_tiling.h
@@ -24,21 +24,21 @@
  *
  */
 
-#ifndef H_LIMA_TILING
-#define H_LIMA_TILING
+#ifndef H_PANFROST_TILING
+#define H_PANFROST_TILING
 
 #include "util/u_box.h"
 
-void lima_load_tiled_image(void *dst, const void *src,
-                           const struct pipe_box *box,
-                           uint32_t dst_stride,
-                           uint32_t src_stride,
-                           uint32_t bpp);
+void panfrost_load_tiled_image(void *dst, const void *src,
+                               const struct pipe_box *box,
+                               uint32_t dst_stride,
+                               uint32_t src_stride,
+                               uint32_t bpp);
 
-void lima_store_tiled_image(void *dst, const void *src,
-                           const struct pipe_box *box,
-                           uint32_t dst_stride,
-                           uint32_t src_stride,
-                           uint32_t bpp);
+void panfrost_store_tiled_image(void *dst, const void *src,
+                                const struct pipe_box *box,
+                                uint32_t dst_stride,
+                                uint32_t src_stride,
+                                uint32_t bpp);
 
 #endif




More information about the mesa-commit mailing list