Hello;

ext Bin Chen wrote:
> On Jan 10, 2008 4:26 PM, Tapani Pälli <[EMAIL PROTECTED]> wrote:
>   
>> Hello;
>>
>> ext Bin Chen wrote:
>>     
>>> Hello,
>>>
>>> I am running GTK+ in a singal machine, the machine is slow so I want
>>> make GTK+ use XSHM extension to accelerate the drawing speed.
>>>
>>> By taking a look at both GTK+ source code and the MIT-SHM paper, my
>>> conclusion is :
>>>
>>> 1) The XSHM can only support XImage and Pixmap.
>>>
>>>       
>> It is supporting the creation of XImage structure in shared memory and
>> 'transferring' it to X-server to be used as a pixmap.
>>
>>     
>>> 2) The GTK+ engine update the image using XCopyArea, so its impossible
>>> to accelerate the entire process.
>>>
>>> I am thinking a case, we do all the rendering process in GTK+
>>> side(such as use pango to render text, use other library to render
>>> image), the transfer the rendered image to XServer using XSHM, then
>>> draw this Image to the window.
>>>
>>>
>>>       
>> SHM extension is made to 'accelerate' data transfer between X client and
>> server when they reside on same machine. When data is on server end, it
>> can be used and manipulated via Xlib commands such as XCopyArea and the
>> operation is done on server side. Operation performance depends on the
>> X-server driver implementation.
>>
>>     
>>> Will this work?
>>>
>>>       
>> Your usecase is valid, but are you facing some performance issues with
>> current implementation? Have you profiled where the time is actually
>> spent? You might want to create these buffers (images) beforehand and
>> then transfer them to server. See also XRender API for rendering and
>> manipulating buffers on server-side.
>>
>>     
> I am not doing very detailed profiling against this, but by comparing
> the frame rate in my player against using pure framebuffer
> implementation. The performance difference is large. If not using
> shared memory to transfer the decoded image data, obviously the
> performance can't be good in slow machine.
>   

You did not mention a 'player' before. Video playback is very much of a
special case. Are you drawing/compositing other elements on top of
video? If so, you are entering very experimental areas here. You might
want to check out Xv extension which is available for video. I don't
know much about video so I'll stop here, good luck :-)

> The GTK+ can draw pixbuf and image to the drawable, is there any
> existing method for me to choose to force the low level gdk to use SHM
> extension?
>
> Thanks.
> Bin
>
>   


// Tapani Pälli

-- 
Software Engineer
Open Source Software Operations 

_______________________________________________
maemo-developers mailing list
maemo-developers@maemo.org
https://lists.maemo.org/mailman/listinfo/maemo-developers

Reply via email to