mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-03-12 17:40:32 +01:00
swrast: Fix handling of MESA_FORMAT_L8A8_SRGB for big-endian
Luminance is the least-significant byte of the uint16, rather than the lowest byte in memory. Other parts of mesa already handle this correctly for big-endian, and swrast already handles other MESA_FORMAT_x8y8 formats correctly. This case was just an odd-one-out. Signed-off-by: Richard Sandiford <rsandifo@linux.vnet.ibm.com> Reviewed-by: Brian Paul <brianp@vmware.com> Cc: <mesa-stable@lists.freedesktop.org> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
3e3b1db5f7
commit
ecc48f83c8
1 changed files with 3 additions and 3 deletions
|
|
@ -808,11 +808,11 @@ static void
|
|||
FETCH(L8A8_SRGB)(const struct swrast_texture_image *texImage,
|
||||
GLint i, GLint j, GLint k, GLfloat *texel)
|
||||
{
|
||||
const GLubyte *src = TEXEL_ADDR(GLubyte, texImage, i, j, k, 2);
|
||||
const GLushort s = *TEXEL_ADDR(GLushort, texImage, i, j, k, 1);
|
||||
texel[RCOMP] =
|
||||
texel[GCOMP] =
|
||||
texel[BCOMP] = util_format_srgb_8unorm_to_linear_float(src[0]);
|
||||
texel[ACOMP] = UBYTE_TO_FLOAT(src[1]); /* linear */
|
||||
texel[BCOMP] = util_format_srgb_8unorm_to_linear_float(s & 0xff);
|
||||
texel[ACOMP] = UBYTE_TO_FLOAT(s >> 8); /* linear */
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue