mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-28 16:50:10 +01:00
gallium/radeon: relax requirements on VRAM placements on APUs
This makes Tonga with vramlimit=128 2x faster in Heaven. Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
This commit is contained in:
parent
a57309f807
commit
5a4b74d1ba
4 changed files with 37 additions and 0 deletions
|
|
@ -163,6 +163,14 @@ bool r600_init_resource(struct r600_common_screen *rscreen,
|
|||
flags |= RADEON_FLAG_NO_CPU_ACCESS;
|
||||
}
|
||||
|
||||
/* If VRAM is just stolen system memory, allow both VRAM and GTT,
|
||||
* whichever has free space. If a buffer is evicted from VRAM to GTT,
|
||||
* it will stay there.
|
||||
*/
|
||||
if (!rscreen->info.has_dedicated_vram &&
|
||||
res->domains == RADEON_DOMAIN_VRAM)
|
||||
res->domains = RADEON_DOMAIN_VRAM_GTT;
|
||||
|
||||
if (rscreen->debug_flags & DBG_NO_WC)
|
||||
flags &= ~RADEON_FLAG_GTT_WC;
|
||||
|
||||
|
|
|
|||
|
|
@ -245,6 +245,7 @@ struct radeon_info {
|
|||
enum chip_class chip_class;
|
||||
uint64_t gart_size;
|
||||
uint64_t vram_size;
|
||||
bool has_dedicated_vram;
|
||||
boolean has_virtual_memory;
|
||||
bool gfx_ib_pad_with_type2;
|
||||
boolean has_sdma;
|
||||
|
|
|
|||
|
|
@ -256,6 +256,10 @@ static boolean do_winsys_init(struct amdgpu_winsys *ws, int fd)
|
|||
goto fail;
|
||||
}
|
||||
|
||||
/* Set which chips have dedicated VRAM. */
|
||||
ws->info.has_dedicated_vram =
|
||||
!(ws->amdinfo.ids_flags & AMDGPU_IDS_FLAGS_FUSION);
|
||||
|
||||
/* Set hardware information. */
|
||||
ws->info.gart_size = gtt.heap_size;
|
||||
ws->info.vram_size = vram.heap_size;
|
||||
|
|
|
|||
|
|
@ -297,6 +297,30 @@ static boolean do_winsys_init(struct radeon_drm_winsys *ws)
|
|||
break;
|
||||
}
|
||||
|
||||
/* Set which chips don't have dedicated VRAM. */
|
||||
switch (ws->info.family) {
|
||||
case CHIP_RS400:
|
||||
case CHIP_RC410:
|
||||
case CHIP_RS480:
|
||||
case CHIP_RS600:
|
||||
case CHIP_RS690:
|
||||
case CHIP_RS740:
|
||||
case CHIP_RS780:
|
||||
case CHIP_RS880:
|
||||
case CHIP_PALM:
|
||||
case CHIP_SUMO:
|
||||
case CHIP_SUMO2:
|
||||
case CHIP_ARUBA:
|
||||
case CHIP_KAVERI:
|
||||
case CHIP_KABINI:
|
||||
case CHIP_MULLINS:
|
||||
ws->info.has_dedicated_vram = false;
|
||||
break;
|
||||
|
||||
default:
|
||||
ws->info.has_dedicated_vram = true;
|
||||
}
|
||||
|
||||
/* Check for dma */
|
||||
ws->info.has_sdma = FALSE;
|
||||
/* DMA is disabled on R700. There is IB corruption and hangs. */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue