[Mesa-dev] [PATCH] [swr] Align query results allocation

Cherniak, Bruce bruce.cherniak at intel.com
Fri Jan 20 19:45:39 UTC 2017


Reviewed-by: Bruce Cherniak <bruce.cherniak at intel.com>


> On Jan 20, 2017, at 1:44 PM, George Kyriazis <george.kyriazis at intel.com> wrote:
> 
> Some query results struct contents are declared as cache line aligned.
> Use aligned malloc, and align the whole struct, to be safe.
> 
> Fixes crash when compiling with clang.
> 
> CC: <mesa-stable at lists.freedesktop.org>
> 
> ---
> src/gallium/drivers/swr/swr_query.cpp | 7 ++++---
> src/gallium/drivers/swr/swr_query.h   | 2 +-
> 2 files changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/src/gallium/drivers/swr/swr_query.cpp b/src/gallium/drivers/swr/swr_query.cpp
> index 6eb0781..e097790 100644
> --- a/src/gallium/drivers/swr/swr_query.cpp
> +++ b/src/gallium/drivers/swr/swr_query.cpp
> @@ -29,7 +29,7 @@
> #include "swr_query.h"
> #include "swr_screen.h"
> #include "swr_state.h"
> -
> +#include "common/os.h"
> 
> static struct swr_query *
> swr_query(struct pipe_query *p)
> @@ -45,7 +45,8 @@ swr_create_query(struct pipe_context *pipe, unsigned type, unsigned index)
>    assert(type < PIPE_QUERY_TYPES);
>    assert(index < MAX_SO_STREAMS);
> 
> -   pq = CALLOC_STRUCT(swr_query);
> +   pq = (struct swr_query *) AlignedMalloc(sizeof(struct swr_query), 64);
> +   memset(pq, 0, sizeof(*pq));
> 
>    if (pq) {
>       pq->type = type;
> @@ -67,7 +68,7 @@ swr_destroy_query(struct pipe_context *pipe, struct pipe_query *q)
>       swr_fence_reference(pipe->screen, &pq->fence, NULL);
>    }
> 
> -   FREE(pq);
> +   AlignedFree(pq);
> }
> 
> 
> diff --git a/src/gallium/drivers/swr/swr_query.h b/src/gallium/drivers/swr/swr_query.h
> index c5160ce..1c736e4 100644
> --- a/src/gallium/drivers/swr/swr_query.h
> +++ b/src/gallium/drivers/swr/swr_query.h
> @@ -34,7 +34,7 @@ struct swr_query_result {
>    uint64_t timestamp_end;
> };
> 
> -struct swr_query {
> +OSALIGNLINE(struct) swr_query {
>    unsigned type; /* PIPE_QUERY_* */
>    unsigned index;
> 
> -- 
> 2.7.4
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev



More information about the mesa-dev mailing list