OK, So I tried to debug this on 17.04 with the mir demos.

What happens is that while the Mir server seems to run fine,
when the EGL mir clients import a surface from the mir server (using fds / 
prime) they
typecast the XRGB surface from the mir server to an ARGB surface, which the 
svga gallium driver doesn't like that and it returns an error.

That error is never caught in the mir platform EGL layer and when the
corresponding "bo" is dereferenced, the mir platform EGL layer instead
dereferences NULL, which is the error code...

So I'd say this is a combination of two Mir errors: One illegal typecast and 
one failure to check
for errors.

As a side note, it would be possible for the svga driver to implement a 
workaround and not error
in this case, but while real hardware may be more forgiving in this case, the 
surface that the
mir client thinks is an argb surface will still be an xrgb surface and any 
operation involving the
alpha channel will yield unexpected results so IMHO this needs to be fixed in 
the MIR EGL layer:

Offending code: (platform_mir.c)

static struct gbm_bo *create_gbm_bo_from_buffer(struct gbm_device* gbm_dev,
                                                MirBufferPackage *package)
{
   struct gbm_import_fd_data data;

   data.fd = package->fd[0];
   data.width = package->width;
   data.height = package->height;
   data.format = GBM_FORMAT_ARGB8888; /* TODO: Use mir surface format */  <= 
HERE!
   data.stride = package->stride;

   return gbm_bo_import(gbm_dev, GBM_BO_IMPORT_FD, &data, GBM_BO_USE_RENDERING);
}


/Thomas

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to mesa in Ubuntu.
https://bugs.launchpad.net/bugs/1560498

Title:
  Unity8 using vmwgfx_dri.so crashed in
  mir::graphics::nested::detail::DisplayBuffer::make_current() ->
  eglMakeCurrent() -> ... -> dri2_image_get_buffers()
  [platform_mir.c:138]

Status in Mir:
  New
Status in mesa package in Ubuntu:
  Confirmed
Status in mir package in Ubuntu:
  Confirmed
Status in unity8 package in Ubuntu:
  Invalid

Bug description:
  The Ubuntu Error Tracker has been receiving reports about a problem
  regarding unity8.  This problem was most recently seen with version
  8.11+16.04.20160310.4-0ubuntu1, the problem page at
  https://errors.ubuntu.com/problem/7e3f860c1afbbc114bf73f9d7a2966209a25093d
  contains more details.

To manage notifications about this bug go to:
https://bugs.launchpad.net/mir/+bug/1560498/+subscriptions

-- 
Mailing list: https://launchpad.net/~desktop-packages
Post to     : desktop-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~desktop-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to