diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/gallium/drivers/r300/Makefile | 2 | ||||
| -rw-r--r-- | src/mesa/drivers/dri/radeon/radeon_common.c | 23 | ||||
| -rw-r--r-- | src/mesa/drivers/dri/radeon/radeon_common.h | 1 | ||||
| -rw-r--r-- | src/mesa/drivers/dri/radeon/radeon_context.h | 4 | ||||
| -rw-r--r-- | src/mesa/drivers/dri/radeon/radeon_state.c | 25 | 
5 files changed, 30 insertions, 25 deletions
| diff --git a/src/gallium/drivers/r300/Makefile b/src/gallium/drivers/r300/Makefile index d13bb7a36b..121b65063f 100644 --- a/src/gallium/drivers/r300/Makefile +++ b/src/gallium/drivers/r300/Makefile @@ -35,4 +35,4 @@ include ../../Makefile.template  .PHONY : $(COMPILER_ARCHIVE)  $(COMPILER_ARCHIVE): -	cd $(TOP)/src/mesa/drivers/dri/r300/compiler; make +	$(MAKE) -C $(TOP)/src/mesa/drivers/dri/r300/compiler diff --git a/src/mesa/drivers/dri/radeon/radeon_common.c b/src/mesa/drivers/dri/radeon/radeon_common.c index 184287aa44..9b64c21685 100644 --- a/src/mesa/drivers/dri/radeon/radeon_common.c +++ b/src/mesa/drivers/dri/radeon/radeon_common.c @@ -262,29 +262,6 @@ 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 ); -} - -  /* ================================================================   * SwapBuffers with client-side throttling   */ diff --git a/src/mesa/drivers/dri/radeon/radeon_common.h b/src/mesa/drivers/dri/radeon/radeon_common.h index def0cc17a9..0608fe2418 100644 --- a/src/mesa/drivers/dri/radeon/radeon_common.h +++ b/src/mesa/drivers/dri/radeon/radeon_common.h @@ -10,7 +10,6 @@ void radeonRecalcScissorRects(radeonContextPtr radeon);  void radeonSetCliprects(radeonContextPtr radeon);  void radeonUpdateScissor( GLcontext *ctx );  void radeonScissor(GLcontext* ctx, GLint x, GLint y, GLsizei w, GLsizei h); -void radeonPolygonStipplePreKMS( GLcontext *ctx, const GLubyte *mask );  void radeonWaitForIdleLocked(radeonContextPtr radeon);  extern uint32_t radeonGetAge(radeonContextPtr radeon); diff --git a/src/mesa/drivers/dri/radeon/radeon_context.h b/src/mesa/drivers/dri/radeon/radeon_context.h index 4e2c52c835..12ab33a009 100644 --- a/src/mesa/drivers/dri/radeon/radeon_context.h +++ b/src/mesa/drivers/dri/radeon/radeon_context.h @@ -331,8 +331,12 @@ struct r100_hw_state {  	struct radeon_state_atom stp;  }; +struct radeon_stipple_state { +	GLuint mask[32]; +};  struct r100_state { +	struct radeon_stipple_state stipple;  	struct radeon_texture_state texture;  }; diff --git a/src/mesa/drivers/dri/radeon/radeon_state.c b/src/mesa/drivers/dri/radeon/radeon_state.c index 4d0d35ee0c..f6c733ab20 100644 --- a/src/mesa/drivers/dri/radeon/radeon_state.c +++ b/src/mesa/drivers/dri/radeon/radeon_state.c @@ -550,6 +550,31 @@ static void radeonPolygonOffset( GLcontext *ctx,     rmesa->hw.zbs.cmd[ZBS_SE_ZBIAS_CONSTANT] = constant.ui32;  } +static void radeonPolygonStipplePreKMS( GLcontext *ctx, const GLubyte *mask ) +{ +   r100ContextPtr rmesa = R100_CONTEXT(ctx); +   GLuint i; +   drm_radeon_stipple_t stipple; + +   /* Must flip pattern upside down. +    */ +   for ( i = 0 ; i < 32 ; i++ ) { +      rmesa->state.stipple.mask[31 - i] = ((GLuint *) mask)[i]; +   } + +   /* TODO: push this into cmd mechanism +    */ +   radeon_firevertices(&rmesa->radeon); +   LOCK_HARDWARE( &rmesa->radeon ); + +   /* FIXME: Use window x,y offsets into stipple RAM. +    */ +   stipple.mask = rmesa->state.stipple.mask; +   drmCommandWrite( rmesa->radeon.dri.fd, DRM_RADEON_STIPPLE, +		    &stipple, sizeof(drm_radeon_stipple_t) ); +   UNLOCK_HARDWARE( &rmesa->radeon ); +} +  static void radeonPolygonMode( GLcontext *ctx, GLenum face, GLenum mode )  {     r100ContextPtr rmesa = R100_CONTEXT(ctx); | 
