nvc0: fix the driver cb size when draw parameters are used
[mesa.git] / src / gallium / drivers / nouveau / nvc0 / nvc0_state.c
index 2fbe8172bc1dbee73e66874c00fd23108c6e9d9b..441cfc9745423ddd2075f33f0a940bc4e7f16612 100644 (file)
@@ -283,8 +283,10 @@ nvc0_rasterizer_state_create(struct pipe_context *pipe,
     if (cso->offset_point || cso->offset_line || cso->offset_tri) {
         SB_BEGIN_3D(so, POLYGON_OFFSET_FACTOR, 1);
         SB_DATA    (so, fui(cso->offset_scale));
-        SB_BEGIN_3D(so, POLYGON_OFFSET_UNITS, 1);
-        SB_DATA    (so, fui(cso->offset_units * 2.0f));
+        if (!cso->offset_units_unscaled) {
+           SB_BEGIN_3D(so, POLYGON_OFFSET_UNITS, 1);
+           SB_DATA    (so, fui(cso->offset_units * 2.0f));
+        }
         SB_BEGIN_3D(so, POLYGON_OFFSET_CLAMP, 1);
         SB_DATA    (so, fui(cso->offset_clamp));
     }
@@ -831,7 +833,7 @@ nvc0_cp_state_bind(struct pipe_context *pipe, void *hwcso)
 
 static void
 nvc0_set_constant_buffer(struct pipe_context *pipe, uint shader, uint index,
-                         struct pipe_constant_buffer *cb)
+                         const struct pipe_constant_buffer *cb)
 {
    struct nvc0_context *nvc0 = nvc0_context(pipe);
    struct pipe_resource *res = cb ? cb->buffer : NULL;
@@ -1250,7 +1252,7 @@ nvc0_set_compute_resources(struct pipe_context *pipe,
 static bool
 nvc0_bind_images_range(struct nvc0_context *nvc0, const unsigned s,
                        unsigned start, unsigned nr,
-                       struct pipe_image_view *pimages)
+                       const struct pipe_image_view *pimages)
 {
    const unsigned end = start + nr;
    unsigned mask = 0;
@@ -1318,7 +1320,7 @@ nvc0_bind_images_range(struct nvc0_context *nvc0, const unsigned s,
 static void
 nvc0_set_shader_images(struct pipe_context *pipe, unsigned shader,
                        unsigned start, unsigned nr,
-                       struct pipe_image_view *images)
+                       const struct pipe_image_view *images)
 {
    const unsigned s = nvc0_shader_stage(shader);
    if (!nvc0_bind_images_range(nvc0_context(pipe), s, start, nr, images))