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