[Mesa-dev] [PATCH v2] util/ralloc: Remove double zero'ing of rzalloc buffers
Kenneth Graunke
kenneth at whitecape.org
Tue May 10 23:16:17 UTC 2016
On Tuesday, May 10, 2016 3:54:05 PM PDT Jordan Justen wrote:
> Juha-Pekka found this back in May 2015:
> <1430915727-28677-1-git-send-email-juhapekka.heikkila at gmail.com>
>
> From the discussion, obviously it would be preferable to make
> ralloc_size no longer return zeroed memory, but Juha-Pekka found that
> it would break Mesa.
>
> In <56AF1C57.2030904 at gmail.com>, Juha-Pekka mentioned that patches
> exist to fix i965 when ralloc_size is fixed to not zero memory, but
> the patches have not made their way to mesa-dev yet.
>
> For now, let's stop doing the double zeroing of rzalloc buffers.
>
> v2:
> * Move ralloc_size code to rzalloc_size, and add a comment as
> suggested by Ken.
>
> Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
> Cc: Juha-Pekka Heikkila <juhapekka.heikkila at gmail.com>
> Cc: Kenneth Graunke <kenneth at whitecape.org>
> ---
> src/util/ralloc.c | 21 ++++++++++++---------
> 1 file changed, 12 insertions(+), 9 deletions(-)
>
> diff --git a/src/util/ralloc.c b/src/util/ralloc.c
> index 6d4032b..9526011 100644
> --- a/src/util/ralloc.c
> +++ b/src/util/ralloc.c
> @@ -110,6 +110,18 @@ ralloc_context(const void *ctx)
> void *
> ralloc_size(const void *ctx, size_t size)
> {
> + /* ralloc_size was originally implemented using calloc, which meant some
> + * code accidentally relied on its zero filling behavior.
> + *
> + * TODO: Make ralloc_size not zero fill memory, and cleanup any code
that
> + * should instead be using rzalloc.
> + */
> + return rzalloc_size(ctx, size);
> +}
> +
> +void *
> +rzalloc_size(const void *ctx, size_t size)
> +{
> void *block = calloc(1, size + sizeof(ralloc_header));
> ralloc_header *info;
> ralloc_header *parent;
> @@ -128,15 +140,6 @@ ralloc_size(const void *ctx, size_t size)
> return PTR_FROM_HEADER(info);
> }
>
> -void *
> -rzalloc_size(const void *ctx, size_t size)
> -{
> - void *ptr = ralloc_size(ctx, size);
> - if (likely(ptr != NULL))
> - memset(ptr, 0, size);
> - return ptr;
> -}
> -
> /* helper function - assumes ptr != NULL */
> static void *
> resize(void *ptr, size_t size)
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part.
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20160510/68965c52/attachment.sig>
More information about the mesa-dev
mailing list