i965g: restore code to populate the relocation background
authorKeith Whitwell <keithw@vmware.com>
Fri, 6 Nov 2009 07:47:07 +0000 (07:47 +0000)
committerKeith Whitwell <keithw@vmware.com>
Fri, 6 Nov 2009 07:47:07 +0000 (07:47 +0000)
I'm emitting this in two places now, to the data presented
for upload and also in the delta field of the reloc struct.
Probably want to remove the delta field and just pull the
background from the key.

src/gallium/drivers/i965/brw_clip_state.c
src/gallium/drivers/i965/brw_gs_state.c
src/gallium/drivers/i965/brw_sf_state.c

index 3f2b9701e601857fe96476c6909c0184292cb944..467364e8849eb9cd9f484a287a06d83e6737f62e 100644 (file)
@@ -83,6 +83,7 @@ clip_unit_create_from_key(struct brw_context *brw,
 
    memset(&clip, 0, sizeof(clip));
 
+   clip.thread0.grf_reg_count = align(key->total_grf, 16) / 16 - 1;
    /* reloc */
    clip.thread0.kernel_start_pointer = 0;
 
index 1b0de17aec1fe004fcab5bfa8f2e615b0aec764b..b64ec286cea4923de3e1a5e31750845169374215 100644 (file)
@@ -82,7 +82,7 @@ gs_unit_create_from_key(struct brw_context *brw,
 
    memset(&gs, 0, sizeof(gs));
 
-   /* maybe-reloc: populate the background */
+   /* reloc */
    gs.thread0.grf_reg_count = align(key->total_grf, 16) / 16 - 1;
    gs.thread0.kernel_start_pointer = 0;
 
index a911482149c4b17c3f0c1284b0f33ffff916e9e7..e41266984460fc5fbb2b9a806ac1a42c44249443 100644 (file)
@@ -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: