1 #include "nv40_context.h"
4 nv40_state_stipple_validate(struct nv40_context
*nv40
)
6 struct pipe_rasterizer_state
*rast
= &nv40
->rasterizer
->pipe
;
7 struct nouveau_grobj
*curie
= nv40
->screen
->curie
;
8 struct nouveau_stateobj
*so
;
10 if (nv40
->state
.hw
[NV40_STATE_STIPPLE
] &&
11 (rast
->poly_stipple_enable
== 0 && nv40
->state
.stipple_enabled
== 0))
14 if (rast
->poly_stipple_enable
) {
18 so_method(so
, curie
, NV40TCL_POLYGON_STIPPLE_ENABLE
, 1);
20 so_method(so
, curie
, NV40TCL_POLYGON_STIPPLE_PATTERN(0), 32);
21 for (i
= 0; i
< 32; i
++)
22 so_data(so
, nv40
->stipple
[i
]);
25 so_method(so
, curie
, NV40TCL_POLYGON_STIPPLE_ENABLE
, 1);
29 so_ref(so
, &nv40
->state
.hw
[NV40_STATE_STIPPLE
]);
33 struct nv40_state_entry nv40_state_stipple
= {
34 .validate
= nv40_state_stipple_validate
,
36 .pipe
= NV40_NEW_STIPPLE
| NV40_NEW_RAST
,
37 .hw
= NV40_STATE_STIPPLE
,