<div dir="ltr">Reviewed-by: Marek Olšák <<a href="mailto:maraeo@gmail.com">maraeo@gmail.com</a>><br><br>Marek<br><div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Mar 29, 2013 at 1:05 PM, Christoph Bumiller <span dir="ltr"><<a href="mailto:e0425955@student.tuwien.ac.at" target="_blank">e0425955@student.tuwien.ac.at</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">---<br>
 src/gallium/docs/source/screen.rst               |    2 ++<br>
 src/gallium/drivers/freedreno/freedreno_screen.c |    1 +<br>
 src/gallium/drivers/i915/i915_screen.c           |    1 +<br>
 src/gallium/drivers/llvmpipe/lp_screen.c         |    2 ++<br>
 src/gallium/drivers/nv30/nv30_screen.c           |    1 +<br>
 src/gallium/drivers/nv50/nv50_screen.c           |    2 ++<br>
 src/gallium/drivers/nvc0/nvc0_screen.c           |    1 +<br>
 src/gallium/drivers/r300/r300_screen.c           |    1 +<br>
 src/gallium/drivers/r600/r600_pipe.c             |    1 +<br>
 src/gallium/drivers/radeonsi/radeonsi_pipe.c     |    1 +<br>
 src/gallium/drivers/softpipe/sp_screen.c         |    2 ++<br>
 src/gallium/include/pipe/p_defines.h             |    3 ++-<br>
 12 files changed, 17 insertions(+), 1 deletions(-)<br>
<br>
diff --git a/src/gallium/docs/source/screen.rst b/src/gallium/docs/source/screen.rst<br>
index 8c7e86e..c1a3c0b 100644<br>
--- a/src/gallium/docs/source/screen.rst<br>
+++ b/src/gallium/docs/source/screen.rst<br>
@@ -149,6 +149,8 @@ The integer capabilities:<br>
   to use a blit to implement a texture transfer which needs format conversions<br>
   and swizzling in state trackers. Generally, all hardware drivers with<br>
   dedicated memory should return 1 and all software rasterizers should return 0.<br>
+* ``PIPE_CAP_QUERY_PIPELINE_STATISTICS``: Whether PIPE_QUERY_PIPELINE_STATISTICS<br>
+  is supported.<br>
<br>
<br>
 .. _pipe_capf:<br>
diff --git a/src/gallium/drivers/freedreno/freedreno_screen.c b/src/gallium/drivers/freedreno/freedreno_screen.c<br>
index 79eef5e..283d07f 100644<br>
--- a/src/gallium/drivers/freedreno/freedreno_screen.c<br>
+++ b/src/gallium/drivers/freedreno/freedreno_screen.c<br>
@@ -199,6 +199,7 @@ fd_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)<br>
        case PIPE_CAP_VERTEX_COLOR_CLAMPED:<br>
        case PIPE_CAP_USER_VERTEX_BUFFERS:<br>
        case PIPE_CAP_USER_INDEX_BUFFERS:<br>
+       case PIPE_CAP_QUERY_PIPELINE_STATISTICS:<br>
                return 0;<br>
<br>
        /* Stream output. */<br>
diff --git a/src/gallium/drivers/i915/i915_screen.c b/src/gallium/drivers/i915/i915_screen.c<br>
index 13aa91c..54b2154 100644<br>
--- a/src/gallium/drivers/i915/i915_screen.c<br>
+++ b/src/gallium/drivers/i915/i915_screen.c<br>
@@ -210,6 +210,7 @@ i915_get_param(struct pipe_screen *screen, enum pipe_cap cap)<br>
    case PIPE_CAP_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION:<br>
    case PIPE_CAP_START_INSTANCE:<br>
    case PIPE_CAP_QUERY_TIMESTAMP:<br>
+   case PIPE_CAP_QUERY_PIPELINE_STATISTICS:<br>
    case PIPE_CAP_TEXTURE_MULTISAMPLE:<br>
    case PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT:<br>
       return 0;<br>
diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c b/src/gallium/drivers/llvmpipe/lp_screen.c<br>
index e8c6ab1..6700887 100644<br>
--- a/src/gallium/drivers/llvmpipe/lp_screen.c<br>
+++ b/src/gallium/drivers/llvmpipe/lp_screen.c<br>
@@ -130,6 +130,8 @@ llvmpipe_get_param(struct pipe_screen *screen, enum pipe_cap param)<br>
       return 0;<br>
    case PIPE_CAP_QUERY_TIMESTAMP:<br>
       return 1;<br>
+   case PIPE_CAP_QUERY_PIPELINE_STATISTICS:<br>
+      return 0;<br>
    case PIPE_CAP_TEXTURE_MIRROR_CLAMP:<br>
       return 1;<br>
    case PIPE_CAP_TEXTURE_SHADOW_MAP:<br>
diff --git a/src/gallium/drivers/nv30/nv30_screen.c b/src/gallium/drivers/nv30/nv30_screen.c<br>
index 4084869..e33710e 100644<br>
--- a/src/gallium/drivers/nv30/nv30_screen.c<br>
+++ b/src/gallium/drivers/nv30/nv30_screen.c<br>
@@ -122,6 +122,7 @@ nv30_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)<br>
    case PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT:<br>
    case PIPE_CAP_TEXTURE_BUFFER_OBJECTS:<br>
    case PIPE_CAP_TEXTURE_BUFFER_OFFSET_ALIGNMENT:<br>
+   case PIPE_CAP_QUERY_PIPELINE_STATISTICS:<br>
       return 0;<br>
    case PIPE_CAP_VERTEX_BUFFER_OFFSET_4BYTE_ALIGNED_ONLY:<br>
    case PIPE_CAP_VERTEX_BUFFER_STRIDE_4BYTE_ALIGNED_ONLY:<br>
diff --git a/src/gallium/drivers/nv50/nv50_screen.c b/src/gallium/drivers/nv50/nv50_screen.c<br>
index 0a20ae3..53eeeb6 100644<br>
--- a/src/gallium/drivers/nv50/nv50_screen.c<br>
+++ b/src/gallium/drivers/nv50/nv50_screen.c<br>
@@ -189,6 +189,8 @@ nv50_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)<br>
       return 0;<br>
    case PIPE_CAP_PREFER_BLIT_BASED_TEXTURE_TRANSFER:<br>
       return 1;<br>
+   case PIPE_CAP_QUERY_PIPELINE_STATISTICS:<br>
+      return 0;<br>
    default:<br>
       NOUVEAU_ERR("unknown PIPE_CAP %d\n", param);<br>
       return 0;<br>
diff --git a/src/gallium/drivers/nvc0/nvc0_screen.c b/src/gallium/drivers/nvc0/nvc0_screen.c<br>
index 5b9385a..3a32539 100644<br>
--- a/src/gallium/drivers/nvc0/nvc0_screen.c<br>
+++ b/src/gallium/drivers/nvc0/nvc0_screen.c<br>
@@ -136,6 +136,7 @@ nvc0_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)<br>
    case PIPE_CAP_QUERY_TIME_ELAPSED:<br>
    case PIPE_CAP_OCCLUSION_QUERY:<br>
    case PIPE_CAP_STREAM_OUTPUT_PAUSE_RESUME:<br>
+   case PIPE_CAP_QUERY_PIPELINE_STATISTICS:<br>
       return 1;<br>
    case PIPE_CAP_MAX_STREAM_OUTPUT_BUFFERS:<br>
       return 4;<br>
diff --git a/src/gallium/drivers/r300/r300_screen.c b/src/gallium/drivers/r300/r300_screen.c<br>
index bd16c3b..3175b3b 100644<br>
--- a/src/gallium/drivers/r300/r300_screen.c<br>
+++ b/src/gallium/drivers/r300/r300_screen.c<br>
@@ -135,6 +135,7 @@ static int r300_get_param(struct pipe_screen* pscreen, enum pipe_cap param)<br>
<br>
         /* Unsupported features. */<br>
         case PIPE_CAP_QUERY_TIME_ELAPSED:<br>
+        case PIPE_CAP_QUERY_PIPELINE_STATISTICS:<br>
         case PIPE_CAP_MAX_DUAL_SOURCE_RENDER_TARGETS:<br>
         case PIPE_CAP_INDEP_BLEND_ENABLE:<br>
         case PIPE_CAP_INDEP_BLEND_FUNC:<br>
