Le jeu. 25 juil. 2019 à 14:52, Christoph Hellwig <hch@xxxxxxxxxxxxx> a écrit : > > On Wed, Jul 24, 2019 at 11:46:24AM -0700, John Stultz wrote: > > I'm still not understanding how this would work. Benjamin and Laura > > already commented on this point, but for a simple example, with the > > HiKey boards, the DRM driver requires contiguous memory for the > > framebuffer, but the GPU can handle non-contiguous. Thus the target > > framebuffers that we pass to the display has to be CMA allocated, but > > all the other graphics buffers that the GPU will render to and > > composite can be system. No we have uses cases where graphic buffers can go directly to display without using GPU. For example we can grab frames from the camera and send them directly in display (same for video decoder) because we have planes for that. > > But that just means we need a flag that memory needs to be contiguous, > which totally makes sense at the API level. But CMA is not the only > source of contigous memory, so we should not conflate the two. We have one file descriptor per heap to be able to add access control on each heap. That wasn't possible with ION because the heap was selected given the flags in ioctl structure and we can't do access control based on that. If we put flag to select the allocation mechanism (system, CMA, other) in ioctl we come back to ION status. For me one allocation mechanism = one heap. > > > Laura already touched on this, but similar logic can be used for > > camera buffers, which can make sure we allocate from a specifically > > reserved CMA region that is only used for the camera so we can always > > be sure to have N free buffers immediately to capture with, etc. > > And for that we already have per-device CMA areas hanging off struct > device, which this should reuse instead of adding another duplicate > CMA area lookup scheme. _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel