Hi Keith,

Thanks for having a closer look.

On Thu, Feb 4, 2010 at 9:31 PM, Keith Whitwell
<keith.whitw...@googlemail.com> wrote:
>> 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.
Yeah, right.

If there will still be concerns for st/wgl users, I can also postpone the
elimination of st_public.h.
>> 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?
The interface will be implemented by KHR-API state trackers such as OpenGL or
OpenVG.  It will be used by window-system state trackers such as EGL or GLX (or
DRI) that want to manage KHR APIs.  It makes the communicaion between a KHR-API
state tracker and a window-system state tracker possible, and it does not go
down below that layer.

The interface is a superset of st_public.h, which supports basic functions such
as creating a KHR-API context, bind a context to a window/pixmap, and etc.  The
distinguishing features the new interface provides are

* A single window-system state tracker can manage one or more KHR-API state
  trackers at the same time (e.g. OpenGL and OpenVG at the same time)
* Resource sharing between the window-system state tracker and the KHR-API
  state tracker(s)

The second feature is a natural desire because there can now be multiple
KHR-API state trackers.

The only callbacks in the interface that has the concept of a "current" context
are st_context_iface->make_current and st_context_iface->get_current.  There
was some discussions listed as Issue 3 in the DESIGN file.  With that change
and some clarification in the document, other styles of rendering API (such as
raw pipe_context) may implement the interface and be bootstrapped by EGL too.
> 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?
There should be no such need.  The interface is "horizontal" between state
trackers.  It does not descend into lower layers such as pipe_context.

As Jakob drafted the first version of the interface, I believe he also wanted
to remove "screen->flush_front" and "screen->update_buffer".  These two
callbacks do become unnecessary because of the new st_framebuffer_iface, which
I think is a step forward.

-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