st/mesa: add support for nvidia conservative rasterization extensions
[mesa.git] / src / mesa / state_tracker / st_atom_rasterizer.c
index 1be072e6e39f3bde16b8ff2650246735f795bdbb..0383b8ac4adfc828f63bf971d25ab7a97a7cf4b2 100644 (file)
@@ -298,5 +298,20 @@ st_update_rasterizer(struct st_context *st)
    raster->clip_plane_enable = ctx->Transform.ClipPlanesEnabled;
    raster->clip_halfz = (ctx->Transform.ClipDepthMode == GL_ZERO_TO_ONE);
 
+    /* ST_NEW_RASTERIZER */
+   if (ctx->ConservativeRasterization) {
+      if (ctx->ConservativeRasterMode == GL_CONSERVATIVE_RASTER_MODE_POST_SNAP_NV)
+         raster->conservative_raster_mode = PIPE_CONSERVATIVE_RASTER_POST_SNAP;
+      else
+         raster->conservative_raster_mode = PIPE_CONSERVATIVE_RASTER_PRE_SNAP;
+   } else {
+      raster->conservative_raster_mode = PIPE_CONSERVATIVE_RASTER_OFF;
+   }
+
+   raster->conservative_raster_dilate = ctx->ConservativeRasterDilate;
+
+   raster->subpixel_precision_x = ctx->SubpixelPrecisionBias[0];
+   raster->subpixel_precision_y = ctx->SubpixelPrecisionBias[1];
+
    cso_set_rasterizer(st->cso_context, raster);
 }