--- r128/r128_context.h 2007-11-01 16:30:52.000000000 +0100 +++ r128.new/r128_context.h 2008-01-22 01:02:21.000000000 +0100 @@ -82,6 +82,8 @@ #define R128_FALLBACK_PROJTEX 0x0200 #define R128_FALLBACK_DISABLE 0x0400 +#define R128_FALLBACK_LINE_STIPPLE 0x0800 +#define R128_FALLBACK_POLY_SMOOTH 0x1000 /* Use the templated vertex format: */ --- r128/r128_span.c 2007-06-22 00:10:54.000000000 +0200 +++ r128.new/r128_span.c 2008-01-22 01:02:21.000000000 +0100 @@ -124,10 +124,10 @@ */ /* These functions require locking */ -#undef HW_LOCK -#undef HW_UNLOCK -#define HW_LOCK() LOCK_HARDWARE(R128_CONTEXT(ctx)); -#define HW_UNLOCK() UNLOCK_HARDWARE(R128_CONTEXT(ctx)); +// #undef HW_LOCK +// #undef HW_UNLOCK +// #define HW_LOCK() LOCK_HARDWARE(R128_CONTEXT(ctx)); +// #define HW_UNLOCK() UNLOCK_HARDWARE(R128_CONTEXT(ctx)); /* 16-bit depth buffer functions */ --- r128/r128_state.c 2007-06-22 00:10:54.000000000 +0200 +++ r128.new/r128_state.c 2008-01-22 01:02:21.000000000 +0100 @@ -1085,6 +1085,16 @@ } break; + case GL_LINE_STIPPLE: + FLUSH_BATCH( rmesa ); + FALLBACK( rmesa, R128_FALLBACK_LINE_STIPPLE, state ); + break; + + case GL_POLYGON_SMOOTH: + FLUSH_BATCH( rmesa ); + FALLBACK( rmesa, R128_FALLBACK_POLY_SMOOTH, state ); + break; + default: return; } --- r128/r128_tris.c 2007-06-22 00:10:54.000000000 +0200 +++ r128.new/r128_tris.c 2008-01-22 01:02:21.000000000 +0100 @@ -661,8 +661,14 @@ } /* projective textures are not supported by the hardware */ +/* FALLBACK( rmesa, R128_FALLBACK_PROJTEX, fallback_projtex ); + if ( rmesa->Fallback & R128_FALLBACK_PROJTEX ) { + tnl->Driver.Render.Start( ctx ); + return; + } +*/ /* Only need to change the vertex emit code if there has been a * statechange to a TNL index. */ @@ -704,6 +710,8 @@ "glBlendFunc", "Projective texture", "Rasterization disable", + "glEnable(GL_LINE_STIPPLE)", + "glEnable(GL_POLYGON_SMOOTH)", };