From 51b1d412ec5d0699d182b895daacb3b78da328ad Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Thu, 27 Oct 2011 23:04:00 -0700 Subject: [PATCH] i965: Put a proper sampler count in 3DSTATE_VS. See similar code for 3DSTATE_WM. Signed-off-by: Kenneth Graunke Reviewed-by: Eric Anholt --- src/mesa/drivers/dri/i965/gen6_vs_state.c | 5 +++-- src/mesa/drivers/dri/i965/gen7_vs_state.c | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/mesa/drivers/dri/i965/gen6_vs_state.c b/src/mesa/drivers/dri/i965/gen6_vs_state.c index 3af667b..c638db5 100644 --- a/src/mesa/drivers/dri/i965/gen6_vs_state.c +++ b/src/mesa/drivers/dri/i965/gen6_vs_state.c @@ -167,7 +167,8 @@ upload_vs_state(struct brw_context *brw) BEGIN_BATCH(6); OUT_BATCH(_3DSTATE_VS << 16 | (6 - 2)); OUT_BATCH(brw->vs.prog_offset); - OUT_BATCH(floating_point_mode | (0 << GEN6_VS_SAMPLER_COUNT_SHIFT)); + OUT_BATCH(floating_point_mode | + ((ALIGN(brw->sampler.count, 4)/4) << GEN6_VS_SAMPLER_COUNT_SHIFT)); if (brw->vs.prog_data->total_scratch) { OUT_RELOC(brw->vs.scratch_bo, @@ -222,7 +223,7 @@ const struct brw_tracked_state gen6_vs_state = { BRW_NEW_CONTEXT | BRW_NEW_VERTEX_PROGRAM | BRW_NEW_BATCH), - .cache = CACHE_NEW_VS_PROG + .cache = CACHE_NEW_VS_PROG | CACHE_NEW_SAMPLER }, .emit = upload_vs_state, }; diff --git a/src/mesa/drivers/dri/i965/gen7_vs_state.c b/src/mesa/drivers/dri/i965/gen7_vs_state.c index 558933c..6b9507f 100644 --- a/src/mesa/drivers/dri/i965/gen7_vs_state.c +++ b/src/mesa/drivers/dri/i965/gen7_vs_state.c @@ -81,7 +81,8 @@ upload_vs_state(struct brw_context *brw) BEGIN_BATCH(6); OUT_BATCH(_3DSTATE_VS << 16 | (6 - 2)); OUT_BATCH(brw->vs.prog_offset); - OUT_BATCH((0 << GEN6_VS_SAMPLER_COUNT_SHIFT) | floating_point_mode); + OUT_BATCH(floating_point_mode | + ((ALIGN(brw->sampler.count, 4)/4) << GEN6_VS_SAMPLER_COUNT_SHIFT)); if (brw->vs.prog_data->total_scratch) { OUT_RELOC(brw->vs.scratch_bo, -- 2.7.4