[Mesa-stable] [PATCH] mesa: allow GL_UNSIGNED_BYTE type for SNORM reads

Tapani Pälli tapani.palli at intel.com
Thu Aug 30 04:26:08 UTC 2018



On 08/29/2018 06:22 PM, Dylan Baker wrote:
> Quoting Tapani Pälli (2018-08-27 04:46:37)
>> OpenGL ES spec states:
>>     "For normalized fixed-point rendering surfaces, the combination format
>>      RGBA and type UNSIGNED_BYTE is accepted."
>>
>> This fixes following failing VK-GL-CTS tests:
>>
>>     KHR-GLES3.packed_pixels.pbo_rectangle.rgba8_snorm
>>     KHR-GLES3.packed_pixels.rectangle.rgba8_snorm
>>     KHR-GLES3.packed_pixels.varied_rectangle.rgba8_snorm
>>
>> Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
>> https://bugs.freedesktop.org/show_bug.cgi?id=107658
>> Cc: mesa-stable at lists.freedesktop.org
>> ---
>>
>> This is a partial fix to the bug. I believe there are 2 separate
>> issues within reported bug and this fixes the first one.
>>
>>   src/mesa/main/readpix.c | 9 +++++++++
>>   1 file changed, 9 insertions(+)
>>
>> diff --git a/src/mesa/main/readpix.c b/src/mesa/main/readpix.c
>> index 2cbb578a37f..556c860d393 100644
>> --- a/src/mesa/main/readpix.c
>> +++ b/src/mesa/main/readpix.c
>> @@ -958,6 +958,15 @@ read_pixels_es3_error_check(struct gl_context *ctx, GLenum format, GLenum type,
>>                  return GL_NO_ERROR;
>>            }
>>         }
>> +      if (type == GL_UNSIGNED_BYTE) {
>> +         switch (internalFormat) {
>> +         case GL_R8_SNORM:
>> +         case GL_RG8_SNORM:
>> +         case GL_RGBA8_SNORM:
>> +            if (_mesa_has_EXT_render_snorm(ctx))
>> +               return GL_NO_ERROR;
>> +         }
>> +      }
>>         break;
>>      case GL_BGRA:
>>         /* GL_EXT_read_format_bgra */
>> -- 
>> 2.14.4
>>
> 
> Hi Tapani,
> 
> This doesn't apply cleanly to 18.1 because "mesa: enable EXT_render_snorm
> extension" isn't present on the branch. Does it still make sense to pull this
> into 18.1?
> 

Ah nope, patch makes sense only with EXT_render_snorm.

// Tapani


More information about the mesa-stable mailing list