[Libva] CPU copy decoded data from GPU

hank peng pengxihan at gmail.com
Wed Jan 9 04:08:18 PST 2013


In my application, I must get decoded data from GPU on SNB platform.
Because bo buffer is uncached type, the performance is very slow when
CPU read bo buffer, which contained decoded data.
Now, I have done some optimization, I let GPU do decoding and scaling,
and then copy scaled data from GPU. Because bo buffer for post
processing is cached type, my performance cost is to wait GPU flush
its cache and to let CPU flush its cache before read. Compared to read
uncached buffer, this methos gains some performance increase.
I hope to move further. In my mind, if I can allocate bo buffer which
is  uncached type for GPU and cached type for CPU, the only cost is to
flush CPU cache each time before read. I think it will be faster than
now.
Is there libdrm API to alllocate bo buffer which is uncached type for
GPU and cached type for CPU?

In addtion, I know that GPU and CPU share L3 cache, we are using
kernel 2.6.37.1, I wonder if i915 driver make use of it?

Any help will be appreciated!



-- 
The simplest is not all best but the best is surely the simplest!


More information about the Libva mailing list