mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-04 16:18:06 +02:00
r600g: fix polygon mode
this fixes glean'pointSprite test.
This commit is contained in:
parent
efa111a6cb
commit
11cd1612a1
2 changed files with 20 additions and 1 deletions
|
|
@ -201,6 +201,7 @@ static void r600_rasterizer(struct r600_context *rctx, struct radeon_state *rsta
|
|||
unsigned offset_db_fmt_cntl = 0;
|
||||
unsigned point_size;
|
||||
unsigned prov_vtx = 1;
|
||||
unsigned polygon_dual_mode;
|
||||
|
||||
if (rctx->clip)
|
||||
clip = &rctx->clip->state.clip;
|
||||
|
|
@ -263,6 +264,9 @@ static void r600_rasterizer(struct r600_context *rctx, struct radeon_state *rsta
|
|||
S_028810_ZCLIP_NEAR_DISABLE(clip->depth_clamp) |
|
||||
S_028810_ZCLIP_FAR_DISABLE(clip->depth_clamp);
|
||||
}
|
||||
polygon_dual_mode = (state->fill_front != PIPE_POLYGON_MODE_FILL ||
|
||||
state->fill_back != PIPE_POLYGON_MODE_FILL);
|
||||
|
||||
rstate->states[R600_RASTERIZER__PA_SU_SC_MODE_CNTL] =
|
||||
S_028814_PROVOKING_VTX_LAST(prov_vtx) |
|
||||
S_028814_CULL_FRONT((state->cull_face & PIPE_FACE_FRONT) ? 1 : 0) |
|
||||
|
|
@ -270,7 +274,10 @@ static void r600_rasterizer(struct r600_context *rctx, struct radeon_state *rsta
|
|||
S_028814_FACE(!state->front_ccw) |
|
||||
S_028814_POLY_OFFSET_FRONT_ENABLE(state->offset_tri) |
|
||||
S_028814_POLY_OFFSET_BACK_ENABLE(state->offset_tri) |
|
||||
S_028814_POLY_OFFSET_PARA_ENABLE(state->offset_tri);
|
||||
S_028814_POLY_OFFSET_PARA_ENABLE(state->offset_tri) |
|
||||
S_028814_POLY_MODE(polygon_dual_mode) |
|
||||
S_028814_POLYMODE_FRONT_PTYPE(r600_translate_fill(state->fill_front)) |
|
||||
S_028814_POLYMODE_BACK_PTYPE(r600_translate_fill(state->fill_back));
|
||||
rstate->states[R600_RASTERIZER__PA_CL_VS_OUT_CNTL] =
|
||||
S_02881C_USE_VTX_POINT_SIZE(state->point_size_per_vertex) |
|
||||
S_02881C_VS_OUT_MISC_VEC_ENA(state->point_size_per_vertex);
|
||||
|
|
|
|||
|
|
@ -123,6 +123,18 @@ static INLINE uint32_t r600_translate_stencil_op(int s_op)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static INLINE uint32_t r600_translate_fill(uint32_t func)
|
||||
{
|
||||
switch(func) {
|
||||
case PIPE_POLYGON_MODE_FILL:
|
||||
return 2;
|
||||
case PIPE_POLYGON_MODE_LINE:
|
||||
return 1;
|
||||
case PIPE_POLYGON_MODE_POINT:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* translates straight */
|
||||
static INLINE uint32_t r600_translate_ds_func(int func)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue