1*35ffd701SAndroid Build Coastguard Worker /*============================================================================== 2*35ffd701SAndroid Build Coastguard Worker Copyright(c) 2022 Intel Corporation 3*35ffd701SAndroid Build Coastguard Worker Permission is hereby granted, free of charge, to any person obtaining a 4*35ffd701SAndroid Build Coastguard Worker copy of this software and associated documentation files(the "Software"), 5*35ffd701SAndroid Build Coastguard Worker to deal in the Software without restriction, including without limitation 6*35ffd701SAndroid Build Coastguard Worker the rights to use, copy, modify, merge, publish, distribute, sublicense, 7*35ffd701SAndroid Build Coastguard Worker and / or sell copies of the Software, and to permit persons to whom the 8*35ffd701SAndroid Build Coastguard Worker Software is furnished to do so, subject to the following conditions: 9*35ffd701SAndroid Build Coastguard Worker 10*35ffd701SAndroid Build Coastguard Worker The above copyright notice and this permission notice shall be included 11*35ffd701SAndroid Build Coastguard Worker in all copies or substantial portions of the Software. 12*35ffd701SAndroid Build Coastguard Worker 13*35ffd701SAndroid Build Coastguard Worker THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 14*35ffd701SAndroid Build Coastguard Worker OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15*35ffd701SAndroid Build Coastguard Worker FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 16*35ffd701SAndroid Build Coastguard Worker THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 17*35ffd701SAndroid Build Coastguard Worker OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 18*35ffd701SAndroid Build Coastguard Worker ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 19*35ffd701SAndroid Build Coastguard Worker OTHER DEALINGS IN THE SOFTWARE. 20*35ffd701SAndroid Build Coastguard Worker ============================================================================*/ 21*35ffd701SAndroid Build Coastguard Worker #include "GmmCachePolicyConditionals.h" 22*35ffd701SAndroid Build Coastguard Worker 23*35ffd701SAndroid Build Coastguard Worker #define _SN 0x1 24*35ffd701SAndroid Build Coastguard Worker #define _IA_GPU_SN 0x2 25*35ffd701SAndroid Build Coastguard Worker #define _WT 0x2 26*35ffd701SAndroid Build Coastguard Worker #define _L1_WB 0x2 27*35ffd701SAndroid Build Coastguard Worker 28*35ffd701SAndroid Build Coastguard Worker // Cache Policy Definition 29*35ffd701SAndroid Build Coastguard Worker // L3_SCC : L3 skip caching control (disabled if L3_SCC = 0) 30*35ffd701SAndroid Build Coastguard Worker // GO : Global observable point for L3-uncached (0=Default is L3, 1= Memory) 31*35ffd701SAndroid Build Coastguard Worker // UcLookup : Snoop L3 for uncached (0=Default is no-snoop, 1 =Snoop) 32*35ffd701SAndroid Build Coastguard Worker // L1CC : L1 cache control (0: WBP write bypass mode, 1: 0 uncached, 2: WB Write back, 3:WT write-through, 4: WS Write-Streaming) : Valid only for DG2+ 33*35ffd701SAndroid Build Coastguard Worker // L2CC : 0 : 0, 1: WB 34*35ffd701SAndroid Build Coastguard Worker // L4CC : 0 : UC, 1: wB, 2: WT 35*35ffd701SAndroid Build Coastguard Worker // Coherency : 0= NoSnoop (non coherent) 1: 1 way coherent with IA Snoop (GPU snoop of CPU cache) 2: 2 way coherent IA GPU Snoop [Snoop is always to LLC from CPU/GPU internal caches] 36*35ffd701SAndroid Build Coastguard Worker 37*35ffd701SAndroid Build Coastguard Worker //******************************************************************************************************************************************************************/ 38*35ffd701SAndroid Build Coastguard Worker // USAGE TYPE , L3, L3_SCC, GO, UcLookup, L1CC, L2CC, L4CC, Coherency) 39*35ffd701SAndroid Build Coastguard Worker /*******************************************************************************************************************************************************************/ 40*35ffd701SAndroid Build Coastguard Worker // KMD Usages 41*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_BATCH_BUFFER , 0 , 0 , 0, 1, 1, 0 , 0 , 0 ); 42*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_COMP_FRAME_BUFFER , 0 , 0 , 0, 1, 1, 0 , 0 , 0 ); 43*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_CONTEXT_SWITCH_BUFFER , 0 , 0 , 0, 1, 1, 0 , 0 , 0 ); 44*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_CURSOR , 0 , 0 , 0, 1, 1, 0 , 0 , 0 ); 45*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_DISPLAY_STATIC_IMG_FOR_SMOOTH_ROTATION_BUFFER , 1 , 0 , 0, 1, 1, 0 , _WT , 0 ); 46*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_DUMMY_PAGE , 0 , 0 , 0, 1, 1, 0 , 0 , 0 ); 47*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_GDI_SURFACE , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 48*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_GENERIC_KMD_RESOURCE , 0 , 0 , 0, 1, 1, 0 , 0 , 0 ); 49*35ffd701SAndroid Build Coastguard Worker // GMM_RESOURCE_USAGE_GFX_RING is only used if WaEnableRingHostMapping is enabled. 50*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_GFX_RING , 0 , 0 , 0, 1, 1, 0 , 0 , 0 ); 51*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_GTT_TRANSFER_REGION , 0 , 0 , 0, 1, 1, 0 , 0 , 0 ); 52*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_HW_CONTEXT , 0 , 0 , 0, 1, 1, 0 , 0 , 0 ); 53*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_STATE_MANAGER_KERNEL_STATE , 0 , 0 , 0, 1, 1, 0 , 0 , 0 ); 54*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_KMD_STAGING_SURFACE , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 55*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_MBM_BUFFER , 0 , 0 , 0, 1, 1, 0 , 0 , 0 ); 56*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_NNDI_BUFFER , 0 , 0 , 0, 1, 1, 0 , 0 , 0 ); 57*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_OVERLAY_MBM , 0 , 0 , 0, 1, 1, 0 , 0 , 0 ); 58*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_PRIMARY_SURFACE , 1 , 0 , 0, 1, 1, 0 , _WT , 0 ); 59*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_SCREEN_PROTECTION_INTERMEDIATE_SURFACE , 0 , 0 , 0, 1, 1, 0 , 0 , 0 ); 60*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_SHADOW_SURFACE , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 61*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_SM_SCRATCH_STATE , 0 , 0 , 0, 1, 1, 0 , 0 , 0 ); 62*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_STATUS_PAGE , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 63*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_TIMER_PERF_QUEUE , 0 , 0 , 0, 1, 1, 0 , 0 , 0 ); 64*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_UNKNOWN , 0 , 0 , 0, 1, 1, 0 , 0 , 0 ); 65*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_UNMAP_PAGING_RESERVED_GTT_DMA_BUFFER , 0 , 0 , 0, 1, 1, 0 , 0 , 0 ); 66*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_VSC_BATCH_BUFFER , 0 , 0 , 0, 1, 1, 0 , 0 , 0 ); 67*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_WA_BATCH_BUFFER , 0 , 0 , 0, 1, 1, 0 , 0 , 0 ); 68*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_KMD_OCA_BUFFER , 0 , 0 , 0, 1, 1, 0 , 0 , 0 ); 69*35ffd701SAndroid Build Coastguard Worker 70*35ffd701SAndroid Build Coastguard Worker // 71*35ffd701SAndroid Build Coastguard Worker // 3D Usages 72*35ffd701SAndroid Build Coastguard Worker // 73*35ffd701SAndroid Build Coastguard Worker // USAGE TYPE , L3, L3_SCC, GO, UcLookup, L1CC, L2CC, L4CC, Coherency ) 74*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_TILED_DEPTH_BUFFER , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 75*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_TILED_HIZ , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 76*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_UMD_BATCH_BUFFER , 0 , 0 , 0, 1, 1, 0 , 1 , 0 ); 77*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_BINDING_TABLE_POOL , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 78*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_CCS , 0 , 0 , 1, 0, 1, 0 , 1 , 0 ); 79*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_CONSTANT_BUFFER_POOL , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 80*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_DEPTH_BUFFER , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 81*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_DISPLAYABLE_RENDER_TARGET , 1 , 0 , 0, 1, 1, 0 , _WT , 0 ); 82*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_GATHER_POOL , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 83*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_HEAP_SURFACE_STATE , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 84*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_HEAP_DYNAMIC_STATE , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 85*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_HEAP_GENERAL_STATE , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 86*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_HEAP_GENERAL_STATE_UC , 0 , 0 , 0, 1, 1, 0 , 0 , 0 ); 87*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_HEAP_STATELESS_DATA_PORT , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 88*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_HEAP_STATELESS_DATA_PORT_L1_CACHED , 1 , 0 , 0, 1, _L1_WB, 0 , 1 , 0 ); 89*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_HEAP_INDIRECT_OBJECT , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 90*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_HEAP_INSTRUCTION , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 91*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_HIZ , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 92*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_INDEX_BUFFER , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 93*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_INDEX_BUFFER_L3_COHERENT_UC , 0 , 0 , 0, 1, 1, 0 , 0 , 0 ); 94*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_INDEX_BUFFER_L3_CACHED , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 95*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_MCS , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 96*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_PUSH_CONSTANT_BUFFER , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 97*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_PULL_CONSTANT_BUFFER , 1 , 0 , 0, 1, 0, 0 , 1 , 0 ); 98*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_QUERY , 0 , 0 , 0, 1, 1, 0 , 1 , _SN ); 99*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_RENDER_TARGET , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 100*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_SHADER_RESOURCE , 1 , 0 , 0, 1, 0, 0 , 1 , 0 ); 101*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_STAGING , 0 , 0 , 1, 0, 1, 0 , 1 , _SN ); 102*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_STENCIL_BUFFER , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 103*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_STREAM_OUTPUT_BUFFER , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 104*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_TILE_POOL , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 105*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_SHADER_RESOURCE_LLC_BYPASS , 1 , 0 , 0, 1, 0, 0 , 1 , 0 ); 106*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_MOCS_62 , 0 , 0 , 1, 0, 1, 0 , 0 , 0 ); 107*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_L3_EVICTION , 0 , 0 , 1, 0, 1, 0 , 0 , 0 ); 108*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_L3_EVICTION_SPECIAL , 0 , 0 , 1, 0, 1, 0 , 0 , 0 ); 109*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_PROCEDURAL_TEXTURE , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 110*35ffd701SAndroid Build Coastguard Worker 111*35ffd701SAndroid Build Coastguard Worker // Tiled Resource 112*35ffd701SAndroid Build Coastguard Worker // 113*35ffd701SAndroid Build Coastguard Worker // USAGE TYPE , L3, L3_SCC, GO, UcLookup, L1CC, L2CC, L4CC, Coherency ) 114*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_TILED_DEPTH_BUFFER , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 115*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_TILED_HIZ , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 116*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_TILED_MCS , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 117*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_TILED_CCS , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 118*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_TILED_RENDER_TARGET , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 119*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_TILED_RENDER_TARGET_AND_SHADER_RESOURCE , 1 , 0 , 0, 1, 0, 0 , 1 , 0 ); 120*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_TILED_SHADER_RESOURCE , 1 , 0 , 0, 1, 0, 0 , 1 , 0 ); 121*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_TILED_UAV , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 122*35ffd701SAndroid Build Coastguard Worker 123*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_UAV , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 124*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_VERTEX_BUFFER , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 125*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_VERTEX_BUFFER_L3_COHERENT_UC , 0 , 0 , 0, 1, 1, 0 , 1 , 0 ); 126*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_VERTEX_BUFFER_L3_CACHED , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 127*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_OGL_WSTN_VERTEX_BUFFER , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 128*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_POSH_VERTEX_BUFFER , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 129*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_RENDER_TARGET_AND_SHADER_RESOURCE , 1 , 0 , 0, 1, 0, 0 , 1 , 0 ); 130*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_WDDM_HISTORY_BUFFER , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 131*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_CONTEXT_SAVE_RESTORE , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 132*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_PTBR_PAGE_POOL , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 133*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_PTBR_BATCH_BUFFER , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 134*35ffd701SAndroid Build Coastguard Worker 135*35ffd701SAndroid Build Coastguard Worker // 136*35ffd701SAndroid Build Coastguard Worker // CM USAGES 137*35ffd701SAndroid Build Coastguard Worker // 138*35ffd701SAndroid Build Coastguard Worker // USAGE TYPE , L3, L3_SCC, GO, UcLookup, L1CC, L2CC, L4CC, Coherency ) 139*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(CM_RESOURCE_USAGE_SurfaceState, 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 140*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(CM_RESOURCE_USAGE_L1_Enabled_SurfaceState, 1 , 0 , 0, 1, 2, 0 , 1 , 0 ); 141*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(CM_RESOURCE_USAGE_StateHeap, 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 142*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(CM_RESOURCE_USAGE_NO_L3_SurfaceState, 0 , 0 , 0, 1, 1, 0 , 1 , 0 ); 143*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(CM_RESOURCE_USAGE_NO_CACHE_SurfaceState, 0 , 0 , 1, 0, 1, 0 , 0 , 0 ); 144*35ffd701SAndroid Build Coastguard Worker 145*35ffd701SAndroid Build Coastguard Worker // 146*35ffd701SAndroid Build Coastguard Worker // MP USAGES 147*35ffd701SAndroid Build Coastguard Worker // 148*35ffd701SAndroid Build Coastguard Worker // USAGE TYPE , L3, L3_SCC, GO, UcLookup, L1CC, L2CC, L4CC, Coherency ) 149*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(MP_RESOURCE_USAGE_BEGIN, 0 , 0 , 1, 0, 1, 0 , 0 , 0 ); 150*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(MP_RESOURCE_USAGE_DEFAULT, 0 , 0 , 1, 0, 1, 0 , 0 , 0 ); 151*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(MP_RESOURCE_USAGE_DEFAULT_FF, 0 , 0 , 1, 0, 1, 0 , 0 , 0 ); 152*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(MP_RESOURCE_USAGE_DEFAULT_RCS, 0 , 0 , 0, 1, 1, 0 , 0 , 0 ); 153*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(MP_RESOURCE_USAGE_SurfaceState, 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 154*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(MP_RESOURCE_USAGE_SurfaceState_FF, 0 , 0 , 1, 0, 1, 0 , 0 , 0 ); 155*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(MP_RESOURCE_USAGE_SurfaceState_RCS, 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 156*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(MP_RESOURCE_USAGE_END, 0 , 0 , 1, 0, 1, 0 , 0 , 0 ); 157*35ffd701SAndroid Build Coastguard Worker 158*35ffd701SAndroid Build Coastguard Worker // MHW - SFC 159*35ffd701SAndroid Build Coastguard Worker // USAGE TYPE , L3, L3_SCC, GO, UcLookup, L1CC, L2CC, L4CC, Coherency ) 160*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(MHW_RESOURCE_USAGE_Sfc_CurrentOutputSurface, 0 , 0 , 1, 0, 1, 0 , 0 , 0 ); 161*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(MHW_RESOURCE_USAGE_Sfc_AvsLineBufferSurface, 0 , 0 , 1, 0, 1, 0 , 0 , 0 ); 162*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(MHW_RESOURCE_USAGE_Sfc_IefLineBufferSurface, 0 , 0 , 1, 0, 1, 0 , 0 , 0 ); 163*35ffd701SAndroid Build Coastguard Worker 164*35ffd701SAndroid Build Coastguard Worker 165*35ffd701SAndroid Build Coastguard Worker 166*35ffd701SAndroid Build Coastguard Worker /**********************************************************************************/ 167*35ffd701SAndroid Build Coastguard Worker 168*35ffd701SAndroid Build Coastguard Worker // 169*35ffd701SAndroid Build Coastguard Worker // OCL Usages 170*35ffd701SAndroid Build Coastguard Worker // 171*35ffd701SAndroid Build Coastguard Worker // USAGE TYPE , L3, L3_SCC, GO, UcLookup, L1CC, L2CC, L4CC, Coherency ) 172*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_OCL_BUFFER , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 173*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST , 1 , 0 , 0, 1, 0, 0 , 1 , 0 ); 174*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_OCL_BUFFER_CSR_UC , 0 , 0 , 1, 1, 1, 0 , 0 , 0 ); 175*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED , 0 , 0 , 1, 1, 1, 0 , 1 , 0 ); 176*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_OCL_IMAGE , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 177*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_OCL_INLINE_CONST , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 178*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_OCL_INLINE_CONST_HDC , 1 , 0 , 0, 1, 0, 0 , 1 , 0 ); 179*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_OCL_SCRATCH , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 180*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_OCL_PRIVATE_MEM , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 181*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_OCL_PRINTF_BUFFER , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 182*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_OCL_STATE_HEAP_BUFFER , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 183*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_OCL_SYSTEM_MEMORY_BUFFER , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 184*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_OCL_SYSTEM_MEMORY_BUFFER_CACHELINE_MISALIGNED , 0 , 0 , 1, 1, 1, 0 , 1 , 0 ); 185*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_OCL_ISH_HEAP_BUFFER , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 186*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_OCL_TAG_MEMORY_BUFFER , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 187*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_OCL_TEXTURE_BUFFER , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 188*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_OCL_SELF_SNOOP_BUFFER , 1 , 0 , 0, 1, 1, 0 , 1 , 0 ); 189*35ffd701SAndroid Build Coastguard Worker /**********************************************************************************/ 190*35ffd701SAndroid Build Coastguard Worker 191*35ffd701SAndroid Build Coastguard Worker // Cross Adapter 192*35ffd701SAndroid Build Coastguard Worker // USAGE TYPE , L3, L3_SCC, GO, UcLookup, L1CC, L2CC, L4CC, Coherency ) 193*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT( GMM_RESOURCE_USAGE_XADAPTER_SHARED_RESOURCE , 0 , 0 , 0, 1, 1, 0 , 0 , 0 ); 194*35ffd701SAndroid Build Coastguard Worker /**********************************************************************************/ 195*35ffd701SAndroid Build Coastguard Worker 196*35ffd701SAndroid Build Coastguard Worker // BCS 197*35ffd701SAndroid Build Coastguard Worker // USAGE TYPE , L3, L3_SCC, GO, UcLookup, L1CC, L2CC, L4CC, Coherency ) 198*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT( GMM_RESOURCE_USAGE_BLT_SOURCE , 0 , 0 , 1, 0, 1, 0 , 0 , 0 ); 199*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT( GMM_RESOURCE_USAGE_BLT_DESTINATION , 0 , 0 , 1, 0, 1, 0 , 0 , 0 ); 200*35ffd701SAndroid Build Coastguard Worker 201*35ffd701SAndroid Build Coastguard Worker /**********************************************************************************/ 202*35ffd701SAndroid Build Coastguard Worker // 203*35ffd701SAndroid Build Coastguard Worker // MEDIA USAGES 204*35ffd701SAndroid Build Coastguard Worker // USAGE TYPE , L3, L3_SCC, GO, UcLookup, L1CC, L2CC, L4CC, Coherency ) 205*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_MEDIA_BATCH_BUFFERS , 0 , 0 , 1, 0, 1, 0, 0, 0 ); 206*35ffd701SAndroid Build Coastguard Worker // DECODE 207*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_DECODE_INPUT_BITSTREAM , 0 , 0 , 1, 0, 1, 0, 0, 0 ); 208*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_DECODE_INPUT_REFERENCE , 0 , 0 , 1, 0, 1, 1, 1, 0 ); 209*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_DECODE_INTERNAL_READ , 0 , 0 , 1, 0, 1, 0, 0, 0 ); 210*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_DECODE_INTERNAL_WRITE , 0 , 0 , 1, 0, 1, 0, 0, 0 ); 211*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_DECODE_INTERNAL_READ_WRITE_CACHE , 0 , 0 , 1, 0, 1, 0, 0, 0 ); 212*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_DECODE_INTERNAL_READ_WRITE_NOCACHE , 0 , 0 , 1, 0, 1, 0, 0, 0 ); 213*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_DECODE_OUTPUT_PICTURE , 0 , 0 , 0, 1, 1, 0, 0, 0 ); 214*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_DECODE_OUTPUT_STATISTICS_WRITE , 0 , 0 , 1, 0, 1, 0, 0, _SN ); 215*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_DECODE_OUTPUT_STATISTICS_READ_WRITE , 0 , 0 , 1, 0, 1, 0, 0, 0 ); 216*35ffd701SAndroid Build Coastguard Worker // ENCODE 217*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_ENCODE_INPUT_RAW , 0 , 0 , 1, 0, 1, 0, 1, 0 ); 218*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_ENCODE_INPUT_RECON , 0 , 0 , 1, 0, 1, 1, 1, 0 ); 219*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_ENCODE_INTERNAL_READ , 0 , 0 , 1, 0, 1, 0, 1, 0 ); 220*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_ENCODE_INTERNAL_WRITE , 0 , 0 , 1, 0, 1, 0, 0, 0 ); 221*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_ENCODE_INTERNAL_READ_WRITE_CACHE , 0 , 0 , 1, 0, 1, 0, 1, 0 ); 222*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_ENCODE_INTERNAL_READ_WRITE_NOCACHE , 0 , 0 , 1, 0, 1, 0, 0, 0 ); 223*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_ENCODE_EXTERNAL_READ , 0 , 0 , 1, 0, 1, 0, 0, 0 ); 224*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_ENCODE_OUTPUT_PICTURE , 0 , 0 , 1, 0, 1, 0, 1, 0 ); 225*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_ENCODE_OUTPUT_BITSTREAM , 0 , 0 , 1, 0, 1, 0, 1, _SN ); 226*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_ENCODE_OUTPUT_STATISTICS_WRITE , 0 , 0 , 1, 0, 1, 0, 0, _SN ); 227*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_ENCODE_OUTPUT_STATISTICS_READ_WRITE , 0 , 0 , 1, 0, 1, 0, 0, 0 ); 228*35ffd701SAndroid Build Coastguard Worker // VP 229*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_VP_INPUT_PICTURE_FF , 0 , 0 , 1, 0, 1, 0, 1, 0 ); 230*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_VP_INPUT_REFERENCE_FF , 0 , 0 , 1, 0, 1, 0, 1, 0 ); 231*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_VP_INTERNAL_READ_FF , 0 , 0 , 1, 0, 1, 0, 1, 0 ); 232*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_VP_INTERNAL_WRITE_FF , 0 , 0 , 1, 0, 1, 0, 1, 0 ); 233*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_VP_INTERNAL_READ_WRITE_FF , 0 , 0 , 1, 0, 1, 0, 1, 0 ); 234*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_VP_OUTPUT_PICTURE_FF , 1 , 0 , 0, 1, 1, 0, _WT, 0 ); 235*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_VP_INPUT_PICTURE_RENDER , 1 , 0 , 0, 1, 1, 0, 1, 0 ); 236*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_VP_INPUT_REFERENCE_RENDER , 0 , 0 , 1, 0, 1, 0, 1, 0 ); 237*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_VP_INTERNAL_READ_RENDER , 0 , 0 , 1, 0, 1, 0, 1, 0 ); 238*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_VP_INTERNAL_WRITE_RENDER , 1 , 0 , 0, 1, 1, 0, 1, 0 ); 239*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_VP_INTERNAL_READ_WRITE_RENDER , 1 , 0 , 0, 1, 1, 0, 1, 0 ); 240*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_VP_OUTPUT_PICTURE_RENDER , 1 , 0 , 0, 1, 1, 0, _WT, 0 ); 241*35ffd701SAndroid Build Coastguard Worker // CP 242*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_CP_EXTERNAL_READ , 0 , 0 , 1, 0, 1, 0, 0, 0 ); 243*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_CP_INTERNAL_WRITE , 0 , 0 , 1, 0, 1, 0, 0, 0 ); 244*35ffd701SAndroid Build Coastguard Worker 245*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_GSC_KMD_RESOURCE , 0 , 0 , 0, 1, 1, 0, 0, 0 ); 246*35ffd701SAndroid Build Coastguard Worker 247*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_KMD_NULL_CONTEXT_BB , 0 , 0 , 0, 1, 1, 0 , 0, 0 ); 248*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_COMMAND_STREAMER , 0 , 0 , 1, 1, 1, 0 , 0, 0 ); 249*35ffd701SAndroid Build Coastguard Worker 250*35ffd701SAndroid Build Coastguard Worker // USAGE TYPE , L3, L3_SCC, GO, UcLookup, L1CC, L2CC, L4CC, Coherency) 251*35ffd701SAndroid Build Coastguard Worker // Uncacheable copies 252*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_COPY_SOURCE , 0 , 0 , 1 , 0 , 1 , 0, 0, 0); 253*35ffd701SAndroid Build Coastguard Worker DEFINE_CACHE_ELEMENT(GMM_RESOURCE_USAGE_COPY_DEST , 0 , 0 , 1 , 0 , 1 , 0, 0, 0); 254*35ffd701SAndroid Build Coastguard Worker 255*35ffd701SAndroid Build Coastguard Worker 256*35ffd701SAndroid Build Coastguard Worker #include "GmmCachePolicyUndefineConditionals.h" 257