Following up on an message from a while ago: Brian Paul wrote: > Robert Bragg wrote: >> Hi, >> >> Every now and then while working on the Clutter toolkit we end up with >> glGet{Integer,Float}v in our profiles. Our typical response is to simply >> cache the offending state so as to avoid querying OpenGL, but it feels >> like this is papering over the problem. >> I've attached a patch that instead tries to address the performance >> problem in Mesa and hoping something like this could be accepted >> upstream? > > Coincidentally, I was looking at this just recently. > > It would be a good change to make. Though I think I'd add a new flag to > the StateVars table entries to indicate whether the state requires > validation (and what state). Then auto-generate the needed code. > > So GL_RED_BITS case would be predicated like this: > > case GL_RED_BITS: > if (ctx->NewState & _NEW_BUFFERS) > _mesa_update_state(ctx); > params[0] = ctx->DrawBuffer->Visual.redBits; > break; > > _NEW_BUFFERS would be a new field in the StateVars list. > > > Most state queries don't need validation. The ones that do are the ones > that you patched plus the "current" attribs (_NEW_CURRENT_ATTRIB). > Maybe a few others? > > Are you interested in coding this up?
I've implemented change this and will be committing it soon. -Brian ------------------------------------------------------------------------------ Download Intel® Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev _______________________________________________ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev