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: <mesa-stable@lists.freedesktop.org>
Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
(cherry picked from commit 6053499f2e)
This commit is contained in:
Alok Hota 2019-02-21 14:41:15 -06:00 committed by Dylan Baker
parent 1d4fbff786
commit 06889aaa63

View file

@ -846,7 +846,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) {