<div dir="ltr">On 6 February 2013 23:26, Kenneth Graunke <span dir="ltr"><<a href="mailto:kenneth@whitecape.org" target="_blank">kenneth@whitecape.org</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Haswell's "Data Cache" data port is a single unit, but split into two<br>
SFIDs to allow for more message types without adding more bits in the<br>
message descriptor.<br>
<br>
Untyped Atomic Operations are now message 0010 in the second data cache<br>
data port, rather than 6 in the first.<br>
<br>
NOTE: This is a candidate for the 9.1 branch.<br>
Cc: Eric Anholt <<a href="mailto:eric@anholt.net">eric@anholt.net</a>><br>
Signed-off-by: Kenneth Graunke <<a href="mailto:kenneth@whitecape.org">kenneth@whitecape.org</a>><br>
---<br>
 src/mesa/drivers/dri/i965/brw_defines.h |  1 +<br>
 src/mesa/drivers/dri/i965/brw_eu_emit.c | 10 ++++++----<br>
 2 files changed, 7 insertions(+), 4 deletions(-)<br>
<br>
diff --git a/src/mesa/drivers/dri/i965/brw_defines.h b/src/mesa/drivers/dri/i965/brw_defines.h<br>
index 79cc12f..849d127 100644<br>
--- a/src/mesa/drivers/dri/i965/brw_defines.h<br>
+++ b/src/mesa/drivers/dri/i965/brw_defines.h<br>
@@ -857,6 +857,7 @@ enum brw_message_target {<br>
    GEN6_SFID_DATAPORT_CONSTANT_CACHE = 9,<br>
<br>
    GEN7_SFID_DATAPORT_DATA_CACHE     = 10,<br>
+   HSW_SFID_DATAPORT_DATA_CACHE_1    = 12,<br>
 };<br>
<br>
 #define GEN7_MESSAGE_TARGET_DP_DATA_CACHE     10<br>
diff --git a/src/mesa/drivers/dri/i965/brw_eu_emit.c b/src/mesa/drivers/dri/i965/brw_eu_emit.c<br>
index b34754a..cb58231 100644<br>
--- a/src/mesa/drivers/dri/i965/brw_eu_emit.c<br>
+++ b/src/mesa/drivers/dri/i965/brw_eu_emit.c<br>
@@ -2539,15 +2539,17 @@ void brw_shader_time_add(struct brw_compile *p,<br>
    brw_set_src0(p, send, brw_vec1_reg(BRW_MESSAGE_REGISTER_FILE,<br>
                                       base_mrf, 0));<br>
<br>
+   unsigned sfid = GEN7_SFID_DATAPORT_DATA_CACHE;<br>
+   if (intel->is_haswell)<br>
+      sfid = HSW_SFID_DATAPORT_DATA_CACHE_1;<br>
+<br>
    bool header_present = false;<br>
    bool eot = false;<br>
    uint32_t mlen = 2; /* offset, value */<br>
    uint32_t rlen = 0;<br>
-   brw_set_message_descriptor(p, send,<br>
-                              GEN7_SFID_DATAPORT_DATA_CACHE,<br>
-                              mlen, rlen, header_present, eot);<br>
+   brw_set_message_descriptor(p, send, sfid, mlen, rlen, header_present, eot);<br>
<br>
-   send->bits3.ud |= 6 << 14; /* untyped atomic op */<br>
+   send->bits3.ud |= (intel->is_haswell ? 2 : 6) << 14; /* untyped atomic op */<br></blockquote><div><br></div><div>Can we put the 2 and 6 in a #define somewhere (and maybe reference the appropriate page in the PRM, at least in the case of IVB)?<br>
</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
    send->bits3.ud |= 0 << 13; /* no return data */<br>
    send->bits3.ud |= 1 << 12; /* SIMD8 mode */<br>
    send->bits3.ud |= BRW_AOP_ADD << 8;<br>
<span class="HOEnZb"><font color="#888888">--<br>
1.8.1.1<br>
<br>
_______________________________________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/mesa-dev" target="_blank">http://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</font></span></blockquote></div><br></div></div>