diff options
author | Roland Scheidegger <rscheidegger@gmx.ch> | 2006-09-08 00:54:55 +0000 |
---|---|---|
committer | Roland Scheidegger <rscheidegger@gmx.ch> | 2006-09-08 00:54:55 +0000 |
commit | a5e73e68878ebed7347532285019befc8c7b1106 (patch) | |
tree | cb0c2bf7d1bcba155c98d6aca6bc8741e76aa092 /src/mesa/drivers/dri/radeon | |
parent | 3e05902d304e71493d05edef4c31c6ed1a22bf17 (diff) |
cause a vtxfmt fallback directly when hitting NewList for radeon and r200 drivers, otherwise we'll mix up tcl and vtxfmt path for some reason. This fixes a warzone2100 asssertion failure.
Diffstat (limited to 'src/mesa/drivers/dri/radeon')
-rw-r--r-- | src/mesa/drivers/dri/radeon/radeon_vtxfmt.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/radeon/radeon_vtxfmt.c b/src/mesa/drivers/dri/radeon/radeon_vtxfmt.c index e9a76dc92e..a5a9eb144b 100644 --- a/src/mesa/drivers/dri/radeon/radeon_vtxfmt.c +++ b/src/mesa/drivers/dri/radeon/radeon_vtxfmt.c @@ -48,6 +48,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "tnl/tnl.h" #include "tnl/t_context.h" #include "tnl/t_array_api.h" +#include "tnl/t_save_api.h" #include "radeon_context.h" #include "radeon_state.h" @@ -343,6 +344,7 @@ static void VFMT_FALLBACK_OUTSIDE_BEGIN_END( const char *caller ) _tnl_wakeup_exec( ctx ); ctx->Driver.FlushVertices = radeonFlushVertices; + ctx->Driver.NewList =_tnl_NewList; assert( rmesa->dma.flush == 0 ); rmesa->vb.fell_back = GL_TRUE; @@ -464,6 +466,12 @@ static void VFMT_FALLBACK( const char *caller ) } } +static void radeonNewList( GLcontext *ctx, GLuint list, GLenum mode ) +{ + VFMT_FALLBACK( __FUNCTION__ ); + _tnl_NewList( ctx, list, mode ); + return; +} static void wrap_buffer( void ) @@ -717,6 +725,7 @@ static void radeonVtxfmtValidate( GLcontext *ctx ) _mesa_install_exec_vtxfmt( ctx, &rmesa->vb.vtxfmt ); ctx->Driver.FlushVertices = radeonVtxfmtFlushVertices; + ctx->Driver.NewList = radeonNewList; rmesa->vb.installed = GL_TRUE; } else if (RADEON_DEBUG & DEBUG_VFMT) @@ -731,6 +740,7 @@ static void radeonVtxfmtValidate( GLcontext *ctx ) rmesa->dma.flush( rmesa ); _tnl_wakeup_exec( ctx ); ctx->Driver.FlushVertices = radeonFlushVertices; + ctx->Driver.NewList =_tnl_NewList; rmesa->vb.installed = GL_FALSE; } } |