On Fri, Oct 28, 2016 at 02:17:05AM -0700, Jason Ekstrand wrote: > Signed-off-by: Jason Ekstrand <ja...@jlekstrand.net> > --- > src/intel/vulkan/anv_image.c | 16 ++++++++-------- > src/intel/vulkan/anv_private.h | 5 +++-- > src/intel/vulkan/genX_cmd_buffer.c | 10 +++++----- > 3 files changed, 16 insertions(+), 15 deletions(-) > > diff --git a/src/intel/vulkan/anv_image.c b/src/intel/vulkan/anv_image.c > index 6151d8e..2104901 100644 > --- a/src/intel/vulkan/anv_image.c > +++ b/src/intel/vulkan/anv_image.c > @@ -190,8 +190,8 @@ make_surface(const struct anv_device *dev, > anv_finishme("Test gen8 multisampled HiZ"); > } else { > isl_surf_get_hiz_surf(&dev->isl_dev, &image->depth_surface.isl, > - &image->hiz_surface.isl); > - add_surface(image, &image->hiz_surface); > + &image->aux_surface.isl); > + add_surface(image, &image->aux_surface); > } > } > > @@ -298,16 +298,16 @@ VkResult anv_BindImageMemory( > /* The offset and size must be a multiple of 4K or else the > * anv_gem_mmap call below will return NULL. > */ > - assert((image->offset + image->hiz_surface.offset) % 4096 == 0); > - assert(image->hiz_surface.isl.size % 4096 == 0); > + 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. > */ > void *map = anv_gem_mmap(device, image->bo->gem_handle, > - image->offset + image->hiz_surface.offset, > - image->hiz_surface.isl.size, > + image->offset + image->aux_surface.offset, > + image->aux_surface.isl.size, > device->info.has_llc ? 0 : I915_MMAP_WC); > > /* If anv_gem_mmap returns NULL, it's likely that the kernel was > @@ -316,9 +316,9 @@ VkResult anv_BindImageMemory( > if (map == NULL) > return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY); > > - memset(map, 0, image->hiz_surface.isl.size); > + memset(map, 0, image->aux_surface.isl.size); > > - anv_gem_munmap(map, image->hiz_surface.isl.size); > + anv_gem_munmap(map, image->aux_surface.isl.size); > } > > return VK_SUCCESS; > diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h > index b135dc9..f05bf91 100644 > --- a/src/intel/vulkan/anv_private.h > +++ b/src/intel/vulkan/anv_private.h > @@ -1528,10 +1528,11 @@ struct anv_image { > > struct { > struct anv_surface depth_surface; > - struct anv_surface hiz_surface; > struct anv_surface stencil_surface; > }; > }; > + > + struct anv_surface aux_surface; > }; > > static inline uint32_t > @@ -1596,7 +1597,7 @@ anv_image_has_hiz(const struct anv_image *image) > * a union. > */
The comment in this function must also be updated as it's no longer true with this change. -Nanley > return (image->aspects & VK_IMAGE_ASPECT_DEPTH_BIT) && > - image->hiz_surface.isl.size > 0; > + image->aux_surface.isl.size > 0; > } > > struct anv_buffer_view { > diff --git a/src/intel/vulkan/genX_cmd_buffer.c > b/src/intel/vulkan/genX_cmd_buffer.c > index a5e4d0e..a87e5a3 100644 > --- a/src/intel/vulkan/genX_cmd_buffer.c > +++ b/src/intel/vulkan/genX_cmd_buffer.c > @@ -1876,10 +1876,10 @@ cmd_buffer_emit_depth_stencil(struct anv_cmd_buffer > *cmd_buffer) > if (has_hiz) { > anv_batch_emit(&cmd_buffer->batch, GENX(3DSTATE_HIER_DEPTH_BUFFER), > hdb) { > hdb.HierarchicalDepthBufferObjectControlState = GENX(MOCS); > - hdb.SurfacePitch = image->hiz_surface.isl.row_pitch - 1; > + hdb.SurfacePitch = image->aux_surface.isl.row_pitch - 1; > hdb.SurfaceBaseAddress = (struct anv_address) { > .bo = image->bo, > - .offset = image->offset + image->hiz_surface.offset, > + .offset = image->offset + image->aux_surface.offset, > }; > #if GEN_GEN >= 8 > /* From the SKL PRM Vol2a: > @@ -1891,9 +1891,9 @@ cmd_buffer_emit_depth_stencil(struct anv_cmd_buffer > *cmd_buffer) > * - SURFTYPE_3D: distance in rows between R - slices > */ > hdb.SurfaceQPitch = > - image->hiz_surface.isl.dim == ISL_SURF_DIM_1D ? > - isl_surf_get_array_pitch_el(&image->hiz_surface.isl) >> 2 : > - isl_surf_get_array_pitch_el_rows(&image->hiz_surface.isl) >> > 2; > + image->aux_surface.isl.dim == ISL_SURF_DIM_1D ? > + isl_surf_get_array_pitch_el(&image->aux_surface.isl) >> 2 : > + isl_surf_get_array_pitch_el_rows(&image->aux_surface.isl) >> > 2; > #endif > } > } else { > -- > 2.5.0.400.gff86faf > > _______________________________________________ > 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