diff options
author | Jordan Justen <jordan.l.justen@intel.com> | 2014-12-07 18:52:34 -0800 |
---|---|---|
committer | Jordan Justen <jordan.l.justen@intel.com> | 2015-02-11 11:08:48 -0800 |
commit | f4db9365d3dbf0b0b680716b95c166a08e3da084 (patch) | |
tree | e614b6dec06adbdcf24166e37ef76c278ab651bd | |
parent | 72e24829ff6376f7f21a5b5759dc7391755873ef (diff) |
i965/cs: Add CS pipeline_stats support (squash)pipe_stats
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
-rw-r--r-- | src/mesa/drivers/dri/i965/gen6_queryobj.c | 6 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/intel_reg.h | 1 | ||||
-rw-r--r-- | src/mesa/main/queryobj.c | 2 |
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 5ac0180dc5..3cddb444d8 100644 --- a/src/mesa/drivers/dri/i965/intel_reg.h +++ b/src/mesa/drivers/dri/i965/intel_reg.h @@ -111,6 +111,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 2a8ead7504..98b6b56355 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; |