Hmm, every gallium test I've done has shown it to be slower.
I've got an AGP RV350 card and a dual P4 Northwood PC, and for simple loads like celestia and OpenGL xscreensavers I am finding that classic Mesa is still beating Gallium hands down. That's for both "performance" and "correctness"; obviously Gallium beats classic Mesa on "features" ;-).
For example, try right-clicking on the Earth in celestia and rotating it: it's wonderfully responsive with classic Mesa, but drags horribly with Gallium.
Gallium renders the stars wrongly, too.
And don't even think of trying to play World of Warcraft using Gallium, although it can be "persuaded" to play more-or-less correctly under classic Mesa if you're prepared to hack it around slightly:
Originally posted by marek
View Post
For example, try right-clicking on the Earth in celestia and rotating it: it's wonderfully responsive with classic Mesa, but drags horribly with Gallium.
Gallium renders the stars wrongly, too.
And don't even think of trying to play World of Warcraft using Gallium, although it can be "persuaded" to play more-or-less correctly under classic Mesa if you're prepared to hack it around slightly:
Code:
diff --git a/src/mesa/drivers/dri/r300/r300_cmdbuf.c b/src/mesa/drivers/dri/r300 index c40802a..7f009d9 100644 --- a/src/mesa/drivers/dri/r300/r300_cmdbuf.c +++ b/src/mesa/drivers/dri/r300/r300_cmdbuf.c @@ -452,7 +452,7 @@ static void emit_zb_offset(GLcontext *ctx, struct radeon_sta uint32_t dw = atom->check(ctx, atom); rrb = radeon_get_depthbuffer(&r300->radeon); - if (!rrb) + if ((rrb == NULL) || (rrb->cpp == 0)) return; zbpitch = (rrb->pitch / rrb->cpp); diff --git a/src/mesa/drivers/dri/radeon/radeon_common.c b/src/mesa/drivers/dri/ index 13f1f06..e00c995 100644 --- a/src/mesa/drivers/dri/radeon/radeon_common.c +++ b/src/mesa/drivers/dri/radeon/radeon_common.c @@ -1126,7 +1126,7 @@ void radeonFlush(GLcontext *ctx) rcommonFlushCmdBuf(radeon, __FUNCTION__); flush_front: - if ((ctx->DrawBuffer->Name == 0) && radeon->front_buffer_dirty) { + if ((ctx->DrawBuffer != NULL) && (ctx->DrawBuffer->Name == 0) && radeon- __DRIscreen *const screen = radeon->radeonScreen->driScreen; if (screen->dri2.loader && (screen->dri2.loader->base.version >=
Comment