pvr: Add PVR_SUB_CMD_TYPE_OCCLUSION_QUERY type sub cmd.
Co-authored-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com> Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com> Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com> Reviewed-by: Frank Binns <frank.binns@imgtec.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19371>
This commit is contained in:

committed by
Marge Bot

parent
b85ee36051
commit
963b696511
@@ -95,6 +95,7 @@ static void pvr_cmd_buffer_free_sub_cmd(struct pvr_cmd_buffer *cmd_buffer,
|
||||
break;
|
||||
|
||||
case PVR_SUB_CMD_TYPE_COMPUTE:
|
||||
case PVR_SUB_CMD_TYPE_OCCLUSION_QUERY:
|
||||
pvr_csb_finish(&sub_cmd->compute.control_stream);
|
||||
break;
|
||||
|
||||
@@ -273,7 +274,12 @@ static void pvr_cmd_buffer_update_barriers(struct pvr_cmd_buffer *cmd_buffer,
|
||||
barriers = PVR_PIPELINE_STAGE_COMPUTE_BIT;
|
||||
break;
|
||||
|
||||
case PVR_SUB_CMD_TYPE_OCCLUSION_QUERY:
|
||||
case PVR_SUB_CMD_TYPE_TRANSFER:
|
||||
/* Compute jobs are used for occlusion queries but to copy the results we
|
||||
* have to sync with transfer jobs because vkCmdCopyQueryPoolResults() is
|
||||
* deemed as a transfer operation by the spec.
|
||||
*/
|
||||
barriers = PVR_PIPELINE_STAGE_TRANSFER_BIT;
|
||||
break;
|
||||
|
||||
@@ -1489,6 +1495,7 @@ VkResult pvr_cmd_buffer_end_sub_cmd(struct pvr_cmd_buffer *cmd_buffer)
|
||||
break;
|
||||
}
|
||||
|
||||
case PVR_SUB_CMD_TYPE_OCCLUSION_QUERY:
|
||||
case PVR_SUB_CMD_TYPE_COMPUTE: {
|
||||
struct pvr_sub_cmd_compute *const compute_sub_cmd = &sub_cmd->compute;
|
||||
|
||||
@@ -1663,6 +1670,7 @@ VkResult pvr_cmd_buffer_start_sub_cmd(struct pvr_cmd_buffer *cmd_buffer,
|
||||
}
|
||||
break;
|
||||
|
||||
case PVR_SUB_CMD_TYPE_OCCLUSION_QUERY:
|
||||
case PVR_SUB_CMD_TYPE_COMPUTE:
|
||||
pvr_csb_init(device,
|
||||
PVR_CMD_STREAM_TYPE_COMPUTE,
|
||||
@@ -5686,6 +5694,7 @@ static VkResult pvr_execute_sub_cmd(struct pvr_cmd_buffer *cmd_buffer,
|
||||
primary_sub_cmd->gfx = sec_sub_cmd->gfx;
|
||||
break;
|
||||
|
||||
case PVR_SUB_CMD_TYPE_OCCLUSION_QUERY:
|
||||
case PVR_SUB_CMD_TYPE_COMPUTE:
|
||||
primary_sub_cmd->compute = sec_sub_cmd->compute;
|
||||
break;
|
||||
|
@@ -106,6 +106,7 @@ enum pvr_sub_cmd_type {
|
||||
PVR_SUB_CMD_TYPE_GRAPHICS,
|
||||
PVR_SUB_CMD_TYPE_COMPUTE,
|
||||
PVR_SUB_CMD_TYPE_TRANSFER,
|
||||
PVR_SUB_CMD_TYPE_OCCLUSION_QUERY,
|
||||
PVR_SUB_CMD_TYPE_EVENT,
|
||||
};
|
||||
|
||||
|
@@ -703,6 +703,10 @@ static VkResult pvr_process_cmd_buffer(
|
||||
per_cmd_buffer_syncobjs);
|
||||
break;
|
||||
|
||||
case PVR_SUB_CMD_TYPE_OCCLUSION_QUERY:
|
||||
pvr_finishme("Add support to occlusion query.");
|
||||
break;
|
||||
|
||||
case PVR_SUB_CMD_TYPE_EVENT:
|
||||
result = pvr_process_event_cmd(device,
|
||||
&sub_cmd->event,
|
||||
|
Reference in New Issue
Block a user