[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