[Spice-devel] Why 'draw-copy' operation in spice client will introduce many images for IE browser?

xuzhinong999 xuzhinong999 at 163.com
Tue Nov 16 22:31:44 PST 2010


Hi, All,
   I am trying spice 0.6.3 now, spice client run on linux and qemu/spiceServer run on linux as well, and the guest OS is windows XP with qxl driver installed.
 
  spice client can start up correctly, but it will consume too much memory when launch a browser (Window IE 7.0). The web page is a little complicated with many text/image, the website ishttp://www.sohu.com. I found spice client will consume more than 120MB memory when i only startup the web page.
 
  I have done some debugging and has some result. It's very strange that the bbox->left & right means the absolute x-coordinate and y-coordinate of the image to be executed 'draw-copy' is 303, 304 , 305, 306, 307, etc, why these images are aligned so densely? I don't find there are so many images on the webpage in that area.
And the width/height is 450/105, but why 'GlzDecodeSurfaceHandler.alloc_image.width : 1280,  height: 556' say the width/height is 1280/556. Does the image be compressed and extracted on the webpage?
 
  I know some about the qxl driver and windows xp graphic processing. But i can't explain the above information. Can someone kindly give me a hint. Thanks.
 
Bill
 
The debugging result is as following:

handle_draw_copy
 << enter <<canvas_draw_copy>, bbox->left: 303, bbox->top : 271, width : 450, height : 105
 <<canvas_draw_copy>, dest_region.extents.x1 : 303 , dest_region.extents.y1 : 271 ,dest_region.extents.x2 : 753 ,dest_region.extents.y2 : 376
 << enter canvas_get_image_internal.canvas_get_image image type: 102
 << enter GlzDecodeSurfaceHandler.alloc_image.width : 1280,  height: 556
 << enter alloc_lz_image_surface. stride : -5120. gross_pixels : 711680, height : 556 , top_down : 0
<< enter spice_malloc, malloc : 2846720, address : 0x440a6008
handle_draw_copy
 << enter <<canvas_draw_copy>, bbox->left: 304, bbox->top : 271, width : 449, height : 105
 <<canvas_draw_copy>, dest_region.extents.x1 : 304 , dest_region.extents.y1 : 271 ,dest_region.extents.x2 : 753 ,dest_region.extents.y2 : 376
 << enter canvas_get_image_internal.canvas_get_image image type: 102
 << enter GlzDecodeSurfaceHandler.alloc_image.width : 1280,  height: 556
 << enter alloc_lz_image_surface. stride : -5120. gross_pixels : 711680, height : 556 , top_down : 0
<< enter spice_malloc, malloc : 2846720, address : 0x4435e008

handle_draw_copy
 << enter <<canvas_draw_copy>, bbox->left: 305, bbox->top : 271, width : 448, height : 105
 <<canvas_draw_copy>, dest_region.extents.x1 : 305 , dest_region.extents.y1 : 271 ,dest_region.extents.x2 : 753 ,dest_region.extents.y2 : 376
 << enter canvas_get_image_internal.canvas_get_image image type: 102
 << enter GlzDecodeSurfaceHandler.alloc_image.width : 1280,  height: 556
 << enter alloc_lz_image_surface. stride : -5120. gross_pixels : 711680, height : 556 , top_down : 0
<< enter spice_malloc, malloc : 2846720, address : 0x44616008
handle_draw_copy
 << enter <<canvas_draw_copy>, bbox->left: 306, bbox->top : 271, width : 446, height : 105
 <<canvas_draw_copy>, dest_region.extents.x1 : 306 , dest_region.extents.y1 : 271 ,dest_region.extents.x2 : 752 ,dest_region.extents.y2 : 376
 << enter canvas_get_image_internal.canvas_get_image image type: 102
 << enter GlzDecodeSurfaceHandler.alloc_image.width : 1280,  height: 556
 << enter alloc_lz_image_surface. stride : -5120. gross_pixels : 711680, height : 556 , top_down : 0
