Fix generic vertex attribs (Rune Petersen)
This commit is contained in:
@@ -544,6 +544,7 @@ struct r300_vap_reg_state {
|
||||
int i_color[2];
|
||||
int i_fog;
|
||||
int i_tex[R300_MAX_TEXTURE_UNITS];
|
||||
int i_attrib[_TNL_LAST_GENERIC-_TNL_FIRST_GENERIC];
|
||||
int i_index;
|
||||
int i_pointsize;
|
||||
};
|
||||
|
||||
@@ -368,6 +368,12 @@ void r300EmitArrays(GLcontext * ctx, GLboolean immd)
|
||||
rmesa->state.aos[nr++].aos_reg = prog->inputs[VERT_ATTRIB_TEX0+i];
|
||||
}
|
||||
}
|
||||
for (i=0;i<(_TNL_LAST_GENERIC-_TNL_FIRST_GENERIC);i++) {
|
||||
if (InputsRead & (1<<(VERT_ATTRIB_GENERIC0+i))) {
|
||||
RENDERINPUTS_SET( inputs_bitset, _TNL_ATTRIB_GENERIC(i) );
|
||||
rmesa->state.aos[nr++].aos_reg = prog->inputs[VERT_ATTRIB_GENERIC0+i];
|
||||
}
|
||||
}
|
||||
nr = 0;
|
||||
} else {
|
||||
RENDERINPUTS_COPY( inputs_bitset, TNL_CONTEXT(ctx)->render_inputs_bitset );
|
||||
@@ -457,6 +463,14 @@ void r300EmitArrays(GLcontext * ctx, GLboolean immd)
|
||||
r300->state.texture.tc_count++;
|
||||
}
|
||||
}
|
||||
for (i = 0; i < (_TNL_LAST_GENERIC-_TNL_FIRST_GENERIC); i++) {
|
||||
if (RENDERINPUTS_TEST( inputs_bitset, _TNL_ATTRIB_GENERIC(i) )) {
|
||||
CONFIGURE_AOS(i_attrib[i], AOS_FORMAT_FLOAT,
|
||||
VB->AttribPtr[VERT_ATTRIB_GENERIC0+i],
|
||||
immd ? 4 : VB->AttribPtr[VERT_ATTRIB_GENERIC0+i].size,
|
||||
count);
|
||||
}
|
||||
}
|
||||
for(i=0; i < nr; i++)
|
||||
if(r300->state.aos[i].aos_format == 2){
|
||||
assert(r300->state.aos[i].aos_size == 1);
|
||||
|
||||
@@ -73,6 +73,9 @@ void radeon_vb_to_rvb(r300ContextPtr rmesa, struct radeon_vertex_buffer *rvb, st
|
||||
|
||||
for (i=0; i < ctx->Const.MaxTextureCoordUnits; i++)
|
||||
CONV_VB(VERT_ATTRIB_TEX0 + i, TexCoordPtr[i]);
|
||||
|
||||
for (i=0; i < 16; i++)
|
||||
CONV_VB(VERT_ATTRIB_GENERIC0 + i, AttribPtr[VERT_ATTRIB_GENERIC0 + i]);
|
||||
|
||||
rvb->Primitive = vb->Primitive;
|
||||
rvb->PrimitiveCount = vb->PrimitiveCount;
|
||||
|
||||
Reference in New Issue
Block a user