guibuilder_pel7x64builder0
4 years ago
15 changed files with 429 additions and 57 deletions
@ -0,0 +1,25 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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