6 u32 pa = osConvertVirtToPhys(indices);
7 u32 base = ctx->
bufInfo.base_paddr;
13 GPUCMD_AddMaskedWrite(GPUREG_PRIMITIVE_CONFIG, 2, primitive != GPU_TRIANGLES ? primitive : GPU_GEOMETRY_PRIM);
15 GPUCMD_AddWrite(GPUREG_RESTART_PRIMITIVE, 1);
17 GPUCMD_AddWrite(GPUREG_INDEXBUFFER_CONFIG, (pa - base) | (type << 31));
19 GPUCMD_AddWrite(GPUREG_NUMVERTICES,
count);
21 GPUCMD_AddWrite(GPUREG_VERTEX_OFFSET, 0);
23 if (primitive == GPU_TRIANGLES)
25 GPUCMD_AddMaskedWrite(GPUREG_GEOSTAGE_CONFIG, 2, 0x100);
26 GPUCMD_AddMaskedWrite(GPUREG_GEOSTAGE_CONFIG2, 2, 0x100);
29 GPUCMD_AddMaskedWrite(GPUREG_START_DRAW_FUNC0, 1, 0);
31 GPUCMD_AddWrite(GPUREG_DRAWELEMENTS, 1);
33 GPUCMD_AddMaskedWrite(GPUREG_START_DRAW_FUNC0, 1, 1);
35 if (primitive == GPU_TRIANGLES)
37 GPUCMD_AddMaskedWrite(GPUREG_GEOSTAGE_CONFIG, 2, 0);
38 GPUCMD_AddMaskedWrite(GPUREG_GEOSTAGE_CONFIG2, 2, 0);
41 GPUCMD_AddWrite(GPUREG_VTX_FUNC, 1);
42 GPUCMD_AddMaskedWrite(GPUREG_PRIMITIVE_CONFIG, 0x8, 0);
43 GPUCMD_AddMaskedWrite(GPUREG_PRIMITIVE_CONFIG, 0x8, 0);
void C3Di_UpdateContext(void)
void C3D_DrawElements(GPU_Primitive_t primitive, int count, int type, const void *indices)