[Mesa-dev] [PATCH v2] mesa: Fix swizzling for luminance/intensity in _mesa_readpixels
Nicolai Hähnle
nhaehnle at gmail.com
Wed Aug 2 10:28:23 UTC 2017
On 01.08.2017 00:15, Chris Wilson wrote:
> Quoting Chris Wilson (2017-07-31 22:51:25)
>> Luminance/Intensity when converted to RGB should be replicated to fill
>> the RGB channels, but they differ on how the alpha channel is filled, as
>> luminance is set to 1 (unless alpha is supplied) and intensity is
>> replicated into alpha as well.
>>
>> https://www.khronos.org/opengl/wiki/Image_Format:
>>
>> Legacy Image Formats
>>
>> Warning: This section describes legacy OpenGL APIs that have been
>> removed from core OpenGL 3.1 and above (they are only deprecated in
>> OpenGL 3.0). It is recommended that you not use this functionality in
>> your programs.
>>
>> As with other deprecated functionality, it is advised that you not rely
>> on these features.
>>
>> Luminance and intensity formats are color formats. They are one or two
>> channel formats like RED or RG, but they specify particular behavior.
>>
>> When a GL_RED format is sampled in a shader, the resulting vec4 is (Red,
>> 0, 0, 1). When a GL_INTENSITY format is sampled, the resulting vec4 is
>> (I, I, I, I). The single intensity value is read into all four
>> components. For GL_LUMINANCE, the result is (L, L, L, 1). There is also
>> a two-channel GL_LUMINANCE_ALPHA format, which gives (L, L, L, A).
>>
>> v2: luminance -> xxx1, intensity -> xxxx, luminance_alpha -> xxxw
>
> If that quote is the expected behaviour for glReadPixels and
> glGetTexSubImage, there's a similar stanza to fix in texgetimage.c
> (As well as the piglit tests to update.)
>
> With a quick grep through VK-GL-CTS I didn't anything to refer to.
Is it even possible to have an L/I texture bound as a framebuffer? I
would expect an attempt to do that to fail the color-renderability check.
Do you have a real application that tries to do this? If not, I'd rather
we reject such attempts and maybe add a piglit test to that effect if it
doesn't exist -- and then get rid of this code in readpix.c entirely.
I think you're right though that texgetimage.c needs to support this.
Cheers,
Nicolai
> -Chris
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
--
Lerne, wie die Welt wirklich ist,
Aber vergiss niemals, wie sie sein sollte.
More information about the mesa-dev
mailing list