Any takers? Thanks!
On Wed, 22 Aug 2018 07:34:09 -0700 "Miguel A. Vico" <mvicom...@nvidia.com> wrote: > When EGL_KHR_create_context was originally written, > EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR was an invalid > attribute for OpenGL ES. > > After moving the extension to core EGL 1.5, the aforementioned > attribute was made valid for both OpenGL and OpenGL ES. > > Check whether the EGL version is lower than 1.5 before checking > EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR is an invalid > attribute. > > Signed-off-by: Miguel A Vico Moya <mvicom...@nvidia.com> > --- > .../egl/spec/egl_khr_create_context/common.c | 5 ++-- > .../egl/spec/egl_khr_create_context/common.h | 8 +++++++ > .../invalid-attribute-gles.c | 24 +++++++++++++++++++ > 3 files changed, 35 insertions(+), 2 deletions(-) > > diff --git a/tests/egl/spec/egl_khr_create_context/common.c > b/tests/egl/spec/egl_khr_create_context/common.c > index a443ced97..ba0311bff 100644 > --- a/tests/egl/spec/egl_khr_create_context/common.c > +++ b/tests/egl/spec/egl_khr_create_context/common.c > @@ -27,6 +27,8 @@ > > static Display *dpy = NULL; > EGLDisplay egl_dpy; > +EGLint egl_major; > +EGLint egl_minor; > EGLConfig cfg; > EGLContext ctx; > > @@ -87,7 +89,6 @@ EGL_KHR_create_context_setup(EGLint renderable_type_mask) > EGL_NONE > }; > EGLint count; > - EGLint major, minor; > > dpy = XOpenDisplay(NULL); > if (dpy == NULL) { > @@ -101,7 +102,7 @@ EGL_KHR_create_context_setup(EGLint renderable_type_mask) > piglit_report_result(PIGLIT_FAIL); > } > > - if (!eglInitialize(egl_dpy, &major, &minor)) { > + if (!eglInitialize(egl_dpy, &egl_major, &egl_minor)) { > fprintf(stderr, "eglInitialize() failed\n"); > piglit_report_result(PIGLIT_FAIL); > } > diff --git a/tests/egl/spec/egl_khr_create_context/common.h > b/tests/egl/spec/egl_khr_create_context/common.h > index f4f42760c..269610f01 100644 > --- a/tests/egl/spec/egl_khr_create_context/common.h > +++ b/tests/egl/spec/egl_khr_create_context/common.h > @@ -51,6 +51,8 @@ > #endif > > extern EGLDisplay egl_dpy; > +extern EGLint egl_major; > +extern EGLint egl_minor; > extern EGLConfig cfg; > extern EGLContext ctx; > > @@ -75,3 +77,9 @@ version_is_valid_for_context(int ctx_major, int major, int > minor) > } > return false; > } > + > +static inline bool > +check_egl_version(int major, int minor) > +{ > + return ((egl_major > major) || ((egl_major == major) && (egl_minor >= > minor))); > +} > diff --git a/tests/egl/spec/egl_khr_create_context/invalid-attribute-gles.c > b/tests/egl/spec/egl_khr_create_context/invalid-attribute-gles.c > index 7d23e5673..d2b98818c 100644 > --- a/tests/egl/spec/egl_khr_create_context/invalid-attribute-gles.c > +++ b/tests/egl/spec/egl_khr_create_context/invalid-attribute-gles.c > @@ -79,6 +79,22 @@ int main(int argc, char **argv) > * attribute is only meaningful for OpenGL contexts, and specifying > it > * for other types of contexts, including OpenGL ES contexts, will > * generate an error." > + * > + * However, after making the extension part of core EGL 1.5, > + * EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR was made a valid > + * attribute for OpenGL ES contexts: > + * > + * "The attribute EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY > + * specifies reset notification behavior for a context supporting > + * robust buffer access. The attribute value may be either > + * EGL_NO_RESET_NOTIFICATION or EGL_LOSE_CONTEXT_ON_RESET, which > + * respectively result in reset notification behavior of > + * GL_NO_RESET_NOTIFICATION_ARB and GL_LOSE_CONTEXT_ON_RESET_ARB, as > + * described by the OpenGL GL_ARB_robustness extension, or by > + * equivalent functionality. > + * > + * This attribute is supported only for OpenGL and OpenGL ES > + * contexts." > */ > EGLint bad_attributes[] = { > 0xffff0000, > @@ -97,6 +113,14 @@ int main(int argc, char **argv) > } > > for (i = 0; i < ARRAY_SIZE(bad_attributes); i++) { > + /* Skip EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR if > + * it's EGL 1.5+ > + */ > + if ((bad_attributes[i] == > EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR) && > + check_egl_version(1, 5)) { > + continue; > + } > + > pass = try_attribute(bad_attributes[i]) && pass; > } > > -- > 2.18.0 > -- Miguel _______________________________________________ Piglit mailing list Piglit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/piglit