On Wed, Jan 11, 2017 at 5:55 PM, Nanley Chery <nanleych...@gmail.com> wrote:
> Signed-off-by: Nanley Chery <nanley.g.ch...@intel.com> > --- > src/intel/vulkan/anv_image.c | 17 +++++++++++++---- > src/intel/vulkan/genX_cmd_buffer.c | 10 ++++------ > 2 files changed, 17 insertions(+), 10 deletions(-) > > diff --git a/src/intel/vulkan/anv_image.c b/src/intel/vulkan/anv_image.c > index d821629191..f8a21c2982 100644 > --- a/src/intel/vulkan/anv_image.c > +++ b/src/intel/vulkan/anv_image.c > @@ -182,6 +182,14 @@ make_surface(const struct anv_device *dev, > */ > if (!(image->usage & VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT)) > { > /* It will never be used as an attachment, HiZ is pointless. */ > + } else if (image->usage & VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT) { > + /* It will never have a layout of > + * VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, so HiZ is > + * currently pointless. If transfer operations learn to use the > HiZ > + * buffer, we can enable HiZ for VK_IMAGE_LAYOUT_GENERAL and > support > + * input attachments. > + */ > >From the 1.0.37 spec: "An attachment used as an input attachment and depth/stencil attachment must be in either VK_IMAGE_LAYOUT_GENERAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL." So it can happen. Since gen8 can texture from HiZ, this shouldn't be a problem. I think we'll need this for gen7 though. > + anv_finishme("Implement HiZ for input attachments"); > } else if (!env_var_as_boolean("INTEL_VK_HIZ", dev->info.gen >= > 8)) { > anv_finishme("Implement gen7 HiZ"); > } else if (vk_info->mipLevels > 1) { > @@ -529,14 +537,15 @@ anv_CreateImageView(VkDevice _device, > if (surf_usage == ISL_AUX_USAGE_HIZ) > surf_usage = ISL_AUX_USAGE_NONE; > > - /* Input attachment surfaces for color or depth are allocated and > filled > + /* Input attachment surfaces for color are allocated and filled > * out at BeginRenderPass time because they need compression > information. > - * Stencil image do not support compression so we just use the texture > - * surface from the image view. > + * Compression is not yet enabled for depth textures and stencil > doesn't > + * allow compression so we can just use the texture surface state from > the > + * view. > */ > if (image->usage & VK_IMAGE_USAGE_SAMPLED_BIT || > (image->usage & VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT && > - (iview->aspect_mask & VK_IMAGE_ASPECT_STENCIL_BIT))) { > + !(iview->aspect_mask & VK_IMAGE_ASPECT_COLOR_BIT))) { > iview->sampler_surface_state = alloc_surface_state(device); > > struct isl_view view = iview->isl; > diff --git a/src/intel/vulkan/genX_cmd_buffer.c > b/src/intel/vulkan/genX_cmd_buffer.c > index baa932e517..1793c4df26 100644 > --- a/src/intel/vulkan/genX_cmd_buffer.c > +++ b/src/intel/vulkan/genX_cmd_buffer.c > @@ -303,11 +303,11 @@ need_input_attachment_state(const struct > anv_render_pass_attachment *att) > if (!(att->usage & VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT)) > return false; > > - /* We only allocate input attachment states for color and depth > surfaces. > - * Stencil doesn't allow compression so we can just use the texture > surface > - * state from the view > + /* We only allocate input attachment states for color surfaces. > Compression > + * is not yet enabled for depth textures and stencil doesn't allow > + * compression so we can just use the texture surface state from the > view. > */ > - return vk_format_is_color(att->format) || vk_format_has_depth(att-> > format); > + return vk_format_is_color(att->format); > } > > static enum isl_aux_usage > @@ -518,8 +518,6 @@ genX(cmd_buffer_setup_attachments)(struct > anv_cmd_buffer *cmd_buffer, > const struct isl_surf *surf; > if (att_aspects == VK_IMAGE_ASPECT_COLOR_BIT) { > surf = &iview->image->color_surface.isl; > - } else { > - surf = &iview->image->depth_surface.isl; > } > > struct isl_view view = iview->isl; > -- > 2.11.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