[Piglit] [PATCH 5/5] egl: add eglCopyBuffers test
Emil Velikov
emil.l.velikov at gmail.com
Wed Dec 13 12:22:12 UTC 2017
Hi Tapani,
Thanks for having a look!
On 13 December 2017 at 06:10, Tapani Pälli <tapani.palli at intel.com> wrote:
> Hi;
>
> On 11.12.2017 22:15, Emil Velikov wrote:
>> + /* Set the env. variable to force the platform 'detection' to use
>> + * different platform (than X11).
>> + *
>> + * NOTE: This is not perfect, since driver may ignore the
>> variable, yet
>> + * we aim to provide a consistent experience across test runs,
>> build
>> + * permutation and/or driver used.
>> + */
>> +// setenv("EGL_PLATFORM", "drm", true);
This must _not_ be commented out - silly mistake while doing some back
and forth testing.
>> +
>> + /* XXX: test should flag regardless of the following call -
>> testing
>> + * has confirmed it.
>> + *
>> + * NOTE: We cannot do the test twice - with and W/o the call; the
>> + * detection result is stored in static variable :-\
>> + */
>> + piglit_egl_get_default_display(EGL_NONE);
>> +
>> + /* Use X11 since it's the only platform that has EGL pixmap
>> surfaces */
>> + piglit_require_egl_extension(EGL_NO_DISPLAY,
>> "EGL_EXT_platform_x11");
>> +}
>> +
>> +static enum piglit_result
>> +draw(struct egl_state *state)
>> +{
>> + EGLNativePixmapType pixmap;
>> + enum piglit_result result = PIGLIT_PASS;
>> +
>> + /* Green for a pass */
>> + glClearColor(0.0, 1.0, 0.0, 1.0);
>> + glClear(GL_COLOR_BUFFER_BIT);
>> +
>> + pixmap = egl_util_create_native_pixmap(state,
>> egl_default_window_width,
>> + egl_default_window_height);
>
>
> Should we call XFlush(dpy) here or is it ok to go and use pixmap right away?
>
Cannot see any such requirement in the XCreatePixmap manpage. Plus the
existing piglit code using pixmaps doesn't do it :-\
Out of curiosity - the extra XFlush does not help with the DRI3 crash
mentioned earlier.
>> + eglCopyBuffers(state->egl_dpy, state->surf, pixmap);
>
>
> I think we could also read from pixmap and verify that it has green (in
> every pixel)?
>
> There might be need some additional synchronization if doing that, at least
> dEQP issues eglWaitClient() before reading pixmap contents.
>
The test doesn't care how well eglCopyBuffers itself works - aim it to
illustrate the buggy validation in Mesa.
Hence the wait + pixmap readback are not really needed.
Admittedly the test name is quite misleading as-is - I'm short on
alternatives though :-(
-Emil
More information about the Piglit
mailing list