struct r300_context* r300 = r300_context(pipe);
int i;
- if (r300->dirty_state) {
- r300_emit_dirty_state(r300);
- }
-
for (i = 0; i < r300->vertex_buffer_count; i++) {
void* buf = pipe_buffer_map(pipe->screen,
r300->vertex_buffers[i].buffer,
r300->viewport_state->vte_control = R300_VTX_W0_FMT;
if (state->scale[0] != 1.0f) {
+ assert(state->scale[0] != 0.0f);
r300->viewport_state->xscale = state->scale[0];
r300->viewport_state->vte_control |= R300_VPORT_X_SCALE_ENA;
}
if (state->scale[1] != 1.0f) {
+ assert(state->scale[1] != 0.0f);
r300->viewport_state->yscale = state->scale[1];
r300->viewport_state->vte_control |= R300_VPORT_Y_SCALE_ENA;
}
if (state->scale[2] != 1.0f) {
+ assert(state->scale[2] != 0.0f);
r300->viewport_state->zscale = state->scale[2];
r300->viewport_state->vte_control |= R300_VPORT_Z_SCALE_ENA;
}
tex->stride);
pipe_buffer_reference(&tex->buffer, buffer);
+ debug_printf("%p is the buffer\n", tex->buffer);
return (struct pipe_texture*)tex;
}
if (retval == RADEON_CS_SPACE_OP_TO_BIG) {
/* We might as well HCF, since this is not going to fit in the card,
* period. */
+ /* XXX just drop it on the floor instead */
exit(1);
} else if (retval == RADEON_CS_SPACE_FLUSH) {
/* We must flush before more rendering can commence. */
{
struct radeon_winsys_priv* priv =
(struct radeon_winsys_priv*)winsys->radeon_winsys;
- int retval = 0;
+ struct radeon_cs_space_check* sc = priv->sc;
+ int retval = 1;
+ /* Emit the CS. */
retval = radeon_cs_emit(priv->cs);
if (retval) {
debug_printf("radeon: Bad CS, dumping...\n");
radeon_cs_print(priv->cs, stderr);
}
radeon_cs_erase(priv->cs);
+
+ /* Clean out BOs. */
+ memset(sc, 0, sizeof(struct radeon_cs_space_check) * RADEON_MAX_BOS);
}
/* Helper function to do the ioctls needed for setup and init. */