[PATCH weston 5/5] gl-renderer: use correct pixel shader for NV12 format uploaded to RG texture

Vincent ABRIOU vincent.abriou at st.com
Tue Dec 5 09:34:26 UTC 2017


Hi Arnaud,

On 12/04/2017 06:15 PM, Arnaud Vrac wrote:
> On Mon, Dec 4, 2017 at 6:08 PM, Emil Velikov <emil.l.velikov at gmail.com> wrote:
>> On 29 November 2017 at 14:25, Arnaud Vrac <rawoul at gmail.com> wrote:
>>> Signed-off-by: Arnaud Vrac <rawoul at gmail.com>
>>
>> Please mention how you've spotted and/or verified this.
>>
>> I'm ~90% this is correct, although I would check with the author.
>> Vincent, can you double check the patch/series [1]?
> 
> I'm also not 100% sure about this one, I found all three drivers I
> mentionned on the cover letter displayed the wrong colors for NV12
> with R/G textures. This just seemed the logical fix after reading the
> pixel shaders code.
> 
> I'll mention this in the commit message.
> 

Your patch looks good.
I had no way to test has_gl_texture_rg when I submit 00a03d2f724 
("gl-renderer: add support of WL_SHM_FORMAT_NV12")

Thanks for testing it and correcting it.
Reviewed-by: Vincent Abriou <vincent.abriou at st.com>

BR
Vincent

> Thanks,
> -Arnaud
> 
>>
>> Fixes: 00a03d2f724 ("gl-renderer: add support of WL_SHM_FORMAT_NV12")
>> Cc: Vincent Abriou <vincent.abriou at st.com>
>>
>> -Emil
>>> ---
>>>   libweston/gl-renderer.c | 3 ++-
>>>   1 file cNphanged, 2 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/libweston/gl-renderer.c b/libweston/gl-renderer.c
>>> index 60a7bf06..4fffa78c 100644
>>> --- a/libweston/gl-renderer.c
>>> +++ b/libweston/gl-renderer.c
>>> @@ -1596,7 +1596,6 @@ gl_renderer_attach_shm(struct weston_surface *es, struct weston_buffer *buffer,
>>>                  }
>>>                  break;
>>>          case WL_SHM_FORMAT_NV12:
>>> -               gs->shader = &gr->texture_shader_y_xuxv;
>>>                  pitch = wl_shm_buffer_get_stride(shm_buffer);
>>>                  gl_pixel_type = GL_UNSIGNED_BYTE;
>>>                  num_planes = 2;
>>> @@ -1605,9 +1604,11 @@ gl_renderer_attach_shm(struct weston_surface *es, struct weston_buffer *buffer,
>>>                  gs->hsub[1] = 2;
>>>                  gs->vsub[1] = 2;
>>>                  if (gr->has_gl_texture_rg) {
>>> +                       gs->shader = &gr->texture_shader_y_uv;
>>>                          gl_format[0] = GL_R8_EXT;
>>>                          gl_format[1] = GL_RG8_EXT;
>>>                  } else {
>>> +                       gs->shader = &gr->texture_shader_y_xuxv;
>>>                          gl_format[0] = GL_LUMINANCE;
>>>                          gl_format[1] = GL_LUMINANCE_ALPHA;
>>>                  }
>>> --
>>> 2.15.0


More information about the wayland-devel mailing list