mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 09:38:07 +02:00
panvk: add get_subqueue_stages
This is a minor refactoring with no functional change. Signed-off-by: Chia-I Wu <olvaffe@gmail.com> Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32074>
This commit is contained in:
parent
764cb8aebb
commit
4a598e946c
1 changed files with 25 additions and 18 deletions
|
|
@ -189,6 +189,30 @@ panvk_per_arch(EndCommandBuffer)(VkCommandBuffer commandBuffer)
|
|||
return vk_command_buffer_end(&cmdbuf->vk);
|
||||
}
|
||||
|
||||
static VkPipelineStageFlags2
|
||||
get_subqueue_stages(enum panvk_subqueue_id subqueue)
|
||||
{
|
||||
switch (subqueue) {
|
||||
case PANVK_SUBQUEUE_VERTEX_TILER:
|
||||
return VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT |
|
||||
VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT |
|
||||
VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT |
|
||||
VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT;
|
||||
case PANVK_SUBQUEUE_FRAGMENT:
|
||||
return VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT |
|
||||
VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT |
|
||||
VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT |
|
||||
VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT |
|
||||
VK_PIPELINE_STAGE_2_COPY_BIT | VK_PIPELINE_STAGE_2_RESOLVE_BIT |
|
||||
VK_PIPELINE_STAGE_2_BLIT_BIT | VK_PIPELINE_STAGE_2_CLEAR_BIT;
|
||||
case PANVK_SUBQUEUE_COMPUTE:
|
||||
return VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT |
|
||||
VK_PIPELINE_STAGE_2_COPY_BIT;
|
||||
default:
|
||||
unreachable("Invalid subqueue id");
|
||||
}
|
||||
}
|
||||
|
||||
static bool
|
||||
src_stages_need_draw_flush(VkPipelineStageFlags2 stages)
|
||||
{
|
||||
|
|
@ -207,24 +231,7 @@ static bool
|
|||
stages_cover_subqueue(enum panvk_subqueue_id subqueue,
|
||||
VkPipelineStageFlags2 stages)
|
||||
{
|
||||
static const VkPipelineStageFlags2 queue_coverage[PANVK_SUBQUEUE_COUNT] = {
|
||||
[PANVK_SUBQUEUE_VERTEX_TILER] =
|
||||
VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT |
|
||||
VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT |
|
||||
VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT |
|
||||
VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT,
|
||||
[PANVK_SUBQUEUE_FRAGMENT] =
|
||||
VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT |
|
||||
VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT |
|
||||
VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT |
|
||||
VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT |
|
||||
VK_PIPELINE_STAGE_2_COPY_BIT | VK_PIPELINE_STAGE_2_BLIT_BIT |
|
||||
VK_PIPELINE_STAGE_2_RESOLVE_BIT | VK_PIPELINE_STAGE_2_CLEAR_BIT,
|
||||
[PANVK_SUBQUEUE_COMPUTE] =
|
||||
VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT | VK_PIPELINE_STAGE_2_COPY_BIT,
|
||||
};
|
||||
|
||||
return (stages & queue_coverage[subqueue]) != 0;
|
||||
return (stages & get_subqueue_stages(subqueue)) != 0;
|
||||
}
|
||||
|
||||
static uint32_t
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue