Module: Mesa Branch: master Commit: b7b89bbddb8e78bdc93cf7a64c191ed1be647f13 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b7b89bbddb8e78bdc93cf7a64c191ed1be647f13
Author: Timothy Arceri <[email protected]> Date: Fri Feb 2 13:54:48 2018 +1100 ac/radeonsi: create ac_build_shader_clock() helper Reviewed-by: Marek Olšák <[email protected]> --- src/amd/common/ac_llvm_build.c | 8 ++++++++ src/amd/common/ac_llvm_build.h | 2 ++ src/gallium/drivers/radeonsi/si_shader.c | 6 +----- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/amd/common/ac_llvm_build.c b/src/amd/common/ac_llvm_build.c index 3efcaa12b1..a86ba962fa 100644 --- a/src/amd/common/ac_llvm_build.c +++ b/src/amd/common/ac_llvm_build.c @@ -344,6 +344,14 @@ ac_build_optimization_barrier(struct ac_llvm_context *ctx, } LLVMValueRef +ac_build_shader_clock(struct ac_llvm_context *ctx) +{ + LLVMValueRef tmp = ac_build_intrinsic(ctx, "llvm.readcyclecounter", + ctx->i64, NULL, 0, 0); + return LLVMBuildBitCast(ctx->builder, tmp, ctx->v2i32, ""); +} + +LLVMValueRef ac_build_ballot(struct ac_llvm_context *ctx, LLVMValueRef value) { diff --git a/src/amd/common/ac_llvm_build.h b/src/amd/common/ac_llvm_build.h index 35f849a986..47c843fb4b 100644 --- a/src/amd/common/ac_llvm_build.h +++ b/src/amd/common/ac_llvm_build.h @@ -119,6 +119,8 @@ ac_build_phi(struct ac_llvm_context *ctx, LLVMTypeRef type, void ac_build_optimization_barrier(struct ac_llvm_context *ctx, LLVMValueRef *pvgpr); +LLVMValueRef ac_build_shader_clock(struct ac_llvm_context *ctx); + LLVMValueRef ac_build_ballot(struct ac_llvm_context *ctx, LLVMValueRef value); LLVMValueRef ac_build_vote_all(struct ac_llvm_context *ctx, LLVMValueRef value); diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index bb8cf8f779..b2ff5b24e6 100644 --- a/src/gallium/drivers/radeonsi/si_shader.c +++ b/src/gallium/drivers/radeonsi/si_shader.c @@ -3873,11 +3873,7 @@ static void clock_emit( struct lp_build_emit_data *emit_data) { struct si_shader_context *ctx = si_shader_context(bld_base); - LLVMValueRef tmp; - - tmp = lp_build_intrinsic(ctx->ac.builder, "llvm.readcyclecounter", - ctx->i64, NULL, 0, 0); - tmp = LLVMBuildBitCast(ctx->ac.builder, tmp, ctx->v2i32, ""); + LLVMValueRef tmp = ac_build_shader_clock(&ctx->ac); emit_data->output[0] = LLVMBuildExtractElement(ctx->ac.builder, tmp, ctx->i32_0, ""); _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
