Merge branch '7.8'
This commit is contained in:
@@ -276,7 +276,21 @@ err_bo_destroy:
|
||||
static void
|
||||
crtc_load_cursor_argb(xf86CrtcPtr crtc, CARD32 * image)
|
||||
{
|
||||
xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(crtc->scrn);
|
||||
modesettingPtr ms = modesettingPTR(crtc->scrn);
|
||||
|
||||
/* Older X servers have cursor reference counting bugs leading to use of
|
||||
* freed memory and consequently random crashes. Should be fixed as of
|
||||
* xserver 1.8, but this workaround shouldn't hurt anyway.
|
||||
*/
|
||||
if (config->cursor)
|
||||
config->cursor->refcnt++;
|
||||
|
||||
if (ms->cursor)
|
||||
FreeCursor(ms->cursor, None);
|
||||
|
||||
ms->cursor = config->cursor;
|
||||
|
||||
if (ms->screen)
|
||||
crtc_load_cursor_argb_ga3d(crtc, image);
|
||||
#ifdef HAVE_LIBKMS
|
||||
|
||||
@@ -922,6 +922,11 @@ drv_close_screen(int scrnIndex, ScreenPtr pScreen)
|
||||
drv_leave_vt(scrnIndex, 0);
|
||||
}
|
||||
|
||||
if (ms->cursor) {
|
||||
FreeCursor(ms->cursor, None);
|
||||
ms->cursor = NULL;
|
||||
}
|
||||
|
||||
if (cust && cust->winsys_screen_close)
|
||||
cust->winsys_screen_close(cust);
|
||||
|
||||
|
||||
@@ -90,6 +90,7 @@ typedef struct _modesettingRec
|
||||
|
||||
Bool noAccel;
|
||||
Bool SWCursor;
|
||||
CursorPtr cursor;
|
||||
CloseScreenProcPtr CloseScreen;
|
||||
|
||||
/* Broken-out options. */
|
||||
|
||||
@@ -93,6 +93,10 @@ do_copy_texsubimage(GLcontext *ctx,
|
||||
src_bpp = _mesa_get_format_bytes(src_mesaformat);
|
||||
dst_bpp = _mesa_get_format_bytes(dst_mesaformat);
|
||||
if (!radeon->vtbl.check_blit(dst_mesaformat)) {
|
||||
/* depth formats tend to be special */
|
||||
if (_mesa_get_format_bits(dst_mesaformat, GL_DEPTH_BITS) > 0)
|
||||
return GL_FALSE;
|
||||
|
||||
if (src_bpp != dst_bpp)
|
||||
return GL_FALSE;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user