Hi,

On 25 January 2016 at 19:04, Smith, Gary K <gary.k.sm...@intel.com> wrote:
> It’s a few hundred lines of extra code and additional complexity in 
> open-source userspace to track the additional fb's in flight in order to save 
> the i915 code from performing a couple of extra if's during a flip. It's not 
> a good tradeoff at all. We already have the experience of requiring to change 
> the format of fb's dynamically between opaque and transparent as an example 
> of what has to happen. Its also much harder to debug as there is now no fixed 
> mapping between the buffer and the fb.

I don't see how it really ends up being a few hundred extra lines, but
OK. It's also really - really - not about extra if's during the flip,
but about the design of _userspace_ components which are not able to
use property-based interfaces because of the separation of concerns
between rendering and display. It also goes against what other drivers
have been working with.

>> The property-based design precludes optimal use of current open-source 
>> userspace.
> I don’t see how it even effects open-source userspace. It can just ignore it 
> entirely.

i.e. this property is useless for open-source userspace, which can
never hint that render compression has been resolved. So fine by me if
you want to merge it I guess, and we'll just ignore it.

Cheers,
Daniel

> Thanks
> Gary
>
>
> -----Original Message-----
> From: Daniel Stone [mailto:dan...@fooishbar.org]
> Sent: Monday, January 25, 2016 6:37 PM
> To: Smith, Gary K <gary.k.sm...@intel.com>
> Cc: Jesse Barnes <jbar...@virtuousgeek.org>; Daniel Vetter <dan...@ffwll.ch>; 
> intel-gfx@lists.freedesktop.org; Thierry Reding 
> <thierry.red...@avionic-desi.gn.de>
> Subject: Re: [Intel-gfx] [RFC] drm/i915: Render decompression support for 
> Gen9 and above
>
> Hi,
>
> On 25 January 2016 at 18:15, Smith, Gary K <gary.k.sm...@intel.com> wrote:
>> I really do not understand what the issue is here. It’s a hint provided by 
>> the user to indicate that the current fb (which was allocated with the 
>> appropriate aux buffer/compression fb modifiers) has been entirely resolved 
>> (uncompressed) and hence can be used anywhere an uncompressed fb would 
>> normally be required.
>>
>> Creating a fb that says that there is no aux buffer is entirely wrong in 
>> this case as there is an aux buffer, it just happens to be in a particular 
>> known state for this particular flip.
>>
>> If GBM doesn’t want to optimize its power usage when(if) it knows the buffer 
>> is uncompressed, then it doesn’t have to set the property at all.
>
> GBM cannot set the property, because GBM is not the element in charge of 
> presenting the buffers. The property-based design precludes optimal use of 
> current open-source userspace.
>
> The flipside here is a minor inconvenience (having to create multiple
> framebuffers) to closed userspace; last time this came up, when it was asked 
> if this was actually a serious memory concern or not, there was no response.
>
> Cheers,
> Daniel
>
>> Thanks
>> Gary
>>
>>
>>
>>
>> -----Original Message-----
>> From: Jesse Barnes [mailto:jbar...@virtuousgeek.org]
>> Sent: Monday, January 25, 2016 5:39 PM
>> To: Daniel Stone <dan...@fooishbar.org>; Daniel Vetter
>> <dan...@ffwll.ch>
>> Cc: intel-gfx@lists.freedesktop.org; Thierry Reding
>> <thierry.red...@avionic-desi.gn.de>; Smith, Gary K
>> <gary.k.sm...@intel.com>
>> Subject: Re: [Intel-gfx] [RFC] drm/i915: Render decompression support
>> for Gen9 and above
>>
>> 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 Corporation (UK) Limited
>> Registered No. 1134945 (England)
>> Registered Office: Pipers Way, Swindon SN3 1RJ VAT No: 860 2173 47
>>
>> This e-mail and any attachments may contain confidential material for
>> the sole use of the intended recipient(s). Any review or distribution
>> by others is strictly prohibited. If you are not the intended
>> recipient, please contact the sender and delete all copies.
> ---------------------------------------------------------------------
> Intel Corporation (UK) Limited
> Registered No. 1134945 (England)
> Registered Office: Pipers Way, Swindon SN3 1RJ
> VAT No: 860 2173 47
>
> This e-mail and any attachments may contain confidential material for
> the sole use of the intended recipient(s). Any review or distribution
> by others is strictly prohibited. If you are not the intended
> recipient, please contact the sender and delete all copies.
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to