mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2026-02-15 03:20:31 +01:00
Revert "Merge commit 'f98d6cfa0de41cf33e7555342753897c07af84ef' into server-1.14-branch"
This reverts commitad2fa50b53, reversing changes made tobab4908579. oops i broke ABI. Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
ad2fa50b53
commit
9fbbea8cda
10 changed files with 9 additions and 194 deletions
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
120
randr/randr.c
120
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);
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -225,7 +225,7 @@ RRScreenSetSizeRange(ScreenPtr pScreen,
|
|||
pScrPriv->minHeight = minHeight;
|
||||
pScrPriv->maxWidth = maxWidth;
|
||||
pScrPriv->maxHeight = maxHeight;
|
||||
RRSetChanged(pScreen);
|
||||
pScrPriv->changed = TRUE;
|
||||
pScrPriv->configChanged = TRUE;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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++)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue