<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Mar 21, 2017 at 7:23 AM, Samuel Iglesias Gonsálvez <span dir="ltr"><<a href="mailto:siglesias@igalia.com" target="_blank">siglesias@igalia.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Input attachments are clear-color aware on Sky Lake, so we<br>
can frequently sample from them with no resolves at all. However<br>
on Broadwell we still need to do a a resolve between the subpass<br>
that writes and the subpass that reads.<br></blockquote><div><br></div><div>In theory, we shouldn't always need to do a resolve.  Broadwell is supposed (maybe it doesn't work?) to support sampling from fast-cleared buffers and I thought it was hooked up correctly.  Is this only an issue for certain clear colors?  I have a feeling there's something more subtle going on here.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Fixes 16 tests on BDW:<br>
<br>
dEQP-VK.renderpass.formats.*.<wbr>input.clear.store.self_dep*<br>
<br>
Signed-off-by: Samuel Iglesias Gonsálvez <<a href="mailto:siglesias@igalia.com">siglesias@igalia.com</a>><br>
---<br>
 src/intel/vulkan/anv_blorp.c | 9 ++++++---<br>
 1 file changed, 6 insertions(+), 3 deletions(-)<br>
<br>
diff --git a/src/intel/vulkan/anv_blorp.c b/src/intel/vulkan/anv_blorp.c<br>
index 1f4fec5f35b..2fa56f49d18 100644<br>
--- a/src/intel/vulkan/anv_blorp.c<br>
+++ b/src/intel/vulkan/anv_blorp.c<br>
@@ -1504,10 +1504,13 @@ ccs_resolve_attachment(struct anv_cmd_buffer *cmd_buffer,<br>
           */<br>
       }<br>
    } else if (usage & ANV_SUBPASS_USAGE_INPUT) {<br>
-      /* Input attachments are clear-color aware so, at least on Sky Lake, we<br>
-       * can frequently sample from them with no resolves at all.<br>
+      /* Input attachments are clear-color aware on Sky Lake, so we<br>
+       * can frequently sample from them with no resolves at all. However<br>
+       * on Broadwell we still need to do resolves.<br>
        */<br>
-      if (att_state->aux_usage != att_state->input_aux_usage) {<br>
+      if (cmd_buffer->device->info.gen < 9) {<br>
+         resolve_op = BLORP_FAST_CLEAR_OP_RESOLVE_<wbr>FULL;<br>
+      } else if (att_state->aux_usage != att_state->input_aux_usage) {<br>
          assert(att_state->input_aux_<wbr>usage == ISL_AUX_USAGE_NONE);<br>
          resolve_op = BLORP_FAST_CLEAR_OP_RESOLVE_<wbr>FULL;<br>
       } else if (!att_state->clear_color_is_<wbr>zero_one) {<br>
<span class="HOEnZb"><font color="#888888">--<br>
2.11.0<br>
<br>
</font></span></blockquote></div><br></div></div>