lavapipe: don't block begin/end cmdbuf pipeline barriers
these are now useful
fixes #9972
Fixes: 3b547a9b58
("lavapipe: Switch to the common sync framework")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25652>
This commit is contained in:

committed by
Marge Bot

parent
7078cd3652
commit
e8a76adde8
@@ -4405,7 +4405,6 @@ static void lvp_execute_cmd_buffer(struct list_head *cmds,
|
|||||||
struct rendering_state *state, bool print_cmds)
|
struct rendering_state *state, bool print_cmds)
|
||||||
{
|
{
|
||||||
struct vk_cmd_queue_entry *cmd;
|
struct vk_cmd_queue_entry *cmd;
|
||||||
bool first = true;
|
|
||||||
bool did_flush = false;
|
bool did_flush = false;
|
||||||
|
|
||||||
LIST_FOR_EACH_ENTRY(cmd, cmds, cmd_link) {
|
LIST_FOR_EACH_ENTRY(cmd, cmds, cmd_link) {
|
||||||
@@ -4530,10 +4529,8 @@ static void lvp_execute_cmd_buffer(struct list_head *cmds,
|
|||||||
handle_resolve_image(cmd, state);
|
handle_resolve_image(cmd, state);
|
||||||
break;
|
break;
|
||||||
case VK_CMD_PIPELINE_BARRIER2:
|
case VK_CMD_PIPELINE_BARRIER2:
|
||||||
/* skip flushes since every cmdbuf does a flush
|
/* flushes are actually stalls, so multiple flushes are redundant */
|
||||||
after iterating its cmds and so this is redundant
|
if (did_flush)
|
||||||
*/
|
|
||||||
if (first || did_flush || cmd->cmd_link.next == cmds)
|
|
||||||
continue;
|
continue;
|
||||||
handle_pipeline_barrier(cmd, state);
|
handle_pipeline_barrier(cmd, state);
|
||||||
did_flush = true;
|
did_flush = true;
|
||||||
@@ -4766,7 +4763,6 @@ static void lvp_execute_cmd_buffer(struct list_head *cmds,
|
|||||||
unreachable("Unsupported command");
|
unreachable("Unsupported command");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
first = false;
|
|
||||||
did_flush = false;
|
did_flush = false;
|
||||||
if (!cmd->cmd_link.next)
|
if (!cmd->cmd_link.next)
|
||||||
break;
|
break;
|
||||||
|
Reference in New Issue
Block a user