All of lore.kernel.org
 help / color / mirror / Atom feed
From: Igor Torrente <igormtorrente@gmail.com>
To: Melissa Wen <mwen@igalia.com>
Cc: hamohammed.sa@gmail.com, rodrigosiqueiramelo@gmail.com,
	airlied@linux.ie, tales.aparecida@gmail.com,
	leandro.ribeiro@collabora.com, melissa.srw@gmail.com,
	ppaalanen@gmail.com, dri-devel@lists.freedesktop.org,
	tzimmermann@suse.de, ~lkcamp/patches@lists.sr.ht
Subject: Re: [PATCH v5 0/9] Add new formats support to vkms
Date: Mon, 13 Jun 2022 17:26:59 -0300	[thread overview]
Message-ID: <5ac8ef6f-a9e8-67a9-3055-3015f161bf0b@gmail.com> (raw)
In-Reply-To: <20220613095202.sxlbt7aot5hid6e2@mail.igalia.com>

Hi Melissa,

On 6/13/22 06:52, Melissa Wen wrote:
> On 04/04, Igor Torrente wrote:
>> Summary
>> =======
>> This series of patches refactor some vkms components in order to introduce
>> new formats to the planes and writeback connector.
>>
>> Now in the blend function, the plane's pixels are converted to ARGB16161616
>> and then blended together.
>>
>> The CRC is calculated based on the ARGB1616161616 buffer. And if required,
>> this buffer is copied/converted to the writeback buffer format.
>>
>> And to handle the pixel conversion, new functions were added to convert
>> from a specific format to ARGB16161616 (the reciprocal is also true).
>>
>> Tests
>> =====
>> This patch series was tested using the following igt tests:
>> -t ".*kms_plane.*"
>> -t ".*kms_writeback.*"
>> -t ".*kms_cursor_crc*"
>> -t ".*kms_flip.*"
>>
>> New tests passing
>> -------------------
>> - pipe-A-cursor-size-change
>> - pipe-A-cursor-alpha-transparent
>>
>> Performance
>> -----------
>> It's running slightly faster than the current implementation.
>>
>> Results running the IGT[1] test
>> `igt@kms_cursor_crc@pipe-a-cursor-512x512-onscreen` ten times:
>>
>> |                  Frametime                   |
>> |:--------------------------------------------:|
>> |  Implementation |  Current  |   This commit  |
>> |:---------------:|:---------:|:--------------:|
>> | frametime range |  9~22 ms  |     10~22 ms   |
>> |     Average     |  11.4 ms  |     12.32 ms   |
>>
>> Memory consumption
>> ==================
>> It consumes less memory than the current implementation in
>> the common case (more detail in the commit message).
>>
>> | Memory consumption (output dimensions) |
>> |:--------------------------------------:|
>> |       Current      |     This patch    |
>> |:------------------:|:-----------------:|
>> |   Width * Heigth   |     2 * Width     |
>>
>> [1] IGT commit id: bc3f6833a12221a46659535dac06ebb312490eb4
>>
>> XRGB to ARGB behavior
>> =====================
>> During the development, I decided to always fill the alpha channel of
>> the output pixel whenever the conversion from a format without an alpha
>> channel to ARGB16161616 is necessary. Therefore, I ignore the value
>> received from the XRGB and overwrite the value with 0xFFFF.
>>
>> Primary plane and CRTC size
>> ===========================
>> This patch series reworks the blend function to accept a primary plane with
>> a different size and position from CRTC.
>> Because now we need to fill the background, we had a loss in
>> performance with this change
>>
>> ---
> Hi Igor,
> 
> Thanks for this effort.
> 
>> Igor Torrente (9):
>>    drm: vkms: Alloc the compose frame using vzalloc
> 
> As this first patch fixes an error on vkms, I cherry-picked it and
> applied to drm-misc-next.

Oh right. I will skip it then!

Best Regards,
---
Igor Torrente

