diff options
| author | Alex Deucher <alexdeucher@gmail.com> | 2009-09-19 14:46:06 -0400 | 
|---|---|---|
| committer | Alex Deucher <alexdeucher@gmail.com> | 2009-09-24 10:02:08 -0400 | 
| commit | 095db818c6c7ed5706b5f31d17d0cb19c03cb67a (patch) | |
| tree | 241281807bda06415f6b4a754de5b5162869a218 /src/mesa | |
| parent | ec14d59afa952b4e53ad268971098584686a6fca (diff) | |
r600: fix polygon offset
Diffstat (limited to 'src/mesa')
| -rw-r--r-- | src/mesa/drivers/dri/r600/r700_state.c | 11 | 
1 files changed, 8 insertions, 3 deletions
| diff --git a/src/mesa/drivers/dri/r600/r700_state.c b/src/mesa/drivers/dri/r600/r700_state.c index 2a0b419256..d8190efe47 100644 --- a/src/mesa/drivers/dri/r600/r700_state.c +++ b/src/mesa/drivers/dri/r600/r700_state.c @@ -1122,20 +1122,25 @@ static void r700PolygonOffset(GLcontext * ctx, GLfloat factor, GLfloat units) //  	context_t *context = R700_CONTEXT(ctx);  	R700_CHIP_CONTEXT *r700 = (R700_CHIP_CONTEXT*)(&context->hw);  	GLfloat constant = units; +	GLchar depth = 0; + +	R600_STATECHANGE(context, poly);  	switch (ctx->Visual.depthBits) {  	case 16:  		constant *= 4.0; +		depth = -16;  		break;  	case 24:  		constant *= 2.0; +		depth = -24;  		break;  	}  	factor *= 12.0; - -	R600_STATECHANGE(context, poly); - +	SETfield(r700->PA_SU_POLY_OFFSET_DB_FMT_CNTL.u32All, depth, +		 POLY_OFFSET_NEG_NUM_DB_BITS_shift, POLY_OFFSET_NEG_NUM_DB_BITS_mask); +	//r700->PA_SU_POLY_OFFSET_CLAMP.f32All = constant; //???  	r700->PA_SU_POLY_OFFSET_FRONT_SCALE.f32All = factor;  	r700->PA_SU_POLY_OFFSET_FRONT_OFFSET.f32All = constant;  	r700->PA_SU_POLY_OFFSET_BACK_SCALE.f32All = factor; | 
