anv/cmd_buffer: Clarify HZ rectangle behavior
authorNanley Chery <nanley.g.chery@intel.com>
Fri, 30 Sep 2016 17:28:18 +0000 (10:28 -0700)
committerNanley Chery <nanley.g.chery@intel.com>
Fri, 18 Nov 2016 20:12:34 +0000 (12:12 -0800)
This behavior differs from what's described in the PRMs and was
observed by analyzing CTS test results.

Signed-off-by: Nanley Chery <nanley.g.chery@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
src/intel/vulkan/gen8_cmd_buffer.c

index f1dfe7b8203e28cf0ffe8c25324b61e7c0a997b6..0b1d5bfe7cd7965eaa134c0143732f688b4791c4 100644 (file)
@@ -481,9 +481,10 @@ genX(cmd_buffer_emit_hz_op)(struct anv_cmd_buffer *cmd_buffer,
          hzp.ClearRectangleXMax = align_u32(iview->extent.width, 8);
          hzp.ClearRectangleYMax = align_u32(iview->extent.height, 4);
       } else {
-         /* This clear rectangle is aligned */
+         /* Contrary to the HW docs both fields are inclusive */
          hzp.ClearRectangleXMin = cmd_state->render_area.offset.x;
          hzp.ClearRectangleYMin = cmd_state->render_area.offset.y;
+         /* Contrary to the HW docs both fields are exclusive */
          hzp.ClearRectangleXMax = cmd_state->render_area.offset.x +
             align_u32(cmd_state->render_area.extent.width, px_dim.width);
          hzp.ClearRectangleYMax = cmd_state->render_area.offset.y +