mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-02-17 23:40:29 +01:00
winsys/amdgpu: reduce max_alloc_size based on GTT limits
Allocating huge buffers in VRAM is not a problem, but when those buffers
start being migrated, the kernel runs into errors because it cannot split
those buffer up for moving through GTT.
This should fix intermittent failures of
GL45-CTS.texture_buffer.texture_buffer_max_size
Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
(cherry picked from commit 550125e1e7)
[Emil Velikov: resolve trivial conflicts]
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Conflicts:
src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c
This commit is contained in:
parent
bc8d047068
commit
b8d23715f5
1 changed files with 4 additions and 2 deletions
|
|
@ -322,8 +322,10 @@ static bool do_winsys_init(struct amdgpu_winsys *ws, int fd)
|
|||
/* Set hardware information. */
|
||||
ws->info.gart_size = gtt.heap_size;
|
||||
ws->info.vram_size = vram.heap_size;
|
||||
/* The kernel can split large buffers, so we can do large allocations. */
|
||||
ws->info.max_alloc_size = MAX2(ws->info.vram_size, ws->info.gart_size) * 0.9;
|
||||
/* The kernel can split large buffers in VRAM but not in GTT, so large
|
||||
* allocations can fail or cause buffer movement failures in the kernel.
|
||||
*/
|
||||
ws->info.max_alloc_size = MIN2(ws->info.vram_size * 0.9, ws->info.gart_size * 0.7);
|
||||
/* convert the shader clock from KHz to MHz */
|
||||
ws->info.max_shader_clock = ws->amdinfo.max_engine_clk / 1000;
|
||||
ws->info.max_se = ws->amdinfo.num_shader_engines;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue