I think you don't have to check luminance. Returning just the alpha
bits should be fine.

Marek

On Mon, Sep 10, 2018 at 4:33 PM, Marek Olšák <mar...@gmail.com> wrote:
> Reviewed-by: Marek Olšák <marek.ol...@amd.com>
>
> Marek
>
> On Mon, Sep 10, 2018 at 6:39 AM, Gert Wollny <gw.foss...@gmail.com> wrote:
>> From: Gert Wollny <gert.wol...@collabora.com>
>>
>> Gallium may pick L16A16_FLOAT to represent GL_INTENSITY16F if no intensity
>> format is provided by the driver. However, when calling
>>
>>    glGetTexLevelParameteriv(..., GL_TEXTURE_INTENSITY_SIZE, ...)
>>
>> mesa will return a zero size because the actually used format has no
>> intensity channel and as a fallback only the sizes of the red/green
>> channels are checked.
>>
>> Also checking for LA sizes in the allocated texture resolves this problem.
>>
>> Fixes (on virgl):
>>   ext_framebuffer_multisample-fast-clear GL_ARB_texture_float *
>>
>> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107832
>>
>> Signed-off-by: Gert Wollny <gert.wol...@collabora.com>
>> ---
>>  src/mesa/main/texparam.c | 7 +++++++
>>  1 file changed, 7 insertions(+)
>>
>> diff --git a/src/mesa/main/texparam.c b/src/mesa/main/texparam.c
>> index b5d86d64d5..643a349328 100644
>> --- a/src/mesa/main/texparam.c
>> +++ b/src/mesa/main/texparam.c
>> @@ -1426,6 +1426,13 @@ get_tex_level_parameter_image(struct gl_context *ctx,
>>                                _mesa_get_format_bits(texFormat,
>>                                                      GL_TEXTURE_GREEN_SIZE));
>>              }
>> +            if (*params == 0 && pname == GL_TEXTURE_INTENSITY_SIZE) {
>> +               /* Gallium may store intensity as LA */
>> +               *params = MIN2(_mesa_get_format_bits(texFormat,
>> +                                                    
>> GL_TEXTURE_LUMINANCE_SIZE),
>> +                              _mesa_get_format_bits(texFormat,
>> +                                                    GL_TEXTURE_ALPHA_SIZE));
>> +            }
>>           }
>>           else {
>>              *params = 0;
>> --
>> 2.16.4
>>
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev@lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to