<< enter spice_malloc, malloc : 2846720, address : 0x448ce008
handle_draw_copy
 << enter <<canvas_draw_copy>, bbox->left: 307, bbox->top : 271, width : 445, height : 105
 <<canvas_draw_copy>, dest_region.extents.x1 : 307 , dest_region.extents.y1 : 271 ,dest_region.extents.x2 : 752 ,dest_region.extents.y2 : 376
 << enter canvas_get_image_internal.canvas_get_image image type: 102
 << enter GlzDecodeSurfaceHandler.alloc_image.width : 1280,  height: 556
 << enter alloc_lz_image_surface. stride : -5120. gross_pixels : 711680, height : 556 , top_down : 0
<< enter spice_malloc, malloc : 2846720, address : 0x44b86008
handle_draw_copy
 << enter <<canvas_draw_copy>, bbox->left: 353, bbox->top : 271, width : 399, height : 105
 <<canvas_draw_copy>, dest_region.extents.x1 : 353 , dest_region.extents.y1 : 271 ,dest_region.extents.x2 : 752 ,dest_region.extents.y2 : 376
 << enter canvas_get_image_internal.canvas_get_image image type: 102
 << enter GlzDecodeSurfaceHandler.alloc_image.width : 1280,  height: 556
 << enter alloc_lz_image_surface. stride : -5120. gross_pixels : 711680, height : 556 , top_down : 0
<< enter spice_malloc, malloc : 2846720, address : 0x44e3e008
handle_draw_copy
 << enter <<canvas_draw_copy>, bbox->left: 936, bbox->top : 535, width : 160, height : 131
 <<canvas_draw_copy>, dest_region.extents.x1 : 936 , dest_region.extents.y1 : 535 ,dest_region.extents.x2 : 1096 ,dest_region.extents.y2 : 666
 << enter canvas_get_image_internal.canvas_get_image image type: 102
 << enter GlzDecodeSurfaceHandler.alloc_image.width : 1280,  height: 556
 << enter alloc_lz_image_surface. stride : -5120. gross_pixels : 711680, height : 556 , top_down : 0
<< enter spice_malloc, malloc : 2846720, address : 0x450f6008
handle_draw_copy
 << enter <<canvas_draw_copy>, bbox->left: 303, bbox->top : 271, width : 450, height : 105
 <<canvas_draw_copy>, dest_region.extents.x1 : 303 , dest_region.extents.y1 : 271 ,dest_region.extents.x2 : 753 ,dest_region.extents.y2 : 376
 << enter canvas_get_image_internal.canvas_get_image image type: 102
 << enter GlzDecodeSurfaceHandler.alloc_image.width : 1280,  height: 556
 << enter alloc_lz_image_surface. stride : -5120. gross_pixels : 711680, height : 556 , top_down : 0
<< enter spice_malloc, malloc : 2846720, address : 0x453ae008
handle_draw_copy
 << enter <<canvas_draw_copy>, bbox->left: 303, bbox->top : 271, width : 450, height : 105
 <<canvas_draw_copy>, dest_region.extents.x1 : 303 , dest_region.extents.y1 : 271 ,dest_region.extents.x2 : 753 ,dest_region.extents.y2 : 376
 << enter canvas_get_image_internal.canvas_get_image image type: 102
 << enter GlzDecodeSurfaceHandler.alloc_image.width : 1280,  height: 556
 << enter alloc_lz_image_surface. stride : -5120. gross_pixels : 711680, height : 556 , top_down : 0
<< enter spice_malloc, malloc : 2846720, address : 0x45666008
handle_draw_copy
 << enter <<canvas_draw_copy>, bbox->left: 353, bbox->top : 271, width : 392, height : 105
 <<canvas_draw_copy>, dest_region.extents.x1 : 353 , dest_region.extents.y1 : 271 ,dest_region.extents.x2 : 745 ,dest_region.extents.y2 : 376
 << enter canvas_get_image_internal.canvas_get_image image type: 102
 << enter GlzDecodeSurfaceHandler.alloc_image.width : 1280,  height: 556
 << enter alloc_lz_image_surface. stride : -5120. gross_pixels : 711680, height : 556 , top_down : 0
<< enter spice_malloc, malloc : 2846720, address : 0x4591e008
 << enter <pixman_image_create_bits>, allocate image : 0x2787c8
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/spice-devel/attachments/20101117/0b024368/attachment.htm>


More information about the Spice-devel mailing list