Path: blob/21.2-virgl/src/intel/perf/intel_perf_regs.h
4547 views
/*1* Copyright © 2019 Intel Corporation2*3* Permission is hereby granted, free of charge, to any person obtaining a4* copy of this software and associated documentation files (the "Software"),5* to deal in the Software without restriction, including without limitation6* the rights to use, copy, modify, merge, publish, distribute, sublicense,7* and/or sell copies of the Software, and to permit persons to whom the8* Software is furnished to do so, subject to the following conditions:9*10* The above copyright notice and this permission notice (including the next11* paragraph) shall be included in all copies or substantial portions of the12* Software.13*14* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR15* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,16* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL17* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER18* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING19* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS20* IN THE SOFTWARE.21*/2223#ifndef INTEL_PERF_REGS_H24#define INTEL_PERF_REGS_H2526#define INTEL_MASK(high, low) (((1u<<((high)-(low)+1))-1)<<(low))2728/* GT core frequency counters */29#define GFX7_RPSTAT1 0xA01C30#define GFX7_RPSTAT1_CURR_GT_FREQ_SHIFT 731#define GFX7_RPSTAT1_CURR_GT_FREQ_MASK INTEL_MASK(13, 7)32#define GFX7_RPSTAT1_PREV_GT_FREQ_SHIFT 033#define GFX7_RPSTAT1_PREV_GT_FREQ_MASK INTEL_MASK(6, 0)3435#define GFX9_RPSTAT0 0xA01C36#define GFX9_RPSTAT0_CURR_GT_FREQ_SHIFT 2337#define GFX9_RPSTAT0_CURR_GT_FREQ_MASK INTEL_MASK(31, 23)38#define GFX9_RPSTAT0_PREV_GT_FREQ_SHIFT 039#define GFX9_RPSTAT0_PREV_GT_FREQ_MASK INTEL_MASK(8, 0)4041/* Programmable perf 64bits counters (used for GTRequestQueueFull counter on42* gfx7-11)43*/44#define PERF_CNT_1_DW0 0x91b845#define PERF_CNT_2_DW0 0x91c046#define PERF_CNT_VALUE_MASK ((1ull << 44) - 1)4748/* Global OA perf counters */49#define GFX7_N_OA_PERF_A32 4450#define GFX7_OA_PERF_A32(idx) (0x2800 + (idx) * 4)5152#define GFX8_OA_PERF_TICKS 0x291053#define GFX8_N_OA_PERF_A64 3254#define GFX8_N_OA_PERF_A32 455#define GFX8_N_OA_PERF_B32 856#define GFX8_N_OA_PERF_C32 857#define GFX8_OA_PERF_A64_LDW(idx) (0x2800 + (idx) * 8)58#define GFX8_OA_PERF_A64_UDW(idx) (0x2800 + (idx) * 8 + 4)59#define GFX8_OA_PERF_A32(idx) (0x2900 + (idx) * 4)60#define GFX8_OA_PERF_B32(idx) (0x2920 + (idx) * 4)61#define GFX8_OA_PERF_C32(idx) (0x2940 + (idx) * 4)6263#define GFX12_OAG_PERF_TICKS 0xda9064#define GFX12_N_OAG_PERF_A64 3265#define GFX12_N_OAG_PERF_A32 466#define GFX12_N_OAG_PERF_B32 867#define GFX12_N_OAG_PERF_C32 868#define GFX12_OAG_PERF_A64_LDW(idx) (0xd980 + (idx) * 8)69#define GFX12_OAG_PERF_A64_UDW(idx) (0xd980 + (idx) * 8 + 4)70#define GFX12_OAG_PERF_A32(idx) (0xda80 + (idx) * 4)71#define GFX12_OAG_PERF_B32(idx) (0xda94 + (idx) * 4)72#define GFX12_OAG_PERF_C32(idx) (0xdab4 + (idx) * 4)7374/* Pipeline statistic counters */75#define IA_VERTICES_COUNT 0x231076#define IA_PRIMITIVES_COUNT 0x231877#define VS_INVOCATION_COUNT 0x232078#define HS_INVOCATION_COUNT 0x230079#define DS_INVOCATION_COUNT 0x230880#define GS_INVOCATION_COUNT 0x232881#define GS_PRIMITIVES_COUNT 0x233082#define CL_INVOCATION_COUNT 0x233883#define CL_PRIMITIVES_COUNT 0x234084#define PS_INVOCATION_COUNT 0x234885#define CS_INVOCATION_COUNT 0x229086#define PS_DEPTH_COUNT 0x23508788/* Stream-out counters */89#define GFX6_SO_PRIM_STORAGE_NEEDED 0x228090#define GFX7_SO_PRIM_STORAGE_NEEDED(n) (0x5240 + (n) * 8)91#define GFX6_SO_NUM_PRIMS_WRITTEN 0x228892#define GFX7_SO_NUM_PRIMS_WRITTEN(n) (0x5200 + (n) * 8)9394#endif /* INTEL_PERF_REGS_H */959697