New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 827732 link

Starred by 2 users

Issue metadata

Status: Verified
Owner: ----
Closed: Sep 6
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Virgl renderer GLES3 on GLES3 -- missing extensions

Project Member Reported by gurcheta...@chromium.org, Mar 31 2018

Issue description

We're trying to run GLES3 (guest) on GLES3 (virglrenderer) for debugging purposes. To get a GLES context instead of a GL context, replace SDL_GL_CONTEXT_PROFILE_CORE with SDL_GL_CONTEXT_PROFILE_ES in ui/sdl2-gl.c and rebuild QEMU.

We can't get a GLES3 guest context.  To verify, try to run any GLES3 dEQP test.

Here are the missing extensions, obtained by putting a breakpoint in compute_version_es2 in Mesa:

(gdb) p extensions->EXT_texture_array
$10 = 0 '\000'
(gdb) p extensions->EXT_transform_feedback
$12 = 0 '\000'
(gdb) p extensions->ARB_uniform_buffer_object
$14 = 0 '\000'
(gdb) p extensions->OES_depth_texture_cube_map
$16 = 0 '\000'
(gdb) p extensions->NV_primitive_restart
$17 = 0 '\000'
(gdb) p extensions->OES_depth_texture_cube_map
$18 = 0 '\000

Enjoy..!


 
Cc: djmk@google.com
Cc: tournier...@gmail.com
Hello,

We have a hack to select the context type (GL or GLES) at runtime.
You can found it in our gitlab [1].
I'm planning to upstream this functionality in some better way.

On our subject, GLES3 on GLES3, Jakob is currently working on it.
This imply some work on mesa master too.

Elie

[1] https://gitlab.collabora.com/virgl-es/qemu/tree/gles-option
Cc: chadversary@chromium.org
Status: Fixed (was: Untriaged)
Okay, it sounds like Collabora is already looking the GLES3 on GLES3 situation and QEMU integration.  Let me close this bug ...
Status: Assigned (was: Fixed)
Actually, let's not close it since it's not fixed.  
Yeah I'm looking into this.

The tricky part here is those extensions are desktop extensions and might require more features then what the GLES extension or version exposes.

For example 'EXT_framebuffer_sRGB' requires you to be able to toggle sRGB conversion on and off. While the GLES version it's bound to the rendererbuffer format.

Cheers, Jakob.
I have sent out a patch to enable GL_ARB_uniform_buffer_object which brings the list of missing extensions down to four:

GL_EXT_draw_buffers2
GL_EXT_framebuffer_sRGB
GL_EXT_transform_feedback
GL_OES_depth_texture_cube_map



GL_EXT_framebuffer_sRGB seems impossible to fully support.

I'm trying to figure out what from GL_EXT_draw_buffers2 is actually needed for GLES 3.0, I can't see any of the new functions in that extension that is exposed in GLES 3.x.

Looks like I got my list from a old version of Mesa and GL_EXT_draw_buffers2 has been moved to GLES 3.2 where it belongs. That leaves:

GL_EXT_framebuffer_sRGB
GL_EXT_transform_feedback
GL_OES_depth_texture_cube_map

Status: Verified (was: Assigned)

Sign in to add a comment