[PATCH 6/6] drm/i915: Add support for CCS modifiers

Daniel Stone daniel at fooishbar.org
Sat Jul 29 12:55:47 UTC 2017


Hi,

On 26 July 2017 at 19:08, Ben Widawsky <ben at bwidawsk.net> wrote:
> +static const uint64_t skl_plane_format_modifiers_noccs[] = {
> +       I915_FORMAT_MOD_Yf_TILED,
> +       I915_FORMAT_MOD_Y_TILED,
> +       I915_FORMAT_MOD_X_TILED,
> +       DRM_FORMAT_MOD_LINEAR,
> +       DRM_FORMAT_MOD_INVALID
> +};
> +
>  static const uint64_t skl_plane_format_modifiers[] = {
> +       I915_FORMAT_MOD_Yf_TILED_CCS,
> +       I915_FORMAT_MOD_Y_TILED_CCS,
>         I915_FORMAT_MOD_Yf_TILED,
>         I915_FORMAT_MOD_Y_TILED,
>         I915_FORMAT_MOD_X_TILED,

This is also missing the relevant hunk in format_mod_supported.

> @@ -1234,6 +1244,19 @@ intel_sprite_plane_create(struct drm_i915_private *dev_priv,
>                 plane_formats = skl_plane_formats;
>                 num_plane_formats = ARRAY_SIZE(skl_plane_formats);
>                 modifiers = skl_plane_format_modifiers;
> +       } else if (INTEL_GEN(dev_priv) >= 9) {
> +               intel_plane->can_scale = true;
> +               state->scaler_id = -1;
> +
> +               intel_plane->update_plane = skl_update_plane;
> +               intel_plane->disable_plane = skl_disable_plane;
> +
> +               plane_formats = skl_plane_formats;
> +               num_plane_formats = ARRAY_SIZE(skl_plane_formats);
> +               if (pipe >= PIPE_C)
> +                       modifiers = skl_plane_format_modifiers_noccs;
> +               else
> +                       modifiers = skl_plane_format_modifiers;

This explains the inconsistency.

Cheers,
Daniel


More information about the dri-devel mailing list