All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Pekka Paalanen <pekka.paalanen@collabora.com>
Cc: dri-devel@lists.freedesktop.org,
	"Simon Ser" <contact@emersion.fr>,
	intel-gfx@lists.freedesktop.org,
	"Jonas Ådahl" <jadahl@redhat.com>,
	"Daniel Stone" <daniel@fooishbar.org>
Subject: Re: [Intel-gfx] [PATCH 1/2] drm: Introduce plane SIZE_HINTS property
Date: Wed, 8 Feb 2023 23:16:56 +0200	[thread overview]
Message-ID: <Y+QRSH3kLD4Xrktc@intel.com> (raw)
In-Reply-To: <Y+OdtR78JnQOTj38@intel.com>

On Wed, Feb 08, 2023 at 03:03:49PM +0200, Ville Syrjälä wrote:
> On Wed, Feb 08, 2023 at 02:13:12PM +0200, Pekka Paalanen wrote:
> > On Wed,  8 Feb 2023 06:09:10 +0200
> > Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> > 
> > > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > 
> > > Add a new immutable plane property by which a plane can advertise
> > > a handful of recommended plane sizes. This would be mostly exposed
> > > by cursor planes as a slightly more capable replacement for
> > > the DRM_CAP_CURSOR_WIDTH/HEIGHT caps, which can only declare
> > > a one size fits all limit for the whole device.
> > > 
> > > Currently eg. amdgpu/i915/nouveau just advertize the max cursor
> > > size via the cursor size caps. But always using the max sized
> > > cursor can waste a surprising amount of power, so a better
> > > stragey is desirable.
> > > 
> > > Most other drivers don't specify any cursor size at all, in
> > > which case the ioctl code just claims that 64x64 is a great
> > > choice. Whether that is actually true is debatable.
> > > 
> > > A poll of various compositor developers informs us that
> > > blindly probing with setcursor/atomic ioctl to determine
> > > suitable cursor sizes is not acceptable, thus the
> > > introduction of the new property to supplant the cursor
> > > size caps. The compositor will now be free to select a
> > > more optimal cursor size from the short list of options.
> > > 
> > > Note that the reported sizes (either via the property or the
> > > caps) make no claims about things such as plane scaling. So
> > > these things should only really be consulted for simple
> > > "cursor like" use cases.
> > > 
> > > Cc: Simon Ser <contact@emersion.fr>
> > > Cc: Jonas Ådahl <jadahl@redhat.com>
> > > Cc: Daniel Stone <daniel@fooishbar.org>
> > > Cc: Pekka Paalanen <pekka.paalanen@collabora.com>
> > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > ---
> > >  drivers/gpu/drm/drm_mode_config.c |  7 +++++++
> > >  drivers/gpu/drm/drm_plane.c       | 33 +++++++++++++++++++++++++++++++
> > >  include/drm/drm_mode_config.h     |  5 +++++
> > >  include/drm/drm_plane.h           |  4 ++++
> > >  include/uapi/drm/drm_mode.h       |  5 +++++
> > >  5 files changed, 54 insertions(+)
> > > 
> > > diff --git a/drivers/gpu/drm/drm_mode_config.c b/drivers/gpu/drm/drm_mode_config.c
> > > index 87eb591fe9b5..21860f94a18c 100644
> > > --- a/drivers/gpu/drm/drm_mode_config.c
> > > +++ b/drivers/gpu/drm/drm_mode_config.c
> > > @@ -374,6 +374,13 @@ static int drm_mode_create_standard_properties(struct drm_device *dev)
> > >  		return -ENOMEM;
> > >  	dev->mode_config.modifiers_property = prop;
> > >  
> > > +	prop = drm_property_create(dev,
> > > +				   DRM_MODE_PROP_IMMUTABLE | DRM_MODE_PROP_BLOB,
> > > +				   "SIZE_HINTS", 0);
> > > +	if (!prop)
> > > +		return -ENOMEM;
> > > +	dev->mode_config.size_hints_property = prop;
> > > +
> > >  	return 0;
> > >  }
> > >  
> > > diff --git a/drivers/gpu/drm/drm_plane.c b/drivers/gpu/drm/drm_plane.c
> > > index 24e7998d1731..d0a277f4be1f 100644
> > > --- a/drivers/gpu/drm/drm_plane.c
> > > +++ b/drivers/gpu/drm/drm_plane.c
> > > @@ -1582,3 +1582,36 @@ int drm_plane_create_scaling_filter_property(struct drm_plane *plane,
> > >  	return 0;
> > >  }
> > >  EXPORT_SYMBOL(drm_plane_create_scaling_filter_property);
> > > +
> > > +/**
> > > + * drm_plane_add_size_hint_property - create a size hint property
> > > + *
> > > + * @plane: drm plane
> > > + * @hints: size hints
> > > + * @num_hints: number of size hints
> > > + *
> > > + * Create a size hints property for the plane.
> > > + *
> > > + * RETURNS:
> > > + * Zero for success or -errno
> > > + */
> > > +int drm_plane_add_size_hints_property(struct drm_plane *plane,
> > > +				      const struct drm_plane_size_hint *hints,
> > > +				      int num_hints)
> > > +{
> > > +	struct drm_device *dev = plane->dev;
> > > +	struct drm_mode_config *config = &dev->mode_config;
> > > +	struct drm_property_blob *blob;
> > > +
> > > +	blob = drm_property_create_blob(dev,
> > > +					array_size(sizeof(hints[0]), num_hints),
> > > +					hints);
> > > +	if (IS_ERR(blob))
> > > +		return PTR_ERR(blob);
> > > +
> > > +	drm_object_attach_property(&plane->base, config->size_hints_property,
> > > +				   blob->base.id);
> > > +
> > > +	return 0;
> > > +}
> > > +EXPORT_SYMBOL(drm_plane_add_size_hints_property);
> > > diff --git a/include/drm/drm_mode_config.h b/include/drm/drm_mode_config.h
> > > index e5b053001d22..ed9f6938dca1 100644
> > > --- a/include/drm/drm_mode_config.h
> > > +++ b/include/drm/drm_mode_config.h
> > > @@ -949,6 +949,11 @@ struct drm_mode_config {
> > >  	 */
> > >  	struct drm_property *modifiers_property;
> > >  
> > > +	/**
> > > +	 * @size_hints_property: Plane SIZE_HINTS property.
> > > +	 */
> > > +	struct drm_property *size_hints_property;
> > > +
> > >  	/* cursor size */
> > >  	uint32_t cursor_width, cursor_height;
> > >  
> > > diff --git a/include/drm/drm_plane.h b/include/drm/drm_plane.h
> > > index 51291983ea44..1997d7d64b69 100644
> > > --- a/include/drm/drm_plane.h
> > > +++ b/include/drm/drm_plane.h
> > > @@ -32,6 +32,7 @@
> > >  #include <drm/drm_util.h>
> > >  
> > >  struct drm_crtc;
> > > +struct drm_plane_size_hint;
> > >  struct drm_printer;
> > >  struct drm_modeset_acquire_ctx;
> > >  
> > > @@ -945,5 +946,8 @@ drm_plane_get_damage_clips(const struct drm_plane_state *state);
> > >  
> > >  int drm_plane_create_scaling_filter_property(struct drm_plane *plane,
> > >  					     unsigned int supported_filters);
> > > +int drm_plane_add_size_hints_property(struct drm_plane *plane,
> > > +				      const struct drm_plane_size_hint *hints,
> > > +				      int num_hints);
> > >  
> > >  #endif
> > > diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h
> > > index 46becedf5b2f..4f0551d7f481 100644
> > > --- a/include/uapi/drm/drm_mode.h
> > > +++ b/include/uapi/drm/drm_mode.h
> > > @@ -849,6 +849,11 @@ struct drm_color_lut {
> > >  	__u16 reserved;
> > >  };
> > >  
> > > +struct drm_plane_size_hint {
> > > +	__u16 width;
> > > +	__u16 height;
> > > +};
> > 
> > Hi Ville,
> > 
> > uAPI documentation is missing.
> > 
> > When there is just a single recommended size listed, userspace has it
> > easy: allocate a pair of DRM dumb buffers for each active CRTC, do
> > atomic test commits with those, and if the test succeeds, copy in the
> > pixels and fill the padding.
> > 
> > What if we have multiple or a huge number of possible sizes? Probably
> > for each KMS reconfiguration cycle (which could be up to every refresh
> > cycle) userspace would need to allocate a new dumb buffer to have the
> > right size, and then test. Is that something we can actually afford to
> > do? I don't know.
> 
> Why would you allocate multiple buffers? Just allocate one
> with the max size and then you can reuse it at any smaller
> size as needed.

Unfortunately the use of gbm here means the stride would
be wrong for the smaller sizes. So I guess a different
buffer for each size is what you need to do. Unless you
can just ignore the original stride when filling the buffer.

> 
> > 
> > Therefore maybe this proposal is a good compromise. The driver lists
> > *few* sizes that are roughly equally likely to work, that is, if the
> > cursor plane does not work, it's not because of the size. Userspace
> > pre-allocates DRM dumb buffers for each size. When attempting to use a
> > cursor plane, userspace picks the smallest size that suffices, and tests
> > only with that.
> 
> Yeah, don't see why you ever retry multiple times with increased
> cursor size. If the small size doesn't work then surely the
> larger size won't either (larger size requiring more hw resources
> to operate).
> 
> > 
> > Seems fine to me. The uAPI docs should explain what userspace is
> > expected to do with it.
> > 
> > 
> > Thanks,
> > pq
> > 
> > > +
> > >  /**
> > >   * struct hdr_metadata_infoframe - HDR Metadata Infoframe Data.
> > >   *
> 
> -- 
> Ville Syrjälä
> Intel

-- 
Ville Syrjälä
Intel

WARNING: multiple messages have this Message-ID (diff)
From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Pekka Paalanen <pekka.paalanen@collabora.com>
Cc: dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org,
	"Jonas Ådahl" <jadahl@redhat.com>
Subject: Re: [Intel-gfx] [PATCH 1/2] drm: Introduce plane SIZE_HINTS property
Date: Wed, 8 Feb 2023 23:16:56 +0200	[thread overview]
Message-ID: <Y+QRSH3kLD4Xrktc@intel.com> (raw)
In-Reply-To: <Y+OdtR78JnQOTj38@intel.com>

On Wed, Feb 08, 2023 at 03:03:49PM +0200, Ville Syrjälä wrote:
> On Wed, Feb 08, 2023 at 02:13:12PM +0200, Pekka Paalanen wrote:
> > On Wed,  8 Feb 2023 06:09:10 +0200
> > Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> > 
> > > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > 
> > > Add a new immutable plane property by which a plane can advertise
> > > a handful of recommended plane sizes. This would be mostly exposed
> > > by cursor planes as a slightly more capable replacement for
> > > the DRM_CAP_CURSOR_WIDTH/HEIGHT caps, which can only declare
> > > a one size fits all limit for the whole device.
> > > 
> > > Currently eg. amdgpu/i915/nouveau just advertize the max cursor
> > > size via the cursor size caps. But always using the max sized
> > > cursor can waste a surprising amount of power, so a better
> > > stragey is desirable.
> > > 
> > > Most other drivers don't specify any cursor size at all, in
> > > which case the ioctl code just claims that 64x64 is a great
> > > choice. Whether that is actually true is debatable.
> > > 
> > > A poll of various compositor developers informs us that
> > > blindly probing with setcursor/atomic ioctl to determine
> > > suitable cursor sizes is not acceptable, thus the
> > > introduction of the new property to supplant the cursor
> > > size caps. The compositor will now be free to select a
> > > more optimal cursor size from the short list of options.
> > > 
> > > Note that the reported sizes (either via the property or the
> > > caps) make no claims about things such as plane scaling. So
> > > these things should only really be consulted for simple
> > > "cursor like" use cases.
> > > 
> > > Cc: Simon Ser <contact@emersion.fr>
> > > Cc: Jonas Ådahl <jadahl@redhat.com>
> > > Cc: Daniel Stone <daniel@fooishbar.org>
> > > Cc: Pekka Paalanen <pekka.paalanen@collabora.com>
> > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > ---
> > >  drivers/gpu/drm/drm_mode_config.c |  7 +++++++
> > >  drivers/gpu/drm/drm_plane.c       | 33 +++++++++++++++++++++++++++++++
> > >  include/drm/drm_mode_config.h     |  5 +++++
> > >  include/drm/drm_plane.h           |  4 ++++
> > >  include/uapi/drm/drm_mode.h       |  5 +++++
> > >  5 files changed, 54 insertions(+)
> > > 
> > > diff --git a/drivers/gpu/drm/drm_mode_config.c b/drivers/gpu/drm/drm_mode_config.c
> > > index 87eb591fe9b5..21860f94a18c 100644
> > > --- a/drivers/gpu/drm/drm_mode_config.c
> > > +++ b/drivers/gpu/drm/drm_mode_config.c
> > > @@ -374,6 +374,13 @@ static int drm_mode_create_standard_properties(struct drm_device *dev)
> > >  		return -ENOMEM;
> > >  	dev->mode_config.modifiers_property = prop;
> > >  
> > > +	prop = drm_property_create(dev,
> > > +				   DRM_MODE_PROP_IMMUTABLE | DRM_MODE_PROP_BLOB,
> > > +				   "SIZE_HINTS", 0);
> > > +	if (!prop)
> > > +		return -ENOMEM;
> > > +	dev->mode_config.size_hints_property = prop;
> > > +
> > >  	return 0;
> > >  }
> > >  
> > > diff --git a/drivers/gpu/drm/drm_plane.c b/drivers/gpu/drm/drm_plane.c
> > > index 24e7998d1731..d0a277f4be1f 100644
> > > --- a/drivers/gpu/drm/drm_plane.c
> > > +++ b/drivers/gpu/drm/drm_plane.c
> > > @@ -1582,3 +1582,36 @@ int drm_plane_create_scaling_filter_property(struct drm_plane *plane,
> > >  	return 0;
> > >  }
> > >  EXPORT_SYMBOL(drm_plane_create_scaling_filter_property);
> > > +
> > > +/**
> > > + * drm_plane_add_size_hint_property - create a size hint property
> > > + *
> > > + * @plane: drm plane
> > > + * @hints: size hints
> > > + * @num_hints: number of size hints
> > > + *
> > > + * Create a size hints property for the plane.
> > > + *
> > > + * RETURNS:
> > > + * Zero for success or -errno
> > > + */
> > > +int drm_plane_add_size_hints_property(struct drm_plane *plane,
> > > +				      const struct drm_plane_size_hint *hints,
> > > +				      int num_hints)
> > > +{
> > > +	struct drm_device *dev = plane->dev;
> > > +	struct drm_mode_config *config = &dev->mode_config;
> > > +	struct drm_property_blob *blob;
> > > +
> > > +	blob = drm_property_create_blob(dev,
> > > +					array_size(sizeof(hints[0]), num_hints),
> > > +					hints);
> > > +	if (IS_ERR(blob))
> > > +		return PTR_ERR(blob);
> > > +
> > > +	drm_object_attach_property(&plane->base, config->size_hints_property,
> > > +				   blob->base.id);
> > > +
> > > +	return 0;
> > > +}
> > > +EXPORT_SYMBOL(drm_plane_add_size_hints_property);
> > > diff --git a/include/drm/drm_mode_config.h b/include/drm/drm_mode_config.h
> > > index e5b053001d22..ed9f6938dca1 100644
> > > --- a/include/drm/drm_mode_config.h
> > > +++ b/include/drm/drm_mode_config.h
> > > @@ -949,6 +949,11 @@ struct drm_mode_config {
> > >  	 */
> > >  	struct drm_property *modifiers_property;
> > >  
> > > +	/**
> > > +	 * @size_hints_property: Plane SIZE_HINTS property.
> > > +	 */
> > > +	struct drm_property *size_hints_property;
> > > +
> > >  	/* cursor size */
> > >  	uint32_t cursor_width, cursor_height;
> > >  
> > > diff --git a/include/drm/drm_plane.h b/include/drm/drm_plane.h
> > > index 51291983ea44..1997d7d64b69 100644
> > > --- a/include/drm/drm_plane.h
> > > +++ b/include/drm/drm_plane.h
> > > @@ -32,6 +32,7 @@
> > >  #include <drm/drm_util.h>
> > >  
> > >  struct drm_crtc;
> > > +struct drm_plane_size_hint;
> > >  struct drm_printer;
> > >  struct drm_modeset_acquire_ctx;
> > >  
> > > @@ -945,5 +946,8 @@ drm_plane_get_damage_clips(const struct drm_plane_state *state);
> > >  
> > >  int drm_plane_create_scaling_filter_property(struct drm_plane *plane,
> > >  					     unsigned int supported_filters);
> > > +int drm_plane_add_size_hints_property(struct drm_plane *plane,
> > > +				      const struct drm_plane_size_hint *hints,
> > > +				      int num_hints);
> > >  
> > >  #endif
> > > diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h
> > > index 46becedf5b2f..4f0551d7f481 100644
> > > --- a/include/uapi/drm/drm_mode.h
> > > +++ b/include/uapi/drm/drm_mode.h
> > > @@ -849,6 +849,11 @@ struct drm_color_lut {
> > >  	__u16 reserved;
> > >  };
> > >  
> > > +struct drm_plane_size_hint {
> > > +	__u16 width;
> > > +	__u16 height;
> > > +};
> > 
> > Hi Ville,
> > 
> > uAPI documentation is missing.
> > 
> > When there is just a single recommended size listed, userspace has it
> > easy: allocate a pair of DRM dumb buffers for each active CRTC, do
> > atomic test commits with those, and if the test succeeds, copy in the
> > pixels and fill the padding.
> > 
> > What if we have multiple or a huge number of possible sizes? Probably
> > for each KMS reconfiguration cycle (which could be up to every refresh
> > cycle) userspace would need to allocate a new dumb buffer to have the
> > right size, and then test. Is that something we can actually afford to
> > do? I don't know.
> 
> Why would you allocate multiple buffers? Just allocate one
> with the max size and then you can reuse it at any smaller
> size as needed.

Unfortunately the use of gbm here means the stride would
be wrong for the smaller sizes. So I guess a different
buffer for each size is what you need to do. Unless you
can just ignore the original stride when filling the buffer.

> 
> > 
> > Therefore maybe this proposal is a good compromise. The driver lists
> > *few* sizes that are roughly equally likely to work, that is, if the
> > cursor plane does not work, it's not because of the size. Userspace
> > pre-allocates DRM dumb buffers for each size. When attempting to use a
> > cursor plane, userspace picks the smallest size that suffices, and tests
> > only with that.
> 
> Yeah, don't see why you ever retry multiple times with increased
> cursor size. If the small size doesn't work then surely the
> larger size won't either (larger size requiring more hw resources
> to operate).
> 
> > 
> > Seems fine to me. The uAPI docs should explain what userspace is
> > expected to do with it.
> > 
> > 
> > Thanks,
> > pq
> > 
> > > +
> > >  /**
> > >   * struct hdr_metadata_infoframe - HDR Metadata Infoframe Data.
> > >   *
> 
> -- 
> Ville Syrjälä
> Intel

-- 
Ville Syrjälä
Intel

  reply	other threads:[~2023-02-08 21:17 UTC|newest]

Thread overview: 78+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-08  4:09 [Intel-gfx] [PATCH 0/2] drm: Add plane SIZE_HINTS property Ville Syrjala
2023-02-08  4:09 ` Ville Syrjala
2023-02-08  4:09 ` [Intel-gfx] [PATCH 1/2] drm: Introduce " Ville Syrjala
2023-02-08  4:09   ` Ville Syrjala
2023-02-08  6:09   ` [Intel-gfx] " kernel test robot
2023-02-08  6:09     ` kernel test robot
2023-02-08  6:09     ` kernel test robot
2023-02-08  6:09   ` kernel test robot
2023-02-08  6:09     ` kernel test robot
2023-02-08  6:09     ` kernel test robot
2023-02-08 12:13   ` Pekka Paalanen
2023-02-08 12:13     ` Pekka Paalanen
2023-02-08 13:03     ` [Intel-gfx] " Ville Syrjälä
2023-02-08 13:03       ` Ville Syrjälä
2023-02-08 21:16       ` Ville Syrjälä [this message]
2023-02-08 21:16         ` [Intel-gfx] " Ville Syrjälä
2023-02-09 11:51         ` Pekka Paalanen
2023-02-09 11:51           ` Pekka Paalanen
2023-02-14  9:42           ` Pekka Paalanen
2023-02-14  9:42             ` Pekka Paalanen
2023-02-14 10:27             ` Ville Syrjälä
2023-02-14 10:27               ` Ville Syrjälä
2023-02-14 11:17               ` Pekka Paalanen
2023-02-14 11:17                 ` Pekka Paalanen
2023-02-14 11:35                 ` Ville Syrjälä
2023-02-14 11:35                   ` Ville Syrjälä
2023-02-08 16:51   ` Harry Wentland
2023-02-08 16:51     ` Harry Wentland
2023-02-08 21:10   ` [Intel-gfx] [PATCH v2 " Ville Syrjala
2023-02-08 21:10     ` Ville Syrjala
2023-02-09 11:58     ` [Intel-gfx] " Pekka Paalanen
2023-02-09 11:58       ` Pekka Paalanen
2023-02-09 13:10       ` [Intel-gfx] " Ville Syrjälä
2023-02-09 13:10         ` Ville Syrjälä
2023-02-10  9:44         ` [Intel-gfx] " Pekka Paalanen
2023-02-10  9:44           ` Pekka Paalanen
2023-02-09 14:16     ` [Intel-gfx] " Jonas Ådahl
2023-02-09 14:16       ` Jonas Ådahl
2023-02-14  9:25       ` [Intel-gfx] " Ville Syrjälä
2023-02-14  9:25         ` Ville Syrjälä
2023-02-14  9:54         ` [Intel-gfx] " Jonas Ådahl
2023-02-14  9:54           ` Jonas Ådahl
2023-02-14 10:28           ` [Intel-gfx] " Ville Syrjälä
2023-02-14 10:28             ` Ville Syrjälä
2023-02-14 11:01             ` [Intel-gfx] " Jonas Ådahl
2023-02-14 11:01               ` Jonas Ådahl
2023-02-14 11:19               ` [Intel-gfx] " Ville Syrjälä
2023-02-14 11:19                 ` Ville Syrjälä
2023-02-22 18:34                 ` [Intel-gfx] " Ville Syrjälä
2023-02-22 18:34                   ` Ville Syrjälä
2023-02-14 19:27             ` [Intel-gfx] " Harry Wentland
2023-02-14 19:27               ` Harry Wentland
2023-02-14 19:59               ` [Intel-gfx] " Ville Syrjälä
2023-02-14 19:59                 ` Ville Syrjälä
2023-03-13 16:33     ` [Intel-gfx] [PATCH v3 " Ville Syrjala
2023-03-13 16:33       ` Ville Syrjala
2023-03-17 10:34       ` [Intel-gfx] " Jonas Ådahl
2023-03-17 10:34         ` Jonas Ådahl
2023-03-17 11:33         ` [Intel-gfx] " Ville Syrjälä
2023-03-17 11:33           ` Ville Syrjälä
2023-03-17 12:21           ` [Intel-gfx] " Jonas Ådahl
2023-03-17 12:21             ` Jonas Ådahl
2023-03-17 12:29             ` [Intel-gfx] " Jonas Ådahl
2023-03-17 12:29               ` Jonas Ådahl
2023-03-17 13:15               ` [Intel-gfx] " Ville Syrjälä
2023-03-17 13:15                 ` Ville Syrjälä
2023-03-17 13:18                 ` [Intel-gfx] " Jonas Ådahl
2023-03-17 13:18                   ` Jonas Ådahl
2023-03-17 13:13             ` [Intel-gfx] " Ville Syrjälä
2023-03-17 13:13               ` Ville Syrjälä
2023-02-08  4:09 ` [Intel-gfx] [PATCH 2/2] drm/i915: Add SIZE_HINTS property for cursors Ville Syrjala
2023-02-08  4:09   ` Ville Syrjala
2023-02-08  4:50 ` [Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm: Add plane SIZE_HINTS property Patchwork
2023-02-08  5:17 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork
2023-02-08 23:15 ` [Intel-gfx] ✓ Fi.CI.BAT: success for drm: Add plane SIZE_HINTS property (rev2) Patchwork
2023-02-09 21:27 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
2023-03-13 17:49 ` [Intel-gfx] ✓ Fi.CI.BAT: success for drm: Add plane SIZE_HINTS property (rev3) Patchwork
2023-03-14 21:59 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Y+QRSH3kLD4Xrktc@intel.com \
    --to=ville.syrjala@linux.intel.com \
    --cc=contact@emersion.fr \
    --cc=daniel@fooishbar.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jadahl@redhat.com \
    --cc=pekka.paalanen@collabora.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.