From 32af5d1080e0d70c1ae189c25c772d5cd18e88e5 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Sun, 8 Nov 2009 18:46:10 +0100 Subject: Fix glamoClear() using burst commands --- src/mesa/drivers/dri/glamo/glamo_cmdq.c | 7 ++----- src/mesa/drivers/dri/glamo/glamo_state.c | 23 ++++++++++++++++++----- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/src/mesa/drivers/dri/glamo/glamo_cmdq.c b/src/mesa/drivers/dri/glamo/glamo_cmdq.c index a8b788ad67..d804a1d376 100644 --- a/src/mesa/drivers/dri/glamo/glamo_cmdq.c +++ b/src/mesa/drivers/dri/glamo/glamo_cmdq.c @@ -61,17 +61,14 @@ void glamoDRMAddData(glamoContext *gCtx, uint32_t val, int len) return; } - if ( (len != 2) && (len != 4) ) { - fprintf(stderr, "Wrong command length!\n"); - return; - } - /* Record command */ if ( len == 2 ) { gCtx->cmdq_drm[gCtx->cmdq_drm_used++] = val & 0xffff; } else if ( len == 4 ) { gCtx->cmdq_drm[gCtx->cmdq_drm_used++] = val & 0x0000ffff; gCtx->cmdq_drm[gCtx->cmdq_drm_used++] = val & 0xffff0000; + } else { + fprintf(stderr, "Wrong command length!\n"); } } diff --git a/src/mesa/drivers/dri/glamo/glamo_state.c b/src/mesa/drivers/dri/glamo/glamo_state.c index 407b52c862..d2ef632227 100644 --- a/src/mesa/drivers/dri/glamo/glamo_state.c +++ b/src/mesa/drivers/dri/glamo/glamo_state.c @@ -105,7 +105,7 @@ static void glamoClear(GLcontext *ctx, GLbitfield mask) grb = glamo_renderbuffer(fb->_ColorDrawBuffers[i]); - glamoDRMStartBurst(gCtx, GLAMO_REG_2D_DST_ADDRL); + glamoDRMStartBurst(gCtx, GLAMO_REG_2D_DST_X); glamoDRMAddData(gCtx, fb->_Xmin, 2); glamoDRMAddData(gCtx, fb->_Ymin, 2); glamoDRMAddBO(gCtx, grb->bo); @@ -115,12 +115,25 @@ static void glamoClear(GLcontext *ctx, GLbitfield mask) glamoDRMAddData(gCtx, fb->_Ymax-fb->_Ymin, 2); glamoDRMAddData(gCtx, 0x0000, 2); glamoDRMAddData(gCtx, 0x0000, 2); - glamoDRMAddData(gCtx, gCtx->col_clear, 2); + glamoDRMAddData(gCtx, gCtx->col_clear, 2); /* FG */ + glamoDRMAddData(gCtx, 0x0000, 2); /* BG */ + glamoDRMAddData(gCtx, 0x0000, 2); /* Source FG */ + glamoDRMAddData(gCtx, 0x0000, 2); /* Source BG */ + glamoDRMAddData(gCtx, 0x0000, 2); /* Mask1 */ + glamoDRMAddData(gCtx, 0x0000, 2); /* Mask2 */ + glamoDRMAddData(gCtx, 0x0000, 2); /* Mask3 */ + glamoDRMAddData(gCtx, 0x0000, 2); /* Mask4 */ + glamoDRMAddData(gCtx, 0x0000, 2); /* Rot X */ + glamoDRMAddData(gCtx, 0x0000, 2); /* Rot Y */ + glamoDRMAddData(gCtx, 0x0000, 2); /* Left clip */ + glamoDRMAddData(gCtx, 0x0000, 2); /* Top clip */ + glamoDRMAddData(gCtx, 0x0000, 2); /* Right clip */ + glamoDRMAddData(gCtx, 0x0000, 2); /* Bottom clip */ + glamoDRMAddData(gCtx, 0x0000, 2); /* Cmd param 1 */ + glamoDRMAddData(gCtx, 0xf0 << 8, 2); /* Cmd param 2 */ + glamoDRMAddData(gCtx, 0x0000, 2); /* Cmd param 3 */ glamoDRMDispatch(gCtx); - glamoDRMStartBurst(gCtx, GLAMO_REG_2D_COMMAND2); - glamoDRMAddData(gCtx, 0xf0 << 8, 2); - glamoDRMDispatch(gCtx); } } -- cgit v1.2.3