fprintf(stderr, ") reason: %s\n", __func__); \
}
-static bool
-is_render_queue_cmd_buffer(const struct anv_cmd_buffer *cmd_buffer)
-{
- struct anv_queue_family *queue_family = cmd_buffer->queue_family;
- return (queue_family->queueFlags & VK_QUEUE_GRAPHICS_BIT) != 0;
-}
-
-static bool
-is_video_queue_cmd_buffer(const struct anv_cmd_buffer *cmd_buffer)
-{
- struct anv_queue_family *queue_family = cmd_buffer->queue_family;
- return (queue_family->queueFlags & VK_QUEUE_VIDEO_DECODE_BIT_KHR) != 0;
-}
-
ALWAYS_INLINE static void
genX(emit_dummy_post_sync_op)(struct anv_cmd_buffer *cmd_buffer,
uint32_t vertex_count)
if (cmd_buffer->vk.level == VK_COMMAND_BUFFER_LEVEL_PRIMARY)
cmd_buffer->usage_flags &= ~VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT;
- if (is_video_queue_cmd_buffer(cmd_buffer))
- return VK_SUCCESS;
-
trace_intel_begin_cmd_buffer(&cmd_buffer->trace);
+ if (anv_cmd_buffer_is_video_queue(cmd_buffer))
+ return VK_SUCCESS;
+
genX(cmd_buffer_emit_state_base_address)(cmd_buffer);
/* We sometimes store vertex data in the dynamic state buffer for blorp
if (anv_batch_has_error(&cmd_buffer->batch))
return cmd_buffer->batch.status;
- if (is_video_queue_cmd_buffer(cmd_buffer)) {
+ anv_measure_endcommandbuffer(cmd_buffer);
+
+ if (anv_cmd_buffer_is_video_queue(cmd_buffer)) {
+ trace_intel_end_cmd_buffer(&cmd_buffer->trace, cmd_buffer->vk.level);
anv_cmd_buffer_end_batch_buffer(cmd_buffer);
return VK_SUCCESS;
}
- anv_measure_endcommandbuffer(cmd_buffer);
-
genX(cmd_buffer_flush_generated_draws)(cmd_buffer);
/* Turn on object level preemption if it is disabled to have it in known
VkAccessFlags2 src_flags = 0;
VkAccessFlags2 dst_flags = 0;
- if (is_video_queue_cmd_buffer(cmd_buffer))
+ if (anv_cmd_buffer_is_video_queue(cmd_buffer))
return;
for (uint32_t i = 0; i < dep_info->memoryBarrierCount; i++) {
genX(cmd_buffer_config_l3)(cmd_buffer, kernel->l3_config);
- if (is_render_queue_cmd_buffer(cmd_buffer))
+ if (anv_cmd_buffer_is_render_queue(cmd_buffer))
genX(flush_pipeline_select_gpgpu)(cmd_buffer);
/* Apply any pending pipeline flushes we may have. We want to apply them
struct anv_cmd_graphics_state *gfx = &cmd_buffer->state.gfx;
VkResult result;
- if (!is_render_queue_cmd_buffer(cmd_buffer)) {
+ if (!anv_cmd_buffer_is_render_queue(cmd_buffer)) {
assert(!"Trying to start a render pass on non-render queue!");
anv_batch_set_error(&cmd_buffer->batch, VK_ERROR_UNKNOWN);
return;
ANV_FROM_HANDLE(anv_cmd_buffer, cmd_buffer, commandBuffer);
ANV_FROM_HANDLE(anv_event, event, _event);
- if (is_video_queue_cmd_buffer(cmd_buffer)) {
+ if (anv_cmd_buffer_is_video_queue(cmd_buffer)) {
anv_batch_emit(&cmd_buffer->batch, GENX(MI_FLUSH_DW), flush) {
flush.PostSyncOperation = WriteImmediateData;
flush.Address = anv_state_pool_state_address(
ANV_FROM_HANDLE(anv_cmd_buffer, cmd_buffer, commandBuffer);
ANV_FROM_HANDLE(anv_event, event, _event);
- if (is_video_queue_cmd_buffer(cmd_buffer)) {
+ if (anv_cmd_buffer_is_video_queue(cmd_buffer)) {
anv_batch_emit(&cmd_buffer->batch, GENX(MI_FLUSH_DW), flush) {
flush.PostSyncOperation = WriteImmediateData;
flush.Address = anv_state_pool_state_address(