summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2013-11-05 13:19:41 +1000
committerDave Airlie <airlied@redhat.com>2013-11-05 13:19:41 +1000
commit9fbbea8cda199c5efdf3d3ae7485eb9ba62cde8b (patch)
tree67fe472081cc33fba739dcd72c8cbb40a90e07ee
parentad2fa50b5371f6e71a66d47e73304599c90f9118 (diff)
Revert "Merge commit 'f98d6cfa0de41cf33e7555342753897c07af84ef' into server-1.14-branch"
This reverts commit ad2fa50b5371f6e71a66d47e73304599c90f9118, reversing changes made to bab4908579f6b034ea38f8df2f8dc1f9f026f5e1. oops i broke ABI. Signed-off-by: Dave Airlie <airlied@redhat.com>
-rw-r--r--hw/xfree86/common/xf86platformBus.c6
-rw-r--r--hw/xfree86/modes/xf86RandR12.c21
-rw-r--r--randr/randr.c120
-rw-r--r--randr/randrstr.h12
-rw-r--r--randr/rrcrtc.c6
-rw-r--r--randr/rrinfo.c2
-rw-r--r--randr/rroutput.c7
-rw-r--r--randr/rrpointer.c2
-rw-r--r--randr/rrprovider.c25
-rw-r--r--randr/rrscreen.c2
10 files changed, 9 insertions, 194 deletions
diff --git a/hw/xfree86/common/xf86platformBus.c b/hw/xfree86/common/xf86platformBus.c
index 33b2b7dd8..db831a883 100644
--- a/hw/xfree86/common/xf86platformBus.c
+++ b/hw/xfree86/common/xf86platformBus.c
@@ -47,7 +47,6 @@
#include "Pci.h"
#include "xf86platformBus.h"
-#include "randrstr.h"
int platformSlotClaimed;
int xf86_num_platform_devices;
@@ -466,9 +465,6 @@ xf86platformAddDevice(int index)
/* attach unbound to 0 protocol screen */
AttachUnboundGPU(xf86Screens[0]->pScreen, xf86GPUScreens[i]->pScreen);
- RRResourcesChanged(xf86Screens[0]->pScreen);
- RRTellChanged(xf86Screens[0]->pScreen);
-
return 0;
}
@@ -512,8 +508,6 @@ xf86platformRemoveDevice(int index)
xf86_remove_platform_device(index);
- RRResourcesChanged(xf86Screens[0]->pScreen);
- RRTellChanged(xf86Screens[0]->pScreen);
out:
return;
}
diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c
index db31432fc..01fc9c5e3 100644
--- a/hw/xfree86/modes/xf86RandR12.c
+++ b/hw/xfree86/modes/xf86RandR12.c
@@ -1770,19 +1770,6 @@ xf86RandR12EnterVT(ScrnInfoPtr pScrn)
return RRGetInfo(pScreen, TRUE); /* force a re-probe of outputs and notify clients about changes */
}
-static void
-xf86DetachOutputGPU(ScreenPtr pScreen)
-{
- rrScrPrivPtr rp = rrGetScrPriv(pScreen);
- int i;
-
- /* make sure there are no attached shared scanout pixmaps first */
- for (i = 0; i < rp->numCrtcs; i++)
- RRCrtcDetachScanoutPixmap(rp->crtcs[i]);
-
- DetachOutputGPU(pScreen);
-}
-
static Bool
xf86RandR14ProviderSetOutputSource(ScreenPtr pScreen,
RRProviderPtr provider,
@@ -1792,7 +1779,7 @@ xf86RandR14ProviderSetOutputSource(ScreenPtr pScreen,
if (provider->output_source) {
ScreenPtr cmScreen = pScreen->current_master;
- xf86DetachOutputGPU(pScreen);
+ DetachOutputGPU(pScreen);
AttachUnboundGPU(cmScreen, pScreen);
}
provider->output_source = NULL;
@@ -1820,7 +1807,7 @@ xf86RandR14ProviderSetOffloadSink(ScreenPtr pScreen,
if (!sink_provider) {
if (provider->offload_sink) {
ScreenPtr cmScreen = pScreen->current_master;
- xf86DetachOutputGPU(pScreen);
+ DetachOutputGPU(pScreen);
AttachUnboundGPU(cmScreen, pScreen);
}
@@ -1908,12 +1895,10 @@ xf86RandR14ProviderDestroy(ScreenPtr screen, RRProviderPtr provider)
if (config->randr_provider->offload_sink) {
DetachOffloadGPU(screen);
config->randr_provider->offload_sink = NULL;
- RRSetChanged(screen);
}
else if (config->randr_provider->output_source) {
- xf86DetachOutputGPU(screen);
+ DetachOutputGPU(screen);
config->randr_provider->output_source = NULL;
- RRSetChanged(screen);
}
else if (screen->current_master)
DetachUnboundGPU(screen);
diff --git a/randr/randr.c b/randr/randr.c
index 3c5142771..f0decfc6c 100644
--- a/randr/randr.c
+++ b/randr/randr.c
@@ -420,40 +420,12 @@ RRExtensionInit(void)
#endif
}
-void
-RRResourcesChanged(ScreenPtr pScreen)
-{
- rrScrPriv(pScreen);
- pScrPriv->resourcesChanged = TRUE;
-
- RRSetChanged(pScreen);
-}
-
-static void
-RRDeliverResourceEvent(ClientPtr client, WindowPtr pWin)
-{
- ScreenPtr pScreen = pWin->drawable.pScreen;
-
- rrScrPriv(pScreen);
-
- xRRResourceChangeNotifyEvent re = {
- .type = RRNotify + RREventBase,
- .subCode = RRNotify_ResourceChange,
- .timestamp = pScrPriv->lastSetTime.milliseconds,
- .window = pWin->drawable.id
- };
-
- WriteEventsToClient(client, 1, (xEvent *) &re);
-}
-
static int
TellChanged(WindowPtr pWin, pointer value)
{
RREventPtr *pHead, pRREvent;
ClientPtr client;
ScreenPtr pScreen = pWin->drawable.pScreen;
- ScreenPtr iter;
- rrScrPrivPtr pSlaveScrPriv;
rrScrPriv(pScreen);
int i;
@@ -478,16 +450,6 @@ TellChanged(WindowPtr pWin, pointer value)
if (crtc->changed)
RRDeliverCrtcEvent(client, pWin, crtc);
}
-
- xorg_list_for_each_entry(iter, &pScreen->output_slave_list, output_head) {
- pSlaveScrPriv = rrGetScrPriv(iter);
- for (i = 0; i < pSlaveScrPriv->numCrtcs; i++) {
- RRCrtcPtr crtc = pSlaveScrPriv->crtcs[i];
-
- if (crtc->changed)
- RRDeliverCrtcEvent(client, pWin, crtc);
- }
- }
}
if (pRREvent->mask & RROutputChangeNotifyMask) {
@@ -497,67 +459,11 @@ TellChanged(WindowPtr pWin, pointer value)
if (output->changed)
RRDeliverOutputEvent(client, pWin, output);
}
-
- xorg_list_for_each_entry(iter, &pScreen->output_slave_list, output_head) {
- pSlaveScrPriv = rrGetScrPriv(iter);
- for (i = 0; i < pSlaveScrPriv->numOutputs; i++) {
- RROutputPtr output = pSlaveScrPriv->outputs[i];
-
- if (output->changed)
- RRDeliverOutputEvent(client, pWin, output);
- }
- }
- }
-
- if (pRREvent->mask & RRProviderChangeNotifyMask) {
- xorg_list_for_each_entry(iter, &pScreen->output_slave_list, output_head) {
- pSlaveScrPriv = rrGetScrPriv(iter);
- if (pSlaveScrPriv->provider->changed)
- RRDeliverProviderEvent(client, pWin, pSlaveScrPriv->provider);
- }
- xorg_list_for_each_entry(iter, &pScreen->offload_slave_list, offload_head) {
- pSlaveScrPriv = rrGetScrPriv(iter);
- if (pSlaveScrPriv->provider->changed)
- RRDeliverProviderEvent(client, pWin, pSlaveScrPriv->provider);
- }
- xorg_list_for_each_entry(iter, &pScreen->unattached_list, unattached_head) {
- pSlaveScrPriv = rrGetScrPriv(iter);
- if (pSlaveScrPriv->provider->changed)
- RRDeliverProviderEvent(client, pWin, pSlaveScrPriv->provider);
- }
- }
-
- if (pRREvent->mask & RRResourceChangeNotifyMask) {
- if (pScrPriv->resourcesChanged) {
- RRDeliverResourceEvent(client, pWin);
- }
}
}
return WT_WALKCHILDREN;
}
-void
-RRSetChanged(ScreenPtr pScreen)
-{
- /* set changed bits on the master screen only */
- ScreenPtr master;
- rrScrPriv(pScreen);
- rrScrPrivPtr mastersp;
-
- if (pScreen->isGPU) {
- master = pScreen->current_master;
- if (!master)
- return;
- mastersp = rrGetScrPriv(master);
- }
- else {
- master = pScreen;
- mastersp = pScrPriv;
- }
-
- mastersp->changed = TRUE;
-}
-
/*
* Something changed; send events and adjust pointer position
*/
@@ -568,8 +474,6 @@ RRTellChanged(ScreenPtr pScreen)
rrScrPriv(pScreen);
rrScrPrivPtr mastersp;
int i;
- ScreenPtr iter;
- rrScrPrivPtr pSlaveScrPriv;
if (pScreen->isGPU) {
master = pScreen->current_master;
@@ -580,7 +484,7 @@ RRTellChanged(ScreenPtr pScreen)
mastersp = pScrPriv;
}
- if (mastersp->changed) {
+ if (pScrPriv->changed) {
UpdateCurrentTimeIf();
if (mastersp->configChanged) {
mastersp->lastConfigTime = currentTime;
@@ -588,33 +492,11 @@ RRTellChanged(ScreenPtr pScreen)
}
pScrPriv->changed = FALSE;
mastersp->changed = FALSE;
-
WalkTree(master, TellChanged, (pointer) master);
-
- mastersp->resourcesChanged = FALSE;
-
for (i = 0; i < pScrPriv->numOutputs; i++)
pScrPriv->outputs[i]->changed = FALSE;
for (i = 0; i < pScrPriv->numCrtcs; i++)
pScrPriv->crtcs[i]->changed = FALSE;
-
- xorg_list_for_each_entry(iter, &master->output_slave_list, output_head) {
- pSlaveScrPriv = rrGetScrPriv(iter);
- pSlaveScrPriv->provider->changed = FALSE;
- for (i = 0; i < pSlaveScrPriv->numOutputs; i++)
- pSlaveScrPriv->outputs[i]->changed = FALSE;
- for (i = 0; i < pSlaveScrPriv->numCrtcs; i++)
- pSlaveScrPriv->crtcs[i]->changed = FALSE;
- }
- xorg_list_for_each_entry(iter, &master->offload_slave_list, offload_head) {
- pSlaveScrPriv = rrGetScrPriv(iter);
- pSlaveScrPriv->provider->changed = FALSE;
- }
- xorg_list_for_each_entry(iter, &master->unattached_list, unattached_head) {
- pSlaveScrPriv = rrGetScrPriv(iter);
- pSlaveScrPriv->provider->changed = FALSE;
- }
-
if (mastersp->layoutChanged) {
pScrPriv->layoutChanged = FALSE;
RRPointerScreenConfigured(master);
diff --git a/randr/randrstr.h b/randr/randrstr.h
index 15299fd6d..25174798f 100644
--- a/randr/randrstr.h
+++ b/randr/randrstr.h
@@ -164,7 +164,6 @@ struct _rrProvider {
int nameLength;
RRPropertyPtr properties;
Bool pendingProperties;
- Bool changed;
struct _rrProvider *offload_sink;
struct _rrProvider *output_source;
};
@@ -301,7 +300,6 @@ typedef struct _rrScrPriv {
Bool changed; /* some config changed */
Bool configChanged; /* configuration changed */
Bool layoutChanged; /* screen layout changed */
- Bool resourcesChanged; /* screen resources change */
CARD16 minWidth, minHeight;
CARD16 maxWidth, maxHeight;
@@ -487,14 +485,7 @@ extern _X_EXPORT int
extern _X_EXPORT void
RRDeliverScreenEvent(ClientPtr client, WindowPtr pWin, ScreenPtr pScreen);
-extern _X_EXPORT void
- RRResourcesChanged(ScreenPtr pScreen);
-
/* randr.c */
-/* set a screen change on the primary screen */
-extern _X_EXPORT void
-RRSetChanged(ScreenPtr pScreen);
-
/*
* Send all pending events
*/
@@ -928,9 +919,6 @@ RRProviderSetCapabilities(RRProviderPtr provider, uint32_t capabilities);
extern _X_EXPORT Bool
RRProviderLookup(XID id, RRProviderPtr *provider_p);
-extern _X_EXPORT void
-RRDeliverProviderEvent(ClientPtr client, WindowPtr pWin, RRProviderPtr provider);
-
/* rrproviderproperty.c */
extern _X_EXPORT void
diff --git a/randr/rrcrtc.c b/randr/rrcrtc.c
index 5cdfd0510..6e2eca5ad 100644
--- a/randr/rrcrtc.c
+++ b/randr/rrcrtc.c
@@ -39,7 +39,7 @@ RRCrtcChanged(RRCrtcPtr crtc, Bool layoutChanged)
if (pScreen) {
rrScrPriv(pScreen);
- RRSetChanged(pScreen);
+ pScrPriv->changed = TRUE;
/*
* Send ConfigureNotify on any layout change
*/
@@ -102,8 +102,6 @@ RRCrtcCreate(ScreenPtr pScreen, void *devPrivate)
crtc->pScreen = pScreen;
pScrPriv->crtcs[pScrPriv->numCrtcs++] = crtc;
- RRResourcesChanged(pScreen);
-
return crtc;
}
@@ -674,8 +672,6 @@ RRCrtcDestroyResource(pointer value, XID pid)
break;
}
}
-
- RRResourcesChanged(pScreen);
}
if (crtc->scanout_pixmap)
diff --git a/randr/rrinfo.c b/randr/rrinfo.c
index fc57bd408..1408d6f64 100644
--- a/randr/rrinfo.c
+++ b/randr/rrinfo.c
@@ -225,7 +225,7 @@ RRScreenSetSizeRange(ScreenPtr pScreen,
pScrPriv->minHeight = minHeight;
pScrPriv->maxWidth = maxWidth;
pScrPriv->maxHeight = maxHeight;
- RRSetChanged(pScreen);
+ pScrPriv->changed = TRUE;
pScrPriv->configChanged = TRUE;
}
diff --git a/randr/rroutput.c b/randr/rroutput.c
index 2b0b82f4c..88781ba0f 100644
--- a/randr/rroutput.c
+++ b/randr/rroutput.c
@@ -36,7 +36,7 @@ RROutputChanged(RROutputPtr output, Bool configChanged)
output->changed = TRUE;
if (pScreen) {
rrScrPriv(pScreen);
- RRSetChanged(pScreen);
+ pScrPriv->changed = TRUE;
if (configChanged)
pScrPriv->configChanged = TRUE;
}
@@ -101,9 +101,6 @@ RROutputCreate(ScreenPtr pScreen,
return NULL;
pScrPriv->outputs[pScrPriv->numOutputs++] = output;
-
- RRResourcesChanged(pScreen);
-
return output;
}
@@ -358,8 +355,6 @@ RROutputDestroyResource(pointer value, XID pid)
break;
}
}
-
- RRResourcesChanged(pScreen);
}
if (output->modes) {
for (m = 0; m < output->numModes; m++)
diff --git a/randr/rrpointer.c b/randr/rrpointer.c
index eb6b6770c..ec803e9d1 100644
--- a/randr/rrpointer.c
+++ b/randr/rrpointer.c
@@ -82,7 +82,7 @@ RRPointerToNearestCrtc(DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y,
else
dx = 0;
if (y < crtc->y)
- dy = crtc->y - y;
+ dy = crtc->y - x;
else if (y > crtc->y + scan_height)
dy = y - (crtc->y + scan_height);
else
diff --git a/randr/rrprovider.c b/randr/rrprovider.c
index 2334ad277..b321e6227 100644
--- a/randr/rrprovider.c
+++ b/randr/rrprovider.c
@@ -304,9 +304,6 @@ ProcRRSetProviderOutputSource(ClientPtr client)
pScrPriv->rrProviderSetOutputSource(pScreen, provider, source_provider);
- provider->changed = TRUE;
- RRSetChanged(pScreen);
-
RRTellChanged (pScreen);
return Success;
@@ -336,9 +333,6 @@ ProcRRSetProviderOffloadSink(ClientPtr client)
pScrPriv->rrProviderSetOffloadSink(pScreen, provider, sink_provider);
- provider->changed = TRUE;
- RRSetChanged(pScreen);
-
RRTellChanged (pScreen);
return Success;
@@ -363,7 +357,6 @@ RRProviderCreate(ScreenPtr pScreen, const char *name,
provider->nameLength = nameLength;
memcpy(provider->name, name, nameLength);
provider->name[nameLength] = '\0';
- provider->changed = FALSE;
if (!AddResource (provider->id, RRProviderType, (pointer) provider))
return NULL;
@@ -423,21 +416,3 @@ RRProviderLookup(XID id, RRProviderPtr *provider_p)
return TRUE;
return FALSE;
}
-
-void
-RRDeliverProviderEvent(ClientPtr client, WindowPtr pWin, RRProviderPtr provider)
-{
- ScreenPtr pScreen = pWin->drawable.pScreen;
-
- rrScrPriv(pScreen);
-
- xRRProviderChangeNotifyEvent pe = {
- .type = RRNotify + RREventBase,
- .subCode = RRNotify_ProviderChange,
- .timestamp = pScrPriv->lastSetTime.milliseconds,
- .window = pWin->drawable.id,
- .provider = provider->id
- };
-
- WriteEventsToClient(client, 1, (xEvent *) &pe);
-}
diff --git a/randr/rrscreen.c b/randr/rrscreen.c
index 36179ae89..39340ccee 100644
--- a/randr/rrscreen.c
+++ b/randr/rrscreen.c
@@ -143,7 +143,7 @@ RRScreenSizeNotify(ScreenPtr pScreen)
pScrPriv->height = pScreen->height;
pScrPriv->mmWidth = pScreen->mmWidth;
pScrPriv->mmHeight = pScreen->mmHeight;
- RRSetChanged(pScreen);
+ pScrPriv->changed = TRUE;
/* pScrPriv->sizeChanged = TRUE; */
RRTellChanged(pScreen);