[Intel-gfx] [i-g-t PATCH v1 07/14] lib: Map dumb buffers
Daniel Vetter
daniel at ffwll.ch
Sat Mar 5 12:27:19 UTC 2016
On Sat, Mar 05, 2016 at 01:24:19PM +0100, Daniel Vetter wrote:
> On Wed, Mar 02, 2016 at 02:54:20PM +0000, Chris Wilson wrote:
> > On Wed, Mar 02, 2016 at 02:40:44PM +0000, Daniel Stone wrote:
> > >
> > > On Wed, 2016-03-02 at 14:39 +0000, Chris Wilson wrote:
> > > > On Wed, Mar 02, 2016 at 02:22:58PM +0000, Daniel Stone wrote:
> > > > > On Wed, 2016-03-02 at 14:21 +0000, Chris Wilson wrote:
> > > > > > On Wed, Mar 02, 2016 at 03:00:14PM +0100, Tomeu Vizoso wrote:
> > > > > > > - gem_set_domain(fd, fb->gem_handle,
> > > > > > > - I915_GEM_DOMAIN_CPU,
> > > > > > > I915_GEM_DOMAIN_CPU);
> > > > > > > + if (!fb->is_dumb)
> > > > > > > + gem_set_domain(fd, fb->gem_handle,
> > > > > > > I915_GEM_DOMAIN_CPU,
> > > > > > > + I915_GEM_DOMAIN_CPU);
> > > > > > At the risk of opening a can-of-worms, what is the
> > > > > > synchronisation
> > > > > > protocol for dumb buffers? Even CPU access to a dumb needs set-
> > > > > > domain
> > > > > > on
> > > > > > Intel.
> > > > > Then Intel is broken, because the literal entire point of dumb
> > > > > buffers
> > > > > is that you do not require driver-specific calls to operate them.
> > > > >
> > > > > Map, populate, unmap, display.
> > > > Don't forget to call dirtyfb then.
> > >
> > > Are you talking about frontbuffer rendering, or pageflipping between
> > > two dumb buffers?
> >
> > Afaik, no one yet tracks damage on a backbuffer before a flip. But we
> > don't constrain the tests to backbuffer as we do need to exercise
> > frontbuffer rendering and iirc those tests all use set-domain. I don't
> > see any PSR/FBC testing using the dumb framebuffers... Or is the dumb
> > framebuffer purely a backbuffer + flip model?
>
> Yeah, but for those tests we do have explict set_domain calls. Anyway the
> dumb model is mmap + either flip (setcrtc, setplane, page_flip, atomic) or
> dirtyfb. I think for low level functions like these exposing this
> explicitly to tests is ok.
>
> If you mix dumb with rendering you simply need to know what you're doing.
> But for rendering that's a requirement anyway.
Ok, maybe I should read the patch, it's a high-level function ;-) In that
case, yes please add a dirtyfb ioctl call _after_ the rendering to make it
all just work. Since we don't know how callers use it.
But for library completeness I think it'd be good to have kmstest_
wrappers for both dumb mmap and dirtyfb (maybe just defer to the libdrm
one) like with the dumb create one.
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
More information about the Intel-gfx
mailing list