Mesa (master): anv/image: Memset all aux surfaces (not just HiZ) to 0
Jason Ekstrand
jekstrand at kemper.freedesktop.org
Thu Nov 17 20:04:22 UTC 2016
Module: Mesa
Branch: master
Commit: a512565b2b9f991729d747a7fefc1f89d68894d2
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a512565b2b9f991729d747a7fefc1f89d68894d2
Author: Jason Ekstrand <jason.ekstrand at intel.com>
Date: Mon Oct 24 19:35:34 2016 -0700
anv/image: Memset all aux surfaces (not just HiZ) to 0
Reviewed-by: Topi Pohjolainen <topi.pohjolainen at intel.com>
---
src/intel/vulkan/anv_image.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/src/intel/vulkan/anv_image.c b/src/intel/vulkan/anv_image.c
index cea46ce..b9bf6b8 100644
--- a/src/intel/vulkan/anv_image.c
+++ b/src/intel/vulkan/anv_image.c
@@ -297,7 +297,7 @@ VkResult anv_BindImageMemory(
image->offset = 0;
}
- if (anv_image_has_hiz(image)) {
+ if (image->aux_surface.isl.size > 0) {
/* The offset and size must be a multiple of 4K or else the
* anv_gem_mmap call below will return NULL.
@@ -305,9 +305,11 @@ VkResult anv_BindImageMemory(
assert((image->offset + image->aux_surface.offset) % 4096 == 0);
assert(image->aux_surface.isl.size % 4096 == 0);
- /* 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.
+ /* Auxiliary surfaces need to have their memory cleared to 0 before they
+ * can be used. For CCS surfaces, this puts them in the "resolved"
+ * state so they can be used with CCS enabled before we ever touch it
+ * from the GPU. For HiZ, we need something valid or else we may get
+ * GPU hangs on some hardware and 0 works fine.
*/
void *map = anv_gem_mmap(device, image->bo->gem_handle,
image->offset + image->aux_surface.offset,
More information about the mesa-commit
mailing list