There was a discussion about a new interface, st_api.h, that will replace
st_public.h last month.  Comparing to st_public.h, st_api.h allows multiple
current contexts for each rendering API supported.  It removes the need for
pipe_screen->flush_front or pipe_screen->update_buffer by making st_framebuffer
a manager API (EGL, GLX, or DRI drivers) resource.  It also defines hooks that
can be used to support resource sharing between the manager API and the
rendering APIs.  An example of this resource sharing is texture-from-pixmap:
the hooks allow using a pixmap (manager API resource) as an OpenGL ES texture
image (rendering API resource).

The current version of st_api.h and an experimental implementation for OpenVG
and EGL is available at

http://cgit.freedesktop.org/~olv/st_api/

The interface is expected to evolve as the implementation takes place.  But I
would like to collect more early feedbacks before I start the work.  Any
comment is highly appreciated.  The experimental implementation for OpenVG
might help get the ideas of the purposes for certain hooks

http://cgit.freedesktop.org/~olv/st_api/plain/sample-implementation-tmp/0003-st-vega-Implement-st_api-interface.patch

As st_api.h can be implemented parallelly with st_public.h, a possible route I
would like to take is to (in this order)

1. implement st_api.h in OpenVG and OpenGL state trackers
2. convert st/egl to use st_api.h
3. convert st/glx and st/dri to use st_api.h
4. eliminate st_public.h and any use of it

It is an incremental process and there should be no unexpected regression.  I
will focus more on 1 & 2.  3 & 4 will happen at a later time, as I am not that
familiar with st/glx and st/dri.  It would also be great if anyone is willing
to help out.

There is also one last change to st_api.h that I would like to make.  That is,

* Rename st_context to st_context_iface
* Rename st_framebuffer to st_framebuffer_iface

There will be some ugly sed works if st_api.h uses the same struct names as
st/mesa and st/vega are.  The patch to st_api.h is at

http://cgit.freedesktop.org/~olv/st_api/plain/sample-implementation-tmp/0002-gallium-Suffix-st_framebuffer-and-st_context-with-_i.patch

Any suggestion or a better naming is welcome.

-olv

------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
_______________________________________________
Mesa3d-dev mailing list
Mesa3d-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to