[Mesa-dev] [PATCH] radv: handle z offset for 3d image <-> buffer copies.

Bas Nieuwenhuizen bas at basnieuwenhuizen.nl
Tue Mar 7 00:46:56 UTC 2017


Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>

On Tue, Mar 7, 2017 at 1:30 AM, Dave Airlie <airlied at gmail.com> wrote:
> From: Dave Airlie <airlied at redhat.com>
>
> This fixes:
> dEQP-VK.pipeline.render_to_image.3d.huge.depth.r8g8b8a8_unorm
>
> Signed-off-by: Dave Airlie <airlied at redhat.com>
> ---
>  src/amd/vulkan/radv_meta_copy.c | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/src/amd/vulkan/radv_meta_copy.c b/src/amd/vulkan/radv_meta_copy.c
> index 5473764..54dadde 100644
> --- a/src/amd/vulkan/radv_meta_copy.c
> +++ b/src/amd/vulkan/radv_meta_copy.c
> @@ -169,6 +169,8 @@ meta_copy_buffer_to_image(struct radv_cmd_buffer *cmd_buffer,
>                         .pitch = buf_extent_el.width,
>                 };
>
> +               if (image->type == VK_IMAGE_TYPE_3D)
> +                       img_bsurf.layer = img_offset_el.z;
>                 /* Loop through each 3D or array slice */
>                 unsigned num_slices_3d = img_extent_el.depth;
>                 unsigned num_slices_array = pRegions[r].imageSubresource.layerCount;
> @@ -276,6 +278,8 @@ meta_copy_image_to_buffer(struct radv_cmd_buffer *cmd_buffer,
>                         .pitch = buf_extent_el.width,
>                 };
>
> +               if (image->type == VK_IMAGE_TYPE_3D)
> +                       img_info.layer = img_offset_el.z;
>                 /* Loop through each 3D or array slice */
>                 unsigned num_slices_3d = img_extent_el.depth;
>                 unsigned num_slices_array = pRegions[r].imageSubresource.layerCount;
> --
> 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