From b45eb2775ea180fde01d0abe50f6ccf8ddb5b84d Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Mon, 19 Aug 2019 11:19:15 -0700 Subject: [PATCH] panfrost: Move pan_tiler.c outside of Gallium The routines in this file may be shared with Vulkan. Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/meson.build | 1 - src/gallium/drivers/panfrost/pan_context.c | 1 - src/gallium/drivers/panfrost/pan_tiler.h | 44 ------------------- src/panfrost/encoder/meson.build | 1 + src/panfrost/encoder/pan_encoder.h | 13 ++++++ .../panfrost => panfrost/encoder}/pan_tiler.c | 2 +- 6 files changed, 15 insertions(+), 47 deletions(-) delete mode 100644 src/gallium/drivers/panfrost/pan_tiler.h rename src/{gallium/drivers/panfrost => panfrost/encoder}/pan_tiler.c (99%) diff --git a/src/gallium/drivers/panfrost/meson.build b/src/gallium/drivers/panfrost/meson.build index d4e91c6812a..8d4facec982 100644 --- a/src/gallium/drivers/panfrost/meson.build +++ b/src/gallium/drivers/panfrost/meson.build @@ -49,7 +49,6 @@ files_panfrost = files( 'pan_scoreboard.c', 'pan_sfbd.c', 'pan_mfbd.c', - 'pan_tiler.c', 'pan_varyings.c', ) diff --git a/src/gallium/drivers/panfrost/pan_context.c b/src/gallium/drivers/panfrost/pan_context.c index e6ef85b1a8a..b6de11c10eb 100644 --- a/src/gallium/drivers/panfrost/pan_context.c +++ b/src/gallium/drivers/panfrost/pan_context.c @@ -50,7 +50,6 @@ #include "pan_blending.h" #include "pan_blend_shaders.h" #include "pan_util.h" -#include "pan_tiler.h" /* Do not actually send anything to the GPU; merely generate the cmdstream as fast as possible. Disables framebuffer writes */ //#define DRY_RUN diff --git a/src/gallium/drivers/panfrost/pan_tiler.h b/src/gallium/drivers/panfrost/pan_tiler.h deleted file mode 100644 index 8d7f6f29de0..00000000000 --- a/src/gallium/drivers/panfrost/pan_tiler.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (C) 2019 Collabora, Ltd. - * - * 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 (including the next - * paragraph) 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. - * - * Authors: - * Alyssa Rosenzweig - * - */ - -#ifndef __PAN_TILER_H__ -#define __PAN_TILER_H__ - -unsigned -panfrost_tiler_header_size(unsigned width, unsigned height, uint8_t mask); - -unsigned -panfrost_tiler_body_size(unsigned width, unsigned height, uint8_t mask); - -unsigned -panfrost_choose_hierarchy_mask( - unsigned width, unsigned height, - unsigned vertex_count); - -#endif - - diff --git a/src/panfrost/encoder/meson.build b/src/panfrost/encoder/meson.build index 9f26139c913..007785769af 100644 --- a/src/panfrost/encoder/meson.build +++ b/src/panfrost/encoder/meson.build @@ -23,6 +23,7 @@ libpanfrost_encoder_files = files( 'pan_encoder.h', 'pan_invocation.c', + 'pan_tiler.c', ) libpanfrost_encoder = static_library( diff --git a/src/panfrost/encoder/pan_encoder.h b/src/panfrost/encoder/pan_encoder.h index aba3ebacf2c..0e135d0f511 100644 --- a/src/panfrost/encoder/pan_encoder.h +++ b/src/panfrost/encoder/pan_encoder.h @@ -53,4 +53,17 @@ panfrost_pack_work_groups_fused( unsigned size_y, unsigned size_z); +/* Tiler structure size computation */ + +unsigned +panfrost_tiler_header_size(unsigned width, unsigned height, uint8_t mask); + +unsigned +panfrost_tiler_body_size(unsigned width, unsigned height, uint8_t mask); + +unsigned +panfrost_choose_hierarchy_mask( + unsigned width, unsigned height, + unsigned vertex_count); + #endif diff --git a/src/gallium/drivers/panfrost/pan_tiler.c b/src/panfrost/encoder/pan_tiler.c similarity index 99% rename from src/gallium/drivers/panfrost/pan_tiler.c rename to src/panfrost/encoder/pan_tiler.c index 25f8490cb43..7718ad9fe48 100644 --- a/src/gallium/drivers/panfrost/pan_tiler.c +++ b/src/panfrost/encoder/pan_tiler.c @@ -26,7 +26,7 @@ #include "util/u_math.h" #include "util/macros.h" -#include "pan_tiler.h" +#include "pan_encoder.h" /* Mali GPUs are tiled-mode renderers, rather than immediate-mode. * Conceptually, the screen is divided into 16x16 tiles. Vertex shaders run. -- 2.30.2