st/mesa: add GL_ARB_shader_draw_parameters support
authorIlia Mirkin <imirkin@alum.mit.edu>
Tue, 29 Dec 2015 21:39:16 +0000 (16:39 -0500)
committerIlia Mirkin <imirkin@alum.mit.edu>
Wed, 30 Dec 2015 21:55:56 +0000 (16:55 -0500)
Hooks up the new system values, passes the drawid in.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
src/mesa/state_tracker/st_draw.c
src/mesa/state_tracker/st_extensions.c
src/mesa/state_tracker/st_glsl_to_tgsi.cpp

index f4b273bf93fb65222285c8f7d5e4d976b201f5be..635a0126834d47f958c2adf77ed5a01014d12d20 100644 (file)
@@ -266,6 +266,7 @@ st_draw_vbo(struct gl_context *ctx,
       info.instance_count = prims[i].num_instances;
       info.vertices_per_patch = ctx->TessCtrlProgram.patch_vertices;
       info.index_bias = prims[i].basevertex;
+      info.drawid = prims[i].draw_id;
       if (!ib) {
          info.min_index = info.start;
          info.max_index = info.start + info.count - 1;
index a2418e28a91ac5b62c04530512502034824c70a7..a0168d8e40802648caf65366b0ec8aa911083014 100644 (file)
@@ -454,6 +454,7 @@ void st_init_extensions(struct pipe_screen *screen,
       { o(ARB_pipeline_statistics_query),    PIPE_CAP_QUERY_PIPELINE_STATISTICS        },
       { o(ARB_point_sprite),                 PIPE_CAP_POINT_SPRITE                     },
       { o(ARB_seamless_cube_map),            PIPE_CAP_SEAMLESS_CUBE_MAP                },
+      { o(ARB_shader_draw_parameters),       PIPE_CAP_DRAW_PARAMETERS                  },
       { o(ARB_shader_stencil_export),        PIPE_CAP_SHADER_STENCIL_EXPORT            },
       { o(ARB_shader_texture_image_samples), PIPE_CAP_TGSI_TXQS                        },
       { o(ARB_shader_texture_lod),           PIPE_CAP_SM3                              },
index 5a6be08185f470a88202d576593f51cc904ff349..160838c498e17e8b67ddafe8a637a134e15a0d4d 100644 (file)
@@ -4328,8 +4328,8 @@ const unsigned _mesa_sysval_to_semantic[SYSTEM_VALUE_MAX] = {
    TGSI_SEMANTIC_INSTANCEID,
    TGSI_SEMANTIC_VERTEXID_NOBASE,
    TGSI_SEMANTIC_BASEVERTEX,
-   0, /* SYSTEM_VALUE_BASE_INSTANCE */
-   0, /* SYSTEM_VALUE_DRAW_ID */
+   TGSI_SEMANTIC_BASEINSTANCE,
+   TGSI_SEMANTIC_DRAWID,
 
    /* Geometry shader
     */