[Mesa-dev] [PATCH 4/4] st/mesa: add GL_ARB_shader_draw_parameters support

Ilia Mirkin imirkin at alum.mit.edu
Wed Dec 30 13:58:31 PST 2015


On Tue, Dec 29, 2015 at 5:35 PM, Roland Scheidegger <sroland at vmware.com> wrote:
> Am 29.12.2015 um 23:04 schrieb Ilia Mirkin:
>> Hooks up the new system values, passes the drawid in.
>>
>> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
>> ---
>>  src/mesa/state_tracker/st_draw.c           | 1 +
>>  src/mesa/state_tracker/st_extensions.c     | 1 +
>>  src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 4 ++--
>>  3 files changed, 4 insertions(+), 2 deletions(-)
>>
>> diff --git a/src/mesa/state_tracker/st_draw.c b/src/mesa/state_tracker/st_draw.c
>> index f4b273b..635a012 100644
>> --- a/src/mesa/state_tracker/st_draw.c
>> +++ b/src/mesa/state_tracker/st_draw.c
>> @@ -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;
>> diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c
>> index c71b2c3..a729332 100644
>> --- a/src/mesa/state_tracker/st_extensions.c
>> +++ b/src/mesa/state_tracker/st_extensions.c
>> @@ -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                              },
>> diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
>> index 9b33647..7062412 100644
>> --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
>> +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
>> @@ -4333,8 +4333,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
>>      */
>>
>
> For the series (if you address my other 2 remarks):
> Reviewed-by: Roland Scheidegger <sroland at vmware.com>

Thanks! I've applied your suggested fixes and pushed these out, along
with an implementation for nvc0. Looks like there are piglit tests
missing for gl[Multi]DrawArraysIndirect, but all the other cases
appear to be working.

  -ilia


More information about the mesa-dev mailing list