From 6053499f2eafde606b13a9663016e9be8e4089eb Mon Sep 17 00:00:00 2001 From: Alok Hota Date: Thu, 21 Feb 2019 14:41:15 -0600 Subject: [PATCH] swr/rast: bypass size limit for non-sampled textures This fixes a bug where SWR will fail to render in cases with large buffer allocations, e.g. very large meshes whose vertex buffers exceed 2GB CC: Reviewed-by: Bruce Cherniak --- src/gallium/drivers/swr/swr_screen.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/swr/swr_screen.cpp b/src/gallium/drivers/swr/swr_screen.cpp index 68e49a5ae2b..ea63368f750 100644 --- a/src/gallium/drivers/swr/swr_screen.cpp +++ b/src/gallium/drivers/swr/swr_screen.cpp @@ -845,7 +845,9 @@ swr_texture_layout(struct swr_screen *screen, size_t total_size = (uint64_t)res->swr.depth * res->swr.qpitch * res->swr.pitch * res->swr.numSamples; - if (total_size > SWR_MAX_TEXTURE_SIZE) + + // Let non-sampled textures (e.g. buffer objects) bypass the size limit + if (swr_resource_is_texture(&res->base) && total_size > SWR_MAX_TEXTURE_SIZE) return false; if (allocate) { -- 2.30.2