anv: Put MOCS in the correct location
authorKenneth Graunke <kenneth@whitecape.org>
Thu, 14 Feb 2019 16:55:37 +0000 (08:55 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 14 Feb 2019 19:03:28 +0000 (11:03 -0800)
My patch to switch from struct-based MOCS to numeric MOCS accidentally
divided all MOCS entries by 2 in the Vulkan driver.

MOCS on Gen9+ is just an array index into a table.  But in the hardware
packets, the index starts at bit 1.  So we need to shift it.

Fixes: 0b44644ca68 (genxml: Consistently use a numeric "MOCS" field)
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
src/intel/vulkan/anv_private.h

index 60da96a134eb4d002926aa8bf912850ac8e689e1..faa2d9a95a4bbb42630d8a418503035c77ef8495 100644 (file)
@@ -1455,10 +1455,10 @@ _anv_combine_address(struct anv_batch *batch, void *location,
  */
 
 /* TC=LLC/eLLC, LeCC=WB, LRUM=3, L3CC=WB */
-#define GEN9_MOCS 2
+#define GEN9_MOCS (2 << 1)
 
 /* TC=LLC/eLLC, LeCC=WB, LRUM=3, L3CC=WB */
-#define GEN9_EXTERNAL_MOCS 1
+#define GEN9_EXTERNAL_MOCS (1 << 1)
 
 /* Cannonlake MOCS defines are duplicates of Skylake MOCS defines. */
 #define GEN10_MOCS GEN9_MOCS