[Mesa-stable] [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-stable
mailing list