Merge remote branch 'origin/master' into gallium_draw_llvm
[mesa.git] / src / gallium / drivers / i965 / brw_misc_state.c
index b562eb715298c397b1fc149498502fc11b55b3b3..e3f25bdf622c4d570de7aeb9221a7ed5768e0e92 100644 (file)
@@ -231,7 +231,7 @@ static int prepare_depthbuffer(struct brw_context *brw)
    struct pipe_surface *zsbuf = brw->curr.fb.zsbuf;
 
    if (zsbuf)
-      brw_add_validated_bo(brw, brw_surface_bo(zsbuf));
+      brw_add_validated_bo(brw, brw_surface(zsbuf)->bo);
 
    return 0;
 }
@@ -265,6 +265,7 @@ static int emit_depthbuffer(struct brw_context *brw)
         format = BRW_DEPTHFORMAT_D16_UNORM;
         cpp = 2;
         break;
+      case PIPE_FORMAT_Z24X8_UNORM:
       case PIPE_FORMAT_Z24S8_UNORM:
         format = BRW_DEPTHFORMAT_D24_UNORM_S8_UINT;
         cpp = 4;
@@ -278,8 +279,8 @@ static int emit_depthbuffer(struct brw_context *brw)
         return PIPE_ERROR_BAD_INPUT;
       }
 
-      bo = brw_surface_bo(surface);
-      pitch = brw_surface_pitch(surface);
+      bo = brw_surface(surface)->bo;
+      pitch = brw_surface(surface)->pitch;
 
       BEGIN_BATCH(len, IGNORE_CLIPRECTS);
       OUT_BATCH(CMD_DEPTH_BUFFER << 16 | (len - 2));
@@ -343,8 +344,10 @@ const struct brw_tracked_state brw_polygon_stipple = {
 
 static int upload_line_stipple(struct brw_context *brw)
 {
-   struct brw_line_stipple *bls = &brw->curr.rast->bls;
-   BRW_CACHED_BATCH_STRUCT(brw, bls);
+   const struct brw_line_stipple *bls = &brw->curr.rast->bls;
+   if (bls->header.opcode) {
+      BRW_CACHED_BATCH_STRUCT(brw, bls);
+   }
    return 0;
 }
 
@@ -404,7 +407,7 @@ static int upload_invarient_state( struct brw_context *brw )
       BRW_BATCH_STRUCT(brw, &sip);
    }
 
-
+   /* VF Statistics */
    {
       struct brw_vf_statistics vfs;
       memset(&vfs, 0, sizeof(vfs));