diff --git a/src/gallium/drivers/r600/r600_pipe.c b/src/gallium/drivers/r600/r600_pipe.c<br>
index 443a91e..1e4c964 100644<br>
--- a/src/gallium/drivers/r600/r600_pipe.c<br>
+++ b/src/gallium/drivers/r600/r600_pipe.c<br>
@@ -602,6 +602,7 @@ static int r600_get_param(struct pipe_screen* pscreen, enum pipe_cap param)<br>
        case PIPE_CAP_VERTEX_COLOR_CLAMPED:<br>
        case PIPE_CAP_USER_VERTEX_BUFFERS:<br>
        case PIPE_CAP_TEXTURE_BUFFER_OFFSET_ALIGNMENT:<br>
+       case PIPE_CAP_QUERY_PIPELINE_STATISTICS:<br>
                return 0;<br>
<br>
        /* Stream output. */<br>
diff --git a/src/gallium/drivers/radeonsi/radeonsi_pipe.c b/src/gallium/drivers/radeonsi/radeonsi_pipe.c<br>
index 0d24309..f9e9b97 100644<br>
--- a/src/gallium/drivers/radeonsi/radeonsi_pipe.c<br>
+++ b/src/gallium/drivers/radeonsi/radeonsi_pipe.c<br>
@@ -357,6 +357,7 @@ static int r600_get_param(struct pipe_screen* pscreen, enum pipe_cap param)<br>
        case PIPE_CAP_TEXTURE_MULTISAMPLE:<br>
        case PIPE_CAP_COMPUTE:<br>
        case PIPE_CAP_QUERY_TIMESTAMP:<br>
+       case PIPE_CAP_QUERY_PIPELINE_STATISTICS:<br>
        case PIPE_CAP_CUBE_MAP_ARRAY:<br>
        case PIPE_CAP_TEXTURE_BUFFER_OBJECTS:<br>
        case PIPE_CAP_TEXTURE_BUFFER_OFFSET_ALIGNMENT:<br>
diff --git a/src/gallium/drivers/softpipe/sp_screen.c b/src/gallium/drivers/softpipe/sp_screen.c<br>
index 0261c69..6915f91 100644<br>
--- a/src/gallium/drivers/softpipe/sp_screen.c<br>
+++ b/src/gallium/drivers/softpipe/sp_screen.c<br>
@@ -86,6 +86,8 @@ softpipe_get_param(struct pipe_screen *screen, enum pipe_cap param)<br>
       return 1;<br>
    case PIPE_CAP_QUERY_TIME_ELAPSED:<br>
       return 1;<br>
+   case PIPE_CAP_QUERY_PIPELINE_STATISTICS:<br>
+      return 0;<br>
    case PIPE_CAP_TEXTURE_MIRROR_CLAMP:<br>
       return 1;<br>
    case PIPE_CAP_TEXTURE_SHADOW_MAP:<br>
diff --git a/src/gallium/include/pipe/p_defines.h b/src/gallium/include/pipe/p_defines.h<br>
index 51694ea..5b00acc 100644<br>
--- a/src/gallium/include/pipe/p_defines.h<br>
+++ b/src/gallium/include/pipe/p_defines.h<br>
@@ -504,7 +504,8 @@ enum pipe_cap {<br>
    PIPE_CAP_TEXTURE_BUFFER_OBJECTS = 77,<br>
    PIPE_CAP_TEXTURE_BUFFER_OFFSET_ALIGNMENT = 78,<br>
    PIPE_CAP_TGSI_TEXCOORD = 79,<br>
-   PIPE_CAP_PREFER_BLIT_BASED_TEXTURE_TRANSFER = 80<br>
+   PIPE_CAP_PREFER_BLIT_BASED_TEXTURE_TRANSFER = 80,<br>
+   PIPE_CAP_QUERY_PIPELINE_STATISTICS = 81<br>
 };<br>
<br>
 /**<br>
<span class="HOEnZb"><font color="#888888">--<br>
1.7.3.4<br>
<br>
_______________________________________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/mesa-dev" target="_blank">http://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</font></span></blockquote></div><br></div></div></div>