From: Jesse Barnes <jbarnes@virtuousgeek.org>
To: Daniel Stone <daniel@fooishbar.org>, Daniel Vetter <daniel@ffwll.ch>
Cc: "intel-gfx@lists.freedesktop.org"
<intel-gfx@lists.freedesktop.org>,
Thierry Reding <thierry.reding@avionic-desi.gn.de>
Subject: Re: [RFC] drm/i915: Render decompression support for Gen9 and above
Date: Mon, 25 Jan 2016 09:38:33 -0800 [thread overview]
Message-ID: <56A65D99.8040705@virtuousgeek.org> (raw)
In-Reply-To: <CAPj87rOhC9WOTZWKyuJ7w-r_E+1JBxqQw1DcD88vEmtvaoifGw@mail.gmail.com>
On 01/19/2016 02:28 AM, Daniel Stone wrote:
>>>> >> > We aren't just talking about a few fbs here, we already see more than
>>>> >> > 100 fbs active during complex situations. Potentially doubling this
>>>> >> > number is surely a significant increase in memory usage, both from the
>>>> >> > management side in userspace and the kernel side.
>> >
>> > 8kb kernel memory for the additional 2 copies of drm_framebuffer structs
>> > for 100 buffers. That's about as much as the minimal overhead for just 1
>> > underlying gem object (counting the sg table, vma, gtt pte tracking, gem
>> > object and shmem backing node and pagecache entries). 2 integers in userspace.
>> >
>> > Do you have some data to show that overhead?
> I agree with this view as well, and it does seem to be the way chosen
> for generic userspace on other drivers.
>
> For context, the way ChromeOS and Wayland compositors (Weston, Mutter,
> Enlightenment) work is that a userspace library called GBM is
> distributed as part of EGL, which is the native EGL platform/winsys
> for rendering on KMS. The major difference with GBM, however, is that
> it does _not_ do presentation: presentation is explicitly controlled
> by the compositor itself.
>
> In order to use this new property, we would have to add API to EGL/GBM
> to extract a list of property names to set, which wouldn't really make
> for great API. It'd be much cleaner for these users to stick with FB
> modifiers, especially as they destroy and recreate the FB objects
> (something we've not seen have any performance impact) for every flip
> anyway. From my side, I'd be much happier using generically-applicable
> FB modifiers, than continuing along the property explosion.
>
> The other sticking point is that if I go from flipping GPU buffers
> with render compression enabled to software buffers, from userspace
> that means I then need to explicitly go unset the render decompression
> flag before I can display software buffers, else the flips just get
> rejected; something which isn't the case with FB modifiers. One more
> thing to go wrong ...
Just for background, we ended up with a property for this attribute due to a request from the only userland folks we had at the time (our hwcomposer team). They felt it would be simpler to use a property in this specific case, though they already do have a number of fb objects to deal with. Really I can make an argument either way for how well each matches hardware behavior, so figured we'd just go with a property due to someone expressing a preference.
This has probably already been changed in an updated patch (still catching up on mail), but I thought I'd at least chime in on the thinking on this from way back (around a year ago now I think).
Cc'ing Gary in case he has further comment.
Jesse
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2016-01-25 17:39 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-04 19:42 [RFC] drm/i915: Render decompression support for Gen9 and above Vandana Kannan
2015-09-07 16:35 ` Daniel Vetter
2015-09-08 22:07 ` Jesse Barnes
2015-09-09 15:23 ` Daniel Vetter
2015-09-09 15:24 ` Jesse Barnes
2015-09-09 16:36 ` Smith, Gary K
2015-09-09 17:04 ` Jesse Barnes
2015-09-10 15:02 ` Daniel Vetter
2016-01-19 10:28 ` Daniel Stone
2016-01-25 17:38 ` Jesse Barnes [this message]
2016-01-25 18:15 ` Smith, Gary K
2016-01-25 18:37 ` Daniel Stone
2016-01-25 19:04 ` Smith, Gary K
2016-01-25 19:08 ` Smith, Gary K
2016-01-25 19:09 ` Daniel Stone
2016-01-26 9:43 ` Daniel Vetter
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=56A65D99.8040705@virtuousgeek.org \
--to=jbarnes@virtuousgeek.org \
--cc=daniel@ffwll.ch \
--cc=daniel@fooishbar.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=thierry.reding@avionic-desi.gn.de \
/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.