Sorry about the late reply. About the post where I mumbled “vertex program” a number of times, I’ll just straigthen out T101’s question mark. Yes, GP must obviously be placed before VP. If for nothing else to be able to be implemented in software.
V-man however adds a question I find interesting: “What causes it to execute?”.
Assuming we have a remote server able to do this (be it a gfx card or a remote server over GLX), we’d first have to send it one of two things. either a precompiled blob (to some kind of platform-independent bytecode, making the language very rigid and hard to extend during these testing/prototyping stages) or the plaintext GP. I’m at least initially in favor of the latter and completely against the former.
We’d then have to have a way to execute them. Now, what mechanism is most closely resemble these steps? To me, display lists seems to be the best match to model this new functionality from.
So we’d need three new functions, as I see it currently:
- Generate new name (to be able to e.g. replace an existing GP with some new code).
- Upload GP to server.
- Execute GP.
As this is brand new functionality, I suggest new entry points (I don’t take this lightly, but the added functionality validates, even neccessitates the addition of entry points I think).
One thing I still find possibly missing is the ability to send along some extra data to the server with the “execute” call. Say we want to tell the GP “LOD level 3, using textures 4711, 42 and 7” (whatever that means is up to the GP and application).
One could argue “put that data in a vertex stream, or a texture or…”. But they would still be only emulators of a function call argument list, and they would likely be very slow compared to the potentially short-lived and per/frame data we want to send the GP.
The only solution I see to this is to use a vector version of the execute call, with … GLuint’s? Naturally then comes the argv/argc paradigm (even if by different names) for the GP itself.
I don’t know, I’m just throwing around some ideas that struck me and seemed to make sense at the time of writing.