[Mesa-dev] [PATCH 2/5] anv/cmd_buffer: Delay variable assignment in HZ function
Jason Ekstrand
jason at jlekstrand.net
Mon Oct 10 23:01:29 UTC 2016
My patch to fix partial draws makes us use full_surface_op for HiZ resolves
as well so this patch (and maybe the next one?) are probably moot.
On Oct 10, 2016 3:33 PM, "Nanley Chery" <nanleychery at gmail.com> wrote:
> Delay the assignment of some variables until we know they will be used.
>
> Signed-off-by: Nanley Chery <nanley.g.chery at intel.com>
> ---
> src/intel/vulkan/gen8_cmd_buffer.c | 32 +++++++++++++++++---------------
> 1 file changed, 17 insertions(+), 15 deletions(-)
>
> diff --git a/src/intel/vulkan/gen8_cmd_buffer.c
> b/src/intel/vulkan/gen8_cmd_buffer.c
> index 02c2d7c..e88ab02 100644
> --- a/src/intel/vulkan/gen8_cmd_buffer.c
> +++ b/src/intel/vulkan/gen8_cmd_buffer.c
> @@ -410,7 +410,6 @@ void
> genX(cmd_buffer_emit_hz_op)(struct anv_cmd_buffer *cmd_buffer,
> enum blorp_hiz_op op)
> {
> - struct anv_cmd_state *cmd_state = &cmd_buffer->state;
> const struct anv_image_view *iview =
> anv_cmd_buffer_get_depth_stencil_view(cmd_buffer);
>
> @@ -421,21 +420,9 @@ genX(cmd_buffer_emit_hz_op)(struct anv_cmd_buffer
> *cmd_buffer,
> if (cmd_buffer->state.pass->subpass_count > 1)
> return;
>
> + struct anv_cmd_state *cmd_state = &cmd_buffer->state;
> const uint32_t ds = cmd_state->subpass->depth_stencil_attachment;
> -
> - /* Section 7.4. of the Vulkan 1.0.27 spec states:
> - *
> - * "The render area must be contained within the framebuffer
> dimensions."
> - *
> - * Therefore, the only way the extent of the render area can match
> that of
> - * the image view is if the render area offset equals (0, 0).
> - */
> - const bool full_surface_op =
> - cmd_state->render_area.extent.width == iview->extent.width
> &&
> - cmd_state->render_area.extent.height ==
> iview->extent.height;
> - if (full_surface_op)
> - assert(cmd_state->render_area.offset.x == 0 &&
> - cmd_state->render_area.offset.y == 0);
> + bool full_surface_op;
>
> /* This variable corresponds to the Pixel Dim column in the table
> below */
> struct isl_extent2d px_dim;
> @@ -447,6 +434,21 @@ genX(cmd_buffer_emit_hz_op)(struct anv_cmd_buffer
> *cmd_buffer,
> VK_ATTACHMENT_LOAD_OP_CLEAR)
> return;
>
> + /* Section 7.4. of the Vulkan 1.0.27 spec states:
> + *
> + * "The render area must be contained within the framebuffer
> dimensions."
> + *
> + * Therefore, the only way the extent of the render area can match
> that of
> + * the image view is if the render area offset equals (0, 0).
> + */
> + full_surface_op =
> + cmd_state->render_area.extent.width == iview->extent.width
> &&
> + cmd_state->render_area.extent.height ==
> iview->extent.height;
> + if (full_surface_op)
> + assert(cmd_state->render_area.offset.x == 0 &&
> + cmd_state->render_area.offset.y == 0);
> +
> +
> /* Apply alignment restrictions. Despite the BDW PRM mentioning
> this is
> * only needed for a depth buffer surface type of D16_UNORM, testing
> * showed it to be necessary for other depth formats as well
> --
> 2.10.0
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20161010/96d613fd/attachment.html>
More information about the mesa-dev
mailing list