[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[Git][xorg-team/driver/xserver-xorg-video-ati][upstream-unstable] 4 commits: Revert "glamor: Avoid glamor_create_pixmap for pixmaps backing windows"



Title: GitLab

Timo Aaltonen pushed to branch upstream-unstable at X Strike Force / driver / xserver-xorg-video-ati

Commits:

4 changed files:

Changes:

  • configure.ac
    ... ... @@ -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
     
    

  • src/drmmode_display.c
    ... ... @@ -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);
    

  • src/drmmode_display.h
    ... ... @@ -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;
    

  • src/radeon_glamor.c
    ... ... @@ -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;
    


  • Reply to: