summaryrefslogtreecommitdiffstats
path: root/src/intel/vulkan/genX_cmd_buffer.c
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2017-03-10 17:50:01 -0800
committerJason Ekstrand <[email protected]>2017-04-07 19:24:14 -0700
commitbc68aa42bd7fcbbf5d388a3804c3b41cc71812a8 (patch)
treea6ef1ff4a2e4769f603f1af7218b098738319d48 /src/intel/vulkan/genX_cmd_buffer.c
parente5bbf8be36659ec700f416bbf5fc57d92127bfac (diff)
anv: Use subpass dependencies for flushes
Instead of figuring it all out ourselves, just use the information given to us by the client. Reviewed-by: Nanley Chery <[email protected]>
Diffstat (limited to 'src/intel/vulkan/genX_cmd_buffer.c')
-rw-r--r--src/intel/vulkan/genX_cmd_buffer.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c
index aa80b1f85e1..f94b308f995 100644
--- a/src/intel/vulkan/genX_cmd_buffer.c
+++ b/src/intel/vulkan/genX_cmd_buffer.c
@@ -2504,6 +2504,9 @@ void genX(CmdBeginRenderPass)(
genX(flush_pipeline_select_3d)(cmd_buffer);
genX(cmd_buffer_set_subpass)(cmd_buffer, pass->subpasses);
+
+ cmd_buffer->state.pending_pipe_bits |=
+ cmd_buffer->state.pass->subpass_flushes[0];
}
void genX(CmdNextSubpass)(
@@ -2524,6 +2527,10 @@ void genX(CmdNextSubpass)(
cmd_buffer_subpass_transition_layouts(cmd_buffer, true);
genX(cmd_buffer_set_subpass)(cmd_buffer, cmd_buffer->state.subpass + 1);
+
+ uint32_t subpass_id = anv_get_subpass_id(&cmd_buffer->state);
+ cmd_buffer->state.pending_pipe_bits |=
+ cmd_buffer->state.pass->subpass_flushes[subpass_id];
}
void genX(CmdEndRenderPass)(
@@ -2540,6 +2547,9 @@ void genX(CmdEndRenderPass)(
*/
cmd_buffer_subpass_transition_layouts(cmd_buffer, true);
+ cmd_buffer->state.pending_pipe_bits |=
+ cmd_buffer->state.pass->subpass_flushes[cmd_buffer->state.pass->subpass_count];
+
cmd_buffer->state.hiz_enabled = false;
#ifndef NDEBUG