From: Roland S. <rsc...@hi...> - 2004-01-23 14:45:03
|
Ian Romanick wrote: > Roland Scheidegger wrote: > >> Here's a small patch which makes color / blend logic ops work with >> r200/radeon (untested on radeon). It's actually a copy&paste job from >> the mesa sources, mesa has the comment >> /* This is needed to support 1.1's RGB logic ops AND >> * 1.0's blending logicops. >> */ >> wherever it tries to figure out if logic ops are actually enabled. >> Looks like a trap in the OGL specification ;-), maybe other drivers >> might be affected? >> >> Patch fixes samples/blendeq and samples/blendxor (on my rv250), I hope >> it doesn't break anything. > > > Good catch. > > [snip] > >> - if ( ctx->Color.ColorLogicOpEnabled ) { >> + if ( ctx->Color.ColorLogicOpEnabled || (ctx->Color.BlendEnabled && >> mode == GL_LOGIC_OP)) { > > > There's derrived state that Mesa calculates just for this case. The > test should be 'if ( ctx->Color._LogicOpEnabled )'. Yes, saw that derived state. For some reason I can't figure out now, I thought it might not be a good idea to use Mesa derived state directly. Ah well, this patch corrects this (even simpler, and should also save 1 or 2 clock cycles ;-)). Roland |