On Thu, Feb 4, 2010 at 3:39 AM, Chia-I Wu <olva...@gmail.com> wrote: > 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
Probably the other major user is st/wgl. If you install mingw, this can be build-tested on linux machines, so you should at least be able to minimize the disruption in that component as well. > 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 And I would suggest st/wgl as well... > Any suggestion or a better naming is welcome. > > I had some other questions. It took a little while to understand the scope of this work, but I think I'm there now. This is basically a unifying interface for managing state-trackers of khronos style APIs. Specifically, it is useful for managing APIs with an implicit context parameter, and hence an external MakeCurrent() call, and an external window system binding for SwapBuffers, etc. Is that basically correct? In particular, there don't seem to be any implications from this proposal that go beyond the interaction of context and window-system state-trackers? I'm trying to figure out if I need to look at anything in this from the perspective of anything below the state-tracker level. Are there new winsys interactions as a result of this? Or pipe_screen/context dependencies? Keith ------------------------------------------------------------------------------ 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