From: Keith W. <ke...@tu...> - 2002-11-30 16:24:38
|
Felix K=FChling wrote: > On Fri, 29 Nov 2002 07:55:52 -0700 > Brian Paul <br...@tu...> wrote: >=20 > [snip] >=20 >>Implementing a true threaded pipeline could be very compilicated. Stat= e >>changes are the big issue. If you stall/flush the pipeline for every >>state change you wouldn't gain anything. The alternative is to associa= te >>the GL state with each chunk of vertex data as it passes through the >>pipeline AND reconfigure the pipeline in the midst of state changes. >>Again, I think this would be very complicated. >=20 >=20 > I see the problem. On many state changes, a corresponding driver > function is called. In a parallel pipeline implementation, if there is > still vertex data (with associated state) pending in the pipeline, it > will be rendered by the driver with the wrong state. A proper solution > would be to call the state-changing driver functions (or only > UpdateState?) from within the pipeline, just before a driver stage is > run. The required amount of modifications to mesas driver state > management seems not too big. A quick recursive grep in > xc/xc/extras/Mesa for "ctx->Driver\.[[:alnum:]]*[[:space:]]*(" finds 63 > lines in 23 files. >=20 > I found many state changing callbacks in dd.h which don't seem to be > used. Are they left-overs from earlier Mesa versions or did my grep mis= s > something? Which ones? Keith |