[libcamera-devel] [PATCH v3 24/30] cam: drm: Set per-plane offsets when creating DRM frame buffer

Kieran Bingham kieran.bingham at ideasonboard.com
Tue Sep 7 17:45:10 CEST 2021


On 07/09/2021 15:47, Laurent Pinchart wrote:
> Hi Kieran,
> 
> On Tue, Sep 07, 2021 at 12:43:43PM +0100, Kieran Bingham wrote:
>> On 06/09/2021 23:56, Laurent Pinchart wrote:
>>> Now that libcamera supports per-plane offsets, pass the values to
>>> drmModeAddFB2().
>>
>> Any further implications from this?
>> Will there be a specific effect? or does it just mean that DRM can
>> allocate buffers for more of our formats?
> 
> There's no particular implication other than the fact that the KMS sink
> in cam is now fixed for multi-planar formats :-) Without the offset it
> wouldn't render NV12 correctly when planes are stored in the same
> dmabuf.

Perhaps you could add that to the commit message;

"The KMS sink in cam is now capable of rendering multi-planar formats."

> We still allocate buffers using the FrameBufferAllocator even when using
> the KMS sink, so this isn't related to allocation.
> 
>> Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
>>
>>> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
>>> Reviewed-by: Jean-Michel Hautbois <jeanmichel.hautbois at ideasonboard.com>
>>> ---
>>>  src/cam/drm.cpp | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/src/cam/drm.cpp b/src/cam/drm.cpp
>>> index ac47b8bd3287..d5a75d039fd8 100644
>>> --- a/src/cam/drm.cpp
>>> +++ b/src/cam/drm.cpp
>>> @@ -623,7 +623,7 @@ std::unique_ptr<FrameBuffer> Device::createFrameBuffer(
>>>  		fb->planes_.push_back({ handle });
>>>  
>>>  		handles[i] = handle;
>>> -		offsets[i] = 0; /* TODO */
>>> +		offsets[i] = plane.offset;
>>>  		++i;
>>>  	}
>>>  
> 


More information about the libcamera-devel mailing list