Michel Dänzer <[email protected]> writes: > On 06.05.2014 07:02, Keith Packard wrote: >> >> +static Bool >> +glamor_copy_gl(DrawablePtr src, >> + DrawablePtr dst, >> + GCPtr gc, >> + BoxPtr box, >> + int nbox, >> + int dx, >> + int dy, >> + Bool reverse, >> + Bool upsidedown, >> + Pixel bitplane, >> + void *closure) >> +{ >> + PixmapPtr src_pixmap = glamor_get_drawable_pixmap(src); >> + PixmapPtr dst_pixmap = glamor_get_drawable_pixmap(dst); >> + glamor_pixmap_private *src_priv = glamor_get_pixmap_private(src_pixmap); >> + glamor_pixmap_private *dst_priv = glamor_get_pixmap_private(dst_pixmap); >> + >> + if (GLAMOR_PIXMAP_PRIV_HAS_FBO(dst_priv)) { >> + if (GLAMOR_PIXMAP_PRIV_HAS_FBO(src_priv)) { >> + if (glamor_copy_needs_temp(src, dst, box, nbox, dx, dy)) >> + return glamor_copy_fbo_fbo_temp(src, dst, gc, box, nbox, >> dx, dy, >> + reverse, upsidedown, >> bitplane, closure); >> + else >> + return glamor_copy_fbo_fbo_draw(src, dst, gc, box, nbox, >> dx, dy, >> + reverse, upsidedown, >> bitplane, closure); >> + } >> + if (bitplane == 0) >> + return glamor_copy_cpu_fbo(src, dst, gc, box, nbox, dx, dy, >> + reverse, upsidedown, bitplane, >> closure); >> + } >> + return FALSE; >> +} > > This results in a crash / memory corruption when confronted with > GLAMOR_DRM_ONLY pixmaps. glamor_copy_bail calls down to fb, but the > pixmap's devPrivate.ptr does not point to any usable storage.
Any more hints here? The only way you can get to fb without a devPrivate.ptr is if there is no FBO for the pixmap, and the pixmap isn't just regular memory (like shm). I don't know how that would happen for a DRM pixmap. > This happens for me when a piglit test creates a depth 16 GLXPixmap. Given the delights of UXA, I can't really tell whether this would work for me. I need to go fix the intel driver to stop providing its own fallback paths. And, as the only way to get GLAMOR_DRM_ONLY pixmaps is by using EGL, I can't test this on Xephyr, which uses GLX. -- [email protected]
pgp2U300x5l7v.pgp
Description: PGP signature
_______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
