summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJordan Justen <jordan.l.justen@intel.com>2014-12-07 18:52:34 -0800
committerJordan Justen <jordan.l.justen@intel.com>2015-02-10 23:28:48 -0800
commite81770aec18871bdf4740e9889353c71984c5d0a (patch)
tree55e5a68b7c3cb8d22138a9509dbda86976bac48e
parentf973990a4927e6bc3dcd728f17482ae6ec8dc373 (diff)
i965/cs: Add CS pipeline_stats supportcs+ps
Probably squash into main pipeline_stats commit. Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
-rw-r--r--src/mesa/drivers/dri/i965/gen6_queryobj.c6
-rw-r--r--src/mesa/drivers/dri/i965/intel_reg.h1
-rw-r--r--src/mesa/main/queryobj.c2
3 files changed, 5 insertions, 4 deletions
diff --git a/src/mesa/drivers/dri/i965/gen6_queryobj.c b/src/mesa/drivers/dri/i965/gen6_queryobj.c
index 262f876856..d28cb5da86 100644
--- a/src/mesa/drivers/dri/i965/gen6_queryobj.c
+++ b/src/mesa/drivers/dri/i965/gen6_queryobj.c
@@ -160,7 +160,7 @@ emit_pipeline_stat(struct brw_context *brw, drm_intel_bo *bo,
0, /* DS_INVOCATION_COUNT,*/ /* TESS_EVALUATION_SHADER_INVOCATIONS */
GS_PRIMITIVES_COUNT, /* GEOMETRY_SHADER_PRIMITIVES_EMITTED */
PS_INVOCATION_COUNT, /* FRAGMENT_SHADER_INVOCATIONS */
- 0, /* COMPUTE_SHADER_INVOCATIONS */
+ CS_INVOCATION_COUNT, /* COMPUTE_SHADER_INVOCATIONS */
CL_INVOCATION_COUNT, /* CLIPPING_INPUT_PRIMITIVES */
CL_PRIMITIVES_COUNT, /* CLIPPING_OUTPUT_PRIMITIVES */
GS_INVOCATION_COUNT /* This one is special... */
@@ -244,6 +244,7 @@ gen6_queryobj_get_results(struct gl_context *ctx,
case GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB:
case GL_CLIPPING_INPUT_PRIMITIVES_ARB:
case GL_CLIPPING_OUTPUT_PRIMITIVES_ARB:
+ case GL_COMPUTE_SHADER_INVOCATIONS_ARB:
query->Base.Result = results[1] - results[0];
break;
@@ -259,7 +260,6 @@ gen6_queryobj_get_results(struct gl_context *ctx,
case GL_TESS_CONTROL_SHADER_PATCHES_ARB:
case GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB:
- case GL_COMPUTE_SHADER_INVOCATIONS_ARB:
default:
unreachable("Unrecognized query target in brw_queryobj_get_results()");
}
@@ -336,12 +336,12 @@ gen6_begin_query(struct gl_context *ctx, struct gl_query_object *q)
case GL_FRAGMENT_SHADER_INVOCATIONS_ARB:
case GL_CLIPPING_INPUT_PRIMITIVES_ARB:
case GL_CLIPPING_OUTPUT_PRIMITIVES_ARB:
+ case GL_COMPUTE_SHADER_INVOCATIONS_ARB:
emit_pipeline_stat(brw, query->bo, query->Base.Stream, query->Base.Target, 0);
break;
case GL_TESS_CONTROL_SHADER_PATCHES_ARB:
case GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB:
- case GL_COMPUTE_SHADER_INVOCATIONS_ARB:
default:
unreachable("Unrecognized query target in brw_begin_query()");
}
diff --git a/src/mesa/drivers/dri/i965/intel_reg.h b/src/mesa/drivers/dri/i965/intel_reg.h
index 02b9d53c38..6b524c5167 100644
--- a/src/mesa/drivers/dri/i965/intel_reg.h
+++ b/src/mesa/drivers/dri/i965/intel_reg.h
@@ -112,6 +112,7 @@
#define CL_INVOCATION_COUNT 0x2338
#define CL_PRIMITIVES_COUNT 0x2340
#define PS_INVOCATION_COUNT 0x2348
+#define CS_INVOCATION_COUNT 0x2290
#define PS_DEPTH_COUNT 0x2350
#define GEN6_SO_PRIM_STORAGE_NEEDED 0x2280
diff --git a/src/mesa/main/queryobj.c b/src/mesa/main/queryobj.c
index 47da448e6e..3109499060 100644
--- a/src/mesa/main/queryobj.c
+++ b/src/mesa/main/queryobj.c
@@ -224,7 +224,7 @@ get_query_binding_point(struct gl_context *ctx, GLenum target, GLuint index)
#endif
case GL_COMPUTE_SHADER_INVOCATIONS_ARB:
- if (ctx->Version >= 43 || ctx->Extensions.ARB_compute_shader)
+ if (_mesa_has_compute_shaders(ctx))
return get_pipe_stats_binding_point(ctx, target);
else
return NULL;