[Mesa-dev] [PATCH 1/2] llvmpipe: enable PIPE_CAP_QUERY_PIPELINE_STATISTICS

Brian Paul brianp at vmware.com
Fri Sep 8 02:15:23 UTC 2017


Both look OK to me.

Reviewed-by: Brian Paul <brianp at vmware.com>


On 09/07/2017 07:00 PM, sroland at vmware.com wrote:
> From: Roland Scheidegger <sroland at vmware.com>
>
> This was implemented since forever, but not enabled.
> It passes all piglit tests except one, arb_pipeline_statistics_query-frag.
> The reason is that the test (for drawing a 10x10 rect) expects between
> 100 and 150 pixel shader invocations. But since llvmpipe counts this with
> 4x4 granularity (and due to the rect being 2 tris) we end up with 224
> invocations. I believe however what llvmpipe is doing violates neither the
> spirit nor the letter of the spec (our fragment shader granularity really
> is 4x4 pixels, albeit we will bail out early on 2x2 or 4x2 (the latter
> if AVX is available) granularity), the spec allows to count additional
> invocations due to implementation reasons.
> ---
>   docs/features.txt                        | 2 +-
>   src/gallium/drivers/llvmpipe/lp_screen.c | 2 +-
>   2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/docs/features.txt b/docs/features.txt
> index 0435ce6..fe412f6 100644
> --- a/docs/features.txt
> +++ b/docs/features.txt
> @@ -225,7 +225,7 @@ GL 4.6, GLSL 4.60
>
>     GL_ARB_gl_spirv                                       in progress (Nicolai Hähnle, Ian Romanick)
>     GL_ARB_indirect_parameters                            DONE (nvc0, radeonsi)
> -  GL_ARB_pipeline_statistics_query                      DONE (i965, nvc0, radeonsi, softpipe, swr)
> +  GL_ARB_pipeline_statistics_query                      DONE (i965, nvc0, radeonsi, llvmpipe, softpipe, swr)
>     GL_ARB_polygon_offset_clamp                           DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, swr)
>     GL_ARB_shader_atomic_counter_ops                      DONE (i965/gen7+, nvc0, radeonsi, softpipe)
>     GL_ARB_shader_draw_parameters                         DONE (i965, nvc0, radeonsi)
> diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c b/src/gallium/drivers/llvmpipe/lp_screen.c
> index 32a4050..dba7ae3 100644
> --- a/src/gallium/drivers/llvmpipe/lp_screen.c
> +++ b/src/gallium/drivers/llvmpipe/lp_screen.c
> @@ -132,7 +132,7 @@ llvmpipe_get_param(struct pipe_screen *screen, enum pipe_cap param)
>      case PIPE_CAP_QUERY_TIMESTAMP:
>         return 1;
>      case PIPE_CAP_QUERY_PIPELINE_STATISTICS:
> -      return 0;
> +      return 1;
>      case PIPE_CAP_TEXTURE_MIRROR_CLAMP:
>         return 1;
>      case PIPE_CAP_TEXTURE_SHADOW_MAP:
>



More information about the mesa-dev mailing list