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"