- if (RADEON_DEBUG == DEBUG_PRIMS)
- fprintf(stderr, "%s\n", __FUNCTION__);
-
- /* setup array of structures data */
-
- upload_vertex_buffer(rmesa, ctx, vb_arrays, &n_arrays);
- fprintf(stderr, "Using %d AOS arrays\n", n_arrays);
-
- reg_start(R300_RB3D_DSTCACHE_CTLSTAT,0);
- e32(0x0000000a);
-
- reg_start(0x4f18,0);
- e32(0x00000003);
-
- r300EmitState(rmesa);
-
- FLAT_COLOR_PIPELINE.vertex_shader.matrix[0].length=16;
- memcpy(FLAT_COLOR_PIPELINE.vertex_shader.matrix[0].body.f, ctx->_ModelProjectMatrix.m, 16*4);
-
- FLAT_COLOR_PIPELINE.vertex_shader.unknown2.length=4;
- FLAT_COLOR_PIPELINE.vertex_shader.unknown2.body.f[0]=0.0;
- FLAT_COLOR_PIPELINE.vertex_shader.unknown2.body.f[1]=0.0;
- FLAT_COLOR_PIPELINE.vertex_shader.unknown2.body.f[2]=1.0;
- FLAT_COLOR_PIPELINE.vertex_shader.unknown2.body.f[3]=0.0;
-
- program_pipeline(PASS_PREFIX &FLAT_COLOR_PIPELINE);
-
- set_quad0(PASS_PREFIX 1.0,1.0,1.0,1.0);
- set_init21(PASS_PREFIX 0.0,1.0);
-
- for(i=0; i < VB->PrimitiveCount; i++){
- GLuint prim = VB->Primitive[i].mode;
- GLuint start = VB->Primitive[i].start;
- GLuint length = VB->Primitive[i].count;
-
- /* copy arrays */
- memcpy(vb_arrays2, vb_arrays, sizeof(AOS_DATA)*n_arrays);
- for(j=0;j<n_arrays;j++){
- vb_arrays2[j].offset+=vb_arrays2[j].stride*start*4;
- }
-
- setup_AOS(PASS_PREFIX vb_arrays2, n_arrays);
-
- r300_render_vb_flat_primitive(rmesa, ctx, start, start + length, prim);
- }