query_pool = gfx_sub_cmd->query_pool;
}
- sub_cmd->flags |= PVR_SUB_COMMAND_FLAG_OCCLUSION_QUERY;
+ gfx_sub_cmd->has_occlusion_query = true;
util_dynarray_clear(&state->query_indices);
}
src_view->vk.image->format = src_format;
dst_view->vk.image->format = dst_format;
- state->current_sub_cmd->flags |=
- PVR_SUB_COMMAND_FLAG_TRANSFER_SERIALIZE_WITH_FRAG;
+ state->current_sub_cmd->transfer.serialize_with_frag = true;
if (result != VK_SUCCESS)
return result;
primary_sub_cmd->type = sec_sub_cmd->type;
primary_sub_cmd->owned = false;
- primary_sub_cmd->flags = sec_sub_cmd->flags;
list_addtail(&primary_sub_cmd->link, &cmd_buffer->sub_cmds);
PVR_EVENT_TYPE_BARRIER,
};
-enum pvr_sub_command_flags {
- PVR_SUB_COMMAND_FLAG_TRANSFER_SERIALIZE_WITH_FRAG = BITFIELD_BIT(0),
- PVR_SUB_COMMAND_FLAG_OCCLUSION_QUERY = BITFIELD_BIT(1),
-};
-
enum pvr_depth_stencil_usage {
PVR_DEPTH_STENCIL_USAGE_UNDEFINED = 0, /* explicitly treat 0 as undefined */
PVR_DEPTH_STENCIL_USAGE_NEEDED,
* both texture reads and texture writes.
*/
bool frag_uses_texture_rw;
+
+ bool has_occlusion_query;
};
struct pvr_sub_cmd_compute {
};
struct pvr_sub_cmd_transfer {
+ bool serialize_with_frag;
+
/* List of pvr_transfer_cmd type structures. */
struct list_head transfer_cmds;
};
enum pvr_sub_cmd_type type;
- enum pvr_sub_command_flags flags;
-
/* True if the sub_cmd is owned by this command buffer. False if taken from
* a secondary command buffer, in that case we are not supposed to free any
* resources associated with the sub_cmd.
link) {
switch (sub_cmd->type) {
case PVR_SUB_CMD_TYPE_GRAPHICS: {
- if (sub_cmd->flags & PVR_SUB_COMMAND_FLAG_OCCLUSION_QUERY) {
+ if (sub_cmd->gfx.has_occlusion_query) {
struct pvr_sub_cmd_event frag_to_transfer_barrier = {
.type = PVR_EVENT_TYPE_BARRIER,
.barrier = {
break;
case PVR_SUB_CMD_TYPE_TRANSFER: {
- const bool serialize_with_frag =
- sub_cmd->flags & PVR_SUB_COMMAND_FLAG_TRANSFER_SERIALIZE_WITH_FRAG;
+ const bool serialize_with_frag = sub_cmd->transfer.serialize_with_frag;
if (serialize_with_frag) {
struct pvr_sub_cmd_event frag_to_transfer_barrier = {