EGL_MESA_screen_surface version 4

Adam Jackson ajax at nwnk.net
Wed Mar 23 17:47:17 PST 2005


On Wednesday 23 March 2005 20:32, Jon Smirl wrote:
> On Wed, 23 Mar 2005 16:38:34 -0700, Brian Paul
> Did you note somewhere that it is illegal to destroy a surface while
> it is being displayed?

Why would that be illegal, as opposed to merely undefined?

> Why is there a eglCreateScreenSurfaceMESA() in addition to
> elgCreateSurface(), shouldn't all surfaces be created equal?

Because there's not an eglCreateSurface.  There are three distinct surface 
creation functions:

eglCreatePbufferSurface
eglCreatePixmapSurface
eglCreateWindowSurface

http://www.khronos.org/opengles/documentation/opengles1_1/gl_egl_ref_1_1_20041110/index.html

> Then if 
> you try to scanout a surface first it needs to compatible with the
> mode.

Scanned-out surfaces can never be incompatible with the display mode.  If you 
switch between two surfaces with different display attributes, then that's an 
implicit mode switch.

> Next Mesa needs to move it into VRAM if it already isn't there. 
> There should be no reason that surfaces that aren't being scanned out
> can't migrate to AGP memory.

Actually what you do is just throw out the old surface and mark it clobbered, 
so that when the owner of the old surface tries to draw to it, it knows to 
regenerate the scene.

If you're reading pixels back from the framebuffer, you have lost.

> In the composited desktop model all top level window get their own
> surface then the desktop composits them into a single image. Now let's
> assume these top level windows are compatible with monitor modes.

*blink*

The backing storage for these windows will not be screen surfaces.  Therefore 
there's no "monitor mode compatibility" to worry about.

> If 
> all surfaces are created equal I should be able to transparently make
> each top level window full screen and rotate through them.

But all surfaces are not created equal.  Instead you will use pbuffers or FBOs 
for the offscreen storage of each window, and apply those as textures to a 
scene geometry that you draw to the screen surface.

- ajax
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.freedesktop.org/archives/dri-egl/attachments/20050323/c966a564/attachment.pgp


More information about the dri-egl mailing list