v3d/v3dv: move V3D_CSD definitions to a separate file
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 <mcanal@igalia.com> Reviewed-by: Iago Toral Quiroga <itoral@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26448>
This commit is contained in:
43
src/broadcom/common/v3d_csd.h
Normal file
43
src/broadcom/common/v3d_csd.h
Normal file
@@ -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
|
@@ -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,
|
||||
|
@@ -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)
|
||||
{
|
||||
|
Reference in New Issue
Block a user