[Libva] copying VA surfaces on Sandy Bridge

Joe Bloggsian joebloggsian at gmail.com
Thu Apr 19 15:42:37 PDT 2012


Hi,

I have a test app implemented using VA and the Intel-driver running on
Sandy Bridge/HD3000 (for now).  This needs to pass surfaces back and forth
between CPU and GPU, using non-tiled and Y-tiled surfaces respectively.  It
seems I can only do this through the GTT (using vaMapBuffer) without
modifying the driver.

I'm only interested in entire surface copies so I can easily tile and
detile on the fly with a custom copy routine and don't really need the GTT
remapping.  Therefore I've modified i965_(Un)MapBuffer in the Intel driver
to always use dri_bo_(un)map (rather than just for non-tiled surfaces) and
written some CPU copy routines.

This seems to work well, and tests show the app performs significantly
better this way, compared to using the most efficient optimised copy
through the GTT I can come up with.

So my question is: are there any subtle fencing, coherency or other issues
I'm introducing by changing the mappings like this or is it safe?

I hope this is the right place for this question, and thanks in advance for
any help,
Mark.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/libva/attachments/20120419/0187415e/attachment.htm>


More information about the Libva mailing list