diff options
author | Jason Ekstrand <[email protected]> | 2017-03-10 17:50:01 -0800 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2017-04-07 19:24:14 -0700 |
commit | bc68aa42bd7fcbbf5d388a3804c3b41cc71812a8 (patch) | |
tree | a6ef1ff4a2e4769f603f1af7218b098738319d48 /src/intel/vulkan/genX_cmd_buffer.c | |
parent | e5bbf8be36659ec700f416bbf5fc57d92127bfac (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.c | 10 |
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 |