nv50: fix depth clamp for disabled primitive clipping
authorChristoph Bumiller <e0425955@student.tuwien.ac.at>
Wed, 2 Mar 2011 19:15:01 +0000 (20:15 +0100)
committerChristoph Bumiller <e0425955@student.tuwien.ac.at>
Wed, 2 Mar 2011 19:59:53 +0000 (20:59 +0100)
src/gallium/drivers/nv50/nv50_state_validate.c

index d0b4af6c41b9742c785b46af53cddc08203b3ff7..bf46296e7efbbf5c4671482d194f5e613cf23f41 100644 (file)
@@ -197,9 +197,19 @@ nv50_validate_clip(struct nv50_context *nv50)
    struct nouveau_channel *chan = nv50->screen->base.channel;
    uint32_t clip;
 
-   clip = nv50->clip.depth_clamp ? 0x0018 : 0x0000;
+   if (nv50->clip.depth_clamp) {
+      clip =
+         NV50_3D_VIEW_VOLUME_CLIP_CTRL_DEPTH_CLAMP_NEAR |
+         NV50_3D_VIEW_VOLUME_CLIP_CTRL_DEPTH_CLAMP_FAR |
+         NV50_3D_VIEW_VOLUME_CLIP_CTRL_UNK12_UNK1;
+   } else {
+      clip = 0;
+   }
+
 #ifndef NV50_SCISSORS_CLIPPING
-   clip |= 0x1080;
+   clip |=
+      NV50_3D_VIEW_VOLUME_CLIP_CTRL_UNK7 |
+      NV50_3D_VIEW_VOLUME_CLIP_CTRL_UNK12_UNK1;
 #endif
 
    BEGIN_RING(chan, RING_3D(VIEW_VOLUME_CLIP_CTRL), 1);