Intel-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Jani Nikula <jani.nikula@linux.intel.com>
To: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
Cc: "intel-gfx@lists.freedesktop.org" <intel-gfx@lists.freedesktop.org>
Subject: Re: [Intel-gfx] [PATCH] drm/i915/dsb: DSB code refactoring
Date: Wed, 27 Sep 2023 19:04:53 +0300	[thread overview]
Message-ID: <87fs2zk3fe.fsf@intel.com> (raw)
In-Reply-To: <ZRRFSPuzZmm-pvOa@intel.com>

On Wed, 27 Sep 2023, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote:
> On Wed, Sep 27, 2023 at 05:50:10PM +0300, Jani Nikula wrote:
>> On Wed, 27 Sep 2023, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote:
>> > On Tue, Sep 26, 2023 at 12:34:35PM +0300, Jani Nikula wrote:
>> >> On Tue, 26 Sep 2023, "Manna, Animesh" <animesh.manna@intel.com> wrote:
>> >> >> -----Original Message-----
>> >> >> From: Jani Nikula <jani.nikula@linux.intel.com>
>> >> >> Sent: Monday, September 25, 2023 6:00 PM
>> >> >> To: Manna, Animesh <animesh.manna@intel.com>; intel-
>> >> >> gfx@lists.freedesktop.org
>> >> >> Subject: Re: [Intel-gfx] [PATCH] drm/i915/dsb: DSB code refactoring
>> >> >> 
>> >> >> On Sat, 23 Sep 2023, Animesh Manna <animesh.manna@intel.com> wrote:
>> >> >> > Refactor DSB implementation to be compatible with Xe driver.
>> >> >> 
>> >> >> Sad trombone.
>> >> >> 
>> >> >> struct intel_dsb should remain an opaque type. I put effort into hiding its
>> >> >> definition, so its guts wouldn't be accessed nilly-willy all over the place. If it's
>> >> >> not hidden, it just will get accessed.
>> >> >
>> >> > Hi Jani,
>> >> >
>> >> > Xe driver need access to intel_dsb structure, so I can create a new header file intel_dsb_ops.h and keep intel_dsb structure in it. Is it ok?
>> >> 
>> >> I just think you need to find a different abstraction level that doesn't
>> >> involve exposing struct intel_dsb.
>> >
>> > I hate the fact that we seem to be adding these ad-hoc wrappers all
>> > over the place. Someone should just fix xe to give us the same API as
>> > i915, or a single wrapper should do whatever conversion is needed.
>> 
>> I think one of the problems is that i915 doesn't really give us a proper
>> API either, but requires us to fiddle with the objects' guts, and thus
>> have access to the struct definitions. In i915, with the include
>> hierarchies, that effectively means including absolutely
>> everything. Can't have that in xe.
>
> obj+vma is a pretty reasonable API IMO. And we're not doing anything
> weird with their guts IIRC.

Okay, I'll take your word for it.

> But apparently xe decided to not give us
> that, and instead of adding a single wrapper to bridge the gap we
> now have several different ad-hoc wrappers for whatever reason.

For this specific thing? Do we really have several? Or do you mean all
the different things that bridge the gap between xe and i915-display?

>> 
>> Having the same API for both i915 and xe requires turning it into an
>> actual API that doesn't depend on either i915 or xe specific types. But
>> that's kind of tough before xe is upstream. Catch-22.
>
> Nothing preventing anyone from coming up with the single wrapper and
> upstreaming the i915 side (assuming we even want some kind of extra
> wrapper for i915 given it already uses a reasonable approach).

Well, so far nobody has stepped up to do that. Needs knowledge of
i915-gem, i915-display, and xe. It seems like someone else's problem for
everyone working on each of those components. And yeah, I'm not
volunteering either.

>> Part of the reason we have these ad-hoc wrappers is that they also serve
>> as the todo list of stuff to fix properly.
>
> Feels more like we are trying to polish these to the point where
> they are supposed to be permanent solutions.

I'm trying to flesh out ideas how to separate i915-display from the rest
of i915.ko better [1]. Eventually that'll require very clearly defining
the interfaces to/from i915-display as well. Maybe via aux-bus function
pointers.

Funny thing is, currently the only way to even check what interfaces
i915-display needs is to build it as part of xe, where those i915
interfaces aren't available.

BR,
Jani.


[1] https://patchwork.freedesktop.org/series/124286/


-- 
Jani Nikula, Intel

  reply	other threads:[~2023-09-27 16:12 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-22 19:35 [Intel-gfx] [PATCH] drm/i915/dsb: DSB code refactoring Animesh Manna
2023-09-23  3:51 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
2023-09-23  3:51 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2023-09-23  4:08 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork
2023-09-25 12:30 ` [Intel-gfx] [PATCH] " Jani Nikula
2023-09-26  7:13   ` Manna, Animesh
2023-09-26  9:34     ` Jani Nikula
2023-09-27 13:50       ` Ville Syrjälä
2023-09-27 14:50         ` Jani Nikula
2023-09-27 15:07           ` Ville Syrjälä
2023-09-27 16:04             ` Jani Nikula [this message]
2023-09-27 16:17               ` Ville Syrjälä
  -- strict thread matches above, loose matches on Subject: below --
2023-09-27  9:11 Animesh Manna

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=87fs2zk3fe.fsf@intel.com \
    --to=jani.nikula@linux.intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=ville.syrjala@linux.intel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox