X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fdrivers%2Fdri%2Fr200%2Fr200_maos_arrays.c;h=60f851be56ce90be01e576c9db0adc21bfe41996;hb=68a0e15f44cf351eab97a734b1cffeade1873fdf;hp=8a047e6419b38522ebcbdb3595ae1355490f1256;hpb=41ed47d6b8fb6c032e2907ef2e49e414c26f35c1;p=mesa.git diff --git a/src/mesa/drivers/dri/r200/r200_maos_arrays.c b/src/mesa/drivers/dri/r200/r200_maos_arrays.c index 8a047e6419b..60f851be56c 100644 --- a/src/mesa/drivers/dri/r200/r200_maos_arrays.c +++ b/src/mesa/drivers/dri/r200/r200_maos_arrays.c @@ -29,14 +29,14 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. /* * Authors: - * Keith Whitwell + * Keith Whitwell */ #include "main/glheader.h" #include "main/mtypes.h" -#include "main/colormac.h" #include "main/imports.h" #include "main/macros.h" +#include "main/state.h" #include "swrast_setup/swrast_setup.h" #include "math/m_translate.h" @@ -70,36 +70,6 @@ do { \ } while (0) #endif -static void r200_emit_vecfog(struct gl_context *ctx, struct radeon_aos *aos, - GLvoid *data, int stride, int count) -{ - radeonContextPtr rmesa = RADEON_CONTEXT(ctx); - GLfloat *out; - int i; - int size = 1; - - if (stride == 0) { - radeonAllocDmaRegion(rmesa, &aos->bo, &aos->offset, size * 4, 32); - count = 1; - aos->stride = 0; - } else { - radeonAllocDmaRegion(rmesa, &aos->bo, &aos->offset, size * 4, 32); - aos->stride = size; - } - - aos->components = size; - aos->count = count; - - radeon_bo_map(aos->bo, 1); - out = (GLfloat*)((char*)aos->bo->ptr + aos->offset); - for (i = 0; i < count; i++) { - out[0] = r200ComputeFogBlendFactor( ctx, *(GLfloat *)data ); - out++; - data += stride; - } - radeon_bo_unmap(aos->bo); -} - /* Emit any changed arrays to new GART memory, re-emit a packet to * update the arrays. */ @@ -145,7 +115,7 @@ void r200EmitArrays( struct gl_context *ctx, GLubyte *vimap_rev ) /* special handling to fix up fog. Will get us into trouble with vbos...*/ assert(attrib == VERT_ATTRIB_FOG); if (!rmesa->radeon.tcl.aos[i].bo) { - if (ctx->VertexProgram._Enabled) + if (_mesa_arb_vertex_program_enabled(ctx)) rcommon_emit_vector( ctx, &(rmesa->radeon.tcl.aos[nr]), (char *)VB->AttribPtr[attrib]->data, @@ -153,11 +123,11 @@ void r200EmitArrays( struct gl_context *ctx, GLubyte *vimap_rev ) VB->AttribPtr[attrib]->stride, count); else - r200_emit_vecfog( ctx, - &(rmesa->radeon.tcl.aos[nr]), - (char *)VB->AttribPtr[attrib]->data, - VB->AttribPtr[attrib]->stride, - count); + rcommon_emit_vecfog( ctx, + &(rmesa->radeon.tcl.aos[nr]), + (char *)VB->AttribPtr[attrib]->data, + VB->AttribPtr[attrib]->stride, + count); } vfmt0 |= R200_VTX_DISCRETE_FOG; goto after_emit; @@ -196,10 +166,12 @@ void r200EmitArrays( struct gl_context *ctx, GLubyte *vimap_rev ) /* fallthrough */ case 4: vfmt0 |= R200_VTX_W1; - break; + /* fallthrough */ } + break; default: assert(0); + emitsize = 0; } if (!rmesa->radeon.tcl.aos[nr].bo) { rcommon_emit_vector( ctx,