From: Thomas Zimmermann <tzimmermann@suse.de>
To: Javier Martinez Canillas <javierm@redhat.com>,
jfalempe@redhat.com, jose.exposito89@gmail.com,
arthurgrillo@riseup.net, mairacanal@riseup.net,
maarten.lankhorst@linux.intel.com, mripard@kernel.org,
airlied@gmail.com, daniel@ffwll.ch, noralf@tronnes.org
Cc: dri-devel@lists.freedesktop.org
Subject: Re: [PATCH v4 1/7] drm/format-helper: Cache buffers with struct drm_format_conv_state
Date: Thu, 5 Oct 2023 16:55:52 +0200 [thread overview]
Message-ID: <9953d128-1366-4967-8fc8-6342bc31e9fb@suse.de> (raw)
In-Reply-To: <87y1gh6wd2.fsf@minerva.mail-host-address-is-not-set>
[-- Attachment #1.1: Type: text/plain, Size: 3046 bytes --]
Hi
Am 05.10.23 um 15:18 schrieb Javier Martinez Canillas:
> Thomas Zimmermann <tzimmermann@suse.de> writes:
>
> Hello Thomas,
>
>> Hold temporary memory for format conversion in an instance of struct
>> drm_format_conv_state. Update internal helpers of DRM's format-conversion
>> code accordingly. Drivers will later be able to maintain this cache by
>> themselves.
>>
>> Besides caching, struct drm_format_conv_state will be useful to hold
>> additional information for format conversion, such as palette data or
>> foreground/background colors. This will enable conversion from indexed
>> color formats to component-based formats.
>>
>> v3:
>> * rename struct drm_xfrm_buf to struct drm_format_conv_state
>> (Javier)
>> * remove managed cleanup
>> * add drm_format_conv_state_copy() for shadow-plane support
>>
>> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
>> ---
>
> [...]
>
>> +/**
>> + * drm_format_conv_state_init - Initialize format-conversion state
>> + * @state: The state to initialize
>> + *
>> + * Clears all fields in struct drm_format_conv_state and installs a DRM
>> + * release action for the buffer. The buffer will be empty with no
>> + * preallocated resources.
>> + */
>> +void drm_format_conv_state_init(struct drm_format_conv_state *state)
>> +{
>> + state->tmp.mem = NULL;
>> + state->tmp.size = 0;
>> + state->tmp.preallocated = false;
>> +}
>> +EXPORT_SYMBOL(drm_format_conv_state_init);
>> +
>> +/**
>> + * drm_format_conv_state_copy - Copy format-conversion state
>> + * @state: Destination state
>> + * @old_state: Source state
>> + *
>> + * Copies format-conversion state from @old_state to @state; except for
>> + * temporary storage.
>> + */
>> +void drm_format_conv_state_copy(struct drm_format_conv_state *state,
>> + const struct drm_format_conv_state *old_state)
>> +{
>> + state->tmp.mem = NULL;
>> + state->tmp.size = 0;
>> + state->tmp.preallocated = false;
>> +}
>> +EXPORT_SYMBOL(drm_format_conv_state_copy);
>> +
>
> I'm confused, the copy helper is the same than init. What's the point of
> this function ? Why not just call drm_format_conv_state_init() from the
> __drm_gem_duplicate_shadow_plane_state() function in the next patch ?
I guess that deserves a comment in the code. The reserved buffer is not
to be copied to another state. So we just clear the fields. But in the
future, we will likely be extra fields, such as the aforementioned
palette data, that will be copied. It's just that these fields don't
exist yet. Hence the copy function is different from the init.
Best regards
Thomas
>
> Other than that the patch looks good to me. After fixing the issue that
> Noralf pointed out:
>
> Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
>
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstrasse 146, 90461 Nuernberg, Germany
GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman
HRB 36809 (AG Nuernberg)
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]
next prev parent reply other threads:[~2023-10-05 14:55 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-05 9:04 [PATCH v4 0/7] drm: Reuse temporary memory for format conversion Thomas Zimmermann
2023-10-05 9:04 ` [PATCH v4 1/7] drm/format-helper: Cache buffers with struct drm_format_conv_state Thomas Zimmermann
2023-10-05 11:01 ` Noralf Trønnes
2023-10-05 13:18 ` Javier Martinez Canillas
2023-10-05 14:55 ` Thomas Zimmermann [this message]
2023-10-05 15:26 ` Javier Martinez Canillas
2023-10-05 9:04 ` [PATCH v4 2/7] drm/atomic-helper: Add format-conversion state to shadow-plane state Thomas Zimmermann
2023-10-05 11:02 ` Noralf Trønnes
2023-10-05 13:26 ` Javier Martinez Canillas
2023-10-05 9:04 ` [PATCH v4 3/7] drm/format-helper: Pass format-conversion state to helpers Thomas Zimmermann
2023-10-05 11:06 ` kernel test robot
2023-10-05 11:06 ` kernel test robot
2023-10-05 11:10 ` Noralf Trønnes
2023-10-05 11:15 ` Thomas Zimmermann
2023-10-05 13:28 ` Javier Martinez Canillas
2023-10-05 9:04 ` [PATCH v4 4/7] drm/ofdrm: Preallocate format-conversion buffer in atomic_check Thomas Zimmermann
2023-10-05 13:35 ` Javier Martinez Canillas
2023-10-05 9:04 ` [PATCH v4 5/7] drm/simpledrm: " Thomas Zimmermann
2023-10-05 13:38 ` Javier Martinez Canillas
2023-10-09 8:42 ` Thomas Zimmermann
2023-10-09 8:58 ` Javier Martinez Canillas
2023-10-09 9:16 ` Thomas Zimmermann
2023-10-09 9:24 ` Javier Martinez Canillas
2023-10-05 9:04 ` [PATCH v4 6/7] drm/ssd130x: Fix atomic_check for disabled planes Thomas Zimmermann
2023-10-05 9:15 ` Geert Uytterhoeven
2023-10-05 11:37 ` Javier Martinez Canillas
2023-10-05 11:54 ` Thomas Zimmermann
2023-10-05 12:54 ` Javier Martinez Canillas
2023-10-05 12:58 ` Javier Martinez Canillas
2023-10-05 9:04 ` [PATCH v4 7/7] drm/ssd130x: Preallocate format-conversion buffer in atomic_check Thomas Zimmermann
2023-10-05 11:43 ` Javier Martinez Canillas
2023-10-06 14:49 ` [PATCH v4 0/7] drm: Reuse temporary memory for format conversion Maxime Ripard
2023-10-09 8:23 ` Thomas Zimmermann
2023-10-10 9:55 ` Maxime Ripard
2023-10-07 12:01 ` Noralf Trønnes
2023-10-09 7:53 ` Thomas Zimmermann
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=9953d128-1366-4967-8fc8-6342bc31e9fb@suse.de \
--to=tzimmermann@suse.de \
--cc=airlied@gmail.com \
--cc=arthurgrillo@riseup.net \
--cc=daniel@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=javierm@redhat.com \
--cc=jfalempe@redhat.com \
--cc=jose.exposito89@gmail.com \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mairacanal@riseup.net \
--cc=mripard@kernel.org \
--cc=noralf@tronnes.org \
/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.