summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/i965/brw_sf_state.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers/i965/brw_sf_state.c')
-rw-r--r--src/gallium/drivers/i965/brw_sf_state.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/gallium/drivers/i965/brw_sf_state.c b/src/gallium/drivers/i965/brw_sf_state.c
index a911482149..e412669844 100644
--- a/src/gallium/drivers/i965/brw_sf_state.c
+++ b/src/gallium/drivers/i965/brw_sf_state.c
@@ -142,8 +142,7 @@ sf_unit_create_from_key(struct brw_context *brw,
int chipset_max_threads;
memset(&sf, 0, sizeof(sf));
-
- sf.thread0.grf_reg_count = 0;
+ sf.thread0.grf_reg_count = align(key->total_grf, 16) / 16 - 1;
/* reloc */
sf.thread0.kernel_start_pointer = 0;
@@ -179,10 +178,18 @@ sf_unit_create_from_key(struct brw_context *brw,
/* CACHE_NEW_SF_VP */
/* reloc */
+ sf.sf5.sf_viewport_state_offset = 0;
+
+ sf.sf5.viewport_transform = 1;
if (key->scissor)
sf.sf6.scissor = 1;
+ if (key->front_face == PIPE_WINDING_CCW)
+ sf.sf5.front_winding = BRW_FRONTWINDING_CCW;
+ else
+ sf.sf5.front_winding = BRW_FRONTWINDING_CW;
+
switch (key->cull_mode) {
case PIPE_WINDING_CCW:
case PIPE_WINDING_CW: