Update to xf86-video-ati 19.0.1. ok jsg@

This commit is contained in:
matthieu 2019-03-20 07:33:17 +00:00
parent 0da2d73184
commit 2cf2ce5d2c
6 changed files with 117 additions and 15 deletions

View File

@ -1,3 +1,52 @@
commit 36703f66c3b06875651606a6280d5dc9d9dad51e
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Tue Mar 19 18:01:02 2019 +0100
Bump version for 19.0.1 release
commit 4407c78bd86da4460ee07a15a365e07d99e0dd27
Author: Dave Airlie <airlied@redhat.com>
Date: Thu Mar 14 11:17:32 2019 +0100
modesetting: add tile property support
This adds tiling support to the driver, it retrieves the tile info from
the kernel and translates it into the server format and exposes the
property.
(Ported from xserver commits 8fb8bbb3062f1a06621ab7030a9e89d5e8367b35
and 6abdb54a11dac4e8854ff94ecdcb90a14321ab31)
(Ported from amdgpu commit 6ee857726166f495abcd68e4ff60e3a09593d079)
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit 79bc0e054f37026377d54cac6cd8127d4aa9baca
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Thu Mar 14 11:10:51 2019 +0100
Use radeon_finish in drmmode_crtc_scanout_update
radeon_glamor_finish only works if we're using glamor, otherwise it'll
crash.
Fixes: ce7db51020d3 "Cancel pending scanout update in drmmode_crtc_scanout_update"
Bug: https://bugs.debian.org/924540
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
commit f6cd4a67d7de5d3ff1a6e58a8c83749fc8ffc310
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Fri Mar 8 11:48:10 2019 +0100
Revert "glamor: Avoid glamor_create_pixmap for pixmaps backing windows"
This reverts commit 274703087f80342f51fa69c935bb9a1cb0c4ae47.
Reports of visual corruption were bisected to this, e.g.
https://bugs.archlinux.org/task/61941 . I can reproduce this with Turks,
but not with Bonaire. I assume it's a Mesa/glamor bug, but let's revert
for now.
Acked-by: Alex Deucher <alexander.deucher@amd.com>
commit 0d132d99e0b750896a78f47d73a8639680495d8c
Author: Michel Dänzer <michel.daenzer@amd.com>
Date: Wed Mar 6 17:48:03 2019 +0100

View File

