As stated in the subject iegd_drv.so Xorg 1.6.4 driver crashes my Xorg on client side (application side) when I try to use vaPutSurface (via VA API driver iegd_drv_video.so) on PixMap drawable (instead of Window drawable).
My Linux is: Linux atom 2.6.31-19-generic # 56-Ubuntu SMP Thu Jan 28 01:26:53 UTC 2010 i686 GNU/Linux, Ubuntu 9.10 Karmic, X.Org X Server 1.6.4
When using vaPutSurface on Window drawable it works just fine. Rest of things such as OpenGL rendering are working fine too.
You may reproduce this crash using latest VA API hwdecode demos from:
./vaapi_h264 --getimage pixmap
I get following backtrace of Xorg in gdb:
# 0 0x00277afd in memmove () from /lib/tls/i686/cmov/libc.so.6# 1 0x001c9069 in pixman_region_copy () from /usr/lib/libpixman-1.so.0# 2 0x08120c44 in miRegionCopy ()# 3 0x00f7dbe2 in ?? () from /usr/lib/xorg/modules/drivers//iegd_drv.soBacktrace stopped: previous frame inner to this frame (corrupt stack?)
# 0 0x00277afd in memmove () from /lib/tls/i686/cmov/libc.so.6
# 1 0x001c9069 in pixman_region_copy () from /usr/lib/libpixman-1.so.0
# 2 0x08120c44 in miRegionCopy ()
# 3 0x00f7dbe2 in ?? () from /usr/lib/xorg/modules/drivers//iegd_drv.soBacktrace stopped:
previous frame inner to this frame (corrupt stack?)
And Xorg crash report of:
0: X(xf86SigHandler+0x7e) [0x80c91ce]
2: /usr/lib/xorg/modules/drivers//iegd_drv.so [0xb7912c31]
I would be grateful if someone from Intel could tell if case of rendering VA surface to Pixmap was tested and if there's a change to get it fixed in near future. This is quite important feature for me, as it gives possibility to create OpenGL texture out of VA surface representing decompressed video frame.
We are trying to get someone to look at this. It may be that we just do not allow VA API to output to a Pixmap- if you are trying to do compositing, that may be the problem as that is not well supported at this time. We are trying to determine if we have an issue, or just an unsupported that would need to become a feature request.
Thanks a lot. Maybe you got an information whether there is any other way to get rendered frame into GL/GLES texture via vaapi? Because right now only vaPutSurface makes sense to me, but this crashes.
OpenGL "texture from pixmap" (TFP) extension was implemented for IEGD 10.1. TFP is generally used by compositing window managers, but basically it allows an application to take a regular X pixmap object and wrap it up for use as an OpenGL texture. To leverage TFP, what needs to be done is basically
va_buffer --> X pixmap --> GLX pixmap --> OGL texture
The issue is in the first step there and it sounds like vaPutSurface should be able to do it, but when we added the TFP capability, we did not realize that function would do the job. I'm still asking for alternatives, but I think we will need to make VaPutSurface work right to actually get this capability.
Any news on this subject?? We are walking in circles since few months because of this issue, we are sent forth to Intel representative, he is sending us to embedded support forums, then we are sent back to Intel representative.
When we can have our hands on IEGD with fixed vaPutSurface, this may be beta, or whatever. Please respond.
Are you able to get this issue into the Intel Premier Support System? If you do not have an account, can you use an Intel Field Rep to do it? This is a feature request that needs to come in through a "known" customer to get a high enough prioity to get on our to do list.