r600g: Add support for PIPE_CAP_DEPTH_CLAMP.

This commit is contained in:
Henri Verbeet 2010-08-23 21:13:59 +02:00
parent b75645d8ad
commit 6fb39f0fa2
2 changed files with 4 additions and 3 deletions

View file

@ -69,6 +69,7 @@ static int r600_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
case PIPE_CAP_TEXTURE_SWIZZLE: case PIPE_CAP_TEXTURE_SWIZZLE:
case PIPE_CAP_INDEP_BLEND_ENABLE: case PIPE_CAP_INDEP_BLEND_ENABLE:
case PIPE_CAP_DEPTHSTENCIL_CLEAR_SEPARATE: case PIPE_CAP_DEPTHSTENCIL_CLEAR_SEPARATE:
case PIPE_CAP_DEPTH_CLAMP:
return 1; return 1;
/* Unsupported features (boolean caps). */ /* Unsupported features (boolean caps). */
@ -77,7 +78,6 @@ static int r600_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
case PIPE_CAP_STREAM_OUTPUT: case PIPE_CAP_STREAM_OUTPUT:
case PIPE_CAP_INDEP_BLEND_FUNC: /* FIXME allow this */ case PIPE_CAP_INDEP_BLEND_FUNC: /* FIXME allow this */
case PIPE_CAP_GEOMETRY_SHADER4: case PIPE_CAP_GEOMETRY_SHADER4:
case PIPE_CAP_DEPTH_CLAMP: /* FIXME allow this */
return 0; return 0;
/* Texturing. */ /* Texturing. */

View file

@ -861,9 +861,10 @@ static struct radeon_state *r600_rasterizer(struct r600_context *rctx)
} }
} }
rstate->states[R600_RASTERIZER__PA_CL_CLIP_CNTL] = 0; rstate->states[R600_RASTERIZER__PA_CL_CLIP_CNTL] = 0;
if (clip && clip->nr) { if (clip) {
rstate->states[R600_RASTERIZER__PA_CL_CLIP_CNTL] = S_028810_PS_UCP_MODE(3) | ((1 << clip->nr) - 1); rstate->states[R600_RASTERIZER__PA_CL_CLIP_CNTL] = S_028810_PS_UCP_MODE(3) | ((1 << clip->nr) - 1);
rstate->states[R600_RASTERIZER__PA_CL_CLIP_CNTL] |= S_028810_CLIP_DISABLE(clip->depth_clamp); rstate->states[R600_RASTERIZER__PA_CL_CLIP_CNTL] |= S_028810_ZCLIP_NEAR_DISABLE(clip->depth_clamp);
rstate->states[R600_RASTERIZER__PA_CL_CLIP_CNTL] |= S_028810_ZCLIP_FAR_DISABLE(clip->depth_clamp);
} }
rstate->states[R600_RASTERIZER__PA_SU_SC_MODE_CNTL] = rstate->states[R600_RASTERIZER__PA_SU_SC_MODE_CNTL] =
S_028814_PROVOKING_VTX_LAST(prov_vtx) | S_028814_PROVOKING_VTX_LAST(prov_vtx) |