pvr: Add basic skeleton for event sub cmd.

Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Reviewed-by: Sarah Walker <Sarah.Walker@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18612>
This commit is contained in:
Karmjit Mahil
2022-09-15 12:01:37 +01:00
committed by Marge Bot
parent 299d294304
commit def3b88da5
3 changed files with 34 additions and 2 deletions

View File

@@ -104,6 +104,9 @@ static void pvr_cmd_buffer_free_sub_cmd(struct pvr_cmd_buffer *cmd_buffer,
}
break;
case PVR_SUB_CMD_TYPE_EVENT:
break;
default:
pvr_finishme("Unsupported sub-command type %d", sub_cmd->type);
break;
@@ -263,6 +266,10 @@ static void pvr_cmd_buffer_update_barriers(struct pvr_cmd_buffer *cmd_buffer,
barriers = PVR_PIPELINE_STAGE_TRANSFER_BIT;
break;
case PVR_SUB_CMD_TYPE_EVENT:
barriers = 0;
break;
default:
barriers = 0;
pvr_finishme("Unsupported sub-command type %d", type);
@@ -1563,6 +1570,9 @@ static VkResult pvr_cmd_buffer_end_sub_cmd(struct pvr_cmd_buffer *cmd_buffer)
case PVR_SUB_CMD_TYPE_TRANSFER:
break;
case PVR_SUB_CMD_TYPE_EVENT:
break;
default:
pvr_finishme("Unsupported sub-command type %d", sub_cmd->type);
break;
@@ -1713,6 +1723,10 @@ static VkResult pvr_cmd_buffer_start_sub_cmd(struct pvr_cmd_buffer *cmd_buffer,
list_inithead(&sub_cmd->transfer.transfer_cmds);
break;
case PVR_SUB_CMD_TYPE_EVENT:
/* TODO: Add support for joining consecutive event sub_cmd? */
break;
default:
pvr_finishme("Unsupported sub-command type %d", type);
break;

View File

@@ -111,6 +111,14 @@ enum pvr_sub_cmd_type {
PVR_SUB_CMD_TYPE_GRAPHICS,
PVR_SUB_CMD_TYPE_COMPUTE,
PVR_SUB_CMD_TYPE_TRANSFER,
PVR_SUB_CMD_TYPE_EVENT,
};
enum pvr_event_type {
PVR_EVENT_TYPE_SET,
PVR_EVENT_TYPE_RESET,
PVR_EVENT_TYPE_WAIT,
PVR_EVENT_TYPE_BARRIER,
};
enum pvr_depth_stencil_usage {
@@ -710,6 +718,10 @@ struct pvr_sub_cmd_transfer {
struct list_head transfer_cmds;
};
struct pvr_sub_cmd_event {
enum pvr_event_type type;
};
struct pvr_sub_cmd {
/* This links the subcommand in pvr_cmd_buffer:sub_cmds list. */
struct list_head link;
@@ -720,6 +732,7 @@ struct pvr_sub_cmd {
struct pvr_sub_cmd_gfx gfx;
struct pvr_sub_cmd_compute compute;
struct pvr_sub_cmd_transfer transfer;
struct pvr_sub_cmd_event event;
};
};

View File

@@ -509,9 +509,14 @@ pvr_process_cmd_buffer(struct pvr_device *device,
completions);
break;
case PVR_SUB_CMD_TYPE_EVENT:
pvr_finishme("Add support to process event sub cmds.");
result = vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
break;
default:
pvr_finishme("Unsupported sub-command type %d", sub_cmd->type);
return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
mesa_loge("Unsupported sub-command type %d", sub_cmd->type);
result = vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
}
if (result != VK_SUCCESS) {