xref: /aosp_15_r20/external/gmmlib/Source/GmmLib/CachePolicy/GmmGen8CachePolicy.h (revision 35ffd701415c9e32e53136d61a677a8d0a8fc4a5)
1*35ffd701SAndroid Build Coastguard Worker /*==============================================================================
2*35ffd701SAndroid Build Coastguard Worker Copyright(c) 2017 Intel Corporation
3*35ffd701SAndroid Build Coastguard Worker 
4*35ffd701SAndroid Build Coastguard Worker Permission is hereby granted, free of charge, to any person obtaining a
5*35ffd701SAndroid Build Coastguard Worker copy of this software and associated documentation files(the "Software"),
6*35ffd701SAndroid Build Coastguard Worker to deal in the Software without restriction, including without limitation
7*35ffd701SAndroid Build Coastguard Worker the rights to use, copy, modify, merge, publish, distribute, sublicense,
8*35ffd701SAndroid Build Coastguard Worker and / or sell copies of the Software, and to permit persons to whom the
9*35ffd701SAndroid Build Coastguard Worker Software is furnished to do so, subject to the following conditions:
10*35ffd701SAndroid Build Coastguard Worker 
11*35ffd701SAndroid Build Coastguard Worker The above copyright notice and this permission notice shall be included
12*35ffd701SAndroid Build Coastguard Worker in all copies or substantial portions of the Software.
13*35ffd701SAndroid Build Coastguard Worker 
14*35ffd701SAndroid Build Coastguard Worker THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15*35ffd701SAndroid Build Coastguard Worker OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16*35ffd701SAndroid Build Coastguard Worker FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17*35ffd701SAndroid Build Coastguard Worker THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
18*35ffd701SAndroid Build Coastguard Worker OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
19*35ffd701SAndroid Build Coastguard Worker ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
20*35ffd701SAndroid Build Coastguard Worker OTHER DEALINGS IN THE SOFTWARE.
21*35ffd701SAndroid Build Coastguard Worker ============================================================================*/
22*35ffd701SAndroid Build Coastguard Worker 
23*35ffd701SAndroid Build Coastguard Worker 
24*35ffd701SAndroid Build Coastguard Worker #include "GmmCachePolicyConditionals.h"
25*35ffd701SAndroid Build Coastguard Worker #define ULT (SKU(FtrULT))
26*35ffd701SAndroid Build Coastguard Worker #define EDRAM (_ELLC > MB(0))
27*35ffd701SAndroid Build Coastguard Worker 
28*35ffd701SAndroid Build Coastguard Worker // [!] On Gen8, according to bpsec TC = 11b means L3, LLC and eLLC cachable.
29*35ffd701SAndroid Build Coastguard Worker //     In order for resources to be places in L3, LLC/ELLC/L3 should be set to 1.
30*35ffd701SAndroid Build Coastguard Worker //     ELLC = EDRAM indicate resource needed in EDRAM but ELLC = 1 indicate resource needed in L3
31*35ffd701SAndroid Build Coastguard Worker 
32*35ffd701SAndroid Build Coastguard Worker // Cache Policy Definition
33*35ffd701SAndroid Build Coastguard Worker //********************************************************************************************************************/
34*35ffd701SAndroid Build Coastguard Worker //                   USAGE TYPE                                                         , LLC    , ELLC , L3 , WT , AGE )
35*35ffd701SAndroid Build Coastguard Worker /*********************************************************************************************************************/
36*35ffd701SAndroid Build Coastguard Worker 
37*35ffd701SAndroid Build Coastguard Worker // KMD Usages
38*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_BATCH_BUFFER                                    , 0      , 0    , 0  , 0  , 0 );
39*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_COMP_FRAME_BUFFER                               , 0      , 0    , 0  , 0  , 0 );
40*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_CONTEXT_SWITCH_BUFFER                           , 0      , 0    , 0  , 0  , 0 );
41*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_CURSOR                                          , 0      , 0    , 0  , 0  , 0 );
42*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_DISPLAY_STATIC_IMG_FOR_SMOOTH_ROTATION_BUFFER   , 0      , 0    , 0  , 0  , 0 );
43*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_DUMMY_PAGE                                      , 0      , 0    , 0  , 0  , 0 );
44*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_GDI_SURFACE                                     , 1      , 1    , 1  , 0  , 1 );
45*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_GENERIC_KMD_RESOURCE                            , 0      , 0    , 0  , 0  , 0 );
46*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_GFX_RING                                        , 0      , 0    , 0  , 0  , 0 );
47*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_GTT_TRANSFER_REGION                             , 0      , 0    , 0  , 0  , 0 );
48*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_HW_CONTEXT                                      , 0      , 0    , 0  , 0  , 0 );
49*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_STATE_MANAGER_KERNEL_STATE                      , 0      , 0    , 0  , 0  , 0 );
50*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_KMD_STAGING_SURFACE                             , 1      , 1    , 1  , 0  , 1 );
51*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_MBM_BUFFER                                      , 0      , 0    , 0  , 0  , 0 );
52*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_NNDI_BUFFER                                     , 0      , 0    , 0  , 0  , 0 );
53*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_OVERLAY_MBM                                     , 0      , 0    , 0  , 0  , 0 );
54*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_PRIMARY_SURFACE                                 , 1      , 1    , 1  , 1  , 1 );
55*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_SCREEN_PROTECTION_INTERMEDIATE_SURFACE          , 0      , 0    , 0  , 0  , 0 );
56*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_SHADOW_SURFACE                                  , !ULT   , 1    , 1  , 0  , 1 );
57*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_SM_SCRATCH_STATE                                , 0      , 0    , 0  , 0  , 0 );
58*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_STATUS_PAGE                                     , 1      , 1    , 1  , 0  , 1 );
59*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_TIMER_PERF_QUEUE                                , 0      , 0    , 0  , 0  , 0 );
60*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_UNKNOWN                                         , 0      , 0    , 0  , 0  , 0 );
61*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_UNMAP_PAGING_RESERVED_GTT_DMA_BUFFER            , 0      , 0    , 0  , 0  , 0 );
62*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_VSC_BATCH_BUFFER                                , 0      , 0    , 0  , 0  , 0 );
63*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_WA_BATCH_BUFFER                                 , 0      , 0    , 0  , 0  , 0 );
64*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_KMD_OCA_BUFFER                                  , 0      , 0    , 0  , 0  , 0 );
65*35ffd701SAndroid Build Coastguard Worker 
66*35ffd701SAndroid Build Coastguard Worker //
67*35ffd701SAndroid Build Coastguard Worker // 3D Usages
68*35ffd701SAndroid Build Coastguard Worker //
69*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_BINDING_TABLE_POOL                              , 1     , 1     , 1  , 0  , 3 );
70*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_CONSTANT_BUFFER_POOL                            , 1     , 1     , 1  , 0  , 3 );
71*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_DEPTH_BUFFER                                    , !EDRAM, EDRAM , 0  , 0  , 1 );
72*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_DISPLAYABLE_RENDER_TARGET                       , 0     , EDRAM , 0  , EDRAM  , 1 );
73*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_GATHER_POOL                                     , 0     , EDRAM , 0  , 0  , 1 );
74*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_HEAP_SURFACE_STATE                              , 1     , 1     , 1  , 0  , 3 );
75*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_HEAP_DYNAMIC_STATE                              , 1     , 1     , 1  , 0  , 3 );
76*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_HEAP_GENERAL_STATE                              , 1     , 1     , 1  , 0  , 3 );
77*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_HEAP_STATELESS_DATA_PORT                        , 1     , 1     , 1  , 0  , 3 );
78*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_HEAP_INDIRECT_OBJECT                            , 1     , 1     , 1  , 0  , 3 );
79*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_HEAP_INSTRUCTION                                , 1     , 1     , 1  , 0  , 3 );
80*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_HIZ                                             , 1     , 1     , 1  , 0  , 1 );
81*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_INDEX_BUFFER                                    , !EDRAM, EDRAM , 0  , 0  , 1 );
82*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_MCS                                             , 0     , EDRAM , 0  , 0  , 1 );
83*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_PUSH_CONSTANT_BUFFER                            , 0     , EDRAM , 0  , 0  , 1 );
84*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_PULL_CONSTANT_BUFFER                            , 1     , 1     , 1  , 0  , 3 );
85*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_QUERY                                           , 0     , EDRAM , 0  , 0  , 1 );
86*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_RENDER_TARGET                                   , 1     , 1     , 1  , 0  , 1 );
87*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_SHADER_RESOURCE                                 , 1     , 1     , 1  , 0  , 1 );
88*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_STAGING                                         , 0     , EDRAM , 0  , 0  , 1 );
89*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_STENCIL_BUFFER                                  , 0     , EDRAM , 0  , 0  , 1 );
90*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_STREAM_OUTPUT_BUFFER                            , 0     , EDRAM , 0  , 0  , 1 );
91*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_TILE_POOL                                       , 0     , EDRAM , 0  , 0  , 1 );
92*35ffd701SAndroid Build Coastguard Worker // Tiled Resource
93*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_TILED_DEPTH_BUFFER                              , !EDRAM, EDRAM , 0  , 0  , 1 );
94*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_TILED_HIZ                                       , 1     , 1     , 1  , 0  , 1 );
95*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_TILED_MCS                                       , 0     , EDRAM , 0  , 0  , 1 );
96*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_TILED_RENDER_TARGET                             , 1     , 1     , 1  , 0  , 1 );
97*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_TILED_RENDER_TARGET_AND_SHADER_RESOURCE         , 1     , 1     , 1  , 0  , 1 );
98*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_TILED_SHADER_RESOURCE                           , 1     , 1     , 1  , 0  , 1 );
99*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_TILED_UAV                                       , 1     , 1     , 1  , 0  , 1 );
100*35ffd701SAndroid Build Coastguard Worker 
101*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_VERTEX_BUFFER                                   , 0     , EDRAM , 0  , 0  , 1 );
102*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_OGL_WSTN_VERTEX_BUFFER                          , 0     , EDRAM , 0  , 0  , 1 );
103*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_UAV                                             , 1     , 1     , 1  , 0  , 1 );
104*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_RENDER_TARGET_AND_SHADER_RESOURCE               , 1     , 1     , 1  , 0  , 1 );
105*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_WDDM_HISTORY_BUFFER                             , 0     , EDRAM , 0  , 0  , 1 );
106*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_CONTEXT_SAVE_RESTORE                            , 0     , EDRAM , 0  , 0  , 1 );
107*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_PROCEDURAL_TEXTURE                              , 0     , 0     , 0  , 0  , 0 );
108*35ffd701SAndroid Build Coastguard Worker 
109*35ffd701SAndroid Build Coastguard Worker //
110*35ffd701SAndroid Build Coastguard Worker // CM USAGES
111*35ffd701SAndroid Build Coastguard Worker //
112*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(CM_RESOURCE_USAGE_SurfaceState,                                            1   , 1    , 1  , 0  , 1 );
113*35ffd701SAndroid Build Coastguard Worker 
114*35ffd701SAndroid Build Coastguard Worker //
115*35ffd701SAndroid Build Coastguard Worker // MP USAGES
116*35ffd701SAndroid Build Coastguard Worker //
117*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(MP_RESOURCE_USAGE_BEGIN,                                                   0   , 0    , 0  , 0  , 0);
118*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(MP_RESOURCE_USAGE_DEFAULT,                                                 0   , 0    , 0  , 0  , 0);
119*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(MP_RESOURCE_USAGE_SurfaceState,                                            1   , 1    , 1  , 0  , 1);
120*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(MP_RESOURCE_USAGE_No_L3_SurfaceState,                                      1   , 1    , 0  , 0  , 1);
121*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(MP_RESOURCE_USAGE_No_LLC_L3_SurfaceState,                                  0   , 1    , 0  , 0  , 1);
122*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(MP_RESOURCE_USAGE_END,                                                     0   , 0    , 0  , 0  , 0);
123*35ffd701SAndroid Build Coastguard Worker 
124*35ffd701SAndroid Build Coastguard Worker //Media GMM Resource USAGES
125*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_PRE_DEBLOCKING_CODEC                              , 0   , 1    , 0  , 0  , 1);
126*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_POST_DEBLOCKING_CODEC                             , 0   , 1    , 0  , 0  , 1);
127*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_ORIGINAL_UNCOMPRESSED_PICTURE_ENCODE              , 0   , 1    , 0  , 0  , 1);
128*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_ORIGINAL_UNCOMPRESSED_PICTURE_DECODE              , 0   , 1    , 0  , 0  , 1);
129*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_STREAMOUT_DATA_CODEC                              , 0   , 1    , 0  , 0  , 1);
130*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_INTRA_ROWSTORE_SCRATCH_BUFFER_CODEC               , 1   , 1    , 0  , 0  , 1);
131*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_DEBLOCKINGFILTER_ROWSTORE_SCRATCH_BUFFER_CODEC    , 1   , 1    , 0  , 0  , 1);
132*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_REFERENCE_PICTURE_CODEC                           , 0   , 1    , 0  , 0  , 1);
133*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_MACROBLOCK_STATUS_BUFFER_CODEC                    , 0   , 1    , 0  , 0  , 1);
134*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_MFX_INDIRECT_BITSTREAM_OBJECT_DECODE              , 0   , 1    , 0  , 0  , 1);
135*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_MFX_INDIRECT_MV_OBJECT_CODEC                      , 0   , 1    , 0  , 0  , 1);
136*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_MFD_INDIRECT_IT_COEF_OBJECT_DECODE                , 0   , 1    , 0  , 0  , 1);
137*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_MFC_INDIRECT_PAKBASE_OBJECT_CODEC                 , 0   , 1    , 0  , 0  , 1);
138*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_BSDMPC_ROWSTORE_SCRATCH_BUFFER_CODEC              , 1   , 1    , 0  , 0  , 1);
139*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_MPR_ROWSTORE_SCRATCH_BUFFER_CODEC                 , 1   , 1    , 0  , 0  , 1);
140*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_BITPLANE_READ_CODEC                               , 0   , 1    , 0  , 0  , 1);
141*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_AACSBIT_VECTOR_CODEC                              , 0   , 1    , 0  , 0  , 1);
142*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_DIRECTMV_BUFFER_CODEC                             , 0   , 1    , 0  , 0  , 1);
143*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_SURFACE_CURR_ENCODE                               , 1   , 1    , 1  , 0  , 1);
144*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_SURFACE_REF_ENCODE                                , 1   , 1    , 1  , 0  , 1);
145*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_SURFACE_HME_DOWNSAMPLED_ENCODE                    , 1   , 1    , 1  , 0  , 1);
146*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_SURFACE_HME_DOWNSAMPLED_ENCODE_DST                , 1   , 1    , 0  , 0  , 1);
147*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_SURFACE_ME_DISTORTION_ENCODE                      , 1   , 1    , 1  , 0  , 1);
148*35ffd701SAndroid Build Coastguard Worker #if defined(__linux__) && !defined(ANDROID)
149*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_SURFACE_MV_DATA_ENCODE                            , 1   , 1    , 0  , 0  , 1);
150*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_SURFACE_BRC_ME_DISTORTION_ENCODE                  , 1   , 1    , 0  , 0  , 1);
151*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_PAK_OBJECT_ENCODE                                 , 1   , 1    , 0  , 0  , 1);
152*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_SURFACE_FLATNESS_CHECK_ENCODE                     , 1   , 1    , 0  , 0  , 1);
153*35ffd701SAndroid Build Coastguard Worker #else
154*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_SURFACE_MV_DATA_ENCODE                            , 1   , 1    , 1  , 0  , 1);
155*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_SURFACE_BRC_ME_DISTORTION_ENCODE                  , 1   , 1    , 1  , 0  , 1);
156*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_PAK_OBJECT_ENCODE                                 , 1   , 1    , 1  , 0  , 1);
157*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_SURFACE_FLATNESS_CHECK_ENCODE                     , 1   , 1    , 1  , 0  , 1);
158*35ffd701SAndroid Build Coastguard Worker #endif
159*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_SURFACE_MBENC_CURBE_ENCODE                        , 1   , 1    , 1  , 0  , 1);
160*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_VP8_BLOCK_MODE_COST_ENCODE                        , 1   , 1    , 1  , 0  , 1);
161*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_VP8_MB_MODE_COST_ENCODE                           , 1   , 1    , 1  , 0  , 1);
162*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_VP8_MBENC_OUTPUT_ENCODE                           , 1   , 1    , 0  , 0  , 1);
163*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_VP8_HISTOGRAM_ENCODE                              , 1   , 1    , 1  , 0  , 1);
164*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_VP8_L3_LLC_ENCODE                                 , 1   , 1    , 1  , 0  , 1);
165*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_HCP_MD_CODEC                                      , 1   , 1    , 0  , 0  , 1);
166*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_HCP_SAO_CODEC                                     , 1   , 1    , 0  , 0  , 1);
167*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_HCP_MV_CODEC                                      , 1   , 1    , 0  , 0  , 1);
168*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_SURFACE_MB_QP_CODEC                               , 1   , 1    , 1  , 0  , 1);
169*35ffd701SAndroid Build Coastguard Worker /**********************************************************************************/
170*35ffd701SAndroid Build Coastguard Worker 
171*35ffd701SAndroid Build Coastguard Worker //OCL Usages
172*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_OCL_BUFFER                                    , 1   , 1    , 1  , 0  , 1 );
173*35ffd701SAndroid Build Coastguard Worker // This case is used for cases where we have kernels compiled for BTI 253 (non-cohrent) and they are cacheline mis-aligned
174*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED               , 1   , 1    , 0  , 0  , 1 );
175*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_OCL_IMAGE                                     , 1   , 1    , 1  , 0  , 1 );
176*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_OCL_INLINE_CONST                              , 1   , 1    , 1  , 0  , 1 );
177*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_OCL_SCRATCH                                   , 1   , 1    , 1  , 0  , 1 );
178*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_OCL_PRIVATE_MEM                               , 1   , 1    , 1  , 0  , 1 );
179*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_OCL_PRINTF_BUFFER                             , 1   , 1    , 1  , 0  , 1 );
180*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_OCL_STATE_HEAP_BUFFER                         , 1   , 1    , 1  , 0  , 1 );
181*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_OCL_SYSTEM_MEMORY_BUFFER                      , 1   , 1    , 1  , 0  , 1 );
182*35ffd701SAndroid Build Coastguard Worker // This case is used for cases where we have kernels compiled for BTI 253 (non-cohrent) and they are cacheline mis-aligned
183*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_OCL_SYSTEM_MEMORY_BUFFER_CACHELINE_MISALIGNED , 1   , 1    , 0  , 0  , 1 );
184*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_OCL_ISH_HEAP_BUFFER                           , 1   , 1    , 1  , 0  , 1 );
185*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_OCL_TAG_MEMORY_BUFFER                         , 1   , 1    , 1  , 0  , 1 );
186*35ffd701SAndroid Build Coastguard Worker // Sampler overfetch issue is fixed on BDW
187*35ffd701SAndroid Build Coastguard Worker /*Project: BDW:B0+
188*35ffd701SAndroid Build Coastguard Worker For SURFTYPE_BUFFER, SURFTYPE_1D, and SURFTYPE_2D non-array, non-MSAA, non-mip-mapped surfaces in linear memory,
189*35ffd701SAndroid Build Coastguard Worker the only padding requirement is to the next aligned 64-byte boundary beyond the end of the surface.
190*35ffd701SAndroid Build Coastguard Worker The rest of the padding requirements documented above do not apply to these surfaces.*/
191*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_OCL_TEXTURE_BUFFER                            , 1   , 1    , 1  , 0  , 1 );
192*35ffd701SAndroid Build Coastguard Worker // Image from buffer when the image and buffer are on the kernel arguments list
193*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_OCL_IMAGE_FROM_BUFFER                         , 1   , 1    , 0  , 0  , 1 );
194*35ffd701SAndroid Build Coastguard Worker /**********************************************************************************/
195*35ffd701SAndroid Build Coastguard Worker 
196*35ffd701SAndroid Build Coastguard Worker // Cross Adapter
197*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT( GMM_RESOURCE_USAGE_XADAPTER_SHARED_RESOURCE                     , 0   , 0    , 0  , 0  , 0);
198*35ffd701SAndroid Build Coastguard Worker /**********************************************************************************/
199*35ffd701SAndroid Build Coastguard Worker 
200*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_CAMERA_CAPTURE                                , CAM$ , 0    , 0  , 0  , CAM$ );
201*35ffd701SAndroid Build Coastguard Worker 
202*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_COPY_SOURCE                                   , 0   , 0    , 0  , 0  , 0);
203*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_COPY_DEST                                     , 0   , 0    , 0  , 0  , 0);
204*35ffd701SAndroid Build Coastguard Worker 
205*35ffd701SAndroid Build Coastguard Worker #include "GmmCachePolicyUndefineConditionals.h"
206