mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 09:08:10 +02:00
r200: fix fbo rendering by disabling optimized texture format chooser
It is rather unfortunate that we don't know if a texture is going to be used as a rt later, and we lack the means to do something about a format chosen which we can't render to directly, so disable this and always chose renderable format for rgba8 textures. This addresses an issue raised on (old) bug, https://bugs.freedesktop.org/show_bug.cgi?id=51658 with gnome-shell, don't know if that's still applicable but it might fix other things as well. Acked-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
parent
642f289824
commit
26c1361ac3
1 changed files with 13 additions and 1 deletions
|
|
@ -224,7 +224,19 @@ static mesa_format radeonChoose8888TexFormat(radeonContextPtr rmesa,
|
|||
const GLuint ui = 1;
|
||||
const GLubyte littleEndian = *((const GLubyte *)&ui);
|
||||
|
||||
if (fbo)
|
||||
|
||||
/* Unfortunately, regardless the fbo flag, we might still be asked to
|
||||
* attach a texture to a fbo later, which then won't succeed if we chose
|
||||
* one which isn't renderable. And unlike more exotic formats, apps aren't
|
||||
* really prepared for the incomplete framebuffer this results in (they'd
|
||||
* have to retry with same internalFormat even, just different
|
||||
* srcFormat/srcType, which can't really be expected anyway).
|
||||
* Ideally, we'd defer format selection until later (if the texture is
|
||||
* used as a rt it's likely there's never data uploaded to it before attached
|
||||
* to a fbo), but this isn't really possible, so for now just always use
|
||||
* a renderable format.
|
||||
*/
|
||||
if (1 || fbo)
|
||||
return _radeon_texformat_argb8888;
|
||||
|
||||
if ((srcFormat == GL_RGBA && srcType == GL_UNSIGNED_INT_8_8_8_8) ||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue