tu: Reset has_tess after renderpass

Don't force sysmem for render passes after the one that uses
tessellation.

Also, move this into tu_cmd_state as that's where it belongs.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6009>
This commit is contained in:
Connor Abbott 2020-08-03 11:13:56 +02:00
parent 06332ef60e
commit f226b198f5
2 changed files with 6 additions and 6 deletions

View File

@ -595,7 +595,7 @@ use_sysmem_rendering(struct tu_cmd_buffer *cmd)
cmd->state.render_area.extent.height == 0)
return true;
if (cmd->has_tess)
if (cmd->state.has_tess)
return true;
return false;
@ -2529,8 +2529,8 @@ tu_CmdExecuteCommands(VkCommandBuffer commandBuffer,
break;
}
if (secondary->has_tess)
cmd->has_tess = true;
if (secondary->state.has_tess)
cmd->state.has_tess = true;
} else {
assert(tu_cs_is_empty(&secondary->draw_cs));
assert(tu_cs_is_empty(&secondary->draw_epilogue_cs));
@ -3037,7 +3037,7 @@ tu6_draw_common(struct tu_cmd_buffer *cmd,
if (has_tess) {
uint64_t tess_factor_iova = 0;
cmd->has_tess = true;
cmd->state.has_tess = true;
result = tu6_emit_tess_consts(cmd, draw_count, pipeline, &tess_consts, &tess_factor_iova);
if (result != VK_SUCCESS)
return result;
@ -3670,6 +3670,7 @@ tu_CmdEndRenderPass(VkCommandBuffer commandBuffer)
cmd_buffer->state.pass = NULL;
cmd_buffer->state.subpass = NULL;
cmd_buffer->state.framebuffer = NULL;
cmd_buffer->state.has_tess = false;
}
void

View File

@ -922,6 +922,7 @@ struct tu_cmd_state
struct tu_cs_entry tile_store_ib;
bool xfb_used;
bool has_tess;
};
struct tu_cmd_pool
@ -1007,8 +1008,6 @@ struct tu_cmd_buffer
struct tu_cs draw_epilogue_cs;
struct tu_cs sub_cs;
bool has_tess;
uint32_t vsc_draw_strm_pitch;
uint32_t vsc_prim_strm_pitch;
};