From c57c7a86ae55897167e345832366d42af0903cca Mon Sep 17 00:00:00 2001 From: Christoph Bumiller Date: Thu, 25 Aug 2011 13:02:18 +0200 Subject: nvc0: emit tessellation mode and patch size in TCP/TEP validation --- src/gallium/drivers/nvc0/nvc0_shader_state.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'src/gallium/drivers/nvc0') diff --git a/src/gallium/drivers/nvc0/nvc0_shader_state.c b/src/gallium/drivers/nvc0/nvc0_shader_state.c index 0a5581241d7..097e7c13226 100644 --- a/src/gallium/drivers/nvc0/nvc0_shader_state.c +++ b/src/gallium/drivers/nvc0/nvc0_shader_state.c @@ -138,11 +138,18 @@ nvc0_tctlprog_validate(struct nvc0_context *nvc0) return; nvc0_program_update_context_state(nvc0, tp, 1); + if (tp->tp.tess_mode != ~0) { + BEGIN_RING(chan, RING_3D(TESS_MODE), 1); + OUT_RING (chan, tp->tp.tess_mode); + } BEGIN_RING(chan, RING_3D(SP_SELECT(2)), 2); OUT_RING (chan, 0x21); OUT_RING (chan, tp->code_base); BEGIN_RING(chan, RING_3D(SP_GPR_ALLOC(2)), 1); - OUT_RING (chan, tp->max_gpr); + OUT_RING (chan, tp->max_gpr); + + if (tp->tp.input_patch_size <= 32) + IMMED_RING(chan, RING_3D(PATCH_VERTICES), tp->tp.input_patch_size); } void @@ -160,6 +167,10 @@ nvc0_tevlprog_validate(struct nvc0_context *nvc0) return; nvc0_program_update_context_state(nvc0, tp, 2); + if (tp->tp.tess_mode != ~0) { + BEGIN_RING(chan, RING_3D(TESS_MODE), 1); + OUT_RING (chan, tp->tp.tess_mode); + } BEGIN_RING(chan, RING_3D(TEP_SELECT), 1); OUT_RING (chan, 0x31); BEGIN_RING(chan, RING_3D(SP_START_ID(3)), 1); -- cgit v1.2.3