diff options
author | Pauli Nieminen <suokkos@gmail.com> | 2009-08-28 05:42:41 +0300 |
---|---|---|
committer | Pauli Nieminen <suokkos@gmail.com> | 2009-08-28 05:42:41 +0300 |
commit | 4322181e6a07ecb8891c2d1ada74fd48c996a8fc (patch) | |
tree | 23c62335ebdcce30a52c2f477c2489fabae04a57 /src/mesa/drivers/dri/radeon/radeon_common.c | |
parent | bfbad4fbb7420d3b5e8761c08d197574bfcd44b2 (diff) | |
download | external_mesa3d-4322181e6a07ecb8891c2d1ada74fd48c996a8fc.zip external_mesa3d-4322181e6a07ecb8891c2d1ada74fd48c996a8fc.tar.gz external_mesa3d-4322181e6a07ecb8891c2d1ada74fd48c996a8fc.tar.bz2 |
r100/r200: Bring back old PolygonStripple for DRI1.
DRI1 didn't have support for command buffer emit for stripple.
Diffstat (limited to 'src/mesa/drivers/dri/radeon/radeon_common.c')
-rw-r--r-- | src/mesa/drivers/dri/radeon/radeon_common.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/radeon/radeon_common.c b/src/mesa/drivers/dri/radeon/radeon_common.c index e760279..e14a419 100644 --- a/src/mesa/drivers/dri/radeon/radeon_common.c +++ b/src/mesa/drivers/dri/radeon/radeon_common.c @@ -273,6 +273,28 @@ void radeonScissor(GLcontext* ctx, GLint x, GLint y, GLsizei w, GLsizei h) } } +void radeonPolygonStipplePreKMS( GLcontext *ctx, const GLubyte *mask ) +{ + radeonContextPtr radeon = RADEON_CONTEXT(ctx); + GLuint i; + drm_radeon_stipple_t stipple; + + /* Must flip pattern upside down. + */ + for ( i = 0 ; i < 32 ; i++ ) { + stipple.mask[31 - i] = ((GLuint *) mask)[i]; + } + + /* TODO: push this into cmd mechanism + */ + radeon_firevertices(radeon); + LOCK_HARDWARE( radeon ); + + drmCommandWrite( radeon->dri.fd, DRM_RADEON_STIPPLE, + &stipple, sizeof(stipple) ); + UNLOCK_HARDWARE( radeon ); +} + void radeonPolygonStipple( GLcontext *ctx, const GLubyte *mask ) { radeonContextPtr radeon = RADEON_CONTEXT(ctx); |