[Mesa-dev] [PATCH 07/12] anv/image: Memset hiz surfaces to 0 when binding memory
Jason Ekstrand
jason at jlekstrand.net
Thu Sep 1 23:12:23 UTC 2016
On Wed, Aug 31, 2016 at 8:29 PM, Nanley Chery <nanleychery at gmail.com> wrote:
> From: Jason Ekstrand <jason.ekstrand at intel.com>
>
> Nanley Chery (amend):
> - Change memset value from 0xff to 0 (a defined value for HiZ).
>
> Signed-off-by: Nanley Chery <nanley.g.chery at intel.com>
> ---
> src/intel/vulkan/anv_image.c | 18 +++++++++++++++++-
> 1 file changed, 17 insertions(+), 1 deletion(-)
>
> diff --git a/src/intel/vulkan/anv_image.c b/src/intel/vulkan/anv_image.c
> index 5112c5d..9fbebd0 100644
> --- a/src/intel/vulkan/anv_image.c
> +++ b/src/intel/vulkan/anv_image.c
> @@ -311,11 +311,12 @@ anv_DestroyImage(VkDevice _device, VkImage _image,
> }
>
> VkResult anv_BindImageMemory(
> - VkDevice device,
> + VkDevice _device,
> VkImage _image,
> VkDeviceMemory _memory,
> VkDeviceSize memoryOffset)
> {
> + ANV_FROM_HANDLE(anv_device, device, _device);
> ANV_FROM_HANDLE(anv_device_memory, mem, _memory);
> ANV_FROM_HANDLE(anv_image, image, _image);
>
> @@ -327,6 +328,21 @@ VkResult anv_BindImageMemory(
> image->offset = 0;
> }
>
> + if (anv_image_has_hiz(image)) {
> + /* HiZ surfaces need to have their memory cleared to 0 before they
> + * can be used. If we let it have garbage data, it can cause GPU
> + * hangs on some hardware.
> + */
> + void *map = anv_gem_mmap(device, image->bo->gem_handle,
> + image->offset + image->hiz_surface.offset,
> + image->hiz_surface.isl.size,
> + device->info.has_llc ? 0 : I915_MMAP_WC);
>
We should assert that offset and size are both divisible by 4096.
Otherwise, the kernel will return a NULL map and we'll segfault. It should
always be true because the surface is tiled, but we should assert none the
less.
> +
> + memset(map, 0, image->hiz_surface.isl.size);
> +
> + anv_gem_munmap(map, image->hiz_surface.isl.size);
> + }
> +
> return VK_SUCCESS;
> }
>
> --
> 2.9.3
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20160901/02a49887/attachment.html>
More information about the mesa-dev
mailing list