Re: [Mesa-dev] [PATCH] gallium/radeon: fix crash/regression in performance counters

2016-09-30 Thread Marek Olšák
Reviewed-by: Marek Olšák 

Marek

On Fri, Sep 30, 2016 at 12:04 PM, Nicolai Hähnle  wrote:
> From: Nicolai Hähnle 
>
> Cc: Michel Dänzer 
> ---
>  src/gallium/drivers/radeon/r600_perfcounter.c | 9 +
>  1 file changed, 9 insertions(+)
>
> diff --git a/src/gallium/drivers/radeon/r600_perfcounter.c 
> b/src/gallium/drivers/radeon/r600_perfcounter.c
> index f8dfda0..0c55fc2 100644
> --- a/src/gallium/drivers/radeon/r600_perfcounter.c
> +++ b/src/gallium/drivers/radeon/r600_perfcounter.c
> @@ -108,20 +108,28 @@ static void r600_pc_query_destroy(struct 
> r600_common_context *ctx,
> struct r600_pc_group *group = query->groups;
> query->groups = group->next;
> FREE(group);
> }
>
> FREE(query->counters);
>
> r600_query_hw_destroy(ctx, rquery);
>  }
>
> +static bool r600_pc_query_prepare_buffer(struct r600_common_context *ctx,
> +struct r600_query_hw *hwquery,
> +struct r600_resource *buffer)
> +{
> +   /* no-op */
> +   return true;
> +}
> +
>  static void r600_pc_query_emit_start(struct r600_common_context *ctx,
>  struct r600_query_hw *hwquery,
>  struct r600_resource *buffer, uint64_t 
> va)
>  {
> struct r600_perfcounters *pc = ctx->screen->perfcounters;
> struct r600_query_pc *query = (struct r600_query_pc *)hwquery;
> struct r600_pc_group *group;
> int current_se = -1;
> int current_instance = -1;
>
> @@ -208,20 +216,21 @@ static void r600_pc_query_add_result(struct 
> r600_common_context *ctx,
>  }
>
>  static struct r600_query_ops batch_query_ops = {
> .destroy = r600_pc_query_destroy,
> .begin = r600_query_hw_begin,
> .end = r600_query_hw_end,
> .get_result = r600_query_hw_get_result
>  };
>
>  static struct r600_query_hw_ops batch_query_hw_ops = {
> +   .prepare_buffer = r600_pc_query_prepare_buffer,
> .emit_start = r600_pc_query_emit_start,
> .emit_stop = r600_pc_query_emit_stop,
> .clear_result = r600_pc_query_clear_result,
> .add_result = r600_pc_query_add_result,
>  };
>
>  static struct r600_pc_group *get_group_state(struct r600_common_screen 
> *screen,
>  struct r600_query_pc *query,
>  struct r600_perfcounter_block 
> *block,
>  unsigned sub_gid)
> --
> 2.7.4
>
> ___
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [PATCH] gallium/radeon: fix crash/regression in performance counters

2016-09-30 Thread Nicolai Hähnle
From: Nicolai Hähnle 

Cc: Michel Dänzer 
---
 src/gallium/drivers/radeon/r600_perfcounter.c | 9 +
 1 file changed, 9 insertions(+)

diff --git a/src/gallium/drivers/radeon/r600_perfcounter.c 
b/src/gallium/drivers/radeon/r600_perfcounter.c
index f8dfda0..0c55fc2 100644
--- a/src/gallium/drivers/radeon/r600_perfcounter.c
+++ b/src/gallium/drivers/radeon/r600_perfcounter.c
@@ -108,20 +108,28 @@ static void r600_pc_query_destroy(struct 
r600_common_context *ctx,
struct r600_pc_group *group = query->groups;
query->groups = group->next;
FREE(group);
}
 
FREE(query->counters);
 
r600_query_hw_destroy(ctx, rquery);
 }
 
+static bool r600_pc_query_prepare_buffer(struct r600_common_context *ctx,
+struct r600_query_hw *hwquery,
+struct r600_resource *buffer)
+{
+   /* no-op */
+   return true;
+}
+
 static void r600_pc_query_emit_start(struct r600_common_context *ctx,
 struct r600_query_hw *hwquery,
 struct r600_resource *buffer, uint64_t va)
 {
struct r600_perfcounters *pc = ctx->screen->perfcounters;
struct r600_query_pc *query = (struct r600_query_pc *)hwquery;
struct r600_pc_group *group;
int current_se = -1;
int current_instance = -1;
 
@@ -208,20 +216,21 @@ static void r600_pc_query_add_result(struct 
r600_common_context *ctx,
 }
 
 static struct r600_query_ops batch_query_ops = {
.destroy = r600_pc_query_destroy,
.begin = r600_query_hw_begin,
.end = r600_query_hw_end,
.get_result = r600_query_hw_get_result
 };
 
 static struct r600_query_hw_ops batch_query_hw_ops = {
+   .prepare_buffer = r600_pc_query_prepare_buffer,
.emit_start = r600_pc_query_emit_start,
.emit_stop = r600_pc_query_emit_stop,
.clear_result = r600_pc_query_clear_result,
.add_result = r600_pc_query_add_result,
 };
 
 static struct r600_pc_group *get_group_state(struct r600_common_screen *screen,
 struct r600_query_pc *query,
 struct r600_perfcounter_block 
*block,
 unsigned sub_gid)
-- 
2.7.4

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev