glsl: lower mediump temporaries to 16 bits except structures (v2)
[mesa.git] / src / mesa / state_tracker / st_draw.c
index 6459b2553c2828d8ff1fca8f6b924fe52a2bd98a..cbc8b139dbbd46bf4b548f1b8f5c14701e61c1dc 100644 (file)
@@ -37,7 +37,7 @@
 
 
 #include "main/errors.h"
-#include "main/imports.h"
+
 #include "main/image.h"
 #include "main/bufferobj.h"
 #include "main/macros.h"
@@ -85,8 +85,7 @@ setup_primitive_restart(struct gl_context *ctx, struct pipe_draw_info *info)
    if (ctx->Array._PrimitiveRestart) {
       unsigned index_size = info->index_size;
 
-      info->restart_index =
-         _mesa_primitive_restart_index(ctx, index_size);
+      info->restart_index = ctx->Array._RestartIndex[index_size - 1];
 
       /* Enable primitive restart only when the restart index can have an
        * effect. This is required for correctness in radeonsi GFX8 support.
@@ -202,11 +201,11 @@ st_draw_vbo(struct gl_context *ctx,
                                 nr_prims);
       }
 
-      info.index_size = ib->index_size;
+      info.index_size = 1 << ib->index_size_shift;
       info.min_index = min_index;
       info.max_index = max_index;
 
-      if (_mesa_is_bufferobj(bufobj)) {
+      if (bufobj) {
          /* indices are in a real VBO */
          info.has_user_indices = false;
          info.index.resource = st_buffer_object(bufobj)->buffer;
@@ -295,9 +294,9 @@ st_indirect_draw_vbo(struct gl_context *ctx,
       struct gl_buffer_object *bufobj = ib->obj;
 
       /* indices are always in a real VBO */
-      assert(_mesa_is_bufferobj(bufobj));
+      assert(bufobj);
 
-      info.index_size = ib->index_size;
+      info.index_size = 1 << ib->index_size_shift;
       info.index.resource = st_buffer_object(bufobj)->buffer;
       info.start = pointer_to_offset(ib->ptr) >> ib->index_size_shift;