mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 19:40:10 +01:00
Revert "Revert "radeonsi: use staging buffer uploads for most VRAM buffers""
This reverts commit af0435cbfe.
This optimization is useful for some applications (eg: issue 3759), so re-enable it.
The next 2 commits will address 2 short comings of this optimization.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3759
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7098>
This commit is contained in:
parent
128b2de63b
commit
a5e0a2e101
1 changed files with 11 additions and 1 deletions
|
|
@ -204,8 +204,18 @@ void si_init_resource_fields(struct si_screen *sscreen, struct si_resource *res,
|
|||
if (res->domains & RADEON_DOMAIN_VRAM) {
|
||||
res->vram_usage = size;
|
||||
|
||||
/* We don't want to evict buffers from VRAM by mapping them for CPU access,
|
||||
* because they might never be moved back again. If a buffer is large enough,
|
||||
* upload data by copying from a temporary GTT buffer. 8K might not seem much,
|
||||
* but there can be 100000 buffers.
|
||||
*
|
||||
* This tweak improves performance for viewperf.
|
||||
*/
|
||||
const unsigned min_size = 8196; /* tuned to minimize mapped VRAM */
|
||||
const unsigned max_staging_uploads = 1; /* number of uploads before mapping directly */
|
||||
|
||||
res->max_forced_staging_uploads = res->b.max_forced_staging_uploads =
|
||||
sscreen->info.has_dedicated_vram && size >= sscreen->info.vram_vis_size / 4 ? 1 : 0;
|
||||
sscreen->info.has_dedicated_vram && size >= min_size ? max_staging_uploads : 0;
|
||||
} else if (res->domains & RADEON_DOMAIN_GTT) {
|
||||
res->gart_usage = size;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue