On 4 April 2017 at 13:49, Thomas Hellstrom <thellst...@vmware.com> wrote: > When the GBM BOs are created, they are created using a bo with a correct > memory requirement but with an incorrect channel layout. This makes > drivers that are picky about matching formats (svga/vmwgfx) complain. > > Use the correct GBM formats and require GBM >= 13.0 to make sure they > are available. > > Signed-off-by: Thomas Hellstrom <thellst...@vmware.com> > --- > configure.ac | 2 +- > cube-tex.c | 10 +++++----- > 2 files changed, 6 insertions(+), 6 deletions(-) > > diff --git a/configure.ac b/configure.ac > index 242164f..aa0ef36 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -36,7 +36,7 @@ m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) > > # Obtain compiler/linker options for depedencies > PKG_CHECK_MODULES(DRM, libdrm) > -PKG_CHECK_MODULES(GBM, gbm) > +PKG_CHECK_MODULES(GBM, gbm >= 13.0) > PKG_CHECK_MODULES(EGL, egl) > PKG_CHECK_MODULES(GLES2, glesv2) > > diff --git a/cube-tex.c b/cube-tex.c > index b11023f..d97ab77 100644 > --- a/cube-tex.c > +++ b/cube-tex.c > @@ -223,7 +223,7 @@ static int get_fd_rgba(uint32_t *pstride) > int fd; > > /* NOTE: do not actually use GBM_BO_USE_WRITE since that gets us a > dumb buffer: */ > - bo = gbm_bo_create(gl.gbm->dev, texw, texh, GBM_FORMAT_ARGB8888, > GBM_BO_USE_LINEAR); > + bo = gbm_bo_create(gl.gbm->dev, texw, texh, GBM_FORMAT_ABGR8888, > GBM_BO_USE_LINEAR); > > map = gbm_bo_map(bo, 0, 0, texw, texh, GBM_BO_TRANSFER_WRITE, > &stride, &map_data); > > @@ -254,9 +254,9 @@ static int get_fd_y(uint32_t *pstride) > > /* NOTE: do not actually use GBM_BO_USE_WRITE since that gets us a > dumb buffer: */ > /* hmm, no R8/R8G8 gbm formats?? */ This ...
> - bo = gbm_bo_create(gl.gbm->dev, texw/4, texh, GBM_FORMAT_ARGB8888, > GBM_BO_USE_LINEAR); > + bo = gbm_bo_create(gl.gbm->dev, texw, texh, GBM_FORMAT_R8, > GBM_BO_USE_LINEAR); > > - map = gbm_bo_map(bo, 0, 0, texw/4, texh, GBM_BO_TRANSFER_WRITE, > &stride, &map_data); > + map = gbm_bo_map(bo, 0, 0, texw, texh, GBM_BO_TRANSFER_WRITE, > &stride, &map_data); > > for (uint32_t i = 0; i < texh; i++) { > memcpy(&map[stride * i], &src[texw * i], texw); > @@ -285,9 +285,9 @@ static int get_fd_uv(uint32_t *pstride) > > /* NOTE: do not actually use GBM_BO_USE_WRITE since that gets us a > dumb buffer: */ > /* hmm, no R8/R8G8 gbm formats?? */ ... and this line should be removed, right ? With that Reviewed-by: Emil Velikov <emil.veli...@collabora.com> -Emil _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev