drm/vmwgfx: Don't memcmp equivalent pointers
authorIan Forbes <ian.forbes@broadcom.com>
Thu, 28 Mar 2024 19:07:16 +0000 (14:07 -0500)
committerZack Rusin <zack.rusin@broadcom.com>
Thu, 6 Jun 2024 02:38:40 +0000 (22:38 -0400)
These pointers are frequently the same and memcmp does not compare the
pointers before comparing their contents so this was wasting cycles
comparing 16 KiB of memory which will always be equal.

Fixes: bb6780aa5a1d ("drm/vmwgfx: Diff cursors when using cmds")
Signed-off-by: Ian Forbes <ian.forbes@broadcom.com>
Signed-off-by: Zack Rusin <zack.rusin@broadcom.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240328190716.27367-1-ian.forbes@broadcom.com
drivers/gpu/drm/vmwgfx/vmwgfx_kms.c

index 9532258..00c4ff6 100644 (file)
@@ -224,7 +224,7 @@ static bool vmw_du_cursor_plane_has_changed(struct vmw_plane_state *old_vps,
        new_image = vmw_du_cursor_plane_acquire_image(new_vps);
 
        changed = false;
-       if (old_image && new_image)
+       if (old_image && new_image && old_image != new_image)
                changed = memcmp(old_image, new_image, size) != 0;
 
        return changed;