nvfx: so->RING_3D: sr
[mesa.git] / src / gallium / drivers / nvfx / nvfx_state_zsa.c
1 #include "nvfx_context.h"
2
3 static boolean
4 nvfx_state_zsa_validate(struct nvfx_context *nvfx)
5 {
6 struct nouveau_channel* chan = nvfx->screen->base.channel;
7 sb_emit(chan, nvfx->zsa->sb, nvfx->zsa->sb_len);
8 return TRUE;
9 }
10
11 struct nvfx_state_entry nvfx_state_zsa = {
12 .validate = nvfx_state_zsa_validate,
13 .dirty = {
14 .pipe = NVFX_NEW_ZSA,
15 }
16 };
17
18 static boolean
19 nvfx_state_sr_validate(struct nvfx_context *nvfx)
20 {
21 struct nouveau_channel* chan = nvfx->screen->base.channel;
22 struct pipe_stencil_ref *sr = &nvfx->stencil_ref;
23
24 WAIT_RING(chan, 4);
25 OUT_RING(chan, RING_3D(NV34TCL_STENCIL_FRONT_FUNC_REF, 1));
26 OUT_RING(chan, sr->ref_value[0]);
27 OUT_RING(chan, RING_3D(NV34TCL_STENCIL_BACK_FUNC_REF, 1));
28 OUT_RING(chan, sr->ref_value[1]);
29 return TRUE;
30 }
31
32 struct nvfx_state_entry nvfx_state_sr = {
33 .validate = nvfx_state_sr_validate,
34 .dirty = {
35 .pipe = NVFX_NEW_SR,
36 }
37 };