diff options
author | Ilia Mirkin <imirkin@alum.mit.edu> | 2014-03-30 18:25:40 -0400 |
---|---|---|
committer | Ilia Mirkin <imirkin@alum.mit.edu> | 2014-04-26 11:53:24 -0400 |
commit | f715a0a39a0f7f19443e7721ae792878ba504eed (patch) | |
tree | 596a2c6b6570f921aec2fa915e6c7bc7b7d7c18e /src/gallium/drivers/nouveau/nv50/nv50_shader_state.c | |
parent | c5d822dad902b19f06c9be3c6863a51e1881ec5b (diff) | |
download | external_mesa3d-f715a0a39a0f7f19443e7721ae792878ba504eed.zip external_mesa3d-f715a0a39a0f7f19443e7721ae792878ba504eed.tar.gz external_mesa3d-f715a0a39a0f7f19443e7721ae792878ba504eed.tar.bz2 |
nv50: add support for PIPE_CAP_SAMPLE_SHADING
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Diffstat (limited to 'src/gallium/drivers/nouveau/nv50/nv50_shader_state.c')
-rw-r--r-- | src/gallium/drivers/nouveau/nv50/nv50_shader_state.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/gallium/drivers/nouveau/nv50/nv50_shader_state.c b/src/gallium/drivers/nouveau/nv50/nv50_shader_state.c index 28cff8b..c698782 100644 --- a/src/gallium/drivers/nouveau/nv50/nv50_shader_state.c +++ b/src/gallium/drivers/nouveau/nv50/nv50_shader_state.c @@ -172,6 +172,8 @@ nv50_fragprog_validate(struct nv50_context *nv50) struct nouveau_pushbuf *push = nv50->base.pushbuf; struct nv50_program *fp = nv50->fragprog; + fp->fp.sample_interp = nv50->min_samples > 1; + if (!nv50_program_validate(nv50, fp)) return; nv50_program_update_context_state(nv50, fp, 1); @@ -186,6 +188,17 @@ nv50_fragprog_validate(struct nv50_context *nv50) PUSH_DATA (push, fp->fp.flags[1]); BEGIN_NV04(push, NV50_3D(FP_START_ID), 1); PUSH_DATA (push, fp->code_base); + + if (nv50->screen->tesla->oclass >= NVA3_3D_CLASS) { + BEGIN_NV04(push, SUBC_3D(NVA3_3D_FP_MULTISAMPLE), 1); + if (nv50->min_samples > 1 || fp->fp.has_samplemask) + PUSH_DATA(push, + NVA3_3D_FP_MULTISAMPLE_FORCE_PER_SAMPLE | + (NVA3_3D_FP_MULTISAMPLE_EXPORT_SAMPLE_MASK * + fp->fp.has_samplemask)); + else + PUSH_DATA(push, 0); + } } void |