From f11a458a508be463aeec6220f1c2293e90034dab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ma=C3=ADra=20Canal?= Date: Wed, 30 Aug 2023 10:49:15 -0300 Subject: [PATCH] v3d/v3dv: move V3D_CSD definitions to a separate file MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Both OpenGL and Vulkan drivers share the same V3D_CSD definitions. Therefore, move it to a common place instead of duplicating. Signed-off-by: Maíra Canal Reviewed-by: Iago Toral Quiroga Part-of: --- src/broadcom/common/v3d_csd.h | 43 +++++++++++++++++++++++++++ src/broadcom/vulkan/v3dv_cmd_buffer.c | 17 +---------- src/gallium/drivers/v3d/v3dx_draw.c | 17 +---------- 3 files changed, 45 insertions(+), 32 deletions(-) create mode 100644 src/broadcom/common/v3d_csd.h diff --git a/src/broadcom/common/v3d_csd.h b/src/broadcom/common/v3d_csd.h new file mode 100644 index 00000000000..dc1bd11efc5 --- /dev/null +++ b/src/broadcom/common/v3d_csd.h @@ -0,0 +1,43 @@ +/* + * Copyright © 2023 Raspberry Pi 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. + */ + +#ifndef V3D_CSD_H +#define V3D_CSD_H + +#define V3D_CSD_CFG012_WG_COUNT_SHIFT 16 +#define V3D_CSD_CFG012_WG_OFFSET_SHIFT 0 +/* Allow this dispatch to start while the last one is still running. */ +#define V3D_CSD_CFG3_OVERLAP_WITH_PREV (1 << 26) +/* Maximum supergroup ID. 6 bits. */ +#define V3D_CSD_CFG3_MAX_SG_ID_SHIFT 20 +/* Batches per supergroup minus 1. 8 bits. */ +#define V3D_CSD_CFG3_BATCHES_PER_SG_M1_SHIFT 12 +/* Workgroups per supergroup, 0 means 16 */ +#define V3D_CSD_CFG3_WGS_PER_SG_SHIFT 8 +#define V3D_CSD_CFG3_WG_SIZE_SHIFT 0 + +#define V3D_CSD_CFG5_PROPAGATE_NANS (1 << 2) +#define V3D_CSD_CFG5_SINGLE_SEG (1 << 1) +#define V3D_CSD_CFG5_THREADING (1 << 0) + +#endif diff --git a/src/broadcom/vulkan/v3dv_cmd_buffer.c b/src/broadcom/vulkan/v3dv_cmd_buffer.c index c8ae5b4e5f5..da4518de100 100644 --- a/src/broadcom/vulkan/v3dv_cmd_buffer.c +++ b/src/broadcom/vulkan/v3dv_cmd_buffer.c @@ -21,6 +21,7 @@ * IN THE SOFTWARE. */ +#include "broadcom/common/v3d_csd.h" #include "v3dv_private.h" #include "util/u_pack_color.h" #include "vk_util.h" @@ -4180,22 +4181,6 @@ cmd_buffer_emit_pre_dispatch(struct v3dv_cmd_buffer *cmd_buffer) cmd_buffer->state.dirty_push_constants_stages &= ~VK_SHADER_STAGE_COMPUTE_BIT; } -#define V3D_CSD_CFG012_WG_COUNT_SHIFT 16 -#define V3D_CSD_CFG012_WG_OFFSET_SHIFT 0 -/* Allow this dispatch to start while the last one is still running. */ -#define V3D_CSD_CFG3_OVERLAP_WITH_PREV (1 << 26) -/* Maximum supergroup ID. 6 bits. */ -#define V3D_CSD_CFG3_MAX_SG_ID_SHIFT 20 -/* Batches per supergroup minus 1. 8 bits. */ -#define V3D_CSD_CFG3_BATCHES_PER_SG_M1_SHIFT 12 -/* Workgroups per supergroup, 0 means 16 */ -#define V3D_CSD_CFG3_WGS_PER_SG_SHIFT 8 -#define V3D_CSD_CFG3_WG_SIZE_SHIFT 0 - -#define V3D_CSD_CFG5_PROPAGATE_NANS (1 << 2) -#define V3D_CSD_CFG5_SINGLE_SEG (1 << 1) -#define V3D_CSD_CFG5_THREADING (1 << 0) - void v3dv_cmd_buffer_rewrite_indirect_csd_job( struct v3dv_device *device, diff --git a/src/gallium/drivers/v3d/v3dx_draw.c b/src/gallium/drivers/v3d/v3dx_draw.c index 0f3802fbf0a..feba9080ec2 100644 --- a/src/gallium/drivers/v3d/v3dx_draw.c +++ b/src/gallium/drivers/v3d/v3dx_draw.c @@ -36,6 +36,7 @@ #include "broadcom/compiler/v3d_compiler.h" #include "broadcom/common/v3d_macros.h" #include "broadcom/common/v3d_util.h" +#include "broadcom/common/v3d_csd.h" #include "broadcom/cle/v3dx_pack.h" void @@ -1267,22 +1268,6 @@ v3d_draw_vbo(struct pipe_context *pctx, const struct pipe_draw_info *info, v3d_flush(pctx); } -#define V3D_CSD_CFG012_WG_COUNT_SHIFT 16 -#define V3D_CSD_CFG012_WG_OFFSET_SHIFT 0 -/* Allow this dispatch to start while the last one is still running. */ -#define V3D_CSD_CFG3_OVERLAP_WITH_PREV (1 << 26) -/* Maximum supergroup ID. 6 bits. */ -#define V3D_CSD_CFG3_MAX_SG_ID_SHIFT 20 -/* Batches per supergroup minus 1. 8 bits. */ -#define V3D_CSD_CFG3_BATCHES_PER_SG_M1_SHIFT 12 -/* Workgroups per supergroup, 0 means 16 */ -#define V3D_CSD_CFG3_WGS_PER_SG_SHIFT 8 -#define V3D_CSD_CFG3_WG_SIZE_SHIFT 0 - -#define V3D_CSD_CFG5_PROPAGATE_NANS (1 << 2) -#define V3D_CSD_CFG5_SINGLE_SEG (1 << 1) -#define V3D_CSD_CFG5_THREADING (1 << 0) - static void v3d_launch_grid(struct pipe_context *pctx, const struct pipe_grid_info *info) {