Bug 98331

Summary: [dEQP, EGL] intermittent tests
Product: Mesa Reporter: Mark Janes <mark.a.janes>
Component: Drivers/DRI/i965Assignee: Tapani Pälli <lemody>
Status: RESOLVED NOTOURBUG QA Contact: Intel 3D Bugs Mailing List <intel-3d-bugs>
Severity: normal    
Priority: medium CC: chadversary
Version: git   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Bug Depends on:    
Bug Blocks: 98315    
Attachments: hacky fix
fix

Description Mark Janes 2016-10-19 18:22:00 UTC
The following test categories fail intermittently on Intel's Mesa CI, and have been disabled:

dEQP-EGL.functional.multithread.pbuffer_single_window
dEQP-EGL.functional.multithread.pbuffer_single_window_context
dEQP-EGL.functional.multithread.pbuffer_window
dEQP-EGL.functional.multithread.pbuffer_window_context
dEQP-EGL.functional.multithread.window
dEQP-EGL.functional.multithread.window_context
dEQP-EGL.functional.sharing.gles2.multithread
dEQP-EGL.functional.reusable_sync

Please contact Mark Janes whenever one of these issues is resolved, so the test can be re-enabled.  This bug can be closed when all tests pass reliably.
Comment 1 Tapani Pälli 2016-10-20 09:57:43 UTC
Following series might fix the issues seen with some of these:

https://patchwork.freedesktop.org/series/13001/
Comment 2 Tapani Pälli 2016-10-31 07:37:35 UTC
with recent fixes following tests pass for me now:

dEQP-EGL.functional.reusable_sync


I can get following sets to pass if I add XInitThreads() to deqp EGL suite, I believe this is a dEQP bug to not call it:

dEQP-EGL.functional.multithread.pbuffer_single_window
dEQP-EGL.functional.multithread.pbuffer_single_window_context
dEQP-EGL.functional.sharing.gles2.multithread

For the rest I'm still clueless, they seem to work a lot better with XInitThreads() but it looks like there are deadlocks.
Comment 3 Mark Janes 2016-10-31 21:28:40 UTC
Tapani,  please send mail to deqp-external-requests@google.com, and request to be added to that list.

dEQP bugs/fixe reported to that address should make their way into the suite.

Please also send me the patch to fix the test, so I can carry it in the CI.
Comment 4 Mark Janes 2016-12-09 21:42:44 UTC
The list of intermittent test categories has been reduced to:

dEQP-EGL.functional.multithread.pbuffer_single_window
dEQP-EGL.functional.multithread.pbuffer_single_window_context
dEQP-EGL.functional.sharing.gles2.multithread

Tapani, please attach the patch to add XInitThreads(), so I can carry it in the CI.
Comment 5 Tapani Pälli 2016-12-12 08:55:16 UTC
Created attachment 128424 [details] [review]
hacky fix

Attaching a fix/hack. Mark, could you ask if this makes sense for the dEQP developers?
Comment 6 Mark Janes 2016-12-12 20:35:16 UTC
Tapani:  I sent mail to the dEQP team, but subsequently found that some tests are still unreliable:

dEQP-EGL.functional.sharing.gles2.multithread.simple_egl_server_sync.images.texture_source.texsubimage2d_render

Standard Output:

  [29] (0) Begin -- eglBindAPI(EGL_OPENGL_ES_API)
  [33] (0) End -- eglBindAPI()
  [86] (0) Begin -- eglCreateContext(0x1126860, 0x1268450, EGL_NO_CONTEXT, {  EGL_CONTEXT_CLIENT_VERSION, 2, EGL_NONE })
  [733] (0) End -- 0x7f206c0013c0 = eglCreateContext()
  <snip>
  [45631] (0) End -- 1 = eglDestroySyncKHR()
  [45633] (0) Begin -- glDeleteProgram(3)
  [45686] (0) tcu::Exception 'deleteProgram(program): glGetError() returned GL_INVALID_VALUE at teglGLES2SharingThreadedTests.cpp:1532'
Comment 7 Tapani Pälli 2016-12-13 08:12:43 UTC
Created attachment 128448 [details] [review]
fix

here's a version where XInitThreads() call is moved to X11Platform constructor.
Comment 8 Mark Janes 2016-12-14 01:49:52 UTC
*** Bug 98316 has been marked as a duplicate of this bug. ***
Comment 9 Chad Versace 2017-01-20 23:34:54 UTC
Regarding intermittent test dEQP-EGL.functional.multithread.window_context,
I've submitted 2 patches to dEQP to fix it. Calling XInitThreads() is necessary but not sufficient.

https://android-review.googlesource.com/#/c/326201/
https://android-review.googlesource.com/#/c/326094/

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.