Add a new command streamer usage (#276)
diff --git a/Source/GmmLib/CachePolicy/GmmCachePolicyResourceUsageDefinitions.h b/Source/GmmLib/CachePolicy/GmmCachePolicyResourceUsageDefinitions.h
index 820e93c..cb3a595 100644
--- a/Source/GmmLib/CachePolicy/GmmCachePolicyResourceUsageDefinitions.h
+++ b/Source/GmmLib/CachePolicy/GmmCachePolicyResourceUsageDefinitions.h
@@ -358,3 +358,4 @@
 DEFINE_RESOURCE_USAGE(GMM_RESOURCE_USAGE_COARSE_GRAINED_COHERENT)
 DEFINE_RESOURCE_USAGE(GMM_RESOURCE_USAGE_FINE_GRAINED_COHERENT)
 DEFINE_RESOURCE_USAGE(GMM_RESOURCE_USAGE_FINE_GRAINED_COHERENT_MULTI_WRITE)
+DEFINE_RESOURCE_USAGE(GMM_RESOURCE_USAGE_FINE_GRAINED_COHERENT_VIA_PAT)
diff --git a/Source/GmmLib/CachePolicy/GmmGen12CachePolicy.h b/Source/GmmLib/CachePolicy/GmmGen12CachePolicy.h
index 98843d1..5cf583f 100644
--- a/Source/GmmLib/CachePolicy/GmmGen12CachePolicy.h
+++ b/Source/GmmLib/CachePolicy/GmmGen12CachePolicy.h
@@ -315,6 +315,7 @@
 DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_COARSE_GRAINED_COHERENT								  , 1   , 1    , 1  , 0  , 3 ,    0,     0,       0,      0,    0,   0,    0,    RO);
 DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_FINE_GRAINED_COHERENT								  , 1   , 0    , 0  , 0  , 3 ,    0,     0,       0,      0,    0,   0,    0,    NA);
 DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_FINE_GRAINED_COHERENT_MULTI_WRITE					  , 1   , 0    , 0  , 0  , 3 ,    0,     0,       0,      0,    0,   0,    0,    NA);
+DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_FINE_GRAINED_COHERENT_VIA_PAT						  , 1   , 0    , 0  , 0  , 3 ,    0,     0,       0,      0,    0,   0,    0,    NA);
 
 #include "GmmCachePolicyUndefineConditionals.h"
 
diff --git a/Source/GmmLib/CachePolicy/GmmGen12dGPUCachePolicy.h b/Source/GmmLib/CachePolicy/GmmGen12dGPUCachePolicy.h
index 687266a..93b7132 100644
--- a/Source/GmmLib/CachePolicy/GmmGen12dGPUCachePolicy.h
+++ b/Source/GmmLib/CachePolicy/GmmGen12dGPUCachePolicy.h
@@ -305,6 +305,7 @@
 DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_COARSE_GRAINED_COHERENT								  , 1   , 0    ,   0  ,  0 ,  1,    1);
 DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_FINE_GRAINED_COHERENT								  , 0   , 0    ,   0  ,  1 ,  0,    0);
 DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_FINE_GRAINED_COHERENT_MULTI_WRITE					  , 0   , 0    ,   0  ,  1 ,  0,    0);
+DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_FINE_GRAINED_COHERENT_VIA_PAT                         , 0   , 0    ,   0  ,  1 ,  0,    0);
 
 #include "GmmCachePolicyUndefineConditionals.h"
 
diff --git a/Source/GmmLib/CachePolicy/GmmXe2_LPGCachePolicy.h b/Source/GmmLib/CachePolicy/GmmXe2_LPGCachePolicy.h
index 686c8ad..3e9caf5 100644
--- a/Source/GmmLib/CachePolicy/GmmXe2_LPGCachePolicy.h
+++ b/Source/GmmLib/CachePolicy/GmmXe2_LPGCachePolicy.h
@@ -298,7 +298,8 @@
 DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_DEFAULT                                         , 1,         0,     0 ,      0,	     0,       0,        1   ,	  NoP);
 DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_COARSE_GRAINED_COHERENT                         , 1,         0,     0 ,      0,	     0,       1,        1   ,	  NoP);
 DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_FINE_GRAINED_COHERENT                           , 1,         0,     0 ,      0,	     0,       2,        1   ,	  NoP);
-DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_FINE_GRAINED_COHERENT_MULTI_WRITE               , 1,         0,     0 ,      0,	     0,       2,        IgPAT,	  NoP);
+DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_FINE_GRAINED_COHERENT_MULTI_WRITE               , 1,         0,     0 ,      0,	     0,       2,       IgPAT,	  NoP);
+DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_FINE_GRAINED_COHERENT_VIA_PAT                   , 1,         0,     0 ,      0,      0,       2,        0   ,     NoP);
 
 // clang-format on
 
diff --git a/Source/GmmLib/CachePolicy/GmmXe3P_XPCCachePolicy.h b/Source/GmmLib/CachePolicy/GmmXe3P_XPCCachePolicy.h
index 6a5cad5..a0709af 100644
--- a/Source/GmmLib/CachePolicy/GmmXe3P_XPCCachePolicy.h
+++ b/Source/GmmLib/CachePolicy/GmmXe3P_XPCCachePolicy.h
@@ -301,6 +301,15 @@
 DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_COPY_SOURCE                                     , 0,         0,     0 ,      0,	     0,       0,        1,	  NoP);
 DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_COPY_DEST                                       , 0,         0,     0 ,      0,      0,       0,        1,	  NoP);
 
+// Usages for command streamer instructions.
+//                   USAGE TYPE                                                        , L3_CC,   L3_CLOS, L1CC,   L2CC,   L4CC,   Coherency, IgPAT)
+DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_DEFAULT                                         , 1,         0,     0 ,      0,      0,       0,        1,    NoP);
+DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_COARSE_GRAINED_COHERENT                         , 1,         0,     0 ,      0,      0,       1,        1,    NoP);
+DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_FINE_GRAINED_COHERENT                           , 1,         0,     0 ,      0,      0,       2,        1,    NoP);
+DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_FINE_GRAINED_COHERENT_MULTI_WRITE               , 1,         0,     0 ,      0,      0,       2,    IgPAT,    NoP);
+DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_FINE_GRAINED_COHERENT_VIA_PAT                   , 1,         0,     0 ,      0,      0,       2,        0,    NoP);
+
+
 // clang-format on
 
 #undef L3_WB
diff --git a/Source/GmmLib/CachePolicy/GmmXe_LPGCachePolicy.h b/Source/GmmLib/CachePolicy/GmmXe_LPGCachePolicy.h
index bb1a345..9219a76 100644
--- a/Source/GmmLib/CachePolicy/GmmXe_LPGCachePolicy.h
+++ b/Source/GmmLib/CachePolicy/GmmXe_LPGCachePolicy.h
@@ -258,6 +258,6 @@
 DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_COARSE_GRAINED_COHERENT							, 1	  , 0    ,   0  ,  1   ,       0 ,    0,     1,        1);
 DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_FINE_GRAINED_COHERENT						    , 0   , 0    ,   1  ,  1   ,       0 ,    0,     1,        1);
 DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_FINE_GRAINED_COHERENT_MULTI_WRITE			    , 0   , 0    ,   1  ,  1   ,       0 ,    0,     1,        0);
-
+DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_FINE_GRAINED_COHERENT_VIA_PAT					, 0   , 0    ,   1  ,  1   ,       0 ,    0,     1,        1);
 
 #include "GmmCachePolicyUndefineConditionals.h"