st/mesa: fix sRGB renderbuffers without EXT_framebuffer_sRGB support
https://bugs.freedesktop.org/show_bug.cgi?id=59322 Cc: mesa-stable@lists.freedesktop.org
This commit is contained in:
@@ -37,6 +37,7 @@
|
||||
#include "main/context.h"
|
||||
#include "main/fbobject.h"
|
||||
#include "main/framebuffer.h"
|
||||
#include "main/glformats.h"
|
||||
#include "main/macros.h"
|
||||
#include "main/renderbuffer.h"
|
||||
|
||||
@@ -132,6 +133,13 @@ st_renderbuffer_alloc_storage(struct gl_context * ctx,
|
||||
pipe_surface_reference( &strb->surface, NULL );
|
||||
pipe_resource_reference( &strb->texture, NULL );
|
||||
|
||||
/* If an sRGB framebuffer is unsupported, sRGB formats behave like linear
|
||||
* formats.
|
||||
*/
|
||||
if (!ctx->Extensions.EXT_framebuffer_sRGB) {
|
||||
internalFormat = _mesa_get_linear_internalformat(internalFormat);
|
||||
}
|
||||
|
||||
/* Handle multisample renderbuffers first.
|
||||
*
|
||||
* From ARB_framebuffer_object:
|
||||
|
||||
@@ -1782,6 +1782,13 @@ st_QuerySamplesForFormat(struct gl_context *ctx, GLenum target,
|
||||
else
|
||||
bind = PIPE_BIND_RENDER_TARGET;
|
||||
|
||||
/* If an sRGB framebuffer is unsupported, sRGB formats behave like linear
|
||||
* formats.
|
||||
*/
|
||||
if (!ctx->Extensions.EXT_framebuffer_sRGB) {
|
||||
internalFormat = _mesa_get_linear_internalformat(internalFormat);
|
||||
}
|
||||
|
||||
/* Set sample counts in descending order. */
|
||||
for (i = 16; i > 1; i--) {
|
||||
format = st_choose_format(st, internalFormat, GL_NONE, GL_NONE,
|
||||
|
||||
Reference in New Issue
Block a user