nv40: seems we have stencil faces around the wrong way.
authorBen Skeggs <skeggsb@gmail.com>
Sun, 23 Dec 2007 05:19:25 +0000 (16:19 +1100)
committerBen Skeggs <skeggsb@gmail.com>
Sun, 23 Dec 2007 05:19:25 +0000 (16:19 +1100)
src/mesa/drivers/dri/nouveau_winsys/nouveau_bo.c
src/mesa/pipe/nv40/nv40_state.c

index 46df588b5ba7a9ced7ba79a1508f92c1726d3e80..a86b7265440ef0502116fcdeab5e67c27a0c2ff7 100644 (file)
@@ -222,6 +222,9 @@ nouveau_bo_map(struct nouveau_bo *bo, uint32_t flags)
        if (!nvbo)
                return -EINVAL;
 
+       if (nvbo->fence)
+               nouveau_fence_wait(&nvbo->fence);
+
        if (nvbo->sysmem)
                bo->map = nvbo->sysmem;
        else
index 12b2c2a8e8ff8c10a5bc3a426bd2415474fadc1f..8fa40ce8ef78b36f965259d7bf090cb186119386 100644 (file)
@@ -425,9 +425,10 @@ nv40_depth_stencil_alpha_state_bind(struct pipe_context *pipe, void *hwcso)
 
        BEGIN_RING(curie, NV40TCL_DEPTH_FUNC, 3);
        OUT_RINGp ((uint32_t *)&hw->depth, 3);
+       /*XXX: fix in nouveau_class.h, faces backwards.. */
        BEGIN_RING(curie, NV40TCL_STENCIL_BACK_ENABLE, 16);
-       OUT_RINGp ((uint32_t *)&hw->stencil.back, 8);
        OUT_RINGp ((uint32_t *)&hw->stencil.front, 8);
+       OUT_RINGp ((uint32_t *)&hw->stencil.back, 8);
        BEGIN_RING(curie, NV40TCL_ALPHA_TEST_ENABLE, 3);
        OUT_RINGp ((uint32_t *)&hw->alpha.enabled, 3);
 }