mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-04 20:00:11 +01:00
ReadPixels: Force ALPHA to 1 while rebasing RGBA values for GL_RGB format
When performing a ReadPixels operation, we may be reading from a buffer that stores alpha values, but that is actually representing a buffer with no alpha channel. In this case, while rebasing the values, touch up all alpha values read to 1.0. This commit fixes the following piglit (sub) tests: ARB_texture_float/fbo-colormask-formats GL_RBG16F_ARB EXT_texture_snorm/fbo-colormask-formats GL_RGB16_SNORM GL_RGB8_SNORM GL_RGB_SNORM It likely improves the results of other tests as well, but a PASS remains elusive due to additional bugs. Reviewed-by: Brian Paul <brianp@vmware.com> Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
This commit is contained in:
parent
b961ba44ed
commit
570ed2be7d
1 changed files with 10 additions and 0 deletions
|
|
@ -6022,6 +6022,11 @@ _mesa_rebase_rgba_float(GLuint n, GLfloat rgba[][4], GLenum baseFormat)
|
|||
rgba[i][BCOMP] = 0.0F;
|
||||
}
|
||||
break;
|
||||
case GL_RGB:
|
||||
for (i = 0; i < n; i++) {
|
||||
rgba[i][ACOMP] = 1.0F;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
/* no-op */
|
||||
;
|
||||
|
|
@ -6060,6 +6065,11 @@ _mesa_rebase_rgba_uint(GLuint n, GLuint rgba[][4], GLenum baseFormat)
|
|||
rgba[i][BCOMP] = 0;
|
||||
}
|
||||
break;
|
||||
case GL_RGB:
|
||||
for (i = 0; i < n; i++) {
|
||||
rgba[i][ACOMP] = 1;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
/* no-op */
|
||||
;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue