1 #include "nv30_context.h"
4 nv30_state_stipple_validate(struct nv30_context
*nv30
)
6 struct pipe_rasterizer_state
*rast
= &nv30
->rasterizer
->pipe
;
7 struct nouveau_grobj
*rankine
= nv30
->screen
->rankine
;
8 struct nouveau_stateobj
*so
;
10 if (nv30
->state
.hw
[NV30_STATE_STIPPLE
] &&
11 (rast
->poly_stipple_enable
== 0 && nv30
->state
.stipple_enabled
== 0))
14 if (rast
->poly_stipple_enable
) {
18 so_method(so
, rankine
, NV34TCL_POLYGON_STIPPLE_ENABLE
, 1);
20 so_method(so
, rankine
, NV34TCL_POLYGON_STIPPLE_PATTERN(0), 32);
21 for (i
= 0; i
< 32; i
++)
22 so_data(so
, nv30
->stipple
[i
]);
25 so_method(so
, rankine
, NV34TCL_POLYGON_STIPPLE_ENABLE
, 1);
29 so_ref(so
, &nv30
->state
.hw
[NV30_STATE_STIPPLE
]);
33 struct nv30_state_entry nv30_state_stipple
= {
34 .validate
= nv30_state_stipple_validate
,
36 .pipe
= NV30_NEW_STIPPLE
| NV30_NEW_RAST
,
37 .hw
= NV30_STATE_STIPPLE
,