[3/10] WineD3D: Move decoding the vertex declaration to
the vertexshader state handler
stefandoesinger at gmx.at
Wed Jan 3 10:24:53 CST 2007
Am 03.01.2007 um 14:07 schrieb Ivan Gyurdiev:
>> Regarding the concern of storing the decoded strided data after
>> finishing drawing: This is intentional, the decoded vertex
>> declaration will remain valid after the draw is finished and the
>> arrays loaded. Future draws can use it, if the state is not
>> dirtified again.
> This sounds like a good idea...
>> Wrt the upward references: When we have multithreading with
>> multiple contexts we will need a per-context tracking of most of
>> the stuff we have in the device now(last_was_rhw, ...). This
>> structure does not exist yet, and I do not see a point in passing
>> the device impl to every function when we can get it from the
>> stateblock too.
> I still think this caching stuff needs to go into its own structure
> [ maybe device->cache or something like that ]. I can see how it's
> a bit different from the standard stateblock data, since it's just
> a cache, rather than something that's set/get by the application -
> cache state vs configured state. It's not so clear to me that this
> is all per-thread data - the strided streams are directly tied to
> the vertex declaration and stream data, which is in turn shared
> across threads as part of the stateblock.
The strided streams can contain opengl vbo names. They are per gl
context, but I think they are shared with display list sharing
(Otherwise we'll get an issue with them with multithreading).
A seperate structure in the device sounds like a good idea. I'd
prefer to keep them were they are until the state management move is
finished though. Change one thing after the other :-)
More information about the wine-devel