[PATCH 10/16] drm/udl: Use damage iterator

Thomas Zimmermann tzimmermann at suse.de
Wed Oct 5 15:26:32 UTC 2022


Hi

Am 05.10.22 um 00:28 schrieb Javier Martinez Canillas:
> On 9/19/22 15:04, Thomas Zimmermann wrote:
>> Use a damage iterator to process damage areas individually. Merging
>> damage areas can resul tin large updates of unchanged framebuffer
> 
> result in
> 
>> regions. As USB is rather slow, it's better to process damage areas
>> individually and hence minimize USB-transfered data.
>>
>> Signed-off-by: Thomas Zimmermann <tzimmermann at suse.de>
>> ---
> 
> Reviewed-by: Javier Martinez Canillas <javierm at redhat.com>
> 
> but I've a comment below.
> 
>>   
>>   /*
>> @@ -301,16 +291,26 @@ static void udl_primary_plane_helper_atomic_update(struct drm_plane *plane,
>>   	struct drm_shadow_plane_state *shadow_plane_state = to_drm_shadow_plane_state(plane_state);
>>   	struct drm_framebuffer *fb = plane_state->fb;
>>   	struct drm_plane_state *old_plane_state = drm_atomic_get_old_plane_state(state, plane);
>> -	struct drm_rect rect;
>> -	int idx;
>> +	struct drm_atomic_helper_damage_iter iter;
>> +	struct drm_rect damage;
>> +	int ret, idx;
>>   
>> -	if (!drm_dev_enter(dev, &idx))
>> +	ret = drm_gem_fb_begin_cpu_access(fb, DMA_FROM_DEVICE);
>> +	if (ret)
>>   		return;
>>
> 
> This is an unrelated change. The sync was made in udl_handle_damage() before
> and you are moving to udl_primary_plane_helper_atomic_update() in this patch.
> 
> I don't have a strong opinion and I see that there are drivers that do once
> before iterating over the damage areas and others do the sync for each damage
> area update. But it would be good to mention that this change is done too and
> provided some justification.

OK, I'll do that. Very briefly; it's for minimizing the overheads of the 
possible locking and synchronization, and to maybe it keeps possible 
writers out while we copy from the buffer.

Best regards
Thomas

> 

-- 
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Ivo Totev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 840 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20221005/a04b136e/attachment.sig>


More information about the dri-devel mailing list