Reviewed-by: Bas Nieuwenhuizen <b...@basnieuwenhuizen.nl>

On Mon, Mar 4, 2019 at 2:22 PM Samuel Pitoiset
<samuel.pitoi...@gmail.com> wrote:
>
> If alignement is 0, offets returned by
> radv_cmd_buffer_upload_alloc() are always 0. These two
> virtual addresses were pointing at the same location.
>
> v2: - add an asertion that checks if alignment is power of two
>
> Cc: 18.3 19.0 <mesa-sta...@lists.freedesktop.org>
> Signed-off-by: Samuel Pitoiset <samuel.pitoi...@gmail.com>
> ---
>  src/amd/vulkan/radv_cmd_buffer.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/src/amd/vulkan/radv_cmd_buffer.c 
> b/src/amd/vulkan/radv_cmd_buffer.c
> index ad0b934ddfc..7cc7b3b9195 100644
> --- a/src/amd/vulkan/radv_cmd_buffer.c
> +++ b/src/amd/vulkan/radv_cmd_buffer.c
> @@ -338,14 +338,15 @@ radv_reset_cmd_buffer(struct radv_cmd_buffer 
> *cmd_buffer)
>                 unsigned fence_offset, eop_bug_offset;
>                 void *fence_ptr;
>
> -               radv_cmd_buffer_upload_alloc(cmd_buffer, 8, 0, &fence_offset,
> +               radv_cmd_buffer_upload_alloc(cmd_buffer, 8, 8, &fence_offset,
>                                              &fence_ptr);
> +
>                 cmd_buffer->gfx9_fence_va =
>                         radv_buffer_get_va(cmd_buffer->upload.upload_bo);
>                 cmd_buffer->gfx9_fence_va += fence_offset;
>
>                 /* Allocate a buffer for the EOP bug on GFX9. */
> -               radv_cmd_buffer_upload_alloc(cmd_buffer, 16 * num_db, 0,
> +               radv_cmd_buffer_upload_alloc(cmd_buffer, 16 * num_db, 8,
>                                              &eop_bug_offset, &fence_ptr);
>                 cmd_buffer->gfx9_eop_bug_va =
>                         radv_buffer_get_va(cmd_buffer->upload.upload_bo);
> @@ -416,6 +417,8 @@ radv_cmd_buffer_upload_alloc(struct radv_cmd_buffer 
> *cmd_buffer,
>                              unsigned *out_offset,
>                              void **ptr)
>  {
> +       assert(util_is_power_of_two_nonzero(alignment));
> +
>         uint64_t offset = align(cmd_buffer->upload.offset, alignment);
>         if (offset + size > cmd_buffer->upload.size) {
>                 if (!radv_cmd_buffer_resize_upload_buf(cmd_buffer, size))
> --
> 2.21.0
>
> _______________________________________________
> 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

Reply via email to