From: Ben Skeggs Date: Sun, 16 Dec 2007 09:44:44 +0000 (+1100) Subject: nv40: fix culling X-Git-Tag: mesa-7.8~4139^2~496^2~298^2~16^2~449 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b337ecdd8e10b4fa224b2bfb7fdfeda5931d7a6e;p=platform%2Fupstream%2Fmesa.git nv40: fix culling --- diff --git a/src/mesa/pipe/nv40/nv40_state.c b/src/mesa/pipe/nv40/nv40_state.c index 89d91bd..c1a882f 100644 --- a/src/mesa/pipe/nv40/nv40_state.c +++ b/src/mesa/pipe/nv40/nv40_state.c @@ -345,26 +345,38 @@ nv40_rasterizer_state_create(struct pipe_context *pipe, rs->poly_stipple_en = cso->poly_stipple_enable ? 1 : 0; if (cso->front_winding == PIPE_WINDING_CCW) { - rs->front_face = 0x0901; + rs->front_face = NV40TCL_FRONT_FACE_CCW; rs->poly_mode_front = nvgl_polygon_mode(cso->fill_ccw); rs->poly_mode_back = nvgl_polygon_mode(cso->fill_cw); } else { - rs->front_face = 0x0900; + rs->front_face = NV40TCL_FRONT_FACE_CW; rs->poly_mode_front = nvgl_polygon_mode(cso->fill_cw); rs->poly_mode_back = nvgl_polygon_mode(cso->fill_ccw); } - rs->cull_face_en = 0; - rs->cull_face = 0x0900; switch (cso->cull_mode) { case PIPE_WINDING_CCW: - rs->cull_face = 0x0901; - /* fall-through */ + rs->cull_face_en = 1; + if (cso->front_winding == PIPE_WINDING_CCW) + rs->cull_face = NV40TCL_CULL_FACE_FRONT; + else + rs->cull_face = NV40TCL_CULL_FACE_BACK; + break; case PIPE_WINDING_CW: rs->cull_face_en = 1; + if (cso->front_winding == PIPE_WINDING_CW) + rs->cull_face = NV40TCL_CULL_FACE_FRONT; + else + rs->cull_face = NV40TCL_CULL_FACE_BACK; + break; + case PIPE_WINDING_BOTH: + rs->cull_face_en = 1; + rs->cull_face = NV40TCL_CULL_FACE_FRONT_AND_BACK; break; case PIPE_WINDING_NONE: default: + rs->cull_face_en = 0; + rs->cull_face = 0; break; }