Timo Aaltonen pushed to branch debian-unstable at X Strike Force / driver / xserver-xorg-video-ati
Commits:
-
f6cd4a67
by Michel Dänzer at 2019-03-08T10:48:10Z
-
79bc0e05
by Michel Dänzer at 2019-03-14T10:10:51Z
-
4407c78b
by Dave Airlie at 2019-03-15T11:42:04Z
-
36703f66
by Michel Dänzer at 2019-03-19T17:01:02Z
-
ec0e3cea
by Timo Aaltonen at 2019-03-28T11:13:48Z
-
d2b726da
by Timo Aaltonen at 2019-03-28T11:14:25Z
-
e5ff12ef
by Timo Aaltonen at 2019-03-28T13:21:02Z
5 changed files:
Changes:
... | ... | @@ -23,7 +23,7 @@ |
23 | 23 |
# Initialize Autoconf
|
24 | 24 |
AC_PREREQ([2.60])
|
25 | 25 |
AC_INIT([xf86-video-ati],
|
26 |
- [19.0.0],
|
|
26 |
+ [19.0.1],
|
|
27 | 27 |
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/Radeon],
|
28 | 28 |
[xf86-video-ati])
|
29 | 29 |
|
1 |
+xserver-xorg-video-ati (1:19.0.1-1) UNRELEASED; urgency=medium
|
|
2 |
+ |
|
3 |
+ * New bugfix release. (Closes: #924540) (LP: #1822075)
|
|
4 |
+ |
|
5 |
+ -- Timo Aaltonen <tjaalton@debian.org> Thu, 28 Mar 2019 13:14:06 +0200
|
|
6 |
+ |
|
1 | 7 |
xserver-xorg-video-ati (1:19.0.0-1) unstable; urgency=medium
|
2 | 8 |
|
3 | 9 |
* New upstream release.
|
... | ... | @@ -785,7 +785,7 @@ drmmode_crtc_scanout_update(xf86CrtcPtr crtc, DisplayModePtr mode, |
785 | 785 |
screen->GetWindowPixmap(screen->root),
|
786 | 786 |
extents)) {
|
787 | 787 |
RegionEmpty(DamageRegion(drmmode_crtc->scanout_damage));
|
788 |
- radeon_glamor_finish(scrn);
|
|
788 |
+ radeon_finish(scrn, drmmode_crtc->scanout[scanout_id].bo);
|
|
789 | 789 |
|
790 | 790 |
if (!drmmode_crtc->flip_pending) {
|
791 | 791 |
radeon_drm_abort_entry(drmmode_crtc->
|
... | ... | @@ -1576,6 +1576,51 @@ drmmode_output_mode_valid(xf86OutputPtr output, DisplayModePtr pModes) |
1576 | 1576 |
return MODE_OK;
|
1577 | 1577 |
}
|
1578 | 1578 |
|
1579 |
+static void
|
|
1580 |
+drmmode_output_attach_tile(xf86OutputPtr output)
|
|
1581 |
+{
|
|
1582 |
+#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1, 17, 99, 901, 0)
|
|
1583 |
+ drmmode_output_private_ptr drmmode_output = output->driver_private;
|
|
1584 |
+ drmModeConnectorPtr koutput = drmmode_output->mode_output;
|
|
1585 |
+ RADEONEntPtr pRADEONEnt = RADEONEntPriv(output->scrn);
|
|
1586 |
+ struct xf86CrtcTileInfo tile_info, *set = NULL;
|
|
1587 |
+ int i;
|
|
1588 |
+ |
|
1589 |
+ if (!koutput) {
|
|
1590 |
+ xf86OutputSetTile(output, NULL);
|
|
1591 |
+ return;
|
|
1592 |
+ }
|
|
1593 |
+ |
|
1594 |
+ /* look for a TILE property */
|
|
1595 |
+ for (i = 0; i < koutput->count_props; i++) {
|
|
1596 |
+ drmModePropertyPtr props;
|
|
1597 |
+ props = drmModeGetProperty(pRADEONEnt->fd, koutput->props[i]);
|
|
1598 |
+ if (!props)
|
|
1599 |
+ continue;
|
|
1600 |
+ |
|
1601 |
+ if (!(props->flags & DRM_MODE_PROP_BLOB)) {
|
|
1602 |
+ drmModeFreeProperty(props);
|
|
1603 |
+ continue;
|
|
1604 |
+ }
|
|
1605 |
+ |
|
1606 |
+ if (!strcmp(props->name, "TILE")) {
|
|
1607 |
+ drmModeFreePropertyBlob(drmmode_output->tile_blob);
|
|
1608 |
+ drmmode_output->tile_blob =
|
|
1609 |
+ drmModeGetPropertyBlob(pRADEONEnt->fd,
|
|
1610 |
+ koutput->prop_values[i]);
|
|
1611 |
+ }
|
|
1612 |
+ drmModeFreeProperty(props);
|
|
1613 |
+ }
|
|
1614 |
+ if (drmmode_output->tile_blob) {
|
|
1615 |
+ if (xf86OutputParseKMSTile(drmmode_output->tile_blob->data,
|
|
1616 |
+ drmmode_output->tile_blob->length,
|
|
1617 |
+ &tile_info) == TRUE)
|
|
1618 |
+ set = &tile_info;
|
|
1619 |
+ }
|
|
1620 |
+ xf86OutputSetTile(output, set);
|
|
1621 |
+#endif
|
|
1622 |
+}
|
|
1623 |
+ |
|
1579 | 1624 |
static int
|
1580 | 1625 |
koutput_get_prop_idx(int fd, drmModeConnectorPtr koutput,
|
1581 | 1626 |
int type, const char *name)
|
... | ... | @@ -1648,6 +1693,8 @@ drmmode_output_get_modes(xf86OutputPtr output) |
1648 | 1693 |
}
|
1649 | 1694 |
xf86OutputSetEDID(output, mon);
|
1650 | 1695 |
|
1696 |
+ drmmode_output_attach_tile(output);
|
|
1697 |
+ |
|
1651 | 1698 |
/* modes should already be available */
|
1652 | 1699 |
for (i = 0; i < koutput->count_modes; i++) {
|
1653 | 1700 |
Mode = xnfalloc(sizeof(DisplayModeRec));
|
... | ... | @@ -1665,8 +1712,11 @@ drmmode_output_destroy(xf86OutputPtr output) |
1665 | 1712 |
drmmode_output_private_ptr drmmode_output = output->driver_private;
|
1666 | 1713 |
int i;
|
1667 | 1714 |
|
1668 |
- if (drmmode_output->edid_blob)
|
|
1669 |
- drmModeFreePropertyBlob(drmmode_output->edid_blob);
|
|
1715 |
+ drmModeFreePropertyBlob(drmmode_output->edid_blob);
|
|
1716 |
+#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1, 17, 99, 901, 0)
|
|
1717 |
+ drmModeFreePropertyBlob(drmmode_output->tile_blob);
|
|
1718 |
+#endif
|
|
1719 |
+ |
|
1670 | 1720 |
for (i = 0; i < drmmode_output->num_props; i++) {
|
1671 | 1721 |
drmModeFreeProperty(drmmode_output->props[i].mode_prop);
|
1672 | 1722 |
free(drmmode_output->props[i].atoms);
|
... | ... | @@ -142,6 +142,9 @@ typedef struct { |
142 | 142 |
drmModeConnectorPtr mode_output;
|
143 | 143 |
drmModeEncoderPtr *mode_encoders;
|
144 | 144 |
drmModePropertyBlobPtr edid_blob;
|
145 |
+#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1, 17, 99, 901, 0)
|
|
146 |
+ drmModePropertyBlobPtr tile_blob;
|
|
147 |
+#endif
|
|
145 | 148 |
int dpms_enum_id;
|
146 | 149 |
int num_props;
|
147 | 150 |
drmmode_prop_ptr props;
|
... | ... | @@ -238,7 +238,7 @@ radeon_glamor_create_pixmap(ScreenPtr screen, int w, int h, int depth, |
238 | 238 |
if (info->shadow_primary) {
|
239 | 239 |
if (usage != CREATE_PIXMAP_USAGE_BACKING_PIXMAP)
|
240 | 240 |
return fbCreatePixmap(screen, w, h, depth, usage);
|
241 |
- } else if (usage != CREATE_PIXMAP_USAGE_BACKING_PIXMAP) {
|
|
241 |
+ } else {
|
|
242 | 242 |
pixmap = glamor_create_pixmap(screen, w, h, depth, usage);
|
243 | 243 |
if (pixmap)
|
244 | 244 |
return pixmap;
|