[Spice-devel] [PATCH RFC 00/14] Change the way RedSurface is stored and handled
Frediano Ziglio
fziglio at redhat.com
Thu Sep 29 08:43:59 UTC 2016
This series of patches attempt to use direct pointers to
surfaces.
The current code rely on the fact that surface pointer for a specific
surface_id does not change.
For this reason for instance surfaces are allocated in a static array.
On the other way surfaces have reference counting so why don't use
counters for life management instead of having complicated function
that attempt to do all possible checks in order to make sure they
are not used?
Mainly instead of using surface_id and every time having to ask
DisplayChannel to convert this to a RedSurface pass and store directly
the pointers.
On deletion you could simply remove the reference to the main list
(which can became something like RedSurface *surfaces[MAX_SURFACES])
and you can create a new RedSurface.
Also as usually multiple surfaces are disabled this will reduce
memory usage.
Frediano Ziglio (14):
Use direct pointers for surface and surface dependencies from Drawable
Pass surface directly for surface_read_bits
Pass surface directly to current_remove_all
Pass surface directly to display_channel_surface_unref
Pass surface directly in is_primary_surface
Pass surface directly calling draw_depend_on_me and
display_channel_destroy_surface
Pass surface directly calling dcc_clear_surface_drawables_from_pipe
Pass surface directly calling display_channel_current_flush
New function to pass surface directly to display_channel_draw
Pass surface directly to dcc_create_surface
Pass surface directly to dcc_push_surface_image
Use directly surface instead of id
Change validate_surface to return surface pointer
Reuse more validate_surface
server/dcc-send.c | 29 ++++---
server/dcc.c | 56 ++++++-------
server/dcc.h | 9 +-
server/display-channel.c | 214 +++++++++++++++++++++++++----------------------
server/display-channel.h | 28 +++++--
server/red-worker.c | 2 +-
6 files changed, 178 insertions(+), 160 deletions(-)
--
2.7.4
More information about the Spice-devel
mailing list