mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-17 15:40:20 +01:00
Pull locking out from HW_LOCK/UNLOCK into SpanRenderStart/Finish. Provides a
factor of 5+ improvement in no_rast glxgears and 2.3 in no_rast quake3 (n=1, 320x240, 16bpp, low qualities, 1ghz p3)
This commit is contained in:
parent
c7f8d36451
commit
12eabeb3b9
1 changed files with 18 additions and 6 deletions
|
|
@ -58,6 +58,7 @@
|
|||
(void) read_buf; (void) buf; (void) p
|
||||
|
||||
#define LOCAL_DEPTH_VARS \
|
||||
mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); \
|
||||
mach64ScreenRec *mach64Screen = mmesa->mach64Screen; \
|
||||
__DRIdrawablePrivate *dPriv = mmesa->driDrawable; \
|
||||
__DRIscreenPrivate *driScreen = mmesa->driScreen; \
|
||||
|
|
@ -87,10 +88,7 @@
|
|||
#define Y_FLIP( _y ) (height - _y - 1)
|
||||
|
||||
|
||||
#define HW_LOCK() \
|
||||
mach64ContextPtr mmesa = MACH64_CONTEXT(ctx); \
|
||||
LOCK_HARDWARE( mmesa ); \
|
||||
FINISH_DMA_LOCKED( mmesa ); \
|
||||
#define HW_LOCK()
|
||||
|
||||
#define HW_CLIPLOOP() \
|
||||
do { \
|
||||
|
|
@ -106,8 +104,7 @@
|
|||
} \
|
||||
} while (0)
|
||||
|
||||
#define HW_UNLOCK() \
|
||||
UNLOCK_HARDWARE( mmesa ) \
|
||||
#define HW_UNLOCK()
|
||||
|
||||
|
||||
|
||||
|
|
@ -184,6 +181,19 @@ static void mach64DDSetBuffer( GLcontext *ctx,
|
|||
}
|
||||
}
|
||||
|
||||
static void mach64SpanRenderStart( GLcontext *ctx )
|
||||
{
|
||||
mach64ContextPtr mmesa = MACH64_CONTEXT(ctx);
|
||||
LOCK_HARDWARE( mmesa );
|
||||
FINISH_DMA_LOCKED( mmesa );
|
||||
}
|
||||
|
||||
static void mach64SpanRenderFinish( GLcontext *ctx )
|
||||
{
|
||||
mach64ContextPtr mmesa = MACH64_CONTEXT(ctx);
|
||||
_swrast_flush( ctx );
|
||||
UNLOCK_HARDWARE( mmesa );
|
||||
}
|
||||
|
||||
void mach64DDInitSpanFuncs( GLcontext *ctx )
|
||||
{
|
||||
|
|
@ -242,6 +252,8 @@ void mach64DDInitSpanFuncs( GLcontext *ctx )
|
|||
swdd->WriteMonoCIPixels = NULL;
|
||||
swdd->ReadCI32Span = NULL;
|
||||
swdd->ReadCI32Pixels = NULL;
|
||||
swdd->SpanRenderStart = mach64SpanRenderStart;
|
||||
swdd->SpanRenderFinish = mach64SpanRenderFinish;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue