<html>
    <head>
      <base href="https://bugs.freedesktop.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [EGL] Surfaceless lacks swrast support"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=101397">101397</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>[EGL] Surfaceless lacks swrast support
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>Mesa
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>17.0
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>medium
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>EGL
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>mesa-dev@lists.freedesktop.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>inio@google.com
          </td>
        </tr>

        <tr>
          <th>QA Contact</th>
          <td>mesa-dev@lists.freedesktop.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>I'm trying to set up unit tests for another project that Use OpenGL ES and do
not rely on having an X11 display (because they run headless) or hardware
acceleration (because they run on VMs usually).

Mesa surfaceless EGL looked like a perfect solution, but it seems the EGL
surfaceless platform lacks support for selecting the swrast driver.  I see
explicit support in the drm, wayland, and x11 platforms files for it, but
nothing in android or surfaceless.

Running on 17.0.7 (corp OS has too old of a libdrm for 17.1.2) but confirmed
that this doesn't appear to have changed in 17.1.2.

Configured with:

./configure --enable-gallium --prefix=$HOME/mesa/install
--with-llvm-prefix=/usr/lib/llvm-3.4/ --enable-debug
--with-gallium-drivers=swrast --with-dri-drivers=swrast
--with-egl-platforms=surfaceless

(have to specify llvm path as auto-search finds a local version that's bogus)

Ran as (with DISPLAY unset):

LD_LIBRARY_PATH=$HOME/mesa/install/lib
LIBGL_DRIVERS_PATH=$HOME/mesa/install/lib/dri LIBGL_DEBUG=verbose
MESA_DEBUG=verbose EGL_LOG_LEVEL=debug ~/a.out

Output:

libEGL debug: Native platform type: surfaceless (build-time configuration)
libEGL debug: added egl_dri2 to module array
libEGL debug: EGL user error 0x3001 (EGL_NOT_INITIALIZED) in DRI2: failed to
load driver
libEGL debug: EGL user error 0x3001 (EGL_NOT_INITIALIZED) in eglInitialize</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the assignee for the bug.</li>
          <li>You are the QA Contact for the bug.</li>
      </ul>
    </body>
</html>