mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-06 17:30:20 +01:00
pvr: Support single core transfer queue commands on multicore GPUs
Co-authored-by: Matt Coster <matt.coster@imgtec.com> Signed-off-by: Sarah Walker <sarah.walker@imgtec.com> Signed-off-by: Matt Coster <matt.coster@imgtec.com> Acked-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21550>
This commit is contained in:
parent
c3e7060ba1
commit
5ac3c8d0df
3 changed files with 18 additions and 2 deletions
|
|
@ -5038,6 +5038,17 @@ pvr_submit_info_stream_init(struct pvr_transfer_ctx *ctx,
|
|||
assert(cmd->fw_stream_len <= ARRAY_SIZE(cmd->fw_stream));
|
||||
}
|
||||
|
||||
static void
|
||||
pvr_submit_info_flags_init(const struct pvr_device_info *const dev_info,
|
||||
const struct pvr_transfer_prep_data *const prep_data,
|
||||
uint32_t *const flags)
|
||||
{
|
||||
*flags = prep_data->flags;
|
||||
|
||||
if (PVR_HAS_FEATURE(dev_info, gpu_multicore_support))
|
||||
*flags |= PVR_WINSYS_TRANSFER_FLAG_SINGLE_CORE;
|
||||
}
|
||||
|
||||
static void pvr_transfer_job_ws_submit_info_init(
|
||||
struct pvr_transfer_ctx *ctx,
|
||||
struct pvr_transfer_submit *submit,
|
||||
|
|
@ -5045,6 +5056,7 @@ static void pvr_transfer_job_ws_submit_info_init(
|
|||
struct pvr_winsys_transfer_submit_info *submit_info)
|
||||
{
|
||||
const struct pvr_device *const device = ctx->device;
|
||||
const struct pvr_device_info *const dev_info = &device->pdevice->dev_info;
|
||||
|
||||
submit_info->frame_num = device->global_queue_present_count;
|
||||
submit_info->job_num = device->global_cmd_buffer_submit_count;
|
||||
|
|
@ -5056,8 +5068,7 @@ static void pvr_transfer_job_ws_submit_info_init(
|
|||
struct pvr_transfer_prep_data *prep_data = &submit->prep_array[i];
|
||||
|
||||
pvr_submit_info_stream_init(ctx, prep_data, cmd);
|
||||
|
||||
cmd->flags = prep_data->flags;
|
||||
pvr_submit_info_flags_init(dev_info, prep_data, &cmd->flags);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -251,6 +251,8 @@ struct pvr_winsys_transfer_ctx {
|
|||
struct pvr_winsys *ws;
|
||||
};
|
||||
|
||||
#define PVR_WINSYS_TRANSFER_FLAG_SINGLE_CORE BITFIELD_BIT(0U)
|
||||
|
||||
#define PVR_TRANSFER_MAX_PREPARES_PER_SUBMIT 16U
|
||||
#define PVR_TRANSFER_MAX_RENDER_TARGETS 3U
|
||||
|
||||
|
|
|
|||
|
|
@ -228,6 +228,9 @@ static void pvr_srv_transfer_cmds_init(
|
|||
submit_cmd->fw_stream,
|
||||
submit_cmd->fw_stream_len,
|
||||
dev_info);
|
||||
|
||||
if (submit_info->cmds[i].flags & PVR_WINSYS_TRANSFER_FLAG_SINGLE_CORE)
|
||||
cmd->flags |= ROGUE_FWIF_CMDTRANSFER_SINGLE_CORE;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue