i965: Use tex_mocs instead of rb_mocs for GL images.
authorKenneth Graunke <kenneth@whitecape.org>
Mon, 18 Jul 2016 23:55:28 +0000 (16:55 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Wed, 20 Jul 2016 00:34:59 +0000 (17:34 -0700)
Fixes a 10-20% performance regression in OglCSDof caused by commit
5a8c89038abab0184ea72664ab390ec6ca58b4d6, which made images (in the
image load/store sense) use BDW_MOCS_PTE instead of BDW_MOCS_WB.

This seems sketchy, as the default PTE value is supposed to be
WB LLC eLLC, which is the same as our MOCS WB setting.  It's only
supposed to change when using a surface for display, which won't
ever happen for images.  Something may be wrong in the kernel...

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
src/mesa/drivers/dri/i965/brw_wm_surface_state.c

index d89678918d086a439c34112c312cdcdd15750a08..87f8601b0ac916fa3a8c963bf1a5bd7ba4ededdc 100644 (file)
@@ -1516,7 +1516,7 @@ update_image_surface(struct brw_context *brw,
             const int surf_index = surf_offset - &brw->wm.base.surf_offset[0];
 
             brw_emit_surface_state(brw, mt, &view,
-                                   surface_state_infos[brw->gen].rb_mocs, false,
+                                   surface_state_infos[brw->gen].tex_mocs, false,
                                    surf_offset, surf_index,
                                    I915_GEM_DOMAIN_SAMPLER,
                                    access == GL_READ_ONLY ? 0 :