mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-25 15:10:10 +01:00
meta: Use float for temporary images, not (un)signed normalized.
In commit091eb15b69, Jordan changed get_temp_image_type() to use _mesa_get_format_datatype() instead of returning GL_FLOAT. That has several possible return values: GL_FLOAT, GL_INT, GL_UNSIGNED_INT, GL_SIGNED_NORMALIZED, and GL_UNSIGNED_NORMALIZED. We do want to use GL_INT/GL_UNSIGNED_INT for integer formats. However, we want to continue using GL_FLOAT for the normalized fixed-point types. There isn't any code in pack.c to handle GL_(UN)SIGNED_NORMALIZED. Fixes oglconform's fboarb advanced.blit.copypix, which was regressed by commit091eb15b69. NOTE: This is a candidate for the 9.0 branch. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=53573 Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
7dc0be8a8b
commit
3767b25bd3
1 changed files with 8 additions and 4 deletions
|
|
@ -3489,12 +3489,16 @@ get_temp_image_type(struct gl_context *ctx, gl_format format)
|
|||
case GL_LUMINANCE:
|
||||
case GL_LUMINANCE_ALPHA:
|
||||
case GL_INTENSITY:
|
||||
if (ctx->DrawBuffer->Visual.redBits <= 8)
|
||||
if (ctx->DrawBuffer->Visual.redBits <= 8) {
|
||||
return GL_UNSIGNED_BYTE;
|
||||
else if (ctx->DrawBuffer->Visual.redBits <= 16)
|
||||
} else if (ctx->DrawBuffer->Visual.redBits <= 16) {
|
||||
return GL_UNSIGNED_SHORT;
|
||||
else
|
||||
return _mesa_get_format_datatype(format);
|
||||
} else {
|
||||
GLenum datatype = _mesa_get_format_datatype(format);
|
||||
if (datatype == GL_INT || datatype == GL_UNSIGNED_INT)
|
||||
return datatype;
|
||||
return GL_FLOAT;
|
||||
}
|
||||
case GL_DEPTH_COMPONENT:
|
||||
return GL_UNSIGNED_INT;
|
||||
case GL_DEPTH_STENCIL:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue