mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-20 05:10:11 +01:00
nvk: Skip barriers if engine is not present
Reviewed-by: Thomas H.P. Andersen <phomes@gmail.com> Reviewed-by: Mary Guillemard <mary@mary.zone> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36617>
This commit is contained in:
parent
a431e8dfe6
commit
c94f721b72
1 changed files with 21 additions and 0 deletions
|
|
@ -529,6 +529,10 @@ nvk_cmd_flush_wait_dep(struct nvk_cmd_buffer *cmd,
|
|||
const VkDependencyInfo *dep,
|
||||
bool wait)
|
||||
{
|
||||
VkQueueFlags queue_flags = nvk_cmd_buffer_queue_flags(cmd);
|
||||
enum nvkmd_engines engines =
|
||||
nvk_queue_engines_from_queue_flags(queue_flags);
|
||||
|
||||
enum nvk_barrier barriers = 0;
|
||||
|
||||
/* For asymmetric, we don't know what the access flags will be yet.
|
||||
|
|
@ -564,6 +568,9 @@ nvk_cmd_flush_wait_dep(struct nvk_cmd_buffer *cmd,
|
|||
bar->srcAccessMask);
|
||||
}
|
||||
|
||||
if (!(engines & (NVKMD_ENGINE_3D | NVKMD_ENGINE_COMPUTE)))
|
||||
barriers &= ~NVK_BARRIER_FLUSH_SHADER_DATA;
|
||||
|
||||
if (!barriers)
|
||||
return;
|
||||
|
||||
|
|
@ -655,6 +662,20 @@ nvk_cmd_invalidate_deps(struct nvk_cmd_buffer *cmd,
|
|||
}
|
||||
}
|
||||
|
||||
VkQueueFlags queue_flags = nvk_cmd_buffer_queue_flags(cmd);
|
||||
enum nvkmd_engines engines =
|
||||
nvk_queue_engines_from_queue_flags(queue_flags);
|
||||
|
||||
if (!(engines & (NVKMD_ENGINE_3D | NVKMD_ENGINE_COMPUTE)))
|
||||
barriers &= ~(NVK_BARRIER_INVALIDATE_TEX_DATA |
|
||||
NVK_BARRIER_INVALIDATE_RASTER_CACHE |
|
||||
NVK_BARRIER_INVALIDATE_SHADER_DATA |
|
||||
NVK_BARRIER_INVALIDATE_CONSTANT |
|
||||
NVK_BARRIER_INVALIDATE_MME_DATA);
|
||||
|
||||
if (!(engines & NVKMD_ENGINE_COMPUTE))
|
||||
barriers &= ~NVK_BARRIER_INVALIDATE_QMD_DATA;
|
||||
|
||||
if (!barriers)
|
||||
return;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue