guibuilder_pel7x64builder0
4 years ago
15 changed files with 429 additions and 57 deletions
@ -0,0 +1,25 @@ |
|||||||
|
From 58610d84853d1aa778230df731ce9036f1b32577 Mon Sep 17 00:00:00 2001 |
||||||
|
From: Adam Jackson <ajax@redhat.com> |
||||||
|
Date: Tue, 13 Aug 2019 14:00:48 -0400 |
||||||
|
Subject: [PATCH] composite: Additional paranoia in compDestroyDamage |
||||||
|
|
||||||
|
--- |
||||||
|
composite/compalloc.c | 2 ++ |
||||||
|
1 file changed, 2 insertions(+) |
||||||
|
|
||||||
|
diff --git a/composite/compalloc.c b/composite/compalloc.c |
||||||
|
index 57c1693..04cf70c 100644 |
||||||
|
--- a/composite/compalloc.c |
||||||
|
+++ b/composite/compalloc.c |
||||||
|
@@ -97,6 +97,8 @@ compDestroyDamage(DamagePtr pDamage, void *closure) |
||||||
|
CompWindowPtr cw = GetCompWindow(pWin); |
||||||
|
|
||||||
|
cw->damage = 0; |
||||||
|
+ cw->damaged = 0; |
||||||
|
+ cw->damageRegistered = 0; |
||||||
|
} |
||||||
|
|
||||||
|
static Bool |
||||||
|
-- |
||||||
|
2.21.0 |
||||||
|
|
@ -0,0 +1,31 @@ |
|||||||
|
From d84e9d5abfb571ba29f7ddf2a1cd3b7706702139 Mon Sep 17 00:00:00 2001 |
||||||
|
From: Adam Jackson <ajax@redhat.com> |
||||||
|
Date: Mon, 5 Aug 2019 14:35:40 -0400 |
||||||
|
Subject: [PATCH] composite: Remove excess compUnredirectWindow |
||||||
|
|
||||||
|
--- |
||||||
|
composite/compwindow.c | 8 -------- |
||||||
|
1 file changed, 8 deletions(-) |
||||||
|
|
||||||
|
diff --git a/composite/compwindow.c b/composite/compwindow.c |
||||||
|
index 9005d85..31d39e9 100644 |
||||||
|
--- a/composite/compwindow.c |
||||||
|
+++ b/composite/compwindow.c |
||||||
|
@@ -656,14 +656,6 @@ compDestroyWindow(WindowPtr pWin) |
||||||
|
CompSubwindowsPtr csw; |
||||||
|
Bool ret; |
||||||
|
|
||||||
|
- /* |
||||||
|
- * Take down bs explicitly, to get ->backStorage cleared |
||||||
|
- */ |
||||||
|
- if (pWin->backingStore != NotUseful) { |
||||||
|
- pWin->backingStore = NotUseful; |
||||||
|
- pScreen->ChangeWindowAttributes(pWin, CWBackingStore); |
||||||
|
- } |
||||||
|
- |
||||||
|
pScreen->DestroyWindow = cs->DestroyWindow; |
||||||
|
while ((cw = GetCompWindow(pWin))) |
||||||
|
FreeResource(cw->clients->id, RT_NONE); |
||||||
|
-- |
||||||
|
2.21.0 |
||||||
|
|
@ -0,0 +1,61 @@ |
|||||||
|
From c2c9450bc7b324e58ea6b77d0d7e1d2d18f35646 Mon Sep 17 00:00:00 2001 |
||||||
|
From: Adam Jackson <ajax@redhat.com> |
||||||
|
Date: Tue, 30 Jul 2019 21:26:49 -0400 |
||||||
|
Subject: [PATCH xserver] dix: Optimize setting backing store state |
||||||
|
|
||||||
|
Extra special RHEL 7.7+ edition |
||||||
|
--- |
||||||
|
composite/compinit.c | 15 +++++---------- |
||||||
|
dix/window.c | 6 ++++++ |
||||||
|
2 files changed, 11 insertions(+), 10 deletions(-) |
||||||
|
|
||||||
|
diff --git a/composite/compinit.c b/composite/compinit.c |
||||||
|
index 2a4de4a22..149f354a6 100644 |
||||||
|
--- a/composite/compinit.c |
||||||
|
+++ b/composite/compinit.c |
||||||
|
@@ -120,20 +120,15 @@ compCheckBackingStore(WindowPtr pWin) |
||||||
|
(pWin->backingStore == Always) || |
||||||
|
(pWin->backingStore == WhenMapped && pWin->viewable); |
||||||
|
|
||||||
|
- if (should && !pWin->backStorage) { |
||||||
|
+ if (should) { |
||||||
|
compCheckPaintable(pWin); |
||||||
|
- if (Success == compRedirectWindow(serverClient, pWin, |
||||||
|
- CompositeRedirectAutomatic)) |
||||||
|
- pWin->backStorage = TRUE; |
||||||
|
+ compRedirectWindow(serverClient, pWin, CompositeRedirectAutomatic); |
||||||
|
} |
||||||
|
- else if (!should && pWin->backStorage) { |
||||||
|
+ else if (!should) { |
||||||
|
compCheckPaintable(pWin); |
||||||
|
- if (Success == compUnredirectWindow(serverClient, pWin, |
||||||
|
- CompositeRedirectAutomatic)) |
||||||
|
- pWin->backStorage = FALSE; |
||||||
|
+ compUnredirectWindow(serverClient, pWin, CompositeRedirectAutomatic); |
||||||
|
} |
||||||
|
- pWin->paintable = pWin->viewable || |
||||||
|
- (pWin->backingStore == Always && pWin->backStorage); |
||||||
|
+ compCheckPaintable(pWin); /* XXX before and after? really? */ |
||||||
|
} |
||||||
|
|
||||||
|
/* Fake backing store via automatic redirection */ |
||||||
|
diff --git a/dix/window.c b/dix/window.c |
||||||
|
index 34bed93d9..30ae5db89 100644 |
||||||
|
--- a/dix/window.c |
||||||
|
+++ b/dix/window.c |
||||||
|
@@ -1342,6 +1342,12 @@ ChangeWindowAttributes(WindowPtr pWin, Mask vmask, XID *vlist, ClientPtr client) |
||||||
|
client->errorValue = val; |
||||||
|
goto PatchUp; |
||||||
|
} |
||||||
|
+ /* if we're not actually changing the window's state, hide |
||||||
|
+ * CWBackingStore from vmaskCopy so it doesn't get passed to |
||||||
|
+ * ->ChangeWindowAttributes below |
||||||
|
+ */ |
||||||
|
+ if (pWin->backingStore == val) |
||||||
|
+ continue; |
||||||
|
pWin->backingStore = val; |
||||||
|
pWin->forcedBS = FALSE; |
||||||
|
break; |
||||||
|
-- |
||||||
|
2.21.0 |
||||||
|
|
@ -0,0 +1,88 @@ |
|||||||
|
From 13f9b07039484927532d913dbccc664679235bf6 Mon Sep 17 00:00:00 2001 |
||||||
|
From: Peter Hutterer <peter.hutterer@who-t.net> |
||||||
|
Date: Mon, 25 Mar 2019 13:19:41 +1000 |
||||||
|
Subject: [PATCH xserver] dix: leave last.valuators alone on slave switch |
||||||
|
|
||||||
|
Terms: |
||||||
|
dev->last.valuator[] is the last value given to us by the driver |
||||||
|
dev->valuator.axisVal[] is the last value sent to the client |
||||||
|
dev->last.scroll[] is the abs value of the scroll axis as given by the driver, |
||||||
|
used for button emulation calculation (and the remainder) |
||||||
|
|
||||||
|
This function updates the device's last.valuator state based on the current |
||||||
|
master axis state. This way, relative motion continues fluidly when switching |
||||||
|
between devices. Before mouse 2 comes into effect, it's valuator state is |
||||||
|
updated to wherever the pointer currently is so the relative event applies on |
||||||
|
top of that. |
||||||
|
|
||||||
|
This can only work for x/y axes, all other axes aren't guaranteed to have the |
||||||
|
same meaning and/or may not be present: |
||||||
|
- xtest device: no valuator 2 |
||||||
|
- mouse: valuator 2 is horizontal scroll axis |
||||||
|
- tablet: valuator 2 is pressure |
||||||
|
|
||||||
|
Scaling the current value from the pressure range into the range for |
||||||
|
horizontal scrolling makes no sense. And it causes scroll jumps: |
||||||
|
|
||||||
|
- scroll down, last.valuator == axisVal == 20 |
||||||
|
- xdotool click 1, the XTest device doesn't have that valuator |
||||||
|
- scroll up |
||||||
|
- updateSlaveDeviceCoords reset last.valuator to 0 (axisVal == 20) |
||||||
|
- DeviceClassesChangedEvent includes value 20 for the axis |
||||||
|
- event is processed, last.value changes from 0 to -1 |
||||||
|
- axisVal is updated to -1, causing a jump of -21 |
||||||
|
|
||||||
|
The same applies when we switch from tablet to mouse wheel if the pressure |
||||||
|
value is 0 on proximity out (basically guaranteed). So let's drop this code |
||||||
|
altogether and only leave the scaling for the relative x/y motion. |
||||||
|
|
||||||
|
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> |
||||||
|
--- |
||||||
|
dix/getevents.c | 25 +------------------------ |
||||||
|
1 file changed, 1 insertion(+), 24 deletions(-) |
||||||
|
|
||||||
|
diff --git a/dix/getevents.c b/dix/getevents.c |
||||||
|
index d8955969a..f83dac709 100644 |
||||||
|
--- a/dix/getevents.c |
||||||
|
+++ b/dix/getevents.c |
||||||
|
@@ -331,9 +331,6 @@ rescaleValuatorAxis(double coord, AxisInfoPtr from, AxisInfoPtr to, |
||||||
|
static void |
||||||
|
updateSlaveDeviceCoords(DeviceIntPtr master, DeviceIntPtr pDev) |
||||||
|
{ |
||||||
|
- int i; |
||||||
|
- DeviceIntPtr lastSlave; |
||||||
|
- |
||||||
|
/* master->last.valuators[0]/[1] is in desktop-wide coords and the actual |
||||||
|
* position of the pointer */ |
||||||
|
pDev->last.valuators[0] = master->last.valuators[0]; |
||||||
|
@@ -358,27 +355,7 @@ updateSlaveDeviceCoords(DeviceIntPtr master, DeviceIntPtr pDev) |
||||||
|
screenInfo.height); |
||||||
|
} |
||||||
|
|
||||||
|
- /* calculate the other axis as well based on info from the old |
||||||
|
- * slave-device. If the old slave had less axes than this one, |
||||||
|
- * last.valuators is reset to 0. |
||||||
|
- */ |
||||||
|
- if ((lastSlave = master->last.slave) && lastSlave->valuator) { |
||||||
|
- for (i = 2; i < pDev->valuator->numAxes; i++) { |
||||||
|
- if (i >= lastSlave->valuator->numAxes) { |
||||||
|
- pDev->last.valuators[i] = 0; |
||||||
|
- valuator_mask_set_double(pDev->last.scroll, i, 0); |
||||||
|
- } |
||||||
|
- else { |
||||||
|
- double val = pDev->last.valuators[i]; |
||||||
|
- |
||||||
|
- val = rescaleValuatorAxis(val, lastSlave->valuator->axes + i, |
||||||
|
- pDev->valuator->axes + i, 0, 0); |
||||||
|
- pDev->last.valuators[i] = val; |
||||||
|
- valuator_mask_set_double(pDev->last.scroll, i, val); |
||||||
|
- } |
||||||
|
- } |
||||||
|
- } |
||||||
|
- |
||||||
|
+ /* other axes are left as-is */ |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
-- |
||||||
|
2.20.1 |
@ -0,0 +1,55 @@ |
|||||||
|
From 2a9268e4a0ba7b062ded4d361be3119d887aac41 Mon Sep 17 00:00:00 2001 |
||||||
|
From: Adam Jackson <ajax@redhat.com> |
||||||
|
Date: Tue, 3 Sep 2019 11:20:58 -0400 |
||||||
|
Subject: [PATCH xserver] dri2: Set fallback driver names for Intel and AMD |
||||||
|
chips |
||||||
|
MIME-Version: 1.0 |
||||||
|
Content-Type: text/plain; charset=UTF-8 |
||||||
|
Content-Transfer-Encoding: 8bit |
||||||
|
|
||||||
|
i965 and radeonsi, respectively, are the drivers that have been |
||||||
|
receiving new hardware support. It's really silly to need to update the |
||||||
|
server side to know specific new devices IDs every time a new ASIC comes |
||||||
|
out. |
||||||
|
|
||||||
|
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> |
||||||
|
--- |
||||||
|
hw/xfree86/dri2/pci_ids/pci_id_driver_map.h | 9 ++------- |
||||||
|
1 file changed, 2 insertions(+), 7 deletions(-) |
||||||
|
|
||||||
|
diff --git a/hw/xfree86/dri2/pci_ids/pci_id_driver_map.h b/hw/xfree86/dri2/pci_ids/pci_id_driver_map.h |
||||||
|
index da7ea1c1e..04f372279 100644 |
||||||
|
--- a/hw/xfree86/dri2/pci_ids/pci_id_driver_map.h |
||||||
|
+++ b/hw/xfree86/dri2/pci_ids/pci_id_driver_map.h |
||||||
|
@@ -45,12 +45,6 @@ static const int r600_chip_ids[] = { |
||||||
|
#undef CHIPSET |
||||||
|
}; |
||||||
|
|
||||||
|
-static const int radeonsi_chip_ids[] = { |
||||||
|
-#define CHIPSET(chip, name, family) chip, |
||||||
|
-#include "pci_ids/radeonsi_pci_ids.h" |
||||||
|
-#undef CHIPSET |
||||||
|
-}; |
||||||
|
- |
||||||
|
static const int virtio_gpu_chip_ids[] = { |
||||||
|
#define CHIPSET(chip, name, family) chip, |
||||||
|
#include "pci_ids/virtio_gpu_pci_ids.h" |
||||||
|
@@ -71,13 +65,14 @@ static const struct { |
||||||
|
} driver_map[] = { |
||||||
|
{ 0x8086, "i915", i915_chip_ids, ARRAY_SIZE(i915_chip_ids) }, |
||||||
|
{ 0x8086, "i965", i965_chip_ids, ARRAY_SIZE(i965_chip_ids) }, |
||||||
|
+ { 0x8086, "i965", NULL, -1 }, |
||||||
|
#ifndef DRIVER_MAP_GALLIUM_ONLY |
||||||
|
{ 0x1002, "radeon", r100_chip_ids, ARRAY_SIZE(r100_chip_ids) }, |
||||||
|
{ 0x1002, "r200", r200_chip_ids, ARRAY_SIZE(r200_chip_ids) }, |
||||||
|
#endif |
||||||
|
{ 0x1002, "r300", r300_chip_ids, ARRAY_SIZE(r300_chip_ids) }, |
||||||
|
{ 0x1002, "r600", r600_chip_ids, ARRAY_SIZE(r600_chip_ids) }, |
||||||
|
- { 0x1002, "radeonsi", radeonsi_chip_ids, ARRAY_SIZE(radeonsi_chip_ids) }, |
||||||
|
+ { 0x1002, "radeonsi", NULL, -1 }, |
||||||
|
{ 0x10de, "nouveau", NULL, -1 }, |
||||||
|
{ 0x1af4, "virtio_gpu", virtio_gpu_chip_ids, ARRAY_SIZE(virtio_gpu_chip_ids) }, |
||||||
|
{ 0x15ad, "vmwgfx", vmwgfx_chip_ids, ARRAY_SIZE(vmwgfx_chip_ids) }, |
||||||
|
-- |
||||||
|
2.23.0 |
||||||
|
|
@ -0,0 +1,74 @@ |
|||||||
|
From 8ab80fd5057f3d954ac6dc310cc8773e9694a0b1 Mon Sep 17 00:00:00 2001 |
||||||
|
From: Dave Airlie <airlied@redhat.com> |
||||||
|
Date: Fri, 29 Mar 2019 08:44:07 +1000 |
||||||
|
Subject: [PATCH] xf86: set status to connected for monitors enabled in conf |
||||||
|
|
||||||
|
If the user sets Option "Enable" "TRUE" for a monitor, the X |
||||||
|
server will connect the connector a crtc but tell the user it |
||||||
|
is disconnected. |
||||||
|
|
||||||
|
However the user in this case is mutter, when it gets it's view |
||||||
|
of the output configuration it sees the output is disconnected |
||||||
|
and never sets it up again, which seems like the right thing to do. |
||||||
|
|
||||||
|
If we let the user enable a monitor, lets just set it as always |
||||||
|
connected. |
||||||
|
|
||||||
|
Reviewed-by: Olivier Fourdan <ofourdan@redhat.com> |
||||||
|
Signed-off-by: Dave Airlie <airlied@redhat.com> |
||||||
|
--- |
||||||
|
hw/xfree86/modes/xf86Crtc.c | 10 ++++++++++ |
||||||
|
hw/xfree86/modes/xf86Crtc.h | 1 + |
||||||
|
hw/xfree86/modes/xf86RandR12.c | 5 ++++- |
||||||
|
3 files changed, 15 insertions(+), 1 deletion(-) |
||||||
|
|
||||||
|
diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c |
||||||
|
index b3b84cc13..21daf9a01 100644 |
||||||
|
--- a/hw/xfree86/modes/xf86Crtc.c |
||||||
|
+++ b/hw/xfree86/modes/xf86Crtc.c |
||||||
|
@@ -552,6 +552,16 @@ xf86OutputSetMonitor(xf86OutputPtr output) |
||||||
|
"Output %s has no monitor section\n", output->name); |
||||||
|
} |
||||||
|
|
||||||
|
+Bool |
||||||
|
+xf86OutputForceEnabled(xf86OutputPtr output) |
||||||
|
+{ |
||||||
|
+ Bool enable; |
||||||
|
+ |
||||||
|
+ if (xf86GetOptValBool(output->options, OPTION_ENABLE, &enable) && enable) |
||||||
|
+ return TRUE; |
||||||
|
+ return FALSE; |
||||||
|
+} |
||||||
|
+ |
||||||
|
static Bool |
||||||
|
xf86OutputEnabled(xf86OutputPtr output, Bool strict) |
||||||
|
{ |
||||||
|
diff --git a/hw/xfree86/modes/xf86Crtc.h b/hw/xfree86/modes/xf86Crtc.h |
||||||
|
index 427c6bff4..bf3e808bc 100644 |
||||||
|
--- a/hw/xfree86/modes/xf86Crtc.h |
||||||
|
+++ b/hw/xfree86/modes/xf86Crtc.h |
||||||
|
@@ -1144,4 +1144,5 @@ xf86ProviderSetup(ScrnInfoPtr scrn, |
||||||
|
extern _X_EXPORT void |
||||||
|
xf86DetachAllCrtc(ScrnInfoPtr scrn); |
||||||
|
|
||||||
|
+Bool xf86OutputForceEnabled(xf86OutputPtr output); |
||||||
|
#endif /* _XF86CRTC_H_ */ |
||||||
|
diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c |
||||||
|
index 0838dbf82..b476c07ce 100644 |
||||||
|
--- a/hw/xfree86/modes/xf86RandR12.c |
||||||
|
+++ b/hw/xfree86/modes/xf86RandR12.c |
||||||
|
@@ -1647,7 +1647,10 @@ xf86RandR12SetInfo12(ScreenPtr pScreen) |
||||||
|
RROutputSetConnection(output->randr_output, RR_Connected); |
||||||
|
break; |
||||||
|
case XF86OutputStatusDisconnected: |
||||||
|
- RROutputSetConnection(output->randr_output, RR_Disconnected); |
||||||
|
+ if (xf86OutputForceEnabled(output)) |
||||||
|
+ RROutputSetConnection(output->randr_output, RR_Connected); |
||||||
|
+ else |
||||||
|
+ RROutputSetConnection(output->randr_output, RR_Disconnected); |
||||||
|
break; |
||||||
|
case XF86OutputStatusUnknown: |
||||||
|
RROutputSetConnection(output->randr_output, RR_UnknownConnection); |
||||||
|
-- |
||||||
|
2.20.1 |
||||||
|
|
Loading…
Reference in new issue