<p dir="ltr">Looks good to me. Curro, do you see anything wrong with this?</p>
<p dir="ltr">--Jason</p>
<div class="gmail_extra"><br><div class="gmail_quote">On Sep 26, 2016 7:31 AM, "Lionel Landwerlin" <<a href="mailto:llandwerlin@gmail.com">llandwerlin@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Anv programs the hardware to use L3 data cache if we use either SSBOs or<br>
images in the shaders, we can program i965 the same way.<br>
<br>
gl_shader_program has a bit of a confusing named field with<br>
'NumAtomicBuffers'. It doesn't tell how many buffers are accessed by the<br>
shader in an atomic way but instead the number of atomic counters<br>
manipulated by the shader.<br>
<br>
Signed-off-by: Lionel Landwerlin <<a href="mailto:lionel.g.landwerlin@intel.com">lionel.g.landwerlin@intel.com</a><wbr>><br>
Cc: Jason Ekstrand <<a href="mailto:jason@jlekstrand.net">jason@jlekstrand.net</a>><br>
---<br>
 src/mesa/drivers/dri/i965/<wbr>gen7_l3_state.c | 3 ++-<br>
 1 file changed, 2 insertions(+), 1 deletion(-)<br>
<br>
diff --git a/src/mesa/drivers/dri/i965/<wbr>gen7_l3_state.c b/src/mesa/drivers/dri/i965/<wbr>gen7_l3_state.c<br>
index 92e8788..fdaea81 100644<br>
--- a/src/mesa/drivers/dri/i965/<wbr>gen7_l3_state.c<br>
+++ b/src/mesa/drivers/dri/i965/<wbr>gen7_l3_state.c<br>
@@ -55,7 +55,8 @@ get_pipeline_state_l3_weights(<wbr>const struct brw_context *brw)<br>
          prog ? prog->_LinkedShaders[stage_<wbr>states[i]->stage] : NULL;<br>
       const struct brw_stage_prog_data *prog_data = stage_states[i]->prog_data;<br>
<br>
-      needs_dc |= (prog && prog->NumAtomicBuffers) ||<br>
+      needs_dc |= (prog && (prog->NumAtomicBuffers ||<br>
+                            prog->NumShaderStorageBlocks)) ||<br>
          (shader && shader->NumImages) ||<br>
          (prog_data && prog_data->total_scratch);<br>
       needs_slm |= prog_data && prog_data->total_shared;<br>
--<br>
2.9.3<br>
<br>
</blockquote></div></div>