[vlc-devel] [PATCH] opengl: converter_sw: reset UNPACK_ROW_LENGTH after usage

Thomas Guillem thomas at gllm.fr
Thu Dec 5 17:17:30 CET 2019


LGTM,

Thanks for  this patch !

I really think it will fix #22267

On Wed, Dec 4, 2019, at 18:09, Alexandre Janniaux wrote:
> From: Louis Segretin <lsegretin.contrib at gmail.com>
> 
> Some drivers seem to use this value for glTexSubImage2D even with
> GL_PIXEL_UNPACK_BUFFER set to 0. As the rest of the code is not
> UNPACK_ROW_LENGTH aware, it is safer to reset it to a non-active value.
> 
> For example, this would cause glitches if pictures were uploaded with
> this extension but SPU were not, or more generally if another client of
> the OpenGL context is updating some textures by itself outside of the
> OpenGL renderer.
> 
> Looks really close to an OpenGL version of #22267.
> ---
>  modules/video_output/opengl/converter_sw.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/modules/video_output/opengl/converter_sw.c 
> b/modules/video_output/opengl/converter_sw.c
> index b5746a637b..3eb3eeb3ae 100644
> --- a/modules/video_output/opengl/converter_sw.c
> +++ b/modules/video_output/opengl/converter_sw.c
> @@ -190,6 +190,8 @@ tc_pbo_update(const opengl_tex_converter_t *tc, 
> GLuint *textures,
>  
>          tc->vt->TexSubImage2D(tc->tex_target, 0, 0, 0, tex_width[i], 
> tex_height[i],
>                                tc->texs[i].format, tc->texs[i].type, 
> NULL);
> +
> +        tc->vt->PixelStorei(GL_UNPACK_ROW_LENGTH, 0);
>      }
>  
>      /* turn off pbo */
> @@ -267,6 +269,7 @@ upload_plane(const opengl_tex_converter_t *tc, 
> unsigned tex_idx,
>          tc->vt->PixelStorei(GL_UNPACK_ROW_LENGTH, pitch * width / 
> (visible_pitch ? visible_pitch : 1));
>          tc->vt->TexSubImage2D(tc->tex_target, 0, 0, 0, width, height,
>                                tex_format, tex_type, pixels);
> +        tc->vt->PixelStorei(GL_UNPACK_ROW_LENGTH, 0);
>      }
>      return VLC_SUCCESS;
>  }
> -- 
> 2.24.0
> 
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel


More information about the vlc-devel mailing list