Summary: | Xserver screen number passed uninitialized | ||
---|---|---|---|
Product: | libva | Reporter: | Alexandr <pankoAA> |
Component: | core | Assignee: | haihao <haihao.xiang> |
Status: | RESOLVED FIXED | QA Contact: | Sean V Kelley <seanvk> |
Severity: | major | ||
Priority: | medium | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: | x11_screen driver context member initialization for X11 output |
Applied. Thanks for the patch. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.
Created attachment 75679 [details] x11_screen driver context member initialization for X11 output We have Xserver configuration with :0.0 connected to DVI and :0.1 connected to HDMI. Hardware: 01:00.0 VGA compatible controller: nVidia Corporation GT218 [ION] (rev a2) Video correctly played without acceleration divers on both video outputs. But only :0.0 working correctly when I used acceleration. Debugging of code revealed problem of not initialized x11_screen mamber in driver context. Simple initialization fixed problem (va/x11/va_x11.c): pDriverContext->native_dpy = (void *)native_dpy; + pDriverContext->x11_screen = XDefaultScreen(native_dpy); pDriverContext->display_type = VA_DISPLAY_X11; I do not patched wayland, drm and android. Not sure if there needed screen number. But in any case it should be initialized there. For example, by setting to 0. Places where x11_screen should be initialized simple to find by command: ~/dev/libva$ grep -r 'pDriverContext->native_dpy *=' . ./va/android/va_android.cpp: pDriverContext->native_dpy = (void *)native_dpy; ./va/drm/va_drm.c: pDriverContext->native_dpy = NULL; ./va/wayland/va_wayland.c: pDriverContext->native_dpy = display; ./va/x11/va_x11.c: pDriverContext->native_dpy = (void *)native_dpy; Patch for x11 in current master branch (9f4dedc4de014cc665c32dfbac1c017f9396b563) attached.