Bug 92198

Summary: eglCreateWindowSurface ERROR
Product: Mesa Reporter: liutao <liutao586>
Component: EGLAssignee: mesa-dev
Status: RESOLVED NOTABUG QA Contact: mesa-dev
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
URL: http://qwikfix.co.uk/asos-contact-number/
Whiteboard:
i915 platform: i915 features:
Attachments: sourcecode for test egl

Description liutao 2015-09-30 16:06:20 UTC
Created attachment 118542 [details]
sourcecode for test egl

I want create a egl surface by using a directfb surface, like attachment test.c on ubuntu14.04.3 for amd_64.
But I got this:"libEGL warning: failed to create a pipe screen for i965".
From the x11 log(Xorg.0.log), I found this:
 (==) intel(0): DPMS enabled
[     6.106] (II) intel(0): [DRI2] Setup complete
[     6.106] (II) intel(0): [DRI2]   DRI driver: i965
[     6.106] (II) intel(0): [DRI2]   VDPAU driver: i965
[     6.106] (II) intel(0): direct rendering: DRI2 Enabled
[     6.106] (==) intel(0): hotplug detection: "enabled"

but my Integrated Graphics use driver i915(see attachment lspci-v.txt), so I think my DRI2 should use diver i915 instead of i965. Am I right?

After that I compile mesa-10.6.4 use:
/configure --prefix=/usr --enable-debug --enable-gles1 --enable-gles2 --enable-opengl --with-dri-drivers=i915 --with-egl-platforms=drm --disable-dri3
make && make install

but it doesn't work. Anyone can figure me out?
Comment 1 Adam Jackson 2016-10-18 15:24:24 UTC
*** Bug 92199 has been marked as a duplicate of this bug. ***
Comment 2 Emil Velikov 2016-10-18 15:44:18 UTC
There's a few things here:

- The kernel module name is i915 for backwards compatibility reasons, yet on userspace side there are two drivers - i915 and i965. You can skim through/compare with $mesa_top/include/pci_ids/i9[16]5_pci_ids.h

- Using eglGetDisplay is implementation specific - don't use that since it depends on hacks such as EGL_PLATFORM/EGL_DISPLAY and alike. Use EGL_EXT_platform_base or the EGL 1.5 equivalent.

- Mesa has dropped support for fbdev platform a long time ago. Use drm instead - see kmscube for a simple example (iirc it uses the eglGetDisplay API so ignore that part).

- ATM you're building the gallium drivers, which seemingly you don't need. Pass to configure --without-gallium-drivers

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.