mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-04-13 19:50:36 +02:00
zink: Fix resizable BAR detection logic
This was broken in two ways: * When looking for the MAX biggest_ram it was actually comparing a candidate against biggest_vis_ram * mem_props.memoryTypes[] should be accessed with the memory type index as found in heap_map Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10341 Cc: 23.3 <mesa-stable> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26979>
This commit is contained in:
parent
9d1e69ca45
commit
a077c14f15
1 changed files with 2 additions and 2 deletions
|
|
@ -3258,10 +3258,10 @@ zink_internal_create_screen(const struct pipe_screen_config *config, int64_t dev
|
|||
{
|
||||
uint64_t biggest_vis_vram = 0;
|
||||
for (unsigned i = 0; i < screen->heap_count[ZINK_HEAP_DEVICE_LOCAL_VISIBLE]; i++)
|
||||
biggest_vis_vram = MAX2(biggest_vis_vram, screen->info.mem_props.memoryHeaps[screen->info.mem_props.memoryTypes[i].heapIndex].size);
|
||||
biggest_vis_vram = MAX2(biggest_vis_vram, screen->info.mem_props.memoryHeaps[screen->info.mem_props.memoryTypes[screen->heap_map[ZINK_HEAP_DEVICE_LOCAL_VISIBLE][i]].heapIndex].size);
|
||||
uint64_t biggest_vram = 0;
|
||||
for (unsigned i = 0; i < screen->heap_count[ZINK_HEAP_DEVICE_LOCAL]; i++)
|
||||
biggest_vram = MAX2(biggest_vis_vram, screen->info.mem_props.memoryHeaps[screen->info.mem_props.memoryTypes[i].heapIndex].size);
|
||||
biggest_vram = MAX2(biggest_vram, screen->info.mem_props.memoryHeaps[screen->info.mem_props.memoryTypes[screen->heap_map[ZINK_HEAP_DEVICE_LOCAL][i]].heapIndex].size);
|
||||
/* determine if vis vram is roughly equal to total vram */
|
||||
if (biggest_vis_vram > biggest_vram * 0.9)
|
||||
screen->resizable_bar = true;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue