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@collabora.com> Reviewed-and-tested-by: Qiang Yu <yuq825@gmail.com>
This commit is contained in:
@@ -67,8 +67,6 @@ LOCAL_SRC_FILES := \
|
|||||||
lima_submit.h \
|
lima_submit.h \
|
||||||
lima_texture.c \
|
lima_texture.c \
|
||||||
lima_texture.h \
|
lima_texture.h \
|
||||||
lima_tiling.c \
|
|
||||||
lima_tiling.h \
|
|
||||||
lima_util.c \
|
lima_util.c \
|
||||||
lima_util.h
|
lima_util.h
|
||||||
|
|
||||||
|
@@ -44,7 +44,7 @@
|
|||||||
#include "lima_resource.h"
|
#include "lima_resource.h"
|
||||||
#include "lima_bo.h"
|
#include "lima_bo.h"
|
||||||
#include "lima_util.h"
|
#include "lima_util.h"
|
||||||
#include "lima_tiling.h"
|
#include "pan_tiling.h"
|
||||||
|
|
||||||
static struct pipe_resource *
|
static struct pipe_resource *
|
||||||
lima_resource_create_scanout(struct pipe_screen *pscreen,
|
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);
|
trans->staging = malloc(ptrans->stride * ptrans->box.height * ptrans->box.depth);
|
||||||
|
|
||||||
if (usage & PIPE_TRANSFER_READ)
|
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->box,
|
||||||
ptrans->stride,
|
ptrans->stride,
|
||||||
res->levels[level].stride,
|
res->levels[level].stride,
|
||||||
@@ -545,7 +545,7 @@ lima_transfer_unmap(struct pipe_context *pctx,
|
|||||||
if (trans->staging) {
|
if (trans->staging) {
|
||||||
pres = &res->base;
|
pres = &res->base;
|
||||||
if (ptrans->usage & PIPE_TRANSFER_WRITE)
|
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,
|
&ptrans->box,
|
||||||
res->levels[ptrans->level].stride,
|
res->levels[ptrans->level].stride,
|
||||||
ptrans->stride,
|
ptrans->stride,
|
||||||
|
@@ -69,8 +69,6 @@ files_lima = files(
|
|||||||
'lima_texture.h',
|
'lima_texture.h',
|
||||||
'lima_fence.c',
|
'lima_fence.c',
|
||||||
'lima_fence.h',
|
'lima_fence.h',
|
||||||
'lima_tiling.c',
|
|
||||||
'lima_tiling.h',
|
|
||||||
)
|
)
|
||||||
|
|
||||||
liblima = static_library(
|
liblima = static_library(
|
||||||
@@ -78,12 +76,13 @@ liblima = static_library(
|
|||||||
files_lima,
|
files_lima,
|
||||||
include_directories : [
|
include_directories : [
|
||||||
inc_src, inc_include, inc_gallium, inc_gallium_aux, inc_gallium_drivers,
|
inc_src, inc_include, inc_gallium, inc_gallium_aux, inc_gallium_drivers,
|
||||||
|
inc_panfrost
|
||||||
],
|
],
|
||||||
dependencies : [dep_libdrm, idep_nir_headers],
|
dependencies : [dep_libdrm, idep_nir_headers],
|
||||||
)
|
)
|
||||||
|
|
||||||
driver_lima = declare_dependency(
|
driver_lima = declare_dependency(
|
||||||
compile_args : '-DGALLIUM_LIMA',
|
compile_args : '-DGALLIUM_LIMA',
|
||||||
link_with : [liblima, liblimawinsys],
|
link_with : [liblima, liblimawinsys, libpanfrost_shared],
|
||||||
dependencies : idep_nir,
|
dependencies : idep_nir,
|
||||||
)
|
)
|
||||||
|
@@ -63,7 +63,7 @@ files_panfrost = files(
|
|||||||
'pan_tiler.c',
|
'pan_tiler.c',
|
||||||
)
|
)
|
||||||
|
|
||||||
inc_panfrost = [
|
panfrost_includes = [
|
||||||
inc_common,
|
inc_common,
|
||||||
inc_gallium,
|
inc_gallium,
|
||||||
inc_gallium_aux,
|
inc_gallium_aux,
|
||||||
@@ -99,7 +99,7 @@ libpanfrost = static_library(
|
|||||||
dep_libdrm,
|
dep_libdrm,
|
||||||
idep_nir
|
idep_nir
|
||||||
],
|
],
|
||||||
include_directories : inc_panfrost,
|
include_directories : panfrost_includes,
|
||||||
c_args : [c_vis_args, c_msvc_compat_args, compile_args_panfrost],
|
c_args : [c_vis_args, c_msvc_compat_args, compile_args_panfrost],
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -151,7 +151,7 @@ files_pandecode = files(
|
|||||||
pandecode = executable(
|
pandecode = executable(
|
||||||
'pandecode',
|
'pandecode',
|
||||||
files_pandecode,
|
files_pandecode,
|
||||||
include_directories : inc_panfrost,
|
include_directories : panfrost_includes,
|
||||||
dependencies : [
|
dependencies : [
|
||||||
dep_thread,
|
dep_thread,
|
||||||
],
|
],
|
||||||
|
@@ -70,6 +70,9 @@ endif
|
|||||||
if with_gallium_freedreno or with_freedreno_vk
|
if with_gallium_freedreno or with_freedreno_vk
|
||||||
subdir('freedreno')
|
subdir('freedreno')
|
||||||
endif
|
endif
|
||||||
|
if with_gallium_panfrost or with_gallium_lima
|
||||||
|
subdir('panfrost')
|
||||||
|
endif
|
||||||
if with_dri_i965 or with_intel_vk or with_gallium_iris
|
if with_dri_i965 or with_intel_vk or with_gallium_iris
|
||||||
subdir('intel')
|
subdir('intel')
|
||||||
endif
|
endif
|
||||||
|
28
src/panfrost/Android.mk
Normal file
28
src/panfrost/Android.mk
Normal file
@@ -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
|
43
src/panfrost/Android.shared.mk
Normal file
43
src/panfrost/Android.shared.mk
Normal file
@@ -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)
|
3
src/panfrost/Makefile.sources
Normal file
3
src/panfrost/Makefile.sources
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
shared_FILES := \
|
||||||
|
shared/pan_tiling.c \
|
||||||
|
shared/pan_tiling.h
|
24
src/panfrost/meson.build
Normal file
24
src/panfrost/meson.build
Normal file
@@ -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')
|
34
src/panfrost/shared/meson.build
Normal file
34
src/panfrost/shared/meson.build
Normal file
@@ -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,
|
||||||
|
)
|
@@ -24,7 +24,7 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "lima_tiling.h"
|
#include "pan_tiling.h"
|
||||||
|
|
||||||
uint32_t space_filler[16][16] = {
|
uint32_t space_filler[16][16] = {
|
||||||
{ 0, 1, 4, 5, 16, 17, 20, 21, 64, 65, 68, 69, 80, 81, 84, 85, },
|
{ 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
|
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,
|
const struct pipe_box *box,
|
||||||
uint32_t dst_stride,
|
uint32_t dst_stride,
|
||||||
uint32_t src_stride)
|
uint32_t src_stride)
|
||||||
@@ -71,7 +71,7 @@ lima_store_tiled_image_bpp4(void *dst, const void *src,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
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,
|
const struct pipe_box *box,
|
||||||
uint32_t dst_stride,
|
uint32_t dst_stride,
|
||||||
uint32_t src_stride,
|
uint32_t src_stride,
|
||||||
@@ -99,7 +99,7 @@ lima_store_tiled_image_generic(void *dst, const void *src,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
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,
|
const struct pipe_box *box,
|
||||||
uint32_t dst_stride,
|
uint32_t dst_stride,
|
||||||
uint32_t src_stride)
|
uint32_t src_stride)
|
||||||
@@ -124,7 +124,7 @@ lima_load_tiled_image_bpp4(void *dst, const void *src,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
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,
|
const struct pipe_box *box,
|
||||||
uint32_t dst_stride,
|
uint32_t dst_stride,
|
||||||
uint32_t src_stride,
|
uint32_t src_stride,
|
||||||
@@ -152,7 +152,7 @@ lima_load_tiled_image_generic(void *dst, const void *src,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
lima_store_tiled_image(void *dst, const void *src,
|
panfrost_store_tiled_image(void *dst, const void *src,
|
||||||
const struct pipe_box *box,
|
const struct pipe_box *box,
|
||||||
uint32_t dst_stride,
|
uint32_t dst_stride,
|
||||||
uint32_t src_stride,
|
uint32_t src_stride,
|
||||||
@@ -160,15 +160,15 @@ lima_store_tiled_image(void *dst, const void *src,
|
|||||||
{
|
{
|
||||||
switch (bpp) {
|
switch (bpp) {
|
||||||
case 4:
|
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;
|
break;
|
||||||
default:
|
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
|
void
|
||||||
lima_load_tiled_image(void *dst, const void *src,
|
panfrost_load_tiled_image(void *dst, const void *src,
|
||||||
const struct pipe_box *box,
|
const struct pipe_box *box,
|
||||||
uint32_t dst_stride,
|
uint32_t dst_stride,
|
||||||
uint32_t src_stride,
|
uint32_t src_stride,
|
||||||
@@ -176,9 +176,9 @@ lima_load_tiled_image(void *dst, const void *src,
|
|||||||
{
|
{
|
||||||
switch (bpp) {
|
switch (bpp) {
|
||||||
case 4:
|
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;
|
break;
|
||||||
default:
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
@@ -24,21 +24,21 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef H_LIMA_TILING
|
#ifndef H_PANFROST_TILING
|
||||||
#define H_LIMA_TILING
|
#define H_PANFROST_TILING
|
||||||
|
|
||||||
#include "util/u_box.h"
|
#include "util/u_box.h"
|
||||||
|
|
||||||
void lima_load_tiled_image(void *dst, const void *src,
|
void panfrost_load_tiled_image(void *dst, const void *src,
|
||||||
const struct pipe_box *box,
|
const struct pipe_box *box,
|
||||||
uint32_t dst_stride,
|
uint32_t dst_stride,
|
||||||
uint32_t src_stride,
|
uint32_t src_stride,
|
||||||
uint32_t bpp);
|
uint32_t bpp);
|
||||||
|
|
||||||
void lima_store_tiled_image(void *dst, const void *src,
|
void panfrost_store_tiled_image(void *dst, const void *src,
|
||||||
const struct pipe_box *box,
|
const struct pipe_box *box,
|
||||||
uint32_t dst_stride,
|
uint32_t dst_stride,
|
||||||
uint32_t src_stride,
|
uint32_t src_stride,
|
||||||
uint32_t bpp);
|
uint32_t bpp);
|
||||||
|
|
||||||
#endif
|
#endif
|
Reference in New Issue
Block a user