> 
> For remaining patches, looking forward the next version addressing
> feedback and rebasing them too.
> 
> Best Regards,
> 
> Melissa
> 
>>    drm: vkms: Replace hardcoded value of `vkms_composer.map` to
>>      DRM_FORMAT_MAX_PLANES
>>    drm: vkms: Rename `vkms_composer` to `vkms_frame_info`
>>    drm: drm_atomic_helper: Add a new helper to deal with the writeback
>>      connector validation
>>    drm: vkms: Add fb information to `vkms_writeback_job`
>>    drm: vkms: Refactor the plane composer to accept new formats
>>    drm: vkms: Supports to the case where primary plane doesn't match the
>>      CRTC
>>    drm: vkms: Adds XRGB_16161616 and ARGB_1616161616 formats
>>    drm: vkms: Add support to the RGB565 format
>>
>>   Documentation/gpu/vkms.rst            |  13 +-
>>   drivers/gpu/drm/drm_atomic_helper.c   |  39 ++++
>>   drivers/gpu/drm/vkms/Makefile         |   1 +
>>   drivers/gpu/drm/vkms/vkms_composer.c  | 325 ++++++++++++--------------
>>   drivers/gpu/drm/vkms/vkms_crtc.c      |   4 +
>>   drivers/gpu/drm/vkms/vkms_drv.h       |  41 +++-
>>   drivers/gpu/drm/vkms/vkms_formats.c   | 298 +++++++++++++++++++++++
>>   drivers/gpu/drm/vkms/vkms_formats.h   |  12 +
>>   drivers/gpu/drm/vkms/vkms_plane.c     |  50 ++--
>>   drivers/gpu/drm/vkms/vkms_writeback.c |  35 ++-
>>   include/drm/drm_atomic_helper.h       |   3 +
>>   11 files changed, 596 insertions(+), 225 deletions(-)
>>   create mode 100644 drivers/gpu/drm/vkms/vkms_formats.c
>>   create mode 100644 drivers/gpu/drm/vkms/vkms_formats.h
>>
>> -- 
>> 2.30.2
>>

      reply	other threads:[~2022-06-13 20:27 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-04 20:45 [PATCH v5 0/9] Add new formats support to vkms Igor Torrente
2022-04-04 20:45 ` [PATCH v5 1/9] drm: vkms: Alloc the compose frame using vzalloc Igor Torrente
2022-04-05 14:05   ` André Almeida
2022-04-05 19:03     ` Igor Torrente
2022-04-04 20:45 ` [PATCH v5 2/9] drm: vkms: Replace hardcoded value of `vkms_composer.map` to DRM_FORMAT_MAX_PLANES Igor Torrente
2022-04-04 20:45 ` [PATCH v5 3/9] drm: vkms: Rename `vkms_composer` to `vkms_frame_info` Igor Torrente
2022-04-04 20:45 ` [PATCH v5 4/9] drm: drm_atomic_helper: Add a new helper to deal with the writeback connector validation Igor Torrente
2022-04-05 14:21   ` André Almeida
2022-04-05 19:05     ` Igor Torrente
2022-04-04 20:45 ` [PATCH v5 5/9] drm: vkms: Add fb information to `vkms_writeback_job` Igor Torrente
2022-04-20 11:23   ` Pekka Paalanen
2022-04-23 15:12     ` Igor Torrente
2022-04-25  7:56       ` Pekka Paalanen
2022-04-26  0:56         ` Igor Torrente
2022-04-26  7:09           ` Pekka Paalanen
2022-04-27  0:43             ` Igor Torrente
2022-04-27  7:31               ` Pekka Paalanen
2022-04-04 20:45 ` [PATCH v5 6/9] drm: vkms: Refactor the plane composer to accept new formats Igor Torrente
2022-04-20 12:36   ` Pekka Paalanen
2022-04-23 16:04     ` Igor Torrente
2022-04-23 18:53       ` Igor Torrente
2022-04-25  8:10         ` Pekka Paalanen
2022-04-26  1:54           ` Igor Torrente
2022-04-27  1:03             ` Igor Torrente
2022-04-27  1:22               ` Igor Torrente
2022-04-27  7:43                 ` Pekka Paalanen
2022-04-28  0:44                   ` Igor Torrente
2022-04-29 12:31                     ` Pekka Paalanen
2022-04-04 20:45 ` [PATCH v5 7/9] drm: vkms: Supports to the case where primary plane doesn't match the CRTC Igor Torrente
2022-04-20 13:13   ` Pekka Paalanen
2022-04-24  0:41     ` Igor Torrente
2022-04-04 20:45 ` [PATCH v5 8/9] drm: vkms: Adds XRGB_16161616 and ARGB_1616161616 formats Igor Torrente
2022-04-20 13:19   ` Pekka Paalanen
2022-05-07  7:32   ` Thomas Zimmermann
2022-05-10 20:32     ` Igor Torrente
2022-04-04 20:45 ` [PATCH v5 9/9] drm: vkms: Add support to the RGB565 format Igor Torrente
2022-04-21 10:58   ` Pekka Paalanen
2022-04-27  0:53     ` Igor Torrente
2022-04-27  7:55       ` Pekka Paalanen
2022-05-06 23:05         ` Igor Torrente
2022-05-09  7:53           ` Pekka Paalanen
2022-05-10 19:24             ` Igor Torrente
2022-06-13  9:52 ` [PATCH v5 0/9] Add new formats support to vkms Melissa Wen
2022-06-13 20:26   ` Igor Torrente [this message]

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=5ac8ef6f-a9e8-67a9-3055-3015f161bf0b@gmail.com \
    --to=igormtorrente@gmail.com \
    --cc=airlied@linux.ie \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=hamohammed.sa@gmail.com \
    --cc=leandro.ribeiro@collabora.com \
    --cc=melissa.srw@gmail.com \
    --cc=mwen@igalia.com \
    --cc=ppaalanen@gmail.com \
    --cc=rodrigosiqueiramelo@gmail.com \
    --cc=tales.aparecida@gmail.com \
    --cc=tzimmermann@suse.de \
    --cc=~lkcamp/patches@lists.sr.ht \
    /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.