145
145
R200_VF_COLOR_ORDER_RGBA |
146
146
((vertex_count + 0) << 16) |
149
if (!rmesa->radeon.radeonScreen->kernel_mm) {
150
OUT_BATCH_PACKET3(R200_CP_CMD_INDX_BUFFER, 2);
151
OUT_BATCH((0x80 << 24) | (0 << 16) | 0x810);
152
OUT_BATCH_RELOC(rmesa->radeon.tcl.elt_dma_offset,
153
rmesa->radeon.tcl.elt_dma_bo,
154
rmesa->radeon.tcl.elt_dma_offset,
155
RADEON_GEM_DOMAIN_GTT, 0, 0);
156
OUT_BATCH((vertex_count + 1)/2);
158
OUT_BATCH_PACKET3(R200_CP_CMD_INDX_BUFFER, 2);
159
OUT_BATCH((0x80 << 24) | (0 << 16) | 0x810);
160
OUT_BATCH(rmesa->radeon.tcl.elt_dma_offset);
161
OUT_BATCH((vertex_count + 1)/2);
162
radeon_cs_write_reloc(rmesa->radeon.cmdbuf.cs,
163
rmesa->radeon.tcl.elt_dma_bo,
164
RADEON_GEM_DOMAIN_GTT, 0, 0);
149
OUT_BATCH_PACKET3(R200_CP_CMD_INDX_BUFFER, 2);
150
OUT_BATCH((0x80 << 24) | (0 << 16) | 0x810);
151
OUT_BATCH(rmesa->radeon.tcl.elt_dma_offset);
152
OUT_BATCH((vertex_count + 1)/2);
153
radeon_cs_write_reloc(rmesa->radeon.cmdbuf.cs,
154
rmesa->radeon.tcl.elt_dma_bo,
155
RADEON_GEM_DOMAIN_GTT, 0, 0);
189
179
if (R200_ELT_BUF_SZ > elt_used)
190
180
radeonReturnDmaRegion(&rmesa->radeon, R200_ELT_BUF_SZ - elt_used);
192
if (radeon_is_debug_enabled(RADEON_SYNC, RADEON_CRITICAL)
193
&& !rmesa->radeon.radeonScreen->kernel_mm) {
194
radeon_print(RADEON_SYNC, RADEON_NORMAL, "%s: Syncing\n", __FUNCTION__);
195
radeonFinish( rmesa->radeon.glCtx );
228
212
BATCH_LOCALS(&rmesa->radeon);
230
if (rmesa->radeon.radeonScreen->kernel_mm) {
231
BEGIN_BATCH_NO_AUTOSTATE(2);
232
OUT_BATCH(CP_PACKET0(R200_SE_VF_MAX_VTX_INDX, 0));
214
BEGIN_BATCH_NO_AUTOSTATE(2);
215
OUT_BATCH(CP_PACKET0(R200_SE_VF_MAX_VTX_INDX, 0));
238
220
void r200EmitVertexAOS( r200ContextPtr rmesa,
269
251
OUT_BATCH_PACKET3(R200_CP_CMD_3D_LOAD_VBPNTR, sz - 1);
273
if (!rmesa->radeon.radeonScreen->kernel_mm) {
274
for (i = 0; i + 1 < nr; i += 2) {
275
OUT_BATCH((rmesa->radeon.tcl.aos[i].components << 0) |
276
(rmesa->radeon.tcl.aos[i].stride << 8) |
277
(rmesa->radeon.tcl.aos[i + 1].components << 16) |
278
(rmesa->radeon.tcl.aos[i + 1].stride << 24));
280
voffset = rmesa->radeon.tcl.aos[i + 0].offset +
281
offset * 4 * rmesa->radeon.tcl.aos[i + 0].stride;
282
OUT_BATCH_RELOC(voffset,
283
rmesa->radeon.tcl.aos[i].bo,
285
RADEON_GEM_DOMAIN_GTT,
287
voffset = rmesa->radeon.tcl.aos[i + 1].offset +
288
offset * 4 * rmesa->radeon.tcl.aos[i + 1].stride;
289
OUT_BATCH_RELOC(voffset,
290
rmesa->radeon.tcl.aos[i+1].bo,
292
RADEON_GEM_DOMAIN_GTT,
297
OUT_BATCH((rmesa->radeon.tcl.aos[nr - 1].components << 0) |
298
(rmesa->radeon.tcl.aos[nr - 1].stride << 8));
299
voffset = rmesa->radeon.tcl.aos[nr - 1].offset +
300
offset * 4 * rmesa->radeon.tcl.aos[nr - 1].stride;
301
OUT_BATCH_RELOC(voffset,
302
rmesa->radeon.tcl.aos[nr - 1].bo,
304
RADEON_GEM_DOMAIN_GTT,
308
255
for (i = 0; i + 1 < nr; i += 2) {
309
256
OUT_BATCH((rmesa->radeon.tcl.aos[i].components << 0) |
310
257
(rmesa->radeon.tcl.aos[i].stride << 8) |