From 33e55c6a7dece05b0eddf82ec69e366be5af0c23 Mon Sep 17 00:00:00 2001 From: Keith Whitwell Date: Wed, 1 Mar 2006 16:06:47 +0000 Subject: [PATCH] i830 driver first triangles (with a faked out bufmgr) --- src/mesa/drivers/dri/i915/i830_metaops.c | 18 ++++++------------ src/mesa/drivers/dri/i915/i830_state.c | 3 ++- src/mesa/drivers/dri/i915/i830_vtbl.c | 12 ++++++------ src/mesa/drivers/dri/i915/intel_mipmap_tree.c | 9 ++++----- src/mesa/drivers/dri/i915/intel_screen.c | 2 -- 5 files changed, 18 insertions(+), 26 deletions(-) diff --git a/src/mesa/drivers/dri/i915/i830_metaops.c b/src/mesa/drivers/dri/i915/i830_metaops.c index bf3813be4a8..8001860c532 100644 --- a/src/mesa/drivers/dri/i915/i830_metaops.c +++ b/src/mesa/drivers/dri/i915/i830_metaops.c @@ -317,24 +317,18 @@ static void set_vertex_format( struct intel_context *intel ) static void meta_import_pixel_state( struct intel_context *intel ) { -#if 0 struct i830_context *i830 = i830_context(&intel->ctx); - memcpy(i830->meta.Fog, i830->state.Fog, I830_FOG_SETUP_SIZE * 4); - - i830->meta.Ctx[I830_CTXREG_LIS5] = i830->state.Ctx[I830_CTXREG_LIS5]; - i830->meta.Ctx[I830_CTXREG_LIS6] = i830->state.Ctx[I830_CTXREG_LIS6]; - i830->meta.Ctx[I830_CTXREG_STATE4] = i830->state.Ctx[I830_CTXREG_STATE4]; - i830->meta.Ctx[I830_CTXREG_BLENDCOLOR1] = i830->state.Ctx[I830_CTXREG_BLENDCOLOR1]; - i830->meta.Ctx[I830_CTXREG_IAB] = i830->state.Ctx[I830_CTXREG_IAB]; + + memcpy(i830->meta.Ctx, i830->state.Ctx, I830_CTX_SETUP_SIZE * 4); + i830->meta.Ctx[I830_CTXREG_STATE3] &= ~CULLMODE_MASK; + i830->meta.Stipple[I830_STPREG_ST1] &= ~ST1_ENABLE; + i830->meta.emitted &= ~I830_UPLOAD_CTX; + i830->meta.Buffer[I830_DESTREG_SENABLE] = i830->state.Buffer[I830_DESTREG_SENABLE]; i830->meta.Buffer[I830_DESTREG_SR1] = i830->state.Buffer[I830_DESTREG_SR1]; i830->meta.Buffer[I830_DESTREG_SR2] = i830->state.Buffer[I830_DESTREG_SR2]; - - i830->meta.emitted &= ~I830_UPLOAD_FOG; i830->meta.emitted &= ~I830_UPLOAD_BUFFERS; - i830->meta.emitted &= ~I830_UPLOAD_CTX; -#endif } diff --git a/src/mesa/drivers/dri/i915/i830_state.c b/src/mesa/drivers/dri/i915/i830_state.c index a5fd0e197bf..66b9fd4bae5 100644 --- a/src/mesa/drivers/dri/i915/i830_state.c +++ b/src/mesa/drivers/dri/i915/i830_state.c @@ -1079,7 +1079,8 @@ void i830InitState( struct i830_context *i830 ) i830->current = &i830->state; i830->state.emitted = 0; - i830->state.active = (I830_UPLOAD_TEXBLEND(0) | + i830->state.active = (I830_UPLOAD_INVARIENT | + I830_UPLOAD_TEXBLEND(0) | I830_UPLOAD_STIPPLE | I830_UPLOAD_CTX | I830_UPLOAD_BUFFERS); diff --git a/src/mesa/drivers/dri/i915/i830_vtbl.c b/src/mesa/drivers/dri/i915/i830_vtbl.c index 249b34db050..74f4669f304 100644 --- a/src/mesa/drivers/dri/i915/i830_vtbl.c +++ b/src/mesa/drivers/dri/i915/i830_vtbl.c @@ -377,7 +377,13 @@ static void i830_emit_state( struct intel_context *intel ) if (dirty & I830_UPLOAD_CTX) { if (INTEL_DEBUG & DEBUG_STATE) fprintf(stderr, "I830_UPLOAD_CTX:\n"); + emit( i830, state->Ctx, sizeof(state->Ctx) ); + } + + if (dirty & I830_UPLOAD_BUFFERS) { + if (INTEL_DEBUG & DEBUG_STATE) + fprintf(stderr, "I830_UPLOAD_BUFFERS:\n"); BEGIN_BATCH(I830_DEST_SETUP_SIZE+2, 0); OUT_BATCH(state->Buffer[I830_DESTREG_CBUFADDR0]); OUT_BATCH(state->Buffer[I830_DESTREG_CBUFADDR1]); @@ -396,12 +402,6 @@ static void i830_emit_state( struct intel_context *intel ) ADVANCE_BATCH(); } - if (dirty & I830_UPLOAD_BUFFERS) { - if (INTEL_DEBUG & DEBUG_STATE) - fprintf(stderr, "I830_UPLOAD_BUFFERS:\n"); - emit( i830, state->Buffer, sizeof(state->Buffer) ); - } - if (dirty & I830_UPLOAD_STIPPLE) { if (INTEL_DEBUG & DEBUG_STATE) fprintf(stderr, "I830_UPLOAD_STIPPLE:\n"); diff --git a/src/mesa/drivers/dri/i915/intel_mipmap_tree.c b/src/mesa/drivers/dri/i915/intel_mipmap_tree.c index 050ed07eb48..8453c809c8c 100644 --- a/src/mesa/drivers/dri/i915/intel_mipmap_tree.c +++ b/src/mesa/drivers/dri/i915/intel_mipmap_tree.c @@ -79,14 +79,13 @@ struct intel_mipmap_tree *intel_miptree_create( struct intel_context *intel, switch (intel->intelScreen->deviceID) { case PCI_CHIP_I945_G: +/* case PCI_CHIP_I945_GM: */ ok = i945_miptree_layout( mt ); break; - case PCI_CHIP_I915_G: - case PCI_CHIP_I915_GM: - ok = i915_miptree_layout( mt ); - break; default: - ok = 0; + /* All the i830 chips and the i915 use this layout: + */ + ok = i915_miptree_layout( mt ); break; } diff --git a/src/mesa/drivers/dri/i915/intel_screen.c b/src/mesa/drivers/dri/i915/intel_screen.c index 6d8e1e4b7de..98c358354bd 100644 --- a/src/mesa/drivers/dri/i915/intel_screen.c +++ b/src/mesa/drivers/dri/i915/intel_screen.c @@ -333,7 +333,6 @@ static GLboolean intelCreateContext( const __GLcontextModes *mesaVis, intelScreenPrivate *intelScreen = (intelScreenPrivate *)sPriv->private; switch (intelScreen->deviceID) { -#if 0 /* Don't deal with i830 until texture work complete: */ case PCI_CHIP_845_G: @@ -342,7 +341,6 @@ static GLboolean intelCreateContext( const __GLcontextModes *mesaVis, case PCI_CHIP_I865_G: return i830CreateContext( mesaVis, driContextPriv, sharedContextPrivate ); -#endif case PCI_CHIP_I915_G: case PCI_CHIP_I915_GM: