[virglrenderer-devel] regarding the CTS gles3 occlusion_query.conservative tests

Gert Wollny gert.wollny at collabora.com
Tue May 8 19:17:22 UTC 2018


Hi all, 

I've been looking into these tests, and there are two problem, one
trivial, and one really hard: 

The trivial one is GL_ANY_SAMPLES_PASSED_CONSERVATIVE is not yet passed
to the host, it needs trivial patches for mesa/virgl and virglrenderer
that I will send tomorrow.

The other problem is that glFinish() issued in a guest program doesn't
propperly translate into a real glFinish(). The consequence for the
occlusion_query tests is that the result might not be ready with below
code: 

  glEndQuery(m_queryMode);
  glFinish();
  glGetQueryObjectuiv(queryIds[0], GL_QUERY_RESULT_AVAILABLE, 
                      &resultAvailable);

If I put a glFinish() in virglrenderer's vrend_decode_get_query_result
function then the tests always pass, so the synchronization is indeed
the problem, but this is obviously not the solution. 

I've started looking at the code, but so far I'm not sure how the guest
glFinish() is supposed to be handled on the host and I'm a bit lost. 
Specifically, in the guest I end up at the drmIoctl in
virgl_drm_resource_is_busy, but where is the entry point in
virglrenderer that should answer this?

many thanks, 
Gert



More information about the virglrenderer-devel mailing list