On Mon, Feb 05, 2018 at 02:34:58PM -0800, Jason Ekstrand wrote: > These are the same as pending clear aspects only for the "load" > operation. > --- > src/intel/vulkan/anv_private.h | 1 + > src/intel/vulkan/genX_cmd_buffer.c | 22 ++++++++++++++++------ > 2 files changed, 17 insertions(+), 6 deletions(-) >
This patch is Reviewed-by: Nanley Chery <nanley.g.ch...@intel.com> > diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h > index 906c6f3..d424498 100644 > --- a/src/intel/vulkan/anv_private.h > +++ b/src/intel/vulkan/anv_private.h > @@ -1678,6 +1678,7 @@ struct anv_attachment_state { > > VkImageLayout current_layout; > VkImageAspectFlags pending_clear_aspects; > + VkImageAspectFlags pending_load_aspects; > bool fast_clear; > VkClearValue clear_value; > bool clear_color_is_zero_one; > diff --git a/src/intel/vulkan/genX_cmd_buffer.c > b/src/intel/vulkan/genX_cmd_buffer.c > index 608f5ee..2590ea3 100644 > --- a/src/intel/vulkan/genX_cmd_buffer.c > +++ b/src/intel/vulkan/genX_cmd_buffer.c > @@ -1123,26 +1123,36 @@ genX(cmd_buffer_setup_attachments)(struct > anv_cmd_buffer *cmd_buffer, > struct anv_render_pass_attachment *att = &pass->attachments[i]; > VkImageAspectFlags att_aspects = vk_format_aspects(att->format); > VkImageAspectFlags clear_aspects = 0; > + VkImageAspectFlags load_aspects = 0; > > if (att_aspects & VK_IMAGE_ASPECT_ANY_COLOR_BIT_ANV) { > /* color attachment */ > if (att->load_op == VK_ATTACHMENT_LOAD_OP_CLEAR) { > clear_aspects |= VK_IMAGE_ASPECT_COLOR_BIT; > + } else if (att->load_op == VK_ATTACHMENT_LOAD_OP_LOAD) { > + load_aspects |= VK_IMAGE_ASPECT_COLOR_BIT; > } > } else { > /* depthstencil attachment */ > - if ((att_aspects & VK_IMAGE_ASPECT_DEPTH_BIT) && > - att->load_op == VK_ATTACHMENT_LOAD_OP_CLEAR) { > - clear_aspects |= VK_IMAGE_ASPECT_DEPTH_BIT; > + if (att_aspects & VK_IMAGE_ASPECT_DEPTH_BIT) { > + if (att->load_op == VK_ATTACHMENT_LOAD_OP_CLEAR) { > + clear_aspects |= VK_IMAGE_ASPECT_DEPTH_BIT; > + } else if (att->load_op == VK_ATTACHMENT_LOAD_OP_LOAD) { > + load_aspects |= VK_IMAGE_ASPECT_DEPTH_BIT; > + } > } > - if ((att_aspects & VK_IMAGE_ASPECT_STENCIL_BIT) && > - att->stencil_load_op == VK_ATTACHMENT_LOAD_OP_CLEAR) { > - clear_aspects |= VK_IMAGE_ASPECT_STENCIL_BIT; > + if (att_aspects & VK_IMAGE_ASPECT_STENCIL_BIT) { > + if (att->stencil_load_op == VK_ATTACHMENT_LOAD_OP_CLEAR) { > + clear_aspects |= VK_IMAGE_ASPECT_STENCIL_BIT; > + } else if (att->stencil_load_op == > VK_ATTACHMENT_LOAD_OP_LOAD) { > + load_aspects |= VK_IMAGE_ASPECT_STENCIL_BIT; > + } > } > } > > state->attachments[i].current_layout = att->initial_layout; > state->attachments[i].pending_clear_aspects = clear_aspects; > + state->attachments[i].pending_load_aspects = load_aspects; > if (clear_aspects) > state->attachments[i].clear_value = begin->pClearValues[i]; > > -- > 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