On Thu, Jan 25, 2018 at 12:03 PM, Michel Dänzer <mic...@daenzer.net> wrote: > From: Hawking Zhang <hawking.zh...@amd.com> > > Signed-off-by: Hawking Zhang <hawking.zh...@amd.com> > > [ Michel Dänzer: Adapt to glamor changes since 1.19 ] > > Signed-off-by: Michel Dänzer <michel.daen...@amd.com>
Acked-by: Alex Deucher <alexander.deuc...@amd.com> > --- > glamor/glamor_egl.c | 7 +++++-- > glamor/glamor_fbo.c | 5 ++++- > glamor/glamor_transfer.c | 4 ++++ > glamor/glamor_utils.h | 3 +++ > 4 files changed, 16 insertions(+), 3 deletions(-) > > diff --git a/glamor/glamor_egl.c b/glamor/glamor_egl.c > index 53a74b8da..202b83efd 100644 > --- a/glamor/glamor_egl.c > +++ b/glamor/glamor_egl.c > @@ -376,14 +376,17 @@ glamor_back_pixmap_from_fd(PixmapPtr pixmap, > > glamor_egl = glamor_egl_get_screen_private(scrn); > > - if (bpp != 32 || !(depth == 24 || depth == 32) || width == 0 || height > == 0) > + if (bpp != 32 || !(depth == 24 || depth == 32 || depth == 30) || width > == 0 || height == 0) > return FALSE; > > import_data.fd = fd; > import_data.width = width; > import_data.height = height; > import_data.stride = stride; > - import_data.format = GBM_FORMAT_ARGB8888; > + if (depth == 30) > + import_data.format = GBM_FORMAT_ARGB2101010; > + else > + import_data.format = GBM_FORMAT_ARGB8888; > bo = gbm_bo_import(glamor_egl->gbm, GBM_BO_IMPORT_FD, &import_data, 0); > if (!bo) > return FALSE; > diff --git a/glamor/glamor_fbo.c b/glamor/glamor_fbo.c > index 9f1288c60..e8c4330b3 100644 > --- a/glamor/glamor_fbo.c > +++ b/glamor/glamor_fbo.c > @@ -123,7 +123,10 @@ _glamor_create_tex(glamor_screen_private *glamor_priv, > int w, int h, GLenum format) > { > unsigned int tex; > + GLenum iformat = format; > > + if (format == GL_RGB10_A2) > + format = GL_RGBA; > glamor_make_current(glamor_priv); > glGenTextures(1, &tex); > glBindTexture(GL_TEXTURE_2D, tex); > @@ -132,7 +135,7 @@ _glamor_create_tex(glamor_screen_private *glamor_priv, > if (format == glamor_priv->one_channel_format && format == GL_RED) > glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_A, GL_RED); > glamor_priv->suppress_gl_out_of_memory_logging = true; > - glTexImage2D(GL_TEXTURE_2D, 0, format, w, h, 0, > + glTexImage2D(GL_TEXTURE_2D, 0, iformat, w, h, 0, > format, GL_UNSIGNED_BYTE, NULL); > glamor_priv->suppress_gl_out_of_memory_logging = false; > > diff --git a/glamor/glamor_transfer.c b/glamor/glamor_transfer.c > index d788d06f4..ebb5101d1 100644 > --- a/glamor/glamor_transfer.c > +++ b/glamor/glamor_transfer.c > @@ -33,6 +33,10 @@ glamor_format_for_pixmap(PixmapPtr pixmap, GLenum *format, > GLenum *type) > *format = GL_BGRA; > *type = GL_UNSIGNED_INT_8_8_8_8_REV; > break; > + case 30: > + *format = GL_BGRA; > + *type = GL_UNSIGNED_INT_2_10_10_10_REV; > + break; > case 16: > *format = GL_RGB; > *type = GL_UNSIGNED_SHORT_5_6_5; > diff --git a/glamor/glamor_utils.h b/glamor/glamor_utils.h > index 090b0e18a..7597b92dc 100644 > --- a/glamor/glamor_utils.h > +++ b/glamor/glamor_utils.h > @@ -619,6 +619,9 @@ gl_iformat_for_pixmap(PixmapPtr pixmap) > if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP && > ((pixmap)->drawable.depth == 1 || (pixmap)->drawable.depth == 8)) { > return glamor_priv->one_channel_format; > + } else if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP && > + (pixmap)->drawable.depth == 30) { > + return GL_RGB10_A2; > } else { > return GL_RGBA; > } > -- > 2.15.1 > > _______________________________________________ > xorg-devel@lists.x.org: X.Org development > Archives: http://lists.x.org/archives/xorg-devel > Info: https://lists.x.org/mailman/listinfo/xorg-devel _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel