[Intel-gfx] [RFC 2/2] drm/i915: Render decompression support for Gen9
Kannan, Vandana
vandana.kannan at intel.com
Tue Dec 22 19:20:40 PST 2015
Hi Daniel,
How does VT switch work in case of rotation, setting different pixel
format, etc?
- Vandana
On 12/9/2015 11:35 PM, Daniel Stone wrote:
> Hi,
>
> On 9 December 2015 at 05:15, Vandana Kannan <vandana.kannan at intel.com> wrote:
>> This patch includes enabling render decompression after checking all the
>> requirements (format, tiling, rotation etc.). Along with this, the WAs
>> mentioned in BSpec Workaround page have been implemented.
>> In case, any of the conditions fail, the flip will fail.
>>
>> [...]
>>
>> --- a/drivers/gpu/drm/i915/intel_atomic_plane.c
>> +++ b/drivers/gpu/drm/i915/intel_atomic_plane.c
>> @@ -222,8 +222,13 @@ intel_plane_atomic_get_property(struct drm_plane *plane,
>> struct drm_property *property,
>> uint64_t *val)
>> {
>> - DRM_DEBUG_KMS("Unknown plane property '%s'\n", property->name);
>> - return -EINVAL;
>> + if (property == dev_priv->render_comp_property) {
>> + *val = intel_state->render_comp_enable;
>> + } else {
>> + DRM_DEBUG_KMS("Unknown plane property '%s'\n", property->name);
>> + return -EINVAL;
>> + }
>> + return 0;
>> }
>>
>> /**
>> @@ -244,6 +249,11 @@ intel_plane_atomic_set_property(struct drm_plane *plane,
>> struct drm_property *property,
>> uint64_t val)
>> {
>> - DRM_DEBUG_KMS("Unknown plane property '%s'\n", property->name);
>> - return -EINVAL;
>> + if (property == dev_priv->render_comp_property) {
>> + intel_state->render_comp_enable = val;
>> + } else {
>> + DRM_DEBUG_KMS("Unknown plane property '%s'\n", property->name);
>> + return -EINVAL;
>> + }
>> + return 0;
>
> Using this as a property is a concern to me. Under the following
> scenario, you can easily trigger a failure:
> - compression-aware client runs and sets compression to true on the
> primary plane
> - VT switch
> - non-compression-aware client takes over, changes the FB to a
> non-compressed buffer, leaves compression property alone as it is
> unaware of it
> - ???
>
> It seems like the best thing to do in this case is to make compression
> a property of the FB, through modifiers. This also enables seamless
> use of render compression from clients using EGL/GBM, where GBM just
> hands a buffer over to the client and lets the client deal with
> presenting it through KMS. In this case, the client is not aware if
> compression should be enabled or not.
>
> Cheers,
> Daniel
>
More information about the Intel-gfx
mailing list