pvr: use common command buffer status
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16922>
This commit is contained in:
@@ -166,7 +166,6 @@ static void pvr_cmd_buffer_reset(struct vk_command_buffer *vk_cmd_buffer,
|
||||
|
||||
cmd_buffer->usage_flags = 0;
|
||||
cmd_buffer->state.status = VK_SUCCESS;
|
||||
cmd_buffer->status = PVR_CMD_BUFFER_STATUS_INITIAL;
|
||||
}
|
||||
|
||||
static void pvr_cmd_buffer_destroy(struct vk_command_buffer *vk_cmd_buffer)
|
||||
@@ -213,7 +212,6 @@ static VkResult pvr_cmd_buffer_create(struct pvr_device *device,
|
||||
util_dynarray_init(&cmd_buffer->deferred_csb_commands, NULL);
|
||||
|
||||
cmd_buffer->state.status = VK_SUCCESS;
|
||||
cmd_buffer->status = PVR_CMD_BUFFER_STATUS_INITIAL;
|
||||
|
||||
list_inithead(&cmd_buffer->sub_cmds);
|
||||
list_inithead(&cmd_buffer->bo_list);
|
||||
@@ -2660,8 +2658,7 @@ VkResult pvr_BeginCommandBuffer(VkCommandBuffer commandBuffer,
|
||||
struct pvr_cmd_buffer_state *state;
|
||||
VkResult result;
|
||||
|
||||
if (cmd_buffer->status != PVR_CMD_BUFFER_STATUS_INITIAL)
|
||||
pvr_cmd_buffer_reset(&cmd_buffer->vk, 0);
|
||||
vk_command_buffer_begin(&cmd_buffer->vk, pBeginInfo);
|
||||
|
||||
cmd_buffer->usage_flags = pBeginInfo->flags;
|
||||
state = &cmd_buffer->state;
|
||||
@@ -2704,8 +2701,6 @@ VkResult pvr_BeginCommandBuffer(VkCommandBuffer commandBuffer,
|
||||
0xFF,
|
||||
sizeof(*state->barriers_needed) * ARRAY_SIZE(state->barriers_needed));
|
||||
|
||||
cmd_buffer->status = PVR_CMD_BUFFER_STATUS_RECORDING;
|
||||
|
||||
return VK_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -6507,7 +6502,7 @@ VkResult pvr_EndCommandBuffer(VkCommandBuffer commandBuffer)
|
||||
*
|
||||
* CommandBuffer must be in the recording state.
|
||||
*/
|
||||
assert(cmd_buffer->status == PVR_CMD_BUFFER_STATUS_RECORDING);
|
||||
assert(cmd_buffer->vk.state == MESA_VK_COMMAND_BUFFER_STATE_RECORDING);
|
||||
|
||||
if (state->status != VK_SUCCESS)
|
||||
return state->status;
|
||||
@@ -6516,7 +6511,5 @@ VkResult pvr_EndCommandBuffer(VkCommandBuffer commandBuffer)
|
||||
if (result != VK_SUCCESS)
|
||||
return result;
|
||||
|
||||
cmd_buffer->status = PVR_CMD_BUFFER_STATUS_EXECUTABLE;
|
||||
|
||||
return VK_SUCCESS;
|
||||
return vk_command_buffer_end(&cmd_buffer->vk);
|
||||
}
|
||||
|
@@ -92,13 +92,6 @@ enum pvr_memlayout {
|
||||
PVR_MEMLAYOUT_3DTWIDDLED,
|
||||
};
|
||||
|
||||
enum pvr_cmd_buffer_status {
|
||||
PVR_CMD_BUFFER_STATUS_INVALID = 0, /* explicitly treat 0 as invalid */
|
||||
PVR_CMD_BUFFER_STATUS_INITIAL,
|
||||
PVR_CMD_BUFFER_STATUS_RECORDING,
|
||||
PVR_CMD_BUFFER_STATUS_EXECUTABLE,
|
||||
};
|
||||
|
||||
enum pvr_texture_state {
|
||||
PVR_TEXTURE_STATE_SAMPLE,
|
||||
PVR_TEXTURE_STATE_STORAGE,
|
||||
@@ -1077,9 +1070,6 @@ struct pvr_cmd_buffer {
|
||||
|
||||
struct pvr_device *device;
|
||||
|
||||
/* Buffer status, invalid/initial/recording/executable */
|
||||
enum pvr_cmd_buffer_status status;
|
||||
|
||||
/* Buffer usage flags */
|
||||
VkCommandBufferUsageFlags usage_flags;
|
||||
|
||||
@@ -1733,7 +1723,7 @@ VK_DEFINE_NONDISP_HANDLE_CASTS(pvr_render_pass,
|
||||
#define PVR_CHECK_COMMAND_BUFFER_BUILDING_STATE(cmd_buffer) \
|
||||
do { \
|
||||
struct pvr_cmd_buffer *const _cmd_buffer = (cmd_buffer); \
|
||||
if (_cmd_buffer->status != PVR_CMD_BUFFER_STATUS_RECORDING) { \
|
||||
if (_cmd_buffer->vk.state != MESA_VK_COMMAND_BUFFER_STATE_RECORDING) { \
|
||||
vk_errorf(_cmd_buffer, \
|
||||
VK_ERROR_OUT_OF_DEVICE_MEMORY, \
|
||||
"Command buffer is not in recording state"); \
|
||||
|
@@ -661,7 +661,7 @@ static VkResult pvr_process_cmd_buffer(
|
||||
PVR_FROM_HANDLE(pvr_cmd_buffer, cmd_buffer, commandBuffer);
|
||||
VkResult result;
|
||||
|
||||
assert(cmd_buffer->status == PVR_CMD_BUFFER_STATUS_EXECUTABLE);
|
||||
assert(cmd_buffer->vk.state == MESA_VK_COMMAND_BUFFER_STATE_EXECUTABLE);
|
||||
|
||||
list_for_each_entry_safe (struct pvr_sub_cmd,
|
||||
sub_cmd,
|
||||
@@ -718,10 +718,8 @@ static VkResult pvr_process_cmd_buffer(
|
||||
result = vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
}
|
||||
|
||||
if (result != VK_SUCCESS) {
|
||||
cmd_buffer->status = PVR_CMD_BUFFER_STATUS_INVALID;
|
||||
if (result != VK_SUCCESS)
|
||||
return result;
|
||||
}
|
||||
|
||||
p_atomic_inc(&device->global_queue_job_count);
|
||||
}
|
||||
|
Reference in New Issue
Block a user