which is returned for GL_MAX_TEXTURE_BUFFER_SIZE. It doesn't have any other use at the moment. Bigger allocations are not rejected. This fixes GL45-CTS.texture_buffer.texture_buffer_max_size on Bonaire. Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>tags/13.0-branchpoint
@@ -318,8 +318,8 @@ 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; | |||
/* TODO: the kernel reports vram/gart.max_allocation == 251 MB (bug?) */ | |||
ws->info.max_alloc_size = MAX2(ws->info.vram_size, ws->info.gart_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; | |||
/* 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; |
@@ -373,7 +373,9 @@ static bool do_winsys_init(struct radeon_drm_winsys *ws) | |||
ws->info.gart_size = gem_info.gart_size; | |||
ws->info.vram_size = gem_info.vram_size; | |||
ws->info.max_alloc_size = MAX2(ws->info.vram_size, ws->info.gart_size); | |||
/* Radeon allocates all buffers as contigous, which makes large allocations | |||
* unlikely to succeed. */ | |||
ws->info.max_alloc_size = MAX2(ws->info.vram_size, ws->info.gart_size) * 0.7; | |||
if (ws->info.drm_minor < 40) | |||
ws->info.max_alloc_size = MIN2(ws->info.max_alloc_size, 256*1024*1024); | |||