From da20c6c73fbb0399f60c082900d51c5ede1b704c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Sun, 10 Dec 2023 17:13:59 -0500 Subject: [PATCH] radeonsi: don't use staging uploads for buffers & shaders with all VRAM visible Reviewed-by: Qiang Yu Acked-by: Pierre-Eric Pelloux-Prayer Part-of: --- src/gallium/drivers/radeonsi/si_buffer.c | 2 +- src/gallium/drivers/radeonsi/si_shader.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_buffer.c b/src/gallium/drivers/radeonsi/si_buffer.c index 85d0ea5dffc..91d5bb97650 100644 --- a/src/gallium/drivers/radeonsi/si_buffer.c +++ b/src/gallium/drivers/radeonsi/si_buffer.c @@ -135,7 +135,7 @@ void si_init_resource_fields(struct si_screen *sscreen, struct si_resource *res, * because they might never be moved back again. If a buffer is large enough, * upload data by copying from a temporary GTT buffer. */ - if (sscreen->info.has_dedicated_vram && + if (sscreen->info.has_dedicated_vram && !sscreen->info.all_vram_visible && !res->b.cpu_storage && /* TODO: The CPU storage breaks this. */ size >= sscreen->options.max_vram_map_size) res->b.b.flags |= PIPE_RESOURCE_FLAG_DONT_MAP_DIRECTLY; diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index bdceaca1181..1aa1b037687 100644 --- a/src/gallium/drivers/radeonsi/si_shader.c +++ b/src/gallium/drivers/radeonsi/si_shader.c @@ -1105,7 +1105,7 @@ bool si_shader_binary_upload(struct si_screen *sscreen, struct si_shader *shader uint64_t scratch_va) { bool dma_upload = !(sscreen->debug_flags & DBG(NO_DMA_SHADERS)) && - sscreen->info.has_dedicated_vram; + sscreen->info.has_dedicated_vram && !sscreen->info.all_vram_visible; if (shader->binary.type == SI_SHADER_BINARY_ELF) { return upload_binary_elf(sscreen, shader, scratch_va, dma_upload);