[RFC PATCH xserver 0/5] Check glamor-xv usability
Michel Dänzer
michel at daenzer.net
Fri Apr 21 02:00:04 UTC 2017
On 21/04/17 12:35 AM, Olivier Fourdan wrote:
> It appears that on some hardware/diver combo such as nv30/nouveau, using
> GL_ALPHA as format for 8-bit depth will cause an incomplete attachment
> error (GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT) when trying to bind the
> texture.
>
> As a result, the FBO is NULL and glamor segfaults when trying to access
> the FBO width/height in pixmap_priv_get_scale().
>
> This happens with glamor-xv which uses a 8bit pixmap, meaning that on such
> hardware/driver, trying to play a video using Xv will lead to a crash of
> the Xserver. This affects Xwayland, Xephyr and modesetting driver with
> glamor accel:
>
> https://bugs.freedesktop.org/show_bug.cgi?id=100710
> https://bugzilla.redhat.com/1412814
>
> So this series of RFC patches consist of 3 things:
>
> 1. Check if using a 8bit pixmap causes a incomplete attachment error as
> soon as glamor_xv_core_init() and return a boolean value indicating
> the caller whether or not glamor-xv is usable.
> 2. Modify each callers, namely ephyr, modesetting and xwayland to take
> advantage of this boolean value and do not enable xv if not usable.
> One difficulty here is that to check FBO usability, one has to have
> the screen resources created, which means that the changes also
> include moving glamor_xv_core_init() to CreateScreenResources()
> instead of screen init.
This means that external drivers calling glamor_xv_init would also have
to be changed accordingly, which is a bit unfortunate. Also, I'm not
sure deferring xf86XVScreenInit to CreateScreenResources is a good idea.
So, I hope one of Eric's suggestions will work out.
--
Earthling Michel Dänzer | http://www.amd.com
Libre software enthusiast | Mesa and X developer
More information about the xorg-devel
mailing list