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;
|
break;
|
||||||
|
|
||||||
case PVR_SUB_CMD_TYPE_COMPUTE:
|
case PVR_SUB_CMD_TYPE_COMPUTE:
|
||||||
|
case PVR_SUB_CMD_TYPE_OCCLUSION_QUERY:
|
||||||
pvr_csb_finish(&sub_cmd->compute.control_stream);
|
pvr_csb_finish(&sub_cmd->compute.control_stream);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -273,7 +274,12 @@ static void pvr_cmd_buffer_update_barriers(struct pvr_cmd_buffer *cmd_buffer,
|
|||||||
barriers = PVR_PIPELINE_STAGE_COMPUTE_BIT;
|
barriers = PVR_PIPELINE_STAGE_COMPUTE_BIT;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case PVR_SUB_CMD_TYPE_OCCLUSION_QUERY:
|
||||||
case PVR_SUB_CMD_TYPE_TRANSFER:
|
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;
|
barriers = PVR_PIPELINE_STAGE_TRANSFER_BIT;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -1489,6 +1495,7 @@ VkResult pvr_cmd_buffer_end_sub_cmd(struct pvr_cmd_buffer *cmd_buffer)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case PVR_SUB_CMD_TYPE_OCCLUSION_QUERY:
|
||||||
case PVR_SUB_CMD_TYPE_COMPUTE: {
|
case PVR_SUB_CMD_TYPE_COMPUTE: {
|
||||||
struct pvr_sub_cmd_compute *const compute_sub_cmd = &sub_cmd->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;
|
break;
|
||||||
|
|
||||||
|
case PVR_SUB_CMD_TYPE_OCCLUSION_QUERY:
|
||||||
case PVR_SUB_CMD_TYPE_COMPUTE:
|
case PVR_SUB_CMD_TYPE_COMPUTE:
|
||||||
pvr_csb_init(device,
|
pvr_csb_init(device,
|
||||||
PVR_CMD_STREAM_TYPE_COMPUTE,
|
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;
|
primary_sub_cmd->gfx = sec_sub_cmd->gfx;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case PVR_SUB_CMD_TYPE_OCCLUSION_QUERY:
|
||||||
case PVR_SUB_CMD_TYPE_COMPUTE:
|
case PVR_SUB_CMD_TYPE_COMPUTE:
|
||||||
primary_sub_cmd->compute = sec_sub_cmd->compute;
|
primary_sub_cmd->compute = sec_sub_cmd->compute;
|
||||||
break;
|
break;
|
||||||
|
@@ -106,6 +106,7 @@ enum pvr_sub_cmd_type {
|
|||||||
PVR_SUB_CMD_TYPE_GRAPHICS,
|
PVR_SUB_CMD_TYPE_GRAPHICS,
|
||||||
PVR_SUB_CMD_TYPE_COMPUTE,
|
PVR_SUB_CMD_TYPE_COMPUTE,
|
||||||
PVR_SUB_CMD_TYPE_TRANSFER,
|
PVR_SUB_CMD_TYPE_TRANSFER,
|
||||||
|
PVR_SUB_CMD_TYPE_OCCLUSION_QUERY,
|
||||||
PVR_SUB_CMD_TYPE_EVENT,
|
PVR_SUB_CMD_TYPE_EVENT,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -703,6 +703,10 @@ static VkResult pvr_process_cmd_buffer(
|
|||||||
per_cmd_buffer_syncobjs);
|
per_cmd_buffer_syncobjs);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case PVR_SUB_CMD_TYPE_OCCLUSION_QUERY:
|
||||||
|
pvr_finishme("Add support to occlusion query.");
|
||||||
|
break;
|
||||||
|
|
||||||
case PVR_SUB_CMD_TYPE_EVENT:
|
case PVR_SUB_CMD_TYPE_EVENT:
|
||||||
result = pvr_process_event_cmd(device,
|
result = pvr_process_event_cmd(device,
|
||||||
&sub_cmd->event,
|
&sub_cmd->event,
|
||||||
|
Reference in New Issue
Block a user