@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for xf86-video-ati 19.0.0.
# Generated by GNU Autoconf 2.69 for xf86-video-ati 19.0.1.
#
# Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/Radeon>.
#
@ -591,8 +591,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='xf86-video-ati'
PACKAGE_TARNAME='xf86-video-ati'
PACKAGE_VERSION='19.0.0'
PACKAGE_STRING='xf86-video-ati 19.0.0'
PACKAGE_VERSION='19.0.1'
PACKAGE_STRING='xf86-video-ati 19.0.1'
PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/Radeon'
PACKAGE_URL=''
@ -1398,7 +1398,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures xf86-video-ati 19.0.0 to adapt to many kinds of systems.
\`configure' configures xf86-video-ati 19.0.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1468,7 +1468,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of xf86-video-ati 19.0.0:";;
short | recursive ) echo "Configuration of xf86-video-ati 19.0.1:";;
esac
cat <<\_ACEOF
@ -1629,7 +1629,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
xf86-video-ati configure 19.0.0
xf86-video-ati configure 19.0.1
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@ -2044,7 +2044,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by xf86-video-ati $as_me 19.0.0, which was
It was created by xf86-video-ati $as_me 19.0.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@ -2876,7 +2876,7 @@ fi
# Define the identity of the package.
PACKAGE='xf86-video-ati'
VERSION='19.0.0'
VERSION='19.0.1'
cat >>confdefs.h <<_ACEOF
@ -20122,7 +20122,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by xf86-video-ati $as_me 19.0.0, which was
This file was extended by xf86-video-ati $as_me 19.0.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@ -20188,7 +20188,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
xf86-video-ati config.status 19.0.0
xf86-video-ati config.status 19.0.1
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"

View File

@ -23,7 +23,7 @@
# Initialize Autoconf
AC_PREREQ([2.60])
AC_INIT([xf86-video-ati],
[19.0.0],
[19.0.1],
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/Radeon],
[xf86-video-ati])

View File

@ -785,7 +785,7 @@ drmmode_crtc_scanout_update(xf86CrtcPtr crtc, DisplayModePtr mode,
screen->GetWindowPixmap(screen->root),
extents)) {
RegionEmpty(DamageRegion(drmmode_crtc->scanout_damage));
radeon_glamor_finish(scrn);
radeon_finish(scrn, drmmode_crtc->scanout[scanout_id].bo);
if (!drmmode_crtc->flip_pending) {
radeon_drm_abort_entry(drmmode_crtc->
@ -1576,6 +1576,51 @@ drmmode_output_mode_valid(xf86OutputPtr output, DisplayModePtr pModes)
return MODE_OK;
}
static void
drmmode_output_attach_tile(xf86OutputPtr output)
{
#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1, 17, 99, 901, 0)
drmmode_output_private_ptr drmmode_output = output->driver_private;
drmModeConnectorPtr koutput = drmmode_output->mode_output;
RADEONEntPtr pRADEONEnt = RADEONEntPriv(output->scrn);
struct xf86CrtcTileInfo tile_info, *set = NULL;
int i;
if (!koutput) {
xf86OutputSetTile(output, NULL);
return;
}
/* look for a TILE property */
for (i = 0; i < koutput->count_props; i++) {
drmModePropertyPtr props;
props = drmModeGetProperty(pRADEONEnt->fd, koutput->props[i]);
if (!props)
continue;
if (!(props->flags & DRM_MODE_PROP_BLOB)) {
drmModeFreeProperty(props);
continue;
}
if (!strcmp(props->name, "TILE")) {
drmModeFreePropertyBlob(drmmode_output->tile_blob);
drmmode_output->tile_blob =
drmModeGetPropertyBlob(pRADEONEnt->fd,
koutput->prop_values[i]);
}
drmModeFreeProperty(props);
}
if (drmmode_output->tile_blob) {
if (xf86OutputParseKMSTile(drmmode_output->tile_blob->data,
drmmode_output->tile_blob->length,
&tile_info) == TRUE)
set = &tile_info;
}
xf86OutputSetTile(output, set);
#endif
}
static int
koutput_get_prop_idx(int fd, drmModeConnectorPtr koutput,
int type, const char *name)
@ -1648,6 +1693,8 @@ drmmode_output_get_modes(xf86OutputPtr output)
}
xf86OutputSetEDID(output, mon);
drmmode_output_attach_tile(output);
/* modes should already be available */
for (i = 0; i < koutput->count_modes; i++) {
Mode = xnfalloc(sizeof(DisplayModeRec));
@ -1665,8 +1712,11 @@ drmmode_output_destroy(xf86OutputPtr output)
drmmode_output_private_ptr drmmode_output = output->driver_private;
int i;
if (drmmode_output->edid_blob)
drmModeFreePropertyBlob(drmmode_output->edid_blob);
drmModeFreePropertyBlob(drmmode_output->edid_blob);
#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1, 17, 99, 901, 0)
drmModeFreePropertyBlob(drmmode_output->tile_blob);
#endif
for (i = 0; i < drmmode_output->num_props; i++) {
drmModeFreeProperty(drmmode_output->props[i].mode_prop);
free(drmmode_output->props[i].atoms);

View File

@ -142,6 +142,9 @@ typedef struct {
drmModeConnectorPtr mode_output;
drmModeEncoderPtr *mode_encoders;
drmModePropertyBlobPtr edid_blob;
#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1, 17, 99, 901, 0)
drmModePropertyBlobPtr tile_blob;
#endif
int dpms_enum_id;
int num_props;
drmmode_prop_ptr props;

View File

@ -238,7 +238,7 @@ radeon_glamor_create_pixmap(ScreenPtr screen, int w, int h, int depth,
if (info->shadow_primary) {
if (usage != CREATE_PIXMAP_USAGE_BACKING_PIXMAP)
return fbCreatePixmap(screen, w, h, depth, usage);
} else if (usage != CREATE_PIXMAP_USAGE_BACKING_PIXMAP) {
} else {
pixmap = glamor_create_pixmap(screen, w, h, depth, usage);
if (pixmap)
return pixmap;