Reviewed-by: Roland Scheidegger <srol...@vmware.com>

Am 09.11.2017 um 06:54 schrieb Dave Airlie:
> From: Dave Airlie <airl...@redhat.com>
> 
> This isn't needed in r600 anymore.
> 
> Signed-off-by: Dave Airlie <airl...@redhat.com>
> ---
>  src/gallium/drivers/r600/r600_query.c | 46 
> ++++++++++-------------------------
>  src/gallium/drivers/r600/r600_query.h |  4 ---
>  2 files changed, 13 insertions(+), 37 deletions(-)
> 
> diff --git a/src/gallium/drivers/r600/r600_query.c 
> b/src/gallium/drivers/r600/r600_query.c
> index aa3e36f..0003e2b 100644
> --- a/src/gallium/drivers/r600/r600_query.c
> +++ b/src/gallium/drivers/r600/r600_query.c
> @@ -506,7 +506,6 @@ void r600_query_hw_destroy(struct r600_common_screen 
> *rscreen,
>       }
>  
>       r600_resource_reference(&query->buffer.buf, NULL);
> -     r600_resource_reference(&query->workaround_buf, NULL);
>       FREE(rquery);
>  }
>  
> @@ -932,23 +931,19 @@ static void r600_emit_query_predication(struct 
> r600_common_context *ctx,
>       flag_wait = ctx->render_cond_mode == PIPE_RENDER_COND_WAIT ||
>                   ctx->render_cond_mode == PIPE_RENDER_COND_BY_REGION_WAIT;
>  
> -     if (query->workaround_buf) {
> -             op = PRED_OP(PREDICATION_OP_BOOL64);
> -     } else {
> -             switch (query->b.type) {
> -             case PIPE_QUERY_OCCLUSION_COUNTER:
> -             case PIPE_QUERY_OCCLUSION_PREDICATE:
> -                     op = PRED_OP(PREDICATION_OP_ZPASS);
> -                     break;
> -             case PIPE_QUERY_SO_OVERFLOW_PREDICATE:
> -             case PIPE_QUERY_SO_OVERFLOW_ANY_PREDICATE:
> -                     op = PRED_OP(PREDICATION_OP_PRIMCOUNT);
> -                     invert = !invert;
> -                     break;
> -             default:
> -                     assert(0);
> -                     return;
> -             }
> +     switch (query->b.type) {
> +     case PIPE_QUERY_OCCLUSION_COUNTER:
> +     case PIPE_QUERY_OCCLUSION_PREDICATE:
> +             op = PRED_OP(PREDICATION_OP_ZPASS);
> +             break;
> +     case PIPE_QUERY_SO_OVERFLOW_PREDICATE:
> +     case PIPE_QUERY_SO_OVERFLOW_ANY_PREDICATE:
> +             op = PRED_OP(PREDICATION_OP_PRIMCOUNT);
> +             invert = !invert;
> +             break;
> +     default:
> +             assert(0);
> +             return;
>       }
>  
>       /* if true then invert, see GL_ARB_conditional_render_inverted */
> @@ -957,19 +952,6 @@ static void r600_emit_query_predication(struct 
> r600_common_context *ctx,
>       else
>               op |= PREDICATION_DRAW_VISIBLE; /* Draw if visible or no 
> overflow */
>  
> -     /* Use the value written by compute shader as a workaround. Note that
> -      * the wait flag does not apply in this predication mode.
> -      *
> -      * The shader outputs the result value to L2. Workarounds only affect VI
> -      * and later, where the CP reads data from L2, so we don't need an
> -      * additional flush.
> -      */
> -     if (query->workaround_buf) {
> -             uint64_t va = query->workaround_buf->gpu_address + 
> query->workaround_offset;
> -             emit_set_predicate(ctx, query->workaround_buf, va, op);
> -             return;
> -     }
> -
>       op |= flag_wait ? PREDICATION_HINT_WAIT : PREDICATION_HINT_NOWAIT_DRAW;
>  
>       /* emit predicate packets for all data blocks */
> @@ -1067,8 +1049,6 @@ bool r600_query_hw_begin(struct r600_common_context 
> *rctx,
>       if (!(query->flags & R600_QUERY_HW_FLAG_BEGIN_RESUMES))
>               r600_query_hw_reset_buffers(rctx, query);
>  
> -     r600_resource_reference(&query->workaround_buf, NULL);
> -
>       r600_query_hw_emit_start(rctx, query);
>       if (!query->buffer.buf)
>               return false;
> diff --git a/src/gallium/drivers/r600/r600_query.h 
> b/src/gallium/drivers/r600/r600_query.h
> index 1a3c683..acba1a6 100644
> --- a/src/gallium/drivers/r600/r600_query.h
> +++ b/src/gallium/drivers/r600/r600_query.h
> @@ -193,10 +193,6 @@ struct r600_query_hw {
>       struct list_head list;
>       /* For transform feedback: which stream the query is for */
>       unsigned stream;
> -
> -     /* Workaround via compute shader */
> -     struct r600_resource *workaround_buf;
> -     unsigned workaround_offset;
>  };
>  
>  bool r600_query_hw_init(struct r600_common_screen *rscreen,
> 

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

Reply via email to