diff options
author | Jon Turney <jon.turney@dronecode.org.uk> | 2016-06-13 12:22:39 +0000 |
---|---|---|
committer | Jon Turney <jon.turney@dronecode.org.uk> | 2016-06-13 12:22:39 +0000 |
commit | 2105ed7cb72432bc5a57ac4fe77e233b9f6cfbdc (patch) | |
tree | ee7134990cfc3c3748ba5528536f35bb8272fa93 | |
parent | 269a45cd0bd2ff2f6f36a172722c96be36e2f103 (diff) | |
parent | 9454cd51da9b38b974cff7c8b7125901f6403848 (diff) |
Merge tag 'xorg-server-1.18.3' into cygwin-release-1.18
xorg-server-1.18.3
-rw-r--r-- | Xext/vidmode.c | 212 | ||||
-rw-r--r-- | configure.ac | 6 | ||||
-rw-r--r-- | glamor/glamor_fbo.c | 4 | ||||
-rw-r--r-- | hw/xfree86/dri2/pci_ids/radeonsi_pci_ids.h | 10 | ||||
-rw-r--r-- | hw/xfree86/modes/xf86Crtc.c | 6 | ||||
-rw-r--r-- | hw/xwayland/xwayland-cvt.c | 4 | ||||
-rw-r--r-- | hw/xwayland/xwayland-vidmode.c | 19 | ||||
-rw-r--r-- | present/present.c | 2 |
8 files changed, 146 insertions, 117 deletions
diff --git a/Xext/vidmode.c b/Xext/vidmode.c index 7c838f449..499a2a841 100644 --- a/Xext/vidmode.c +++ b/Xext/vidmode.c @@ -69,7 +69,7 @@ typedef struct { dixSetPrivate(&(c)->devPrivates, VidModeClientPrivateKey, p) #ifdef DEBUG -#define DEBUG_P(x) LogMessage(X_INFO, x"\n"); +#define DEBUG_P(x) DebugF(x"\n") #else #define DEBUG_P(x) /**/ #endif @@ -267,13 +267,13 @@ ProcVidModeGetModeLine(ClientPtr client) rep.vtotal = VidModeGetModeValue(mode, VIDMODE_V_TOTAL); rep.flags = VidModeGetModeValue(mode, VIDMODE_FLAGS); - LogMessage(X_INFO, "GetModeLine - scrn: %d clock: %ld\n", - stuff->screen, (unsigned long) rep.dotclock); - LogMessage(X_INFO, "GetModeLine - hdsp: %d hbeg: %d hend: %d httl: %d\n", - rep.hdisplay, rep.hsyncstart, rep.hsyncend, rep.htotal); - LogMessage(X_INFO, " vdsp: %d vbeg: %d vend: %d vttl: %d flags: %ld\n", - rep.vdisplay, rep.vsyncstart, rep.vsyncend, - rep.vtotal, (unsigned long) rep.flags); + DebugF("GetModeLine - scrn: %d clock: %ld\n", + stuff->screen, (unsigned long) rep.dotclock); + DebugF("GetModeLine - hdsp: %d hbeg: %d hend: %d httl: %d\n", + rep.hdisplay, rep.hsyncstart, rep.hsyncend, rep.htotal); + DebugF(" vdsp: %d vbeg: %d vend: %d vttl: %d flags: %ld\n", + rep.vdisplay, rep.vsyncstart, rep.vsyncend, + rep.vtotal, (unsigned long) rep.flags); /* * Older servers sometimes had server privates that the VidMode @@ -483,23 +483,23 @@ ProcVidModeAddModeLine(ClientPtr client) stuff->after_vtotal = oldstuff->after_vtotal; stuff->after_flags = oldstuff->after_flags; } - LogMessage(X_INFO, "AddModeLine - scrn: %d clock: %ld\n", - (int) stuff->screen, (unsigned long) stuff->dotclock); - LogMessage(X_INFO, "AddModeLine - hdsp: %d hbeg: %d hend: %d httl: %d\n", - stuff->hdisplay, stuff->hsyncstart, - stuff->hsyncend, stuff->htotal); - LogMessage(X_INFO, " vdsp: %d vbeg: %d vend: %d vttl: %d flags: %ld\n", - stuff->vdisplay, stuff->vsyncstart, stuff->vsyncend, - stuff->vtotal, (unsigned long) stuff->flags); - LogMessage(X_INFO, " after - scrn: %d clock: %ld\n", - (int) stuff->screen, (unsigned long) stuff->after_dotclock); - LogMessage(X_INFO, " hdsp: %d hbeg: %d hend: %d httl: %d\n", - stuff->after_hdisplay, stuff->after_hsyncstart, - stuff->after_hsyncend, stuff->after_htotal); - LogMessage(X_INFO, " vdsp: %d vbeg: %d vend: %d vttl: %d flags: %ld\n", - stuff->after_vdisplay, stuff->after_vsyncstart, - stuff->after_vsyncend, stuff->after_vtotal, - (unsigned long) stuff->after_flags); + DebugF("AddModeLine - scrn: %d clock: %ld\n", + (int) stuff->screen, (unsigned long) stuff->dotclock); + DebugF("AddModeLine - hdsp: %d hbeg: %d hend: %d httl: %d\n", + stuff->hdisplay, stuff->hsyncstart, + stuff->hsyncend, stuff->htotal); + DebugF(" vdsp: %d vbeg: %d vend: %d vttl: %d flags: %ld\n", + stuff->vdisplay, stuff->vsyncstart, stuff->vsyncend, + stuff->vtotal, (unsigned long) stuff->flags); + DebugF(" after - scrn: %d clock: %ld\n", + (int) stuff->screen, (unsigned long) stuff->after_dotclock); + DebugF(" hdsp: %d hbeg: %d hend: %d httl: %d\n", + stuff->after_hdisplay, stuff->after_hsyncstart, + stuff->after_hsyncend, stuff->after_htotal); + DebugF(" vdsp: %d vbeg: %d vend: %d vttl: %d flags: %ld\n", + stuff->after_vdisplay, stuff->after_vsyncstart, + stuff->after_vsyncend, stuff->after_vtotal, + (unsigned long) stuff->after_flags); if (ver < 2) { REQUEST_AT_LEAST_SIZE(xXF86OldVidModeAddModeLineReq); @@ -572,7 +572,7 @@ ProcVidModeAddModeLine(ClientPtr client) VidModeSetModeValue(mode, VIDMODE_FLAGS, stuff->flags); if (stuff->privsize) - LogMessage(X_INFO, "AddModeLine - Privates in request have been ignored\n"); + DebugF("AddModeLine - Privates in request have been ignored\n"); /* Check that the mode is consistent with the monitor specs */ switch (pVidMode->CheckModeForMonitor(pScreen, mode)) { @@ -601,7 +601,7 @@ ProcVidModeAddModeLine(ClientPtr client) pVidMode->AddModeline(pScreen, mode); - LogMessage(X_INFO, "AddModeLine - Succeeded\n"); + DebugF("AddModeLine - Succeeded\n"); return Success; } @@ -640,14 +640,14 @@ ProcVidModeDeleteModeLine(ClientPtr client) stuff->flags = oldstuff->flags; stuff->privsize = oldstuff->privsize; } - LogMessage(X_INFO, "DeleteModeLine - scrn: %d clock: %ld\n", - (int) stuff->screen, (unsigned long) stuff->dotclock); - LogMessage(X_INFO, " hdsp: %d hbeg: %d hend: %d httl: %d\n", - stuff->hdisplay, stuff->hsyncstart, - stuff->hsyncend, stuff->htotal); - LogMessage(X_INFO, " vdsp: %d vbeg: %d vend: %d vttl: %d flags: %ld\n", - stuff->vdisplay, stuff->vsyncstart, stuff->vsyncend, stuff->vtotal, - (unsigned long) stuff->flags); + DebugF("DeleteModeLine - scrn: %d clock: %ld\n", + (int) stuff->screen, (unsigned long) stuff->dotclock); + DebugF(" hdsp: %d hbeg: %d hend: %d httl: %d\n", + stuff->hdisplay, stuff->hsyncstart, + stuff->hsyncend, stuff->htotal); + DebugF(" vdsp: %d vbeg: %d vend: %d vttl: %d flags: %ld\n", + stuff->vdisplay, stuff->vsyncstart, stuff->vsyncend, stuff->vtotal, + (unsigned long) stuff->flags); if (ver < 2) { REQUEST_AT_LEAST_SIZE(xXF86OldVidModeDeleteModeLineReq); @@ -662,11 +662,11 @@ ProcVidModeDeleteModeLine(ClientPtr client) bytes_to_int32(sizeof(xXF86VidModeDeleteModeLineReq)); } if (len != stuff->privsize) { - LogMessage(X_INFO, "req_len = %ld, sizeof(Req) = %d, privsize = %ld, " - "len = %d, length = %d\n", - (unsigned long) client->req_len, - (int) sizeof(xXF86VidModeDeleteModeLineReq) >> 2, - (unsigned long) stuff->privsize, len, stuff->length); + DebugF("req_len = %ld, sizeof(Req) = %d, privsize = %ld, " + "len = %d, length = %d\n", + (unsigned long) client->req_len, + (int) sizeof(xXF86VidModeDeleteModeLineReq) >> 2, + (unsigned long) stuff->privsize, len, stuff->length); return BadLength; } @@ -681,46 +681,46 @@ ProcVidModeDeleteModeLine(ClientPtr client) if (!pVidMode->GetCurrentModeline(pScreen, &mode, &dotClock)) return BadValue; - LogMessage(X_INFO, "Checking against clock: %d (%d)\n", + DebugF("Checking against clock: %d (%d)\n", + VidModeGetModeValue(mode, VIDMODE_CLOCK), dotClock); + DebugF(" hdsp: %d hbeg: %d hend: %d httl: %d\n", + VidModeGetModeValue(mode, VIDMODE_H_DISPLAY), + VidModeGetModeValue(mode, VIDMODE_H_SYNCSTART), + VidModeGetModeValue(mode, VIDMODE_H_SYNCEND), + VidModeGetModeValue(mode, VIDMODE_H_TOTAL)); + DebugF(" vdsp: %d vbeg: %d vend: %d vttl: %d flags: %d\n", + VidModeGetModeValue(mode, VIDMODE_V_DISPLAY), + VidModeGetModeValue(mode, VIDMODE_V_SYNCSTART), + VidModeGetModeValue(mode, VIDMODE_V_SYNCEND), + VidModeGetModeValue(mode, VIDMODE_V_TOTAL), + VidModeGetModeValue(mode, VIDMODE_FLAGS)); + + if ((pVidMode->GetDotClock(pScreen, stuff->dotclock) == dotClock) && + MODEMATCH(mode, stuff)) + return BadValue; + + if (!pVidMode->GetFirstModeline(pScreen, &mode, &dotClock)) + return BadValue; + + do { + DebugF("Checking against clock: %d (%d)\n", VidModeGetModeValue(mode, VIDMODE_CLOCK), dotClock); - LogMessage(X_INFO, " hdsp: %d hbeg: %d hend: %d httl: %d\n", + DebugF(" hdsp: %d hbeg: %d hend: %d httl: %d\n", VidModeGetModeValue(mode, VIDMODE_H_DISPLAY), VidModeGetModeValue(mode, VIDMODE_H_SYNCSTART), VidModeGetModeValue(mode, VIDMODE_H_SYNCEND), VidModeGetModeValue(mode, VIDMODE_H_TOTAL)); - LogMessage(X_INFO, " vdsp: %d vbeg: %d vend: %d vttl: %d flags: %d\n", + DebugF(" vdsp: %d vbeg: %d vend: %d vttl: %d flags: %d\n", VidModeGetModeValue(mode, VIDMODE_V_DISPLAY), VidModeGetModeValue(mode, VIDMODE_V_SYNCSTART), VidModeGetModeValue(mode, VIDMODE_V_SYNCEND), VidModeGetModeValue(mode, VIDMODE_V_TOTAL), VidModeGetModeValue(mode, VIDMODE_FLAGS)); - if ((pVidMode->GetDotClock(pScreen, stuff->dotclock) == dotClock) && - MODEMATCH(mode, stuff)) - return BadValue; - - if (!pVidMode->GetFirstModeline(pScreen, &mode, &dotClock)) - return BadValue; - - do { - LogMessage(X_INFO, "Checking against clock: %d (%d)\n", - VidModeGetModeValue(mode, VIDMODE_CLOCK), dotClock); - LogMessage(X_INFO, " hdsp: %d hbeg: %d hend: %d httl: %d\n", - VidModeGetModeValue(mode, VIDMODE_H_DISPLAY), - VidModeGetModeValue(mode, VIDMODE_H_SYNCSTART), - VidModeGetModeValue(mode, VIDMODE_H_SYNCEND), - VidModeGetModeValue(mode, VIDMODE_H_TOTAL)); - LogMessage(X_INFO, " vdsp: %d vbeg: %d vend: %d vttl: %d flags: %d\n", - VidModeGetModeValue(mode, VIDMODE_V_DISPLAY), - VidModeGetModeValue(mode, VIDMODE_V_SYNCSTART), - VidModeGetModeValue(mode, VIDMODE_V_SYNCEND), - VidModeGetModeValue(mode, VIDMODE_V_TOTAL), - VidModeGetModeValue(mode, VIDMODE_FLAGS)); - if ((pVidMode->GetDotClock(pScreen, stuff->dotclock) == dotClock) && MODEMATCH(mode, stuff)) { pVidMode->DeleteModeline(pScreen, mode); - LogMessage(X_INFO, "DeleteModeLine - Succeeded\n"); + DebugF("DeleteModeLine - Succeeded\n"); return Success; } } while (pVidMode->GetNextModeline(pScreen, &mode, &dotClock)); @@ -761,12 +761,12 @@ ProcVidModeModModeLine(ClientPtr client) stuff->flags = oldstuff->flags; stuff->privsize = oldstuff->privsize; } - LogMessage(X_INFO, "ModModeLine - scrn: %d hdsp: %d hbeg: %d hend: %d httl: %d\n", - (int) stuff->screen, stuff->hdisplay, stuff->hsyncstart, - stuff->hsyncend, stuff->htotal); - LogMessage(X_INFO, " vdsp: %d vbeg: %d vend: %d vttl: %d flags: %ld\n", - stuff->vdisplay, stuff->vsyncstart, stuff->vsyncend, - stuff->vtotal, (unsigned long) stuff->flags); + DebugF("ModModeLine - scrn: %d hdsp: %d hbeg: %d hend: %d httl: %d\n", + (int) stuff->screen, stuff->hdisplay, stuff->hsyncstart, + stuff->hsyncend, stuff->htotal); + DebugF(" vdsp: %d vbeg: %d vend: %d vttl: %d flags: %ld\n", + stuff->vdisplay, stuff->vsyncstart, stuff->vsyncend, + stuff->vtotal, (unsigned long) stuff->flags); if (ver < 2) { REQUEST_AT_LEAST_SIZE(xXF86OldVidModeModModeLineReq); @@ -816,7 +816,7 @@ ProcVidModeModModeLine(ClientPtr client) VidModeSetModeValue(modetmp, VIDMODE_FLAGS, stuff->flags); if (stuff->privsize) - LogMessage(X_INFO, "ModModeLine - Privates in request have been ignored\n"); + DebugF("ModModeLine - Privates in request have been ignored\n"); /* Check that the mode is consistent with the monitor specs */ switch (pVidMode->CheckModeForMonitor(pScreen, modetmp)) { @@ -856,7 +856,7 @@ ProcVidModeModModeLine(ClientPtr client) pVidMode->SetCrtcForMode(pScreen, mode); pVidMode->SwitchMode(pScreen, mode); - LogMessage(X_INFO, "ModModeLine - Succeeded\n"); + DebugF("ModModeLine - Succeeded\n"); return Success; } @@ -896,14 +896,14 @@ ProcVidModeValidateModeLine(ClientPtr client) stuff->privsize = oldstuff->privsize; } - LogMessage(X_INFO, "ValidateModeLine - scrn: %d clock: %ld\n", - (int) stuff->screen, (unsigned long) stuff->dotclock); - LogMessage(X_INFO, " hdsp: %d hbeg: %d hend: %d httl: %d\n", - stuff->hdisplay, stuff->hsyncstart, - stuff->hsyncend, stuff->htotal); - LogMessage(X_INFO, " vdsp: %d vbeg: %d vend: %d vttl: %d flags: %ld\n", - stuff->vdisplay, stuff->vsyncstart, stuff->vsyncend, stuff->vtotal, - (unsigned long) stuff->flags); + DebugF("ValidateModeLine - scrn: %d clock: %ld\n", + (int) stuff->screen, (unsigned long) stuff->dotclock); + DebugF(" hdsp: %d hbeg: %d hend: %d httl: %d\n", + stuff->hdisplay, stuff->hsyncstart, + stuff->hsyncend, stuff->htotal); + DebugF(" vdsp: %d vbeg: %d vend: %d vttl: %d flags: %ld\n", + stuff->vdisplay, stuff->vsyncstart, stuff->vsyncend, stuff->vtotal, + (unsigned long) stuff->flags); if (ver < 2) { REQUEST_AT_LEAST_SIZE(xXF86OldVidModeValidateModeLineReq); @@ -956,7 +956,7 @@ ProcVidModeValidateModeLine(ClientPtr client) VidModeSetModeValue(modetmp, VIDMODE_V_TOTAL, stuff->vtotal); VidModeSetModeValue(modetmp, VIDMODE_FLAGS, stuff->flags); if (stuff->privsize) - LogMessage(X_INFO, "ValidateModeLine - Privates in request have been ignored\n"); + DebugF("ValidateModeLine - Privates in request have been ignored\n"); /* Check that the mode is consistent with the monitor specs */ if ((status = @@ -982,7 +982,7 @@ ProcVidModeValidateModeLine(ClientPtr client) swapl(&rep.status); } WriteToClient(client, sizeof(xXF86VidModeValidateModeLineReply), &rep); - LogMessage(X_INFO, "ValidateModeLine - Succeeded (status = %d)\n", status); + DebugF("ValidateModeLine - Succeeded (status = %d)\n", status); return Success; } @@ -1046,14 +1046,14 @@ ProcVidModeSwitchToMode(ClientPtr client) stuff->privsize = oldstuff->privsize; } - LogMessage(X_INFO, "SwitchToMode - scrn: %d clock: %ld\n", - (int) stuff->screen, (unsigned long) stuff->dotclock); - LogMessage(X_INFO, " hdsp: %d hbeg: %d hend: %d httl: %d\n", - stuff->hdisplay, stuff->hsyncstart, - stuff->hsyncend, stuff->htotal); - LogMessage(X_INFO, " vdsp: %d vbeg: %d vend: %d vttl: %d flags: %ld\n", - stuff->vdisplay, stuff->vsyncstart, stuff->vsyncend, stuff->vtotal, - (unsigned long) stuff->flags); + DebugF("SwitchToMode - scrn: %d clock: %ld\n", + (int) stuff->screen, (unsigned long) stuff->dotclock); + DebugF(" hdsp: %d hbeg: %d hend: %d httl: %d\n", + stuff->hdisplay, stuff->hsyncstart, + stuff->hsyncend, stuff->htotal); + DebugF(" vdsp: %d vbeg: %d vend: %d vttl: %d flags: %ld\n", + stuff->vdisplay, stuff->vsyncstart, stuff->vsyncend, stuff->vtotal, + (unsigned long) stuff->flags); if (ver < 2) { REQUEST_AT_LEAST_SIZE(xXF86OldVidModeSwitchToModeReq); @@ -1089,19 +1089,19 @@ ProcVidModeSwitchToMode(ClientPtr client) return BadValue; do { - LogMessage(X_INFO, "Checking against clock: %d (%d)\n", - VidModeGetModeValue(mode, VIDMODE_CLOCK), dotClock); - LogMessage(X_INFO, " hdsp: %d hbeg: %d hend: %d httl: %d\n", - VidModeGetModeValue(mode, VIDMODE_H_DISPLAY), - VidModeGetModeValue(mode, VIDMODE_H_SYNCSTART), - VidModeGetModeValue(mode, VIDMODE_H_SYNCEND), - VidModeGetModeValue(mode, VIDMODE_H_TOTAL)); - LogMessage(X_INFO, " vdsp: %d vbeg: %d vend: %d vttl: %d flags: %d\n", - VidModeGetModeValue(mode, VIDMODE_V_DISPLAY), - VidModeGetModeValue(mode, VIDMODE_V_SYNCSTART), - VidModeGetModeValue(mode, VIDMODE_V_SYNCEND), - VidModeGetModeValue(mode, VIDMODE_V_TOTAL), - VidModeGetModeValue(mode, VIDMODE_FLAGS)); + DebugF("Checking against clock: %d (%d)\n", + VidModeGetModeValue(mode, VIDMODE_CLOCK), dotClock); + DebugF(" hdsp: %d hbeg: %d hend: %d httl: %d\n", + VidModeGetModeValue(mode, VIDMODE_H_DISPLAY), + VidModeGetModeValue(mode, VIDMODE_H_SYNCSTART), + VidModeGetModeValue(mode, VIDMODE_H_SYNCEND), + VidModeGetModeValue(mode, VIDMODE_H_TOTAL)); + DebugF(" vdsp: %d vbeg: %d vend: %d vttl: %d flags: %d\n", + VidModeGetModeValue(mode, VIDMODE_V_DISPLAY), + VidModeGetModeValue(mode, VIDMODE_V_SYNCSTART), + VidModeGetModeValue(mode, VIDMODE_V_SYNCEND), + VidModeGetModeValue(mode, VIDMODE_V_TOTAL), + VidModeGetModeValue(mode, VIDMODE_FLAGS)); if ((pVidMode->GetDotClock(pScreen, stuff->dotclock) == dotClock) && MODEMATCH(mode, stuff)) { @@ -1109,7 +1109,7 @@ ProcVidModeSwitchToMode(ClientPtr client) if (!pVidMode->SwitchMode(pScreen, mode)) return BadValue; - LogMessage(X_INFO, "SwitchToMode - Succeeded\n"); + DebugF("SwitchToMode - Succeeded\n"); return Success; } } while (pVidMode->GetNextModeline(pScreen, &mode, &dotClock)); diff --git a/configure.ac b/configure.ac index 03687db51..daf97496d 100644 --- a/configure.ac +++ b/configure.ac @@ -26,9 +26,9 @@ dnl dnl Process this file with autoconf to create configure. AC_PREREQ(2.60) -AC_INIT([xorg-server], 1.18.2, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server) -RELEASE_DATE="2016-03-11" -RELEASE_NAME="Saganaki" +AC_INIT([xorg-server], 1.18.3, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server) +RELEASE_DATE="2016-04-04" +RELEASE_NAME="Halloumi" AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_MACRO_DIR([m4]) AM_INIT_AUTOMAKE([foreign dist-bzip2]) diff --git a/glamor/glamor_fbo.c b/glamor/glamor_fbo.c index 5bfffe501..c6ba095c0 100644 --- a/glamor/glamor_fbo.c +++ b/glamor/glamor_fbo.c @@ -340,8 +340,10 @@ _glamor_create_tex(glamor_screen_private *glamor_priv, glBindTexture(GL_TEXTURE_2D, tex); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); - if (format == glamor_priv->one_channel_format && format == GL_RED) + if (format == glamor_priv->one_channel_format && format == GL_RED) { + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_R, GL_ZERO); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_A, GL_RED); + } glamor_priv->suppress_gl_out_of_memory_logging = true; glTexImage2D(GL_TEXTURE_2D, 0, format, w, h, 0, format, GL_UNSIGNED_BYTE, NULL); diff --git a/hw/xfree86/dri2/pci_ids/radeonsi_pci_ids.h b/hw/xfree86/dri2/pci_ids/radeonsi_pci_ids.h index bcf15a186..4df8e9d83 100644 --- a/hw/xfree86/dri2/pci_ids/radeonsi_pci_ids.h +++ b/hw/xfree86/dri2/pci_ids/radeonsi_pci_ids.h @@ -182,4 +182,14 @@ CHIPSET(0x9877, CARRIZO_, CARRIZO) CHIPSET(0x7300, FIJI_, FIJI) +CHIPSET(0x67E0, POLARIS11_, POLARIS11) +CHIPSET(0x67E1, POLARIS11_, POLARIS11) +CHIPSET(0x67E8, POLARIS11_, POLARIS11) +CHIPSET(0x67E9, POLARIS11_, POLARIS11) +CHIPSET(0x67EB, POLARIS11_, POLARIS11) +CHIPSET(0x67FF, POLARIS11_, POLARIS11) + +CHIPSET(0x67C0, POLARIS10_, POLARIS10) +CHIPSET(0x67DF, POLARIS10_, POLARIS10) + CHIPSET(0x98E4, STONEY_, STONEY) diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c index 2639a3085..6091b5e5b 100644 --- a/hw/xfree86/modes/xf86Crtc.c +++ b/hw/xfree86/modes/xf86Crtc.c @@ -368,6 +368,12 @@ xf86CrtcSetModeTransform(xf86CrtcPtr crtc, DisplayModePtr mode, xf86CrtcSetScreenSubpixelOrder(scrn->pScreen); if (scrn->ModeSet) scrn->ModeSet(scrn); + + /* Make sure the HW cursor is hidden if it's supposed to be, in case + * it was hidden while the CRTC was disabled + */ + if (!xf86_config->cursor_on) + xf86_hide_cursors(scrn); } else { crtc->x = saved_x; diff --git a/hw/xwayland/xwayland-cvt.c b/hw/xwayland/xwayland-cvt.c index 35665597f..9655e104e 100644 --- a/hw/xwayland/xwayland-cvt.c +++ b/hw/xwayland/xwayland-cvt.c @@ -296,8 +296,8 @@ xwayland_cvt(int HDisplay, int VDisplay, float VRefresh, Bool Reduced, if (Interlaced) modeinfo.modeFlags |= RR_Interlace; - snprintf(name, sizeof name, "%dx%d@%.1fHz", - modeinfo.width, modeinfo.height, VRefresh); + snprintf(name, sizeof name, "%dx%d", + modeinfo.width, modeinfo.height); modeinfo.nameLength = strlen(name); return RRModeGet(&modeinfo, name); diff --git a/hw/xwayland/xwayland-vidmode.c b/hw/xwayland/xwayland-vidmode.c index 6d70e39e6..0bcd11401 100644 --- a/hw/xwayland/xwayland-vidmode.c +++ b/hw/xwayland/xwayland-vidmode.c @@ -208,15 +208,26 @@ xwlVidModeDeleteModeline(ScreenPtr pScreen, DisplayModePtr mode) static Bool xwlVidModeZoomViewport(ScreenPtr pScreen, int zoom) { - /* Unsupported for now */ - return FALSE; + /* Support only no zoom */ + return (zoom == 1); } static Bool xwlVidModeSetViewPort(ScreenPtr pScreen, int x, int y) { - /* Unsupported for now */ - return FALSE; + RROutputPtr output; + RRCrtcPtr crtc; + + output = RRFirstOutput(pScreen); + if (output == NULL) + return FALSE; + + crtc = output->crtc; + if (crtc == NULL) + return FALSE; + + /* Support only default viewport */ + return (x == crtc->x && y == crtc->y); } static Bool diff --git a/present/present.c b/present/present.c index 55f6aa7b1..105e2bf47 100644 --- a/present/present.c +++ b/present/present.c @@ -726,7 +726,7 @@ present_execute(present_vblank_ptr vblank, uint64_t ust, uint64_t crtc_msc) } /* If present_flip failed, we may have to requeue for the target MSC */ - if (msc_is_after(vblank->target_msc, crtc_msc) && + if (vblank->target_msc == crtc_msc + 1 && Success == present_queue_vblank(screen, vblank->crtc, vblank->event_id, |