Changeset 65265 in vbox for trunk/src/VBox
- Timestamp:
- Jan 12, 2017 6:27:05 PM (8 years ago)
- svn:sync-xref-src-repo-rev:
- 112807
- Location:
- trunk/src/VBox/Devices/Graphics
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Graphics/DevVGA-SVGA.cpp
r65101 r65265 146 146 STAMPROFILE StatBusyDelayEmts; 147 147 148 STAMPROFILE StatR3CmdPresent; 149 STAMPROFILE StatR3CmdDrawPrimitive; 150 STAMPROFILE StatR3CmdSurfaceDMA; 148 STAMPROFILE StatR3Cmd3dPresentProf; 149 STAMPROFILE StatR3Cmd3dDrawPrimitivesProf; 150 STAMPROFILE StatR3Cmd3dSurfaceDmaProf; 151 STAMCOUNTER StatR3CmdDefineGmr2; 152 STAMCOUNTER StatR3CmdDefineGmr2Free; 153 STAMCOUNTER StatR3CmdDefineGmr2Modify; 154 STAMCOUNTER StatR3CmdRemapGmr2; 155 STAMCOUNTER StatR3CmdRemapGmr2Modify; 156 STAMCOUNTER StatR3CmdInvalidCmd; 157 STAMCOUNTER StatR3CmdFence; 158 STAMCOUNTER StatR3CmdUpdate; 159 STAMCOUNTER StatR3CmdUpdateVerbose; 160 STAMCOUNTER StatR3CmdDefineCursor; 161 STAMCOUNTER StatR3CmdDefineAlphaCursor; 162 STAMCOUNTER StatR3CmdEscape; 163 STAMCOUNTER StatR3CmdDefineScreen; 164 STAMCOUNTER StatR3CmdDestroyScreen; 165 STAMCOUNTER StatR3CmdDefineGmrFb; 166 STAMCOUNTER StatR3CmdBlitGmrFbToScreen; 167 STAMCOUNTER StatR3CmdBlitScreentoGmrFb; 168 STAMCOUNTER StatR3CmdAnnotationFill; 169 STAMCOUNTER StatR3CmdAnnotationCopy; 170 STAMCOUNTER StatR3Cmd3dSurfaceDefine; 171 STAMCOUNTER StatR3Cmd3dSurfaceDefineV2; 172 STAMCOUNTER StatR3Cmd3dSurfaceDestroy; 173 STAMCOUNTER StatR3Cmd3dSurfaceCopy; 174 STAMCOUNTER StatR3Cmd3dSurfaceStretchBlt; 175 STAMCOUNTER StatR3Cmd3dSurfaceDma; 176 STAMCOUNTER StatR3Cmd3dSurfaceScreen; 177 STAMCOUNTER StatR3Cmd3dContextDefine; 178 STAMCOUNTER StatR3Cmd3dContextDestroy; 179 STAMCOUNTER StatR3Cmd3dSetTransform; 180 STAMCOUNTER StatR3Cmd3dSetZRange; 181 STAMCOUNTER StatR3Cmd3dSetRenderState; 182 STAMCOUNTER StatR3Cmd3dSetRenderTarget; 183 STAMCOUNTER StatR3Cmd3dSetTextureState; 184 STAMCOUNTER StatR3Cmd3dSetMaterial; 185 STAMCOUNTER StatR3Cmd3dSetLightData; 186 STAMCOUNTER StatR3Cmd3dSetLightEnable; 187 STAMCOUNTER StatR3Cmd3dSetViewPort; 188 STAMCOUNTER StatR3Cmd3dSetClipPlane; 189 STAMCOUNTER StatR3Cmd3dClear; 190 STAMCOUNTER StatR3Cmd3dPresent; 191 STAMCOUNTER StatR3Cmd3dPresentReadBack; 192 STAMCOUNTER StatR3Cmd3dShaderDefine; 193 STAMCOUNTER StatR3Cmd3dShaderDestroy; 194 STAMCOUNTER StatR3Cmd3dSetShader; 195 STAMCOUNTER StatR3Cmd3dSetShaderConst; 196 STAMCOUNTER StatR3Cmd3dDrawPrimitives; 197 STAMCOUNTER StatR3Cmd3dSetScissorRect; 198 STAMCOUNTER StatR3Cmd3dBeginQuery; 199 STAMCOUNTER StatR3Cmd3dEndQuery; 200 STAMCOUNTER StatR3Cmd3dWaitForQuery; 201 STAMCOUNTER StatR3Cmd3dGenerateMipmaps; 202 STAMCOUNTER StatR3Cmd3dActivateSurface; 203 STAMCOUNTER StatR3Cmd3dDeactivateSurface; 204 205 STAMCOUNTER StatR3RegConfigDoneWr; 206 STAMCOUNTER StatR3RegGmrDescriptorWr; 207 STAMCOUNTER StatR3RegGmrDescriptorWrErrors; 208 STAMCOUNTER StatR3RegGmrDescriptorWrFree; 151 209 152 210 STAMCOUNTER StatFifoCommands; … … 223 281 #endif 224 282 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatBusyDelayEmts), 225 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3CmdPresent), 226 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3CmdDrawPrimitive), 227 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3CmdSurfaceDMA), 283 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3Cmd3dPresentProf), 284 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3Cmd3dDrawPrimitivesProf), 285 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3Cmd3dSurfaceDmaProf), 286 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3CmdDefineGmr2), 287 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3CmdDefineGmr2Free), 288 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3CmdDefineGmr2Modify), 289 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3CmdRemapGmr2), 290 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3CmdRemapGmr2Modify), 291 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3CmdInvalidCmd), 292 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3CmdFence), 293 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3CmdUpdate), 294 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3CmdUpdateVerbose), 295 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3CmdDefineCursor), 296 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3CmdDefineAlphaCursor), 297 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3CmdEscape), 298 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3CmdDefineScreen), 299 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3CmdDestroyScreen), 300 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3CmdDefineGmrFb), 301 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3CmdBlitGmrFbToScreen), 302 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3CmdBlitScreentoGmrFb), 303 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3CmdAnnotationFill), 304 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3CmdAnnotationCopy), 305 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3Cmd3dSurfaceDefine), 306 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3Cmd3dSurfaceDefineV2), 307 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3Cmd3dSurfaceDestroy), 308 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3Cmd3dSurfaceCopy), 309 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3Cmd3dSurfaceStretchBlt), 310 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3Cmd3dSurfaceDma), 311 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3Cmd3dSurfaceScreen), 312 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3Cmd3dContextDefine), 313 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3Cmd3dContextDestroy), 314 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3Cmd3dSetTransform), 315 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3Cmd3dSetZRange), 316 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3Cmd3dSetRenderState), 317 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3Cmd3dSetRenderTarget), 318 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3Cmd3dSetTextureState), 319 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3Cmd3dSetMaterial), 320 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3Cmd3dSetLightData), 321 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3Cmd3dSetLightEnable), 322 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3Cmd3dSetViewPort), 323 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3Cmd3dSetClipPlane), 324 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3Cmd3dClear), 325 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3Cmd3dPresent), 326 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3Cmd3dPresentReadBack), 327 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3Cmd3dShaderDefine), 328 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3Cmd3dShaderDestroy), 329 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3Cmd3dSetShader), 330 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3Cmd3dSetShaderConst), 331 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3Cmd3dDrawPrimitives), 332 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3Cmd3dSetScissorRect), 333 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3Cmd3dBeginQuery), 334 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3Cmd3dEndQuery), 335 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3Cmd3dWaitForQuery), 336 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3Cmd3dGenerateMipmaps), 337 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3Cmd3dActivateSurface), 338 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3Cmd3dDeactivateSurface), 339 340 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3RegConfigDoneWr), 341 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3RegGmrDescriptorWr), 342 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3RegGmrDescriptorWrErrors), 343 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatR3RegGmrDescriptorWrFree), 344 228 345 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatFifoCommands), 229 346 SSMFIELD_ENTRY_IGNORE( VMSVGAR3STATE, StatFifoErrors), … … 293 410 * @returns Index register string or "UNKNOWN" 294 411 * @param pThis VMSVGA State 412 * @param idxReg The index register. 295 413 */ 296 static const char *vmsvgaIndexToString(PVGASTATE pThis )414 static const char *vmsvgaIndexToString(PVGASTATE pThis, uint32_t idxReg) 297 415 { 298 switch ( pThis->svga.u32IndexReg)416 switch (idxReg) 299 417 { 300 418 case SVGA_REG_ID: … … 400 518 401 519 default: 402 if ( pThis->svga.u32IndexReg - (uint32_t)SVGA_SCRATCH_BASE < pThis->svga.cScratchRegion)520 if (idxReg - (uint32_t)SVGA_SCRATCH_BASE < pThis->svga.cScratchRegion) 403 521 return "SVGA_SCRATCH_BASE reg"; 404 if ( pThis->svga.u32IndexReg - (uint32_t)SVGA_PALETTE_BASE < (uint32_t)SVGA_NUM_PALETTE_REGS)522 if (idxReg - (uint32_t)SVGA_PALETTE_BASE < (uint32_t)SVGA_NUM_PALETTE_REGS) 405 523 return "SVGA_PALETTE_BASE reg"; 406 524 return "UNKNOWN"; … … 591 709 { 592 710 int rc = VINF_SUCCESS; 593 594 711 *pu32 = 0; 595 switch (pThis->svga.u32IndexReg) 712 713 /* We must adjust the register number if we're in SVGA_ID_0 mode because the PALETTE range moved. */ 714 uint32_t idxReg = pThis->svga.u32IndexReg; 715 if ( idxReg >= SVGA_REG_CAPABILITIES 716 && pThis->svga.u32SVGAId == SVGA_ID_0) 717 { 718 idxReg += SVGA_PALETTE_BASE - SVGA_REG_CAPABILITIES; 719 Log(("vmsvgaWritePort: SVGA_ID_0 reg adj %#x -> %#x\n", pThis->svga.u32IndexReg, idxReg)); 720 } 721 722 switch (idxReg) 596 723 { 597 724 case SVGA_REG_ID: 725 STAM_REL_COUNTER_INC(&pThis->svga.StatRegIdRd); 598 726 *pu32 = pThis->svga.u32SVGAId; 599 727 break; 600 728 601 729 case SVGA_REG_ENABLE: 730 STAM_REL_COUNTER_INC(&pThis->svga.StatRegEnableRd); 602 731 *pu32 = pThis->svga.fEnabled; 603 732 break; … … 605 734 case SVGA_REG_WIDTH: 606 735 { 736 STAM_REL_COUNTER_INC(&pThis->svga.StatRegWidthRd); 607 737 if ( pThis->svga.fEnabled 608 738 && pThis->svga.uWidth != VMSVGA_VAL_UNINITIALIZED) … … 623 753 case SVGA_REG_HEIGHT: 624 754 { 755 STAM_REL_COUNTER_INC(&pThis->svga.StatRegHeightRd); 625 756 if ( pThis->svga.fEnabled 626 757 && pThis->svga.uHeight != VMSVGA_VAL_UNINITIALIZED) … … 640 771 641 772 case SVGA_REG_MAX_WIDTH: 773 STAM_REL_COUNTER_INC(&pThis->svga.StatRegMaxWidthRd); 642 774 *pu32 = pThis->svga.u32MaxWidth; 643 775 break; 644 776 645 777 case SVGA_REG_MAX_HEIGHT: 778 STAM_REL_COUNTER_INC(&pThis->svga.StatRegMaxHeightRd); 646 779 *pu32 = pThis->svga.u32MaxHeight; 647 780 break; … … 649 782 case SVGA_REG_DEPTH: 650 783 /* This returns the color depth of the current mode. */ 784 STAM_REL_COUNTER_INC(&pThis->svga.StatRegDepthRd); 651 785 switch (pThis->svga.uBpp) 652 786 { … … 665 799 666 800 case SVGA_REG_HOST_BITS_PER_PIXEL: /* (Deprecated) */ 801 STAM_REL_COUNTER_INC(&pThis->svga.StatRegHostBitsPerPixelRd); 667 802 if ( pThis->svga.fEnabled 668 803 && pThis->svga.uBpp != VMSVGA_VAL_UNINITIALIZED) … … 681 816 682 817 case SVGA_REG_BITS_PER_PIXEL: /* Current bpp in the guest */ 818 STAM_REL_COUNTER_INC(&pThis->svga.StatRegBitsPerPixelRd); 683 819 if ( pThis->svga.fEnabled 684 820 && pThis->svga.uBpp != VMSVGA_VAL_UNINITIALIZED) … … 697 833 698 834 case SVGA_REG_PSEUDOCOLOR: 835 STAM_REL_COUNTER_INC(&pThis->svga.StatRegPsuedoColorRd); 699 836 *pu32 = 0; 700 837 break; … … 749 886 break; 750 887 } 751 switch ( pThis->svga.u32IndexReg)888 switch (idxReg) 752 889 { 753 890 case SVGA_REG_RED_MASK: 891 STAM_REL_COUNTER_INC(&pThis->svga.StatRegRedMaskRd); 754 892 *pu32 = u32RedMask; 755 893 break; 756 894 757 895 case SVGA_REG_GREEN_MASK: 896 STAM_REL_COUNTER_INC(&pThis->svga.StatRegGreenMaskRd); 758 897 *pu32 = u32GreenMask; 759 898 break; 760 899 761 900 case SVGA_REG_BLUE_MASK: 901 STAM_REL_COUNTER_INC(&pThis->svga.StatRegBlueMaskRd); 762 902 *pu32 = u32BlueMask; 763 903 break; … … 768 908 case SVGA_REG_BYTES_PER_LINE: 769 909 { 910 STAM_REL_COUNTER_INC(&pThis->svga.StatRegBytesPerLineRd); 770 911 if ( pThis->svga.fEnabled 771 912 && pThis->svga.cbScanline) … … 785 926 786 927 case SVGA_REG_VRAM_SIZE: /* VRAM size */ 928 STAM_REL_COUNTER_INC(&pThis->svga.StatRegVramSizeRd); 787 929 *pu32 = pThis->vram_size; 788 930 break; 789 931 790 932 case SVGA_REG_FB_START: /* Frame buffer physical address. */ 933 STAM_REL_COUNTER_INC(&pThis->svga.StatRegFbStartRd); 791 934 Assert(pThis->GCPhysVRAM <= 0xffffffff); 792 935 *pu32 = pThis->GCPhysVRAM; … … 794 937 795 938 case SVGA_REG_FB_OFFSET: /* Offset of the frame buffer in VRAM */ 939 STAM_REL_COUNTER_INC(&pThis->svga.StatRegFbOffsetRd); 796 940 /* Always zero in our case. */ 797 941 *pu32 = 0; … … 803 947 rc = VINF_IOM_R3_IOPORT_READ; 804 948 #else 949 STAM_REL_COUNTER_INC(&pThis->svga.StatRegFbSizeRd); 950 805 951 /* VMWare testcases want at least 4 MB in case the hardware is disabled. */ 806 952 if ( pThis->svga.fEnabled … … 820 966 821 967 case SVGA_REG_CAPABILITIES: 968 STAM_REL_COUNTER_INC(&pThis->svga.StatRegCapabilitesRd); 822 969 *pu32 = pThis->svga.u32RegCaps; 823 970 break; 824 971 825 972 case SVGA_REG_MEM_START: /* FIFO start */ 973 STAM_REL_COUNTER_INC(&pThis->svga.StatRegMemStartRd); 826 974 Assert(pThis->svga.GCPhysFIFO <= 0xffffffff); 827 975 *pu32 = pThis->svga.GCPhysFIFO; … … 829 977 830 978 case SVGA_REG_MEM_SIZE: /* FIFO size */ 979 STAM_REL_COUNTER_INC(&pThis->svga.StatRegMemSizeRd); 831 980 *pu32 = pThis->svga.cbFIFO; 832 981 break; 833 982 834 983 case SVGA_REG_CONFIG_DONE: /* Set when memory area configured */ 984 STAM_REL_COUNTER_INC(&pThis->svga.StatRegConfigDoneRd); 835 985 *pu32 = pThis->svga.fConfigured; 836 986 break; 837 987 838 988 case SVGA_REG_SYNC: /* See "FIFO Synchronization Registers" */ 989 STAM_REL_COUNTER_INC(&pThis->svga.StatRegSyncRd); 839 990 *pu32 = 0; 840 991 break; 841 992 842 993 case SVGA_REG_BUSY: /* See "FIFO Synchronization Registers" */ 994 STAM_REL_COUNTER_INC(&pThis->svga.StatRegBusyRd); 843 995 if (pThis->svga.fBusy) 844 996 { … … 899 1051 900 1052 case SVGA_REG_GUEST_ID: /* Set guest OS identifier */ 1053 STAM_REL_COUNTER_INC(&pThis->svga.StatRegGuestIdRd); 901 1054 *pu32 = pThis->svga.u32GuestId; 902 1055 break; 903 1056 904 1057 case SVGA_REG_SCRATCH_SIZE: /* Number of scratch registers */ 1058 STAM_REL_COUNTER_INC(&pThis->svga.StatRegScratchSizeRd); 905 1059 *pu32 = pThis->svga.cScratchRegion; 906 1060 break; 907 1061 908 1062 case SVGA_REG_MEM_REGS: /* Number of FIFO registers */ 1063 STAM_REL_COUNTER_INC(&pThis->svga.StatRegMemRegsRd); 909 1064 *pu32 = SVGA_FIFO_NUM_REGS; 910 1065 break; 911 1066 912 1067 case SVGA_REG_PITCHLOCK: /* Fixed pitch for all modes */ 1068 STAM_REL_COUNTER_INC(&pThis->svga.StatRegPitchLockRd); 913 1069 *pu32 = pThis->svga.u32PitchLock; 914 1070 break; 915 1071 916 1072 case SVGA_REG_IRQMASK: /* Interrupt mask */ 1073 STAM_REL_COUNTER_INC(&pThis->svga.StatRegIrqMaskRd); 917 1074 *pu32 = pThis->svga.u32IrqMask; 918 1075 break; … … 920 1077 /* See "Guest memory regions" below. */ 921 1078 case SVGA_REG_GMR_ID: 1079 STAM_REL_COUNTER_INC(&pThis->svga.StatRegGmrIdRd); 922 1080 *pu32 = pThis->svga.u32CurrentGMRId; 923 1081 break; 924 1082 925 1083 case SVGA_REG_GMR_DESCRIPTOR: 1084 STAM_REL_COUNTER_INC(&pThis->svga.StatRegWriteOnlyRd); 926 1085 /* Write only */ 927 1086 *pu32 = 0; … … 929 1088 930 1089 case SVGA_REG_GMR_MAX_IDS: 1090 STAM_REL_COUNTER_INC(&pThis->svga.StatRegGmrMaxIdsRd); 931 1091 *pu32 = VMSVGA_MAX_GMR_IDS; 932 1092 break; 933 1093 934 1094 case SVGA_REG_GMR_MAX_DESCRIPTOR_LENGTH: 1095 STAM_REL_COUNTER_INC(&pThis->svga.StatRegGmrMaxDescriptorLengthRd); 935 1096 *pu32 = VMSVGA_MAX_GMR_PAGES; 936 1097 break; 937 1098 938 1099 case SVGA_REG_TRACES: /* Enable trace-based updates even when FIFO is on */ 1100 STAM_REL_COUNTER_INC(&pThis->svga.StatRegTracesRd); 939 1101 *pu32 = pThis->svga.fTraces; 940 1102 break; 941 1103 942 1104 case SVGA_REG_GMRS_MAX_PAGES: /* Maximum number of 4KB pages for all GMRs */ 1105 STAM_REL_COUNTER_INC(&pThis->svga.StatRegGmrsMaxPagesRd); 943 1106 *pu32 = VMSVGA_MAX_GMR_PAGES; 944 1107 break; 945 1108 946 1109 case SVGA_REG_MEMORY_SIZE: /* Total dedicated device memory excluding FIFO */ 1110 STAM_REL_COUNTER_INC(&pThis->svga.StatRegMemorySizeRd); 947 1111 *pu32 = VMSVGA_SURFACE_SIZE; 948 1112 break; 949 1113 950 1114 case SVGA_REG_TOP: /* Must be 1 more than the last register */ 951 break; 952 953 case SVGA_PALETTE_BASE: /* Base of SVGA color map */ 954 break; 955 /* Next 768 (== 256*3) registers exist for colormap */ 1115 STAM_REL_COUNTER_INC(&pThis->svga.StatRegTopRd); 1116 break; 956 1117 957 1118 /* Mouse cursor support. */ … … 960 1121 case SVGA_REG_CURSOR_Y: 961 1122 case SVGA_REG_CURSOR_ON: 1123 STAM_REL_COUNTER_INC(&pThis->svga.StatRegCursorXxxxRd); 962 1124 break; 963 1125 964 1126 /* Legacy multi-monitor support */ 965 1127 case SVGA_REG_NUM_GUEST_DISPLAYS:/* Number of guest displays in X/Y direction */ 1128 STAM_REL_COUNTER_INC(&pThis->svga.StatRegNumGuestDisplaysRd); 966 1129 *pu32 = 1; 967 1130 break; 968 1131 969 1132 case SVGA_REG_DISPLAY_ID: /* Display ID for the following display attributes */ 1133 STAM_REL_COUNTER_INC(&pThis->svga.StatRegDisplayIdRd); 1134 *pu32 = 0; 1135 break; 1136 970 1137 case SVGA_REG_DISPLAY_IS_PRIMARY:/* Whether this is a primary display */ 1138 STAM_REL_COUNTER_INC(&pThis->svga.StatRegDisplayIsPrimaryRd); 1139 *pu32 = 0; 1140 break; 1141 971 1142 case SVGA_REG_DISPLAY_POSITION_X:/* The display position x */ 1143 STAM_REL_COUNTER_INC(&pThis->svga.StatRegDisplayPositionXRd); 1144 *pu32 = 0; 1145 break; 1146 972 1147 case SVGA_REG_DISPLAY_POSITION_Y:/* The display position y */ 1148 STAM_REL_COUNTER_INC(&pThis->svga.StatRegDisplayPositionYRd); 973 1149 *pu32 = 0; 974 1150 break; 975 1151 976 1152 case SVGA_REG_DISPLAY_WIDTH: /* The display's width */ 1153 STAM_REL_COUNTER_INC(&pThis->svga.StatRegDisplayWidthRd); 977 1154 *pu32 = pThis->svga.uWidth; 978 1155 break; 979 1156 980 1157 case SVGA_REG_DISPLAY_HEIGHT: /* The display's height */ 1158 STAM_REL_COUNTER_INC(&pThis->svga.StatRegDisplayHeightRd); 981 1159 *pu32 = pThis->svga.uHeight; 982 1160 break; 983 1161 984 1162 case SVGA_REG_NUM_DISPLAYS: /* (Deprecated) */ 1163 STAM_REL_COUNTER_INC(&pThis->svga.StatRegNumDisplaysRd); 985 1164 *pu32 = 1; /* Must return something sensible here otherwise the Linux driver will take a legacy code path without 3d support. */ 986 1165 break; 987 1166 988 1167 default: 989 if ( pThis->svga.u32IndexReg >= SVGA_SCRATCH_BASE 990 && pThis->svga.u32IndexReg < SVGA_SCRATCH_BASE + pThis->svga.cScratchRegion) 991 { 992 *pu32 = pThis->svga.au32ScratchRegion[pThis->svga.u32IndexReg - SVGA_SCRATCH_BASE]; 993 } 994 break; 995 } 996 Log(("vmsvgaReadPort index=%s (%d) val=%#x rc=%x\n", vmsvgaIndexToString(pThis), pThis->svga.u32IndexReg, *pu32, rc)); 1168 { 1169 uint32_t offReg; 1170 if ((offReg = idxReg - SVGA_SCRATCH_BASE) < pThis->svga.cScratchRegion) 1171 { 1172 *pu32 = pThis->svga.au32ScratchRegion[offReg]; 1173 STAM_REL_COUNTER_INC(&pThis->svga.StatRegScratchRd); 1174 } 1175 else if ((offReg = idxReg - SVGA_PALETTE_BASE) < (uint32_t)SVGA_NUM_PALETTE_REGS) 1176 { 1177 STAM_REL_COUNTER_INC(&pThis->svga.StatRegPaletteRd); 1178 /* Next 768 (== 256*3) registers exist for colormap */ 1179 } 1180 else 1181 { 1182 #if !defined(IN_RING3) && defined(VBOX_STRICT) 1183 rc = VINF_IOM_R3_IOPORT_READ; 1184 #else 1185 STAM_REL_COUNTER_INC(&pThis->svga.StatRegUnknownRd); 1186 AssertMsgFailed(("reg=%#x\n", idxReg)); 1187 #endif 1188 } 1189 break; 1190 } 1191 } 1192 Log(("vmsvgaReadPort index=%s (%d) val=%#x rc=%x\n", vmsvgaIndexToString(pThis, idxReg), idxReg, *pu32, rc)); 997 1193 return rc; 998 1194 } … … 1109 1305 int rc = VINF_SUCCESS; 1110 1306 1111 Log(("vmsvgaWritePort index=%s (%d) val=%#x\n", vmsvgaIndexToString(pThis), pThis->svga.u32IndexReg, u32)); 1112 switch (pThis->svga.u32IndexReg) 1307 /* We must adjust the register number if we're in SVGA_ID_0 mode because the PALETTE range moved. */ 1308 uint32_t idxReg = pThis->svga.u32IndexReg; 1309 if ( idxReg >= SVGA_REG_CAPABILITIES 1310 && pThis->svga.u32SVGAId == SVGA_ID_0) 1311 { 1312 idxReg += SVGA_PALETTE_BASE - SVGA_REG_CAPABILITIES; 1313 Log(("vmsvgaWritePort: SVGA_ID_0 reg adj %#x -> %#x\n", pThis->svga.u32IndexReg, idxReg)); 1314 } 1315 Log(("vmsvgaWritePort index=%s (%d) val=%#x\n", vmsvgaIndexToString(pThis, idxReg), idxReg, u32)); 1316 switch (idxReg) 1113 1317 { 1114 1318 case SVGA_REG_ID: 1319 STAM_REL_COUNTER_INC(&pThis->svga.StatRegIdWr); 1115 1320 if ( u32 == SVGA_ID_0 1116 1321 || u32 == SVGA_ID_1 1117 1322 || u32 == SVGA_ID_2) 1118 1323 pThis->svga.u32SVGAId = u32; 1324 else 1325 AssertMsgFailed(("%#x\n", u32)); 1119 1326 break; 1120 1327 1121 1328 case SVGA_REG_ENABLE: 1329 STAM_REL_COUNTER_INC(&pThis->svga.StatRegEnableWr); 1122 1330 if ( pThis->svga.fEnabled == u32 1123 1331 && pThis->last_bpp == (unsigned)pThis->svga.uBpp … … 1187 1395 1188 1396 case SVGA_REG_WIDTH: 1397 STAM_REL_COUNTER_INC(&pThis->svga.StatRegWidthWr); 1189 1398 if (pThis->svga.uWidth != u32) 1190 1399 { … … 1206 1415 1207 1416 case SVGA_REG_HEIGHT: 1417 STAM_REL_COUNTER_INC(&pThis->svga.StatRegHeightWr); 1208 1418 if (pThis->svga.uHeight != u32) 1209 1419 { … … 1225 1435 1226 1436 case SVGA_REG_DEPTH: 1437 STAM_REL_COUNTER_INC(&pThis->svga.StatRegDepthWr); 1227 1438 /** @todo read-only?? */ 1228 1439 break; 1229 1440 1230 1441 case SVGA_REG_BITS_PER_PIXEL: /* Current bpp in the guest */ 1442 STAM_REL_COUNTER_INC(&pThis->svga.StatRegBitsPerPixelWr); 1231 1443 if (pThis->svga.uBpp != u32) 1232 1444 { … … 1248 1460 1249 1461 case SVGA_REG_PSEUDOCOLOR: 1462 STAM_REL_COUNTER_INC(&pThis->svga.StatRegPseudoColorWr); 1250 1463 break; 1251 1464 1252 1465 case SVGA_REG_CONFIG_DONE: /* Set when memory area configured */ 1253 1466 #ifdef IN_RING3 1467 STAM_REL_COUNTER_INC(&pSVGAState->StatR3RegConfigDoneWr); 1254 1468 pThis->svga.fConfigured = u32; 1255 1469 /* Disabling the FIFO enables tracing (dirty page detection) by default. */ … … 1265 1479 1266 1480 case SVGA_REG_SYNC: /* See "FIFO Synchronization Registers" */ 1481 STAM_REL_COUNTER_INC(&pThis->svga.StatRegSyncWr); 1267 1482 if ( pThis->svga.fEnabled 1268 1483 && pThis->svga.fConfigured) … … 1287 1502 1288 1503 case SVGA_REG_BUSY: /* See "FIFO Synchronization Registers" (read-only) */ 1504 STAM_REL_COUNTER_INC(&pThis->svga.StatRegBusyWr); 1289 1505 break; 1290 1506 1291 1507 case SVGA_REG_GUEST_ID: /* Set guest OS identifier */ 1508 STAM_REL_COUNTER_INC(&pThis->svga.StatRegGuestIdWr); 1292 1509 pThis->svga.u32GuestId = u32; 1293 1510 break; 1294 1511 1295 1512 case SVGA_REG_PITCHLOCK: /* Fixed pitch for all modes */ 1513 STAM_REL_COUNTER_INC(&pThis->svga.StatRegPitchLockWr); 1296 1514 pThis->svga.u32PitchLock = u32; 1297 1515 break; 1298 1516 1299 1517 case SVGA_REG_IRQMASK: /* Interrupt mask */ 1518 STAM_REL_COUNTER_INC(&pThis->svga.StatRegIrqMaskWr); 1300 1519 pThis->svga.u32IrqMask = u32; 1301 1520 … … 1315 1534 case SVGA_REG_CURSOR_Y: 1316 1535 case SVGA_REG_CURSOR_ON: 1536 STAM_REL_COUNTER_INC(&pThis->svga.StatRegCursorXxxxWr); 1317 1537 break; 1318 1538 1319 1539 /* Legacy multi-monitor support */ 1320 1540 case SVGA_REG_NUM_GUEST_DISPLAYS:/* Number of guest displays in X/Y direction */ 1541 STAM_REL_COUNTER_INC(&pThis->svga.StatRegNumGuestDisplaysWr); 1321 1542 break; 1322 1543 case SVGA_REG_DISPLAY_ID: /* Display ID for the following display attributes */ 1544 STAM_REL_COUNTER_INC(&pThis->svga.StatRegDisplayIdWr); 1323 1545 break; 1324 1546 case SVGA_REG_DISPLAY_IS_PRIMARY:/* Whether this is a primary display */ 1547 STAM_REL_COUNTER_INC(&pThis->svga.StatRegDisplayIsPrimaryWr); 1325 1548 break; 1326 1549 case SVGA_REG_DISPLAY_POSITION_X:/* The display position x */ 1550 STAM_REL_COUNTER_INC(&pThis->svga.StatRegDisplayPositionXWr); 1327 1551 break; 1328 1552 case SVGA_REG_DISPLAY_POSITION_Y:/* The display position y */ 1553 STAM_REL_COUNTER_INC(&pThis->svga.StatRegDisplayPositionYWr); 1329 1554 break; 1330 1555 case SVGA_REG_DISPLAY_WIDTH: /* The display's width */ 1556 STAM_REL_COUNTER_INC(&pThis->svga.StatRegDisplayWidthWr); 1331 1557 break; 1332 1558 case SVGA_REG_DISPLAY_HEIGHT: /* The display's height */ 1559 STAM_REL_COUNTER_INC(&pThis->svga.StatRegDisplayHeightWr); 1333 1560 break; 1334 1561 #ifdef VBOX_WITH_VMSVGA3D 1335 1562 /* See "Guest memory regions" below. */ 1336 1563 case SVGA_REG_GMR_ID: 1564 STAM_REL_COUNTER_INC(&pThis->svga.StatRegGmrIdWr); 1337 1565 pThis->svga.u32CurrentGMRId = u32; 1338 1566 break; … … 1344 1572 # else /* IN_RING3 */ 1345 1573 { 1574 STAM_REL_COUNTER_INC(&pSVGAState->StatR3RegGmrDescriptorWr); 1575 1346 1576 SVGAGuestMemDescriptor desc; 1347 1577 RTGCPHYS GCPhys = (RTGCPHYS)u32 << PAGE_SHIFT; … … 1414 1644 1415 1645 case SVGA_REG_TRACES: /* Enable trace-based updates even when FIFO is on */ 1646 STAM_REL_COUNTER_INC(&pThis->svga.StatRegTracesWr); 1416 1647 if (pThis->svga.fTraces == u32) 1417 1648 break; /* nothing to do */ … … 1425 1656 1426 1657 case SVGA_REG_TOP: /* Must be 1 more than the last register */ 1427 break; 1428 1429 case SVGA_PALETTE_BASE: /* Base of SVGA color map */ 1430 break; 1431 /* Next 768 (== 256*3) registers exist for colormap */ 1658 STAM_REL_COUNTER_INC(&pThis->svga.StatRegTopWr); 1659 break; 1432 1660 1433 1661 case SVGA_REG_NUM_DISPLAYS: /* (Deprecated) */ 1434 Log(("Write to deprecated register %x - val %x ignored\n", pThis->svga.u32IndexReg, u32)); 1662 STAM_REL_COUNTER_INC(&pThis->svga.StatRegNumDisplaysWr); 1663 Log(("Write to deprecated register %x - val %x ignored\n", idxReg, u32)); 1435 1664 break; 1436 1665 … … 1456 1685 case SVGA_REG_GMR_MAX_DESCRIPTOR_LENGTH: 1457 1686 /* Read only - ignore. */ 1458 Log(("Write to R/O register %x - val %x ignored\n", pThis->svga.u32IndexReg, u32)); 1687 Log(("Write to R/O register %x - val %x ignored\n", idxReg, u32)); 1688 STAM_REL_COUNTER_INC(&pThis->svga.StatRegReadOnlyWr); 1459 1689 break; 1460 1690 1461 1691 default: 1462 if ( pThis->svga.u32IndexReg >= SVGA_SCRATCH_BASE 1463 && pThis->svga.u32IndexReg < SVGA_SCRATCH_BASE + pThis->svga.cScratchRegion) 1464 { 1465 pThis->svga.au32ScratchRegion[pThis->svga.u32IndexReg - SVGA_SCRATCH_BASE] = u32; 1466 } 1467 break; 1692 { 1693 uint32_t offReg; 1694 if ((offReg = idxReg - SVGA_SCRATCH_BASE) < pThis->svga.cScratchRegion) 1695 { 1696 pThis->svga.au32ScratchRegion[offReg] = u32; 1697 STAM_REL_COUNTER_INC(&pThis->svga.StatRegScratchWr); 1698 } 1699 else if ((offReg = idxReg - SVGA_PALETTE_BASE) < (uint32_t)SVGA_NUM_PALETTE_REGS) 1700 { 1701 STAM_REL_COUNTER_INC(&pThis->svga.StatRegPaletteWr); 1702 /* Next 768 (== 256*3) registers exist for colormap */ 1703 } 1704 else 1705 { 1706 #if !defined(IN_RING3) && defined(VBOX_STRICT) 1707 rc = VINF_IOM_R3_IOPORT_WRITE; 1708 #else 1709 STAM_REL_COUNTER_INC(&pThis->svga.StatRegUnknownWr); 1710 AssertMsgFailed(("reg=%#x u32=%#x\n", idxReg, u32)); 1711 #endif 1712 } 1713 break; 1714 } 1468 1715 } 1469 1716 return rc; … … 2657 2904 case SVGA_CMD_INVALID_CMD: 2658 2905 /* Nothing to do. */ 2906 STAM_REL_COUNTER_INC(&pSVGAState->StatR3CmdInvalidCmd); 2659 2907 break; 2660 2908 … … 2663 2911 SVGAFifoCmdFence *pCmdFence; 2664 2912 VMSVGAFIFO_GET_CMD_BUFFER_BREAK(pCmdFence, SVGAFifoCmdFence, sizeof(*pCmdFence)); 2913 STAM_REL_COUNTER_INC(&pSVGAState->StatR3CmdFence); 2665 2914 if (VMSVGA_IS_VALID_FIFO_REG(SVGA_FIFO_FENCE, offFifoMin)) 2666 2915 { … … 2691 2940 SVGAFifoCmdUpdate *pUpdate; 2692 2941 VMSVGAFIFO_GET_CMD_BUFFER_BREAK(pUpdate, SVGAFifoCmdUpdate, sizeof(*pUpdate)); 2942 if (enmCmdId == SVGA_CMD_UPDATE) 2943 STAM_REL_COUNTER_INC(&pSVGAState->StatR3CmdUpdate); 2944 else 2945 STAM_REL_COUNTER_INC(&pSVGAState->StatR3CmdUpdateVerbose); 2693 2946 Log(("vmsvgaFIFOLoop: UPDATE (%d,%d)(%d,%d)\n", pUpdate->x, pUpdate->y, pUpdate->width, pUpdate->height)); 2694 2947 vgaR3UpdateDisplay(pThis, pUpdate->x, pUpdate->y, pUpdate->width, pUpdate->height); … … 2701 2954 SVGAFifoCmdDefineCursor *pCursor; 2702 2955 VMSVGAFIFO_GET_CMD_BUFFER_BREAK(pCursor, SVGAFifoCmdDefineCursor, sizeof(*pCursor)); 2956 STAM_REL_COUNTER_INC(&pSVGAState->StatR3CmdDefineCursor); 2703 2957 AssertFailed(); /** @todo implement when necessary. */ 2704 2958 break; … … 2714 2968 SVGAFifoCmdDefineAlphaCursor *pCursor; 2715 2969 VMSVGAFIFO_GET_CMD_BUFFER_BREAK(pCursor, SVGAFifoCmdDefineAlphaCursor, sizeof(*pCursor)); 2970 STAM_REL_COUNTER_INC(&pSVGAState->StatR3CmdDefineAlphaCursor); 2716 2971 2717 2972 Log(("vmsvgaFIFOLoop: ALPHA_CURSOR id=%d size (%d,%d) hotspot (%d,%d)\n", pCursor->id, pCursor->width, pCursor->height, pCursor->hotspotX, pCursor->hotspotY)); … … 2768 3023 SVGAFifoCmdEscape *pEscape; 2769 3024 VMSVGAFIFO_GET_CMD_BUFFER_BREAK(pEscape, SVGAFifoCmdEscape, sizeof(*pEscape)); 3025 STAM_REL_COUNTER_INC(&pSVGAState->StatR3CmdEscape); 2770 3026 2771 3027 /* Refetch the command buffer with the variable data; undo size increase (ugly) */ … … 2818 3074 VMSVGAFIFO_GET_CMD_BUFFER_BREAK(pCmd, SVGAFifoCmdDefineGMR2, sizeof(*pCmd)); 2819 3075 Log(("vmsvgaFIFOLoop: SVGA_CMD_DEFINE_GMR2 id=%x %x pages\n", pCmd->gmrId, pCmd->numPages)); 3076 STAM_REL_COUNTER_INC(&pSVGAState->StatR3CmdDefineGmr2); 2820 3077 2821 3078 /* Validate current GMR id. */ … … 2825 3082 if (!pCmd->numPages) 2826 3083 { 3084 STAM_REL_COUNTER_INC(&pSVGAState->StatR3CmdDefineGmr2Free); 2827 3085 vmsvgaGMRFree(pThis, pCmd->gmrId); 2828 3086 } … … 2830 3088 { 2831 3089 PGMR pGMR = &pSVGAState->aGMR[pCmd->gmrId]; 3090 if (pGMR->cMaxPages) 3091 STAM_REL_COUNTER_INC(&pSVGAState->StatR3CmdDefineGmr2Modify); 3092 2832 3093 pGMR->cMaxPages = pCmd->numPages; 3094 /* The rest is done by the REMAP_GMR2 command. */ 2833 3095 } 2834 /* everything done in remap */2835 3096 break; 2836 3097 } … … 2841 3102 SVGAFifoCmdRemapGMR2 *pCmd; 2842 3103 VMSVGAFIFO_GET_CMD_BUFFER_BREAK(pCmd, SVGAFifoCmdRemapGMR2, sizeof(*pCmd)); 3104 STAM_REL_COUNTER_INC(&pSVGAState->StatR3CmdRemapGmr2); 3105 2843 3106 uint32_t cbPageDesc = (pCmd->flags & SVGA_REMAP_GMR2_PPN64) ? sizeof(uint64_t) : sizeof(uint32_t); 2844 3107 uint32_t cbCmd; … … 2979 3242 RT_BZERO(&pCmd->screen.id, sizeof(*pCmd) - RT_OFFSETOF(SVGAFifoCmdDefineScreen, screen.structSize)); 2980 3243 VMSVGAFIFO_GET_MORE_CMD_BUFFER_BREAK(pCmd, SVGAFifoCmdDefineScreen, RT_MAX(sizeof(pCmd->screen.structSize), pCmd->screen.structSize)); 3244 STAM_REL_COUNTER_INC(&pSVGAState->StatR3CmdDefineScreen); 2981 3245 2982 3246 Log(("vmsvgaFIFOLoop: SVGA_CMD_DEFINE_SCREEN id=%x flags=%x size=(%d,%d) root=(%d,%d)\n", pCmd->screen.id, pCmd->screen.flags, pCmd->screen.size.width, pCmd->screen.size.height, pCmd->screen.root.x, pCmd->screen.root.y)); … … 3003 3267 SVGAFifoCmdDestroyScreen *pCmd; 3004 3268 VMSVGAFIFO_GET_CMD_BUFFER_BREAK(pCmd, SVGAFifoCmdDestroyScreen, sizeof(*pCmd)); 3269 STAM_REL_COUNTER_INC(&pSVGAState->StatR3CmdDestroyScreen); 3005 3270 3006 3271 Log(("vmsvgaFIFOLoop: SVGA_CMD_DESTROY_SCREEN id=%x\n", pCmd->screenId)); … … 3012 3277 SVGAFifoCmdDefineGMRFB *pCmd; 3013 3278 VMSVGAFIFO_GET_CMD_BUFFER_BREAK(pCmd, SVGAFifoCmdDefineGMRFB, sizeof(*pCmd)); 3279 STAM_REL_COUNTER_INC(&pSVGAState->StatR3CmdDefineGmrFb); 3014 3280 3015 3281 Log(("vmsvgaFIFOLoop: SVGA_CMD_DEFINE_GMRFB gmr=%x offset=%x bytesPerLine=%x bpp=%d color depth=%d\n", pCmd->ptr.gmrId, pCmd->ptr.offset, pCmd->bytesPerLine, pCmd->format.s.bitsPerPixel, pCmd->format.s.colorDepth)); … … 3025 3291 SVGAFifoCmdBlitGMRFBToScreen *pCmd; 3026 3292 VMSVGAFIFO_GET_CMD_BUFFER_BREAK(pCmd, SVGAFifoCmdBlitGMRFBToScreen, sizeof(*pCmd)); 3293 STAM_REL_COUNTER_INC(&pSVGAState->StatR3CmdBlitGmrFbToScreen); 3027 3294 3028 3295 Log(("vmsvgaFIFOLoop: SVGA_CMD_BLIT_GMRFB_TO_SCREEN src=(%d,%d) dest id=%d (%d,%d)(%d,%d)\n", pCmd->srcOrigin.x, pCmd->srcOrigin.y, pCmd->destScreenId, pCmd->destRect.left, pCmd->destRect.top, pCmd->destRect.right, pCmd->destRect.bottom)); … … 3070 3337 SVGAFifoCmdBlitScreenToGMRFB *pCmd; 3071 3338 VMSVGAFIFO_GET_CMD_BUFFER_BREAK(pCmd, SVGAFifoCmdBlitScreenToGMRFB, sizeof(*pCmd)); 3339 STAM_REL_COUNTER_INC(&pSVGAState->StatR3CmdBlitScreentoGmrFb); 3072 3340 3073 3341 /* Note! This can fetch 3d render results as well!! */ … … 3081 3349 SVGAFifoCmdAnnotationFill *pCmd; 3082 3350 VMSVGAFIFO_GET_CMD_BUFFER_BREAK(pCmd, SVGAFifoCmdAnnotationFill, sizeof(*pCmd)); 3351 STAM_REL_COUNTER_INC(&pSVGAState->StatR3CmdAnnotationFill); 3083 3352 3084 3353 Log(("vmsvgaFIFOLoop: SVGA_CMD_ANNOTATION_FILL red=%x green=%x blue=%x\n", pCmd->color.s.r, pCmd->color.s.g, pCmd->color.s.b)); … … 3091 3360 SVGAFifoCmdAnnotationCopy *pCmd; 3092 3361 VMSVGAFIFO_GET_CMD_BUFFER_BREAK(pCmd, SVGAFifoCmdAnnotationCopy, sizeof(*pCmd)); 3362 STAM_REL_COUNTER_INC(&pSVGAState->StatR3CmdAnnotationCopy); 3093 3363 3094 3364 Log(("vmsvgaFIFOLoop: SVGA_CMD_ANNOTATION_COPY\n")); … … 3124 3394 SVGA3dCmdDefineSurface *pCmd = (SVGA3dCmdDefineSurface *)(pHdr + 1); 3125 3395 VMSVGAFIFO_CHECK_3D_CMD_MIN_SIZE_BREAK(sizeof(*pCmd)); 3396 STAM_REL_COUNTER_INC(&pSVGAState->StatR3Cmd3dSurfaceDefine); 3126 3397 3127 3398 cMipLevels = (pHdr->size - sizeof(*pCmd)) / sizeof(SVGA3dSize); … … 3139 3410 SVGA3dCmdDefineSurface_v2 *pCmd = (SVGA3dCmdDefineSurface_v2 *)(pHdr + 1); 3140 3411 VMSVGAFIFO_CHECK_3D_CMD_MIN_SIZE_BREAK(sizeof(*pCmd)); 3412 STAM_REL_COUNTER_INC(&pSVGAState->StatR3Cmd3dSurfaceDefineV2); 3141 3413 3142 3414 cMipLevels = (pHdr->size - sizeof(*pCmd)) / sizeof(SVGA3dSize); … … 3151 3423 SVGA3dCmdDestroySurface *pCmd = (SVGA3dCmdDestroySurface *)(pHdr + 1); 3152 3424 VMSVGAFIFO_CHECK_3D_CMD_MIN_SIZE_BREAK(sizeof(*pCmd)); 3425 STAM_REL_COUNTER_INC(&pSVGAState->StatR3Cmd3dSurfaceDestroy); 3153 3426 rc = vmsvga3dSurfaceDestroy(pThis, pCmd->sid); 3154 3427 break; … … 3160 3433 SVGA3dCmdSurfaceCopy *pCmd = (SVGA3dCmdSurfaceCopy *)(pHdr + 1); 3161 3434 VMSVGAFIFO_CHECK_3D_CMD_MIN_SIZE_BREAK(sizeof(*pCmd)); 3435 STAM_REL_COUNTER_INC(&pSVGAState->StatR3Cmd3dSurfaceCopy); 3162 3436 3163 3437 cCopyBoxes = (pHdr->size - sizeof(pCmd)) / sizeof(SVGA3dCopyBox); … … 3170 3444 SVGA3dCmdSurfaceStretchBlt *pCmd = (SVGA3dCmdSurfaceStretchBlt *)(pHdr + 1); 3171 3445 VMSVGAFIFO_CHECK_3D_CMD_MIN_SIZE_BREAK(sizeof(*pCmd)); 3446 STAM_REL_COUNTER_INC(&pSVGAState->StatR3Cmd3dSurfaceStretchBlt); 3172 3447 3173 3448 rc = vmsvga3dSurfaceStretchBlt(pThis, &pCmd->dest, &pCmd->boxDest, &pCmd->src, &pCmd->boxSrc, pCmd->mode); … … 3180 3455 SVGA3dCmdSurfaceDMA *pCmd = (SVGA3dCmdSurfaceDMA *)(pHdr + 1); 3181 3456 VMSVGAFIFO_CHECK_3D_CMD_MIN_SIZE_BREAK(sizeof(*pCmd)); 3457 STAM_REL_COUNTER_INC(&pSVGAState->StatR3Cmd3dSurfaceDma); 3182 3458 3183 3459 cCopyBoxes = (pHdr->size - sizeof(*pCmd)) / sizeof(SVGA3dCopyBox); 3184 STAM_PROFILE_START(&pSVGAState->StatR3Cmd SurfaceDMA, a);3460 STAM_PROFILE_START(&pSVGAState->StatR3Cmd3dSurfaceDmaProf, a); 3185 3461 rc = vmsvga3dSurfaceDMA(pThis, pCmd->guest, pCmd->host, pCmd->transfer, cCopyBoxes, (SVGA3dCopyBox *)(pCmd + 1)); 3186 STAM_PROFILE_STOP(&pSVGAState->StatR3Cmd SurfaceDMA, a);3462 STAM_PROFILE_STOP(&pSVGAState->StatR3Cmd3dSurfaceDmaProf, a); 3187 3463 break; 3188 3464 } … … 3193 3469 SVGA3dCmdBlitSurfaceToScreen *pCmd = (SVGA3dCmdBlitSurfaceToScreen *)(pHdr + 1); 3194 3470 VMSVGAFIFO_CHECK_3D_CMD_MIN_SIZE_BREAK(sizeof(*pCmd)); 3471 STAM_REL_COUNTER_INC(&pSVGAState->StatR3Cmd3dSurfaceScreen); 3195 3472 3196 3473 cRects = (pHdr->size - sizeof(*pCmd)) / sizeof(SVGASignedRect); … … 3203 3480 SVGA3dCmdDefineContext *pCmd = (SVGA3dCmdDefineContext *)(pHdr + 1); 3204 3481 VMSVGAFIFO_CHECK_3D_CMD_MIN_SIZE_BREAK(sizeof(*pCmd)); 3482 STAM_REL_COUNTER_INC(&pSVGAState->StatR3Cmd3dContextDefine); 3205 3483 3206 3484 rc = vmsvga3dContextDefine(pThis, pCmd->cid); … … 3212 3490 SVGA3dCmdDestroyContext *pCmd = (SVGA3dCmdDestroyContext *)(pHdr + 1); 3213 3491 VMSVGAFIFO_CHECK_3D_CMD_MIN_SIZE_BREAK(sizeof(*pCmd)); 3492 STAM_REL_COUNTER_INC(&pSVGAState->StatR3Cmd3dContextDestroy); 3214 3493 3215 3494 rc = vmsvga3dContextDestroy(pThis, pCmd->cid); … … 3221 3500 SVGA3dCmdSetTransform *pCmd = (SVGA3dCmdSetTransform *)(pHdr + 1); 3222 3501 VMSVGAFIFO_CHECK_3D_CMD_MIN_SIZE_BREAK(sizeof(*pCmd)); 3502 STAM_REL_COUNTER_INC(&pSVGAState->StatR3Cmd3dSetTransform); 3223 3503 3224 3504 rc = vmsvga3dSetTransform(pThis, pCmd->cid, pCmd->type, pCmd->matrix); … … 3230 3510 SVGA3dCmdSetZRange *pCmd = (SVGA3dCmdSetZRange *)(pHdr + 1); 3231 3511 VMSVGAFIFO_CHECK_3D_CMD_MIN_SIZE_BREAK(sizeof(*pCmd)); 3512 STAM_REL_COUNTER_INC(&pSVGAState->StatR3Cmd3dSetZRange); 3232 3513 3233 3514 rc = vmsvga3dSetZRange(pThis, pCmd->cid, pCmd->zRange); … … 3240 3521 SVGA3dCmdSetRenderState *pCmd = (SVGA3dCmdSetRenderState *)(pHdr + 1); 3241 3522 VMSVGAFIFO_CHECK_3D_CMD_MIN_SIZE_BREAK(sizeof(*pCmd)); 3523 STAM_REL_COUNTER_INC(&pSVGAState->StatR3Cmd3dSetRenderState); 3242 3524 3243 3525 cRenderStates = (pHdr->size - sizeof(*pCmd)) / sizeof(SVGA3dRenderState); … … 3250 3532 SVGA3dCmdSetRenderTarget *pCmd = (SVGA3dCmdSetRenderTarget *)(pHdr + 1); 3251 3533 VMSVGAFIFO_CHECK_3D_CMD_MIN_SIZE_BREAK(sizeof(*pCmd)); 3534 STAM_REL_COUNTER_INC(&pSVGAState->StatR3Cmd3dSetRenderTarget); 3252 3535 3253 3536 rc = vmsvga3dSetRenderTarget(pThis, pCmd->cid, pCmd->type, pCmd->target); … … 3260 3543 SVGA3dCmdSetTextureState *pCmd = (SVGA3dCmdSetTextureState *)(pHdr + 1); 3261 3544 VMSVGAFIFO_CHECK_3D_CMD_MIN_SIZE_BREAK(sizeof(*pCmd)); 3545 STAM_REL_COUNTER_INC(&pSVGAState->StatR3Cmd3dSetTextureState); 3262 3546 3263 3547 cTextureStates = (pHdr->size - sizeof(*pCmd)) / sizeof(SVGA3dTextureState); … … 3270 3554 SVGA3dCmdSetMaterial *pCmd = (SVGA3dCmdSetMaterial *)(pHdr + 1); 3271 3555 VMSVGAFIFO_CHECK_3D_CMD_MIN_SIZE_BREAK(sizeof(*pCmd)); 3556 STAM_REL_COUNTER_INC(&pSVGAState->StatR3Cmd3dSetMaterial); 3272 3557 3273 3558 rc = vmsvga3dSetMaterial(pThis, pCmd->cid, pCmd->face, &pCmd->material); … … 3279 3564 SVGA3dCmdSetLightData *pCmd = (SVGA3dCmdSetLightData *)(pHdr + 1); 3280 3565 VMSVGAFIFO_CHECK_3D_CMD_MIN_SIZE_BREAK(sizeof(*pCmd)); 3566 STAM_REL_COUNTER_INC(&pSVGAState->StatR3Cmd3dSetLightData); 3281 3567 3282 3568 rc = vmsvga3dSetLightData(pThis, pCmd->cid, pCmd->index, &pCmd->data); … … 3288 3574 SVGA3dCmdSetLightEnabled *pCmd = (SVGA3dCmdSetLightEnabled *)(pHdr + 1); 3289 3575 VMSVGAFIFO_CHECK_3D_CMD_MIN_SIZE_BREAK(sizeof(*pCmd)); 3576 STAM_REL_COUNTER_INC(&pSVGAState->StatR3Cmd3dSetLightEnable); 3290 3577 3291 3578 rc = vmsvga3dSetLightEnabled(pThis, pCmd->cid, pCmd->index, pCmd->enabled); … … 3297 3584 SVGA3dCmdSetViewport *pCmd = (SVGA3dCmdSetViewport *)(pHdr + 1); 3298 3585 VMSVGAFIFO_CHECK_3D_CMD_MIN_SIZE_BREAK(sizeof(*pCmd)); 3586 STAM_REL_COUNTER_INC(&pSVGAState->StatR3Cmd3dSetViewPort); 3299 3587 3300 3588 rc = vmsvga3dSetViewPort(pThis, pCmd->cid, &pCmd->rect); … … 3306 3594 SVGA3dCmdSetClipPlane *pCmd = (SVGA3dCmdSetClipPlane *)(pHdr + 1); 3307 3595 VMSVGAFIFO_CHECK_3D_CMD_MIN_SIZE_BREAK(sizeof(*pCmd)); 3596 STAM_REL_COUNTER_INC(&pSVGAState->StatR3Cmd3dSetClipPlane); 3308 3597 3309 3598 rc = vmsvga3dSetClipPlane(pThis, pCmd->cid, pCmd->index, pCmd->plane); … … 3315 3604 SVGA3dCmdClear *pCmd = (SVGA3dCmdClear *)(pHdr + 1); 3316 3605 VMSVGAFIFO_CHECK_3D_CMD_MIN_SIZE_BREAK(sizeof(*pCmd)); 3606 STAM_REL_COUNTER_INC(&pSVGAState->StatR3Cmd3dClear); 3607 3317 3608 uint32_t cRects; 3318 3319 3609 cRects = (pHdr->size - sizeof(*pCmd)) / sizeof(SVGA3dRect); 3320 3610 rc = vmsvga3dCommandClear(pThis, pCmd->cid, pCmd->clearFlag, pCmd->color, pCmd->depth, pCmd->stencil, cRects, (SVGA3dRect *)(pCmd + 1)); … … 3327 3617 SVGA3dCmdPresent *pCmd = (SVGA3dCmdPresent *)(pHdr + 1); 3328 3618 VMSVGAFIFO_CHECK_3D_CMD_MIN_SIZE_BREAK(sizeof(*pCmd)); 3329 uint32_t cRects; 3330 3331 cRects = (pHdr->size - sizeof(*pCmd)) / sizeof(SVGA3dCopyRect); 3332 3333 STAM_PROFILE_START(&pSVGAState->StatR3CmdPresent, a); 3619 if (enmCmdId == SVGA_3D_CMD_PRESENT) 3620 STAM_REL_COUNTER_INC(&pSVGAState->StatR3Cmd3dPresent); 3621 else 3622 STAM_REL_COUNTER_INC(&pSVGAState->StatR3Cmd3dPresentReadBack); 3623 3624 uint32_t cRects = (pHdr->size - sizeof(*pCmd)) / sizeof(SVGA3dCopyRect); 3625 3626 STAM_PROFILE_START(&pSVGAState->StatR3Cmd3dPresentProf, a); 3334 3627 rc = vmsvga3dCommandPresent(pThis, pCmd->sid, cRects, (SVGA3dCopyRect *)(pCmd + 1)); 3335 STAM_PROFILE_STOP(&pSVGAState->StatR3Cmd Present, a);3628 STAM_PROFILE_STOP(&pSVGAState->StatR3Cmd3dPresentProf, a); 3336 3629 break; 3337 3630 } … … 3341 3634 SVGA3dCmdDefineShader *pCmd = (SVGA3dCmdDefineShader *)(pHdr + 1); 3342 3635 VMSVGAFIFO_CHECK_3D_CMD_MIN_SIZE_BREAK(sizeof(*pCmd)); 3343 uint32_t cbData;3344 3345 cbData = (pHdr->size - sizeof(*pCmd));3636 STAM_REL_COUNTER_INC(&pSVGAState->StatR3Cmd3dShaderDefine); 3637 3638 uint32_t cbData = (pHdr->size - sizeof(*pCmd)); 3346 3639 rc = vmsvga3dShaderDefine(pThis, pCmd->cid, pCmd->shid, pCmd->type, cbData, (uint32_t *)(pCmd + 1)); 3347 3640 break; … … 3352 3645 SVGA3dCmdDestroyShader *pCmd = (SVGA3dCmdDestroyShader *)(pHdr + 1); 3353 3646 VMSVGAFIFO_CHECK_3D_CMD_MIN_SIZE_BREAK(sizeof(*pCmd)); 3647 STAM_REL_COUNTER_INC(&pSVGAState->StatR3Cmd3dShaderDestroy); 3354 3648 3355 3649 rc = vmsvga3dShaderDestroy(pThis, pCmd->cid, pCmd->shid, pCmd->type); … … 3361 3655 SVGA3dCmdSetShader *pCmd = (SVGA3dCmdSetShader *)(pHdr + 1); 3362 3656 VMSVGAFIFO_CHECK_3D_CMD_MIN_SIZE_BREAK(sizeof(*pCmd)); 3657 STAM_REL_COUNTER_INC(&pSVGAState->StatR3Cmd3dSetShader); 3363 3658 3364 3659 rc = vmsvga3dShaderSet(pThis, NULL, pCmd->cid, pCmd->type, pCmd->shid); … … 3370 3665 SVGA3dCmdSetShaderConst *pCmd = (SVGA3dCmdSetShaderConst *)(pHdr + 1); 3371 3666 VMSVGAFIFO_CHECK_3D_CMD_MIN_SIZE_BREAK(sizeof(*pCmd)); 3667 STAM_REL_COUNTER_INC(&pSVGAState->StatR3Cmd3dSetShaderConst); 3372 3668 3373 3669 uint32_t cRegisters = (pHdr->size - sizeof(*pCmd)) / sizeof(pCmd->values) + 1; … … 3380 3676 SVGA3dCmdDrawPrimitives *pCmd = (SVGA3dCmdDrawPrimitives *)(pHdr + 1); 3381 3677 VMSVGAFIFO_CHECK_3D_CMD_MIN_SIZE_BREAK(sizeof(*pCmd)); 3382 uint32_t cVertexDivisor;3383 3384 cVertexDivisor = (pHdr->size - sizeof(*pCmd) - sizeof(SVGA3dVertexDecl) * pCmd->numVertexDecls - sizeof(SVGA3dPrimitiveRange) * pCmd->numRanges);3678 STAM_REL_COUNTER_INC(&pSVGAState->StatR3Cmd3dDrawPrimitives); 3679 3680 uint32_t cVertexDivisor = (pHdr->size - sizeof(*pCmd) - sizeof(SVGA3dVertexDecl) * pCmd->numVertexDecls - sizeof(SVGA3dPrimitiveRange) * pCmd->numRanges); 3385 3681 Assert(pCmd->numRanges <= SVGA3D_MAX_DRAW_PRIMITIVE_RANGES); 3386 3682 Assert(pCmd->numVertexDecls <= SVGA3D_MAX_VERTEX_ARRAYS); … … 3391 3687 SVGA3dVertexDivisor *pVertexDivisor = (cVertexDivisor) ? (SVGA3dVertexDivisor *)(&pNumRange[pCmd->numRanges]) : NULL; 3392 3688 3393 STAM_PROFILE_START(&pSVGAState->StatR3Cmd DrawPrimitive, a);3689 STAM_PROFILE_START(&pSVGAState->StatR3Cmd3dDrawPrimitivesProf, a); 3394 3690 rc = vmsvga3dDrawPrimitives(pThis, pCmd->cid, pCmd->numVertexDecls, pVertexDecl, pCmd->numRanges, pNumRange, cVertexDivisor, pVertexDivisor); 3395 STAM_PROFILE_STOP(&pSVGAState->StatR3Cmd DrawPrimitive, a);3691 STAM_PROFILE_STOP(&pSVGAState->StatR3Cmd3dDrawPrimitivesProf, a); 3396 3692 break; 3397 3693 } … … 3401 3697 SVGA3dCmdSetScissorRect *pCmd = (SVGA3dCmdSetScissorRect *)(pHdr + 1); 3402 3698 VMSVGAFIFO_CHECK_3D_CMD_MIN_SIZE_BREAK(sizeof(*pCmd)); 3699 STAM_REL_COUNTER_INC(&pSVGAState->StatR3Cmd3dSetScissorRect); 3403 3700 3404 3701 rc = vmsvga3dSetScissorRect(pThis, pCmd->cid, &pCmd->rect); … … 3410 3707 SVGA3dCmdBeginQuery *pCmd = (SVGA3dCmdBeginQuery *)(pHdr + 1); 3411 3708 VMSVGAFIFO_CHECK_3D_CMD_MIN_SIZE_BREAK(sizeof(*pCmd)); 3709 STAM_REL_COUNTER_INC(&pSVGAState->StatR3Cmd3dBeginQuery); 3412 3710 3413 3711 rc = vmsvga3dQueryBegin(pThis, pCmd->cid, pCmd->type); … … 3419 3717 SVGA3dCmdEndQuery *pCmd = (SVGA3dCmdEndQuery *)(pHdr + 1); 3420 3718 VMSVGAFIFO_CHECK_3D_CMD_MIN_SIZE_BREAK(sizeof(*pCmd)); 3719 STAM_REL_COUNTER_INC(&pSVGAState->StatR3Cmd3dEndQuery); 3421 3720 3422 3721 rc = vmsvga3dQueryEnd(pThis, pCmd->cid, pCmd->type, pCmd->guestResult); … … 3428 3727 SVGA3dCmdWaitForQuery *pCmd = (SVGA3dCmdWaitForQuery *)(pHdr + 1); 3429 3728 VMSVGAFIFO_CHECK_3D_CMD_MIN_SIZE_BREAK(sizeof(*pCmd)); 3729 STAM_REL_COUNTER_INC(&pSVGAState->StatR3Cmd3dWaitForQuery); 3430 3730 3431 3731 rc = vmsvga3dQueryWait(pThis, pCmd->cid, pCmd->type, pCmd->guestResult); … … 3437 3737 SVGA3dCmdGenerateMipmaps *pCmd = (SVGA3dCmdGenerateMipmaps *)(pHdr + 1); 3438 3738 VMSVGAFIFO_CHECK_3D_CMD_MIN_SIZE_BREAK(sizeof(*pCmd)); 3739 STAM_REL_COUNTER_INC(&pSVGAState->StatR3Cmd3dGenerateMipmaps); 3439 3740 3440 3741 rc = vmsvga3dGenerateMipmaps(pThis, pCmd->sid, pCmd->filter); … … 3443 3744 3444 3745 case SVGA_3D_CMD_ACTIVATE_SURFACE: 3746 /* context id + surface id? */ 3747 STAM_REL_COUNTER_INC(&pSVGAState->StatR3Cmd3dActivateSurface); 3748 break; 3445 3749 case SVGA_3D_CMD_DEACTIVATE_SURFACE: 3446 3750 /* context id + surface id? */ 3751 STAM_REL_COUNTER_INC(&pSVGAState->StatR3Cmd3dDeactivateSurface); 3447 3752 break; 3448 3753 3449 3754 default: 3450 3755 STAM_REL_COUNTER_INC(&pSVGAState->StatFifoUnkCmds); 3451 Assert Failed();3756 AssertMsgFailed(("enmCmdId=%d\n", enmCmdId)); 3452 3757 break; 3453 3758 } … … 3457 3762 { 3458 3763 STAM_REL_COUNTER_INC(&pSVGAState->StatFifoUnkCmds); 3459 Assert Failed();3764 AssertMsgFailed(("enmCmdId=%d\n", enmCmdId)); 3460 3765 } 3461 3766 } … … 4357 4662 * Statistics. 4358 4663 */ 4359 STAM_REG(pVM, &pSVGAState->StatR3CmdPresent, STAMTYPE_PROFILE, "/Devices/VMSVGA/3d/Cmd/Present", STAMUNIT_TICKS_PER_CALL, "Profiling of Present."); 4360 STAM_REG(pVM, &pSVGAState->StatR3CmdDrawPrimitive, STAMTYPE_PROFILE, "/Devices/VMSVGA/3d/Cmd/DrawPrimitive", STAMUNIT_TICKS_PER_CALL, "Profiling of DrawPrimitive."); 4361 STAM_REG(pVM, &pSVGAState->StatR3CmdSurfaceDMA, STAMTYPE_PROFILE, "/Devices/VMSVGA/3d/Cmd/SurfaceDMA", STAMUNIT_TICKS_PER_CALL, "Profiling of SurfaceDMA."); 4664 STAM_REL_REG(pVM, &pSVGAState->StatR3Cmd3dActivateSurface, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/3dActivateSurface", STAMUNIT_OCCURENCES, "SVGA_3D_CMD_ACTIVATE_SURFACE"); 4665 STAM_REL_REG(pVM, &pSVGAState->StatR3Cmd3dBeginQuery, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/3dBeginQuery", STAMUNIT_OCCURENCES, "SVGA_3D_CMD_BEGIN_QUERY"); 4666 STAM_REL_REG(pVM, &pSVGAState->StatR3Cmd3dClear, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/3dClear", STAMUNIT_OCCURENCES, "SVGA_3D_CMD_CLEAR"); 4667 STAM_REL_REG(pVM, &pSVGAState->StatR3Cmd3dContextDefine, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/3dContextDefine", STAMUNIT_OCCURENCES, "SVGA_3D_CMD_CONTEXT_DEFINE"); 4668 STAM_REL_REG(pVM, &pSVGAState->StatR3Cmd3dContextDestroy, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/3dContextDestroy", STAMUNIT_OCCURENCES, "SVGA_3D_CMD_CONTEXT_DESTROY"); 4669 STAM_REL_REG(pVM, &pSVGAState->StatR3Cmd3dDeactivateSurface, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/3dDeactivateSurface", STAMUNIT_OCCURENCES, "SVGA_3D_CMD_DEACTIVATE_SURFACE"); 4670 STAM_REL_REG(pVM, &pSVGAState->StatR3Cmd3dDrawPrimitives, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/3dDrawPrimitives", STAMUNIT_OCCURENCES, "SVGA_3D_CMD_DRAW_PRIMITIVES"); 4671 STAM_REG(pVM, &pSVGAState->StatR3Cmd3dDrawPrimitivesProf, STAMTYPE_PROFILE, "/Devices/VMSVGA/Cmd/3dDrawPrimitivesProf", STAMUNIT_TICKS_PER_CALL, "Profiling of SVGA_3D_CMD_DRAW_PRIMITIVES."); 4672 STAM_REL_REG(pVM, &pSVGAState->StatR3Cmd3dEndQuery, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/3dEndQuery", STAMUNIT_OCCURENCES, "SVGA_3D_CMD_END_QUERY"); 4673 STAM_REL_REG(pVM, &pSVGAState->StatR3Cmd3dGenerateMipmaps, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/3dGenerateMipmaps", STAMUNIT_OCCURENCES, "SVGA_3D_CMD_GENERATE_MIPMAPS"); 4674 STAM_REL_REG(pVM, &pSVGAState->StatR3Cmd3dPresent, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/3dPresent", STAMUNIT_OCCURENCES, "SVGA_3D_CMD_PRESENT"); 4675 STAM_REL_REG(pVM, &pSVGAState->StatR3Cmd3dPresentReadBack, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/3dPresentReadBack", STAMUNIT_OCCURENCES, "SVGA_3D_CMD_PRESENT_READBACK"); 4676 STAM_REG(pVM, &pSVGAState->StatR3Cmd3dPresentProf, STAMTYPE_PROFILE, "/Devices/VMSVGA/Cmd/3dPresentProfBoth", STAMUNIT_TICKS_PER_CALL, "Profiling of SVGA_3D_CMD_PRESENT and SVGA_3D_CMD_PRESENT_READBACK."); 4677 STAM_REL_REG(pVM, &pSVGAState->StatR3Cmd3dSetClipPlane, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/3dSetClipPlane", STAMUNIT_OCCURENCES, "SVGA_3D_CMD_SETCLIPPLANE"); 4678 STAM_REL_REG(pVM, &pSVGAState->StatR3Cmd3dSetLightData, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/3dSetLightData", STAMUNIT_OCCURENCES, "SVGA_3D_CMD_SETLIGHTDATA"); 4679 STAM_REL_REG(pVM, &pSVGAState->StatR3Cmd3dSetLightEnable, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/3dSetLightEnable", STAMUNIT_OCCURENCES, "SVGA_3D_CMD_SETLIGHTENABLE"); 4680 STAM_REL_REG(pVM, &pSVGAState->StatR3Cmd3dSetMaterial, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/3dSetMaterial", STAMUNIT_OCCURENCES, "SVGA_3D_CMD_SETMATERIAL"); 4681 STAM_REL_REG(pVM, &pSVGAState->StatR3Cmd3dSetRenderState, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/3dSetRenderState", STAMUNIT_OCCURENCES, "SVGA_3D_CMD_SETRENDERSTATE"); 4682 STAM_REL_REG(pVM, &pSVGAState->StatR3Cmd3dSetRenderTarget, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/3dSetRenderTarget", STAMUNIT_OCCURENCES, "SVGA_3D_CMD_SETRENDERTARGET"); 4683 STAM_REL_REG(pVM, &pSVGAState->StatR3Cmd3dSetScissorRect, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/3dSetScissorRect", STAMUNIT_OCCURENCES, "SVGA_3D_CMD_SETSCISSORRECT"); 4684 STAM_REL_REG(pVM, &pSVGAState->StatR3Cmd3dSetShader, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/3dSetShader", STAMUNIT_OCCURENCES, "SVGA_3D_CMD_SET_SHADER"); 4685 STAM_REL_REG(pVM, &pSVGAState->StatR3Cmd3dSetShaderConst, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/3dSetShaderConst", STAMUNIT_OCCURENCES, "SVGA_3D_CMD_SET_SHADER_CONST"); 4686 STAM_REL_REG(pVM, &pSVGAState->StatR3Cmd3dSetTextureState, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/3dSetTextureState", STAMUNIT_OCCURENCES, "SVGA_3D_CMD_SETTEXTURESTATE"); 4687 STAM_REL_REG(pVM, &pSVGAState->StatR3Cmd3dSetTransform, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/3dSetTransform", STAMUNIT_OCCURENCES, "SVGA_3D_CMD_SETTRANSFORM"); 4688 STAM_REL_REG(pVM, &pSVGAState->StatR3Cmd3dSetViewPort, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/3dSetViewPort", STAMUNIT_OCCURENCES, "SVGA_3D_CMD_SETVIEWPORT"); 4689 STAM_REL_REG(pVM, &pSVGAState->StatR3Cmd3dSetZRange, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/3dSetZRange", STAMUNIT_OCCURENCES, "SVGA_3D_CMD_SETZRANGE"); 4690 STAM_REL_REG(pVM, &pSVGAState->StatR3Cmd3dShaderDefine, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/3dShaderDefine", STAMUNIT_OCCURENCES, "SVGA_3D_CMD_SHADER_DEFINE"); 4691 STAM_REL_REG(pVM, &pSVGAState->StatR3Cmd3dShaderDestroy, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/3dShaderDestroy", STAMUNIT_OCCURENCES, "SVGA_3D_CMD_SHADER_DESTROY"); 4692 STAM_REL_REG(pVM, &pSVGAState->StatR3Cmd3dSurfaceCopy, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/3dSurfaceCopy", STAMUNIT_OCCURENCES, "SVGA_3D_CMD_SURFACE_COPY"); 4693 STAM_REL_REG(pVM, &pSVGAState->StatR3Cmd3dSurfaceDefine, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/3dSurfaceDefine", STAMUNIT_OCCURENCES, "SVGA_3D_CMD_SURFACE_DEFINE"); 4694 STAM_REL_REG(pVM, &pSVGAState->StatR3Cmd3dSurfaceDefineV2, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/3dSurfaceDefineV2", STAMUNIT_OCCURENCES, "SVGA_3D_CMD_SURFACE_DEFINE_V2"); 4695 STAM_REL_REG(pVM, &pSVGAState->StatR3Cmd3dSurfaceDestroy, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/3dSurfaceDestroy", STAMUNIT_OCCURENCES, "SVGA_3D_CMD_SURFACE_DESTROY"); 4696 STAM_REL_REG(pVM, &pSVGAState->StatR3Cmd3dSurfaceDma, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/3dSurfaceDma", STAMUNIT_OCCURENCES, "SVGA_3D_CMD_SURFACE_DMA"); 4697 STAM_REG(pVM, &pSVGAState->StatR3Cmd3dSurfaceDmaProf, STAMTYPE_PROFILE, "/Devices/VMSVGA/Cmd/3dSurfaceDmaProf", STAMUNIT_TICKS_PER_CALL, "Profiling of SVGA_3D_CMD_SURFACE_DMA."); 4698 STAM_REL_REG(pVM, &pSVGAState->StatR3Cmd3dSurfaceScreen, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/3dSurfaceScreen", STAMUNIT_OCCURENCES, "SVGA_3D_CMD_SURFACE_SCREEN"); 4699 STAM_REL_REG(pVM, &pSVGAState->StatR3Cmd3dSurfaceStretchBlt, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/3dSurfaceStretchBlt", STAMUNIT_OCCURENCES, "SVGA_3D_CMD_SURFACE_STRETCHBLT"); 4700 STAM_REL_REG(pVM, &pSVGAState->StatR3Cmd3dWaitForQuery, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/3dWaitForQuery", STAMUNIT_OCCURENCES, "SVGA_3D_CMD_WAIT_FOR_QUERY"); 4701 STAM_REL_REG(pVM, &pSVGAState->StatR3CmdAnnotationCopy, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/AnnotationCopy", STAMUNIT_OCCURENCES, "SVGA_CMD_ANNOTATION_COPY"); 4702 STAM_REL_REG(pVM, &pSVGAState->StatR3CmdAnnotationFill, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/AnnotationFill", STAMUNIT_OCCURENCES, "SVGA_CMD_ANNOTATION_FILL"); 4703 STAM_REL_REG(pVM, &pSVGAState->StatR3CmdBlitGmrFbToScreen, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/BlitGmrFbToScreen", STAMUNIT_OCCURENCES, "SVGA_CMD_BLIT_GMRFB_TO_SCREEN"); 4704 STAM_REL_REG(pVM, &pSVGAState->StatR3CmdBlitScreentoGmrFb, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/BlitScreentoGmrFb", STAMUNIT_OCCURENCES, "SVGA_CMD_BLIT_SCREEN_TO_GMRFB"); 4705 STAM_REL_REG(pVM, &pSVGAState->StatR3CmdDefineAlphaCursor, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/DefineAlphaCursor", STAMUNIT_OCCURENCES, "SVGA_CMD_DEFINE_ALPHA_CURSOR"); 4706 STAM_REL_REG(pVM, &pSVGAState->StatR3CmdDefineCursor, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/DefineCursor", STAMUNIT_OCCURENCES, "SVGA_CMD_DEFINE_CURSOR"); 4707 STAM_REL_REG(pVM, &pSVGAState->StatR3CmdDefineGmr2, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/DefineGmr2", STAMUNIT_OCCURENCES, "SVGA_CMD_DEFINE_GMR2"); 4708 STAM_REL_REG(pVM, &pSVGAState->StatR3CmdDefineGmr2Free, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/DefineGmr2/Free", STAMUNIT_OCCURENCES, "Number of SVGA_CMD_DEFINE_GMR2 commands that only frees."); 4709 STAM_REL_REG(pVM, &pSVGAState->StatR3CmdDefineGmr2Modify, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/DefineGmr2/Modify", STAMUNIT_OCCURENCES, "Number of SVGA_CMD_DEFINE_GMR2 commands that redefines a non-free GMR."); 4710 STAM_REL_REG(pVM, &pSVGAState->StatR3CmdDefineGmrFb, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/DefineGmrFb", STAMUNIT_OCCURENCES, "SVGA_CMD_DEFINE_GMRFB"); 4711 STAM_REL_REG(pVM, &pSVGAState->StatR3CmdDefineScreen, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/DefineScreen", STAMUNIT_OCCURENCES, "SVGA_CMD_DEFINE_SCREEN"); 4712 STAM_REL_REG(pVM, &pSVGAState->StatR3CmdDestroyScreen, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/DestroyScreen", STAMUNIT_OCCURENCES, "SVGA_CMD_DESTROY_SCREEN"); 4713 STAM_REL_REG(pVM, &pSVGAState->StatR3CmdEscape, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/Escape", STAMUNIT_OCCURENCES, "SVGA_CMD_ESCAPE"); 4714 STAM_REL_REG(pVM, &pSVGAState->StatR3CmdFence, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/Fence", STAMUNIT_OCCURENCES, "SVGA_CMD_FENCE"); 4715 STAM_REL_REG(pVM, &pSVGAState->StatR3CmdInvalidCmd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/InvalidCmd", STAMUNIT_OCCURENCES, "SVGA_CMD_INVALID_CMD"); 4716 STAM_REL_REG(pVM, &pSVGAState->StatR3CmdRemapGmr2, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/RemapGmr2", STAMUNIT_OCCURENCES, "SVGA_CMD_REMAP_GMR2."); 4717 STAM_REL_REG(pVM, &pSVGAState->StatR3CmdRemapGmr2Modify, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/RemapGmr2/Modify", STAMUNIT_OCCURENCES, "Number of SVGA_CMD_REMAP_GMR2 commands that modifies rather than complete the definition of a GMR."); 4718 STAM_REL_REG(pVM, &pSVGAState->StatR3CmdUpdate, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/Update", STAMUNIT_OCCURENCES, "SVGA_CMD_UPATE"); 4719 STAM_REL_REG(pVM, &pSVGAState->StatR3CmdUpdateVerbose, STAMTYPE_COUNTER, "/Devices/VMSVGA/Cmd/UpdateVerbose", STAMUNIT_OCCURENCES, "SVGA_CMD_UPDATE_VERBOSE"); 4720 4721 STAM_REL_REG(pVM, &pSVGAState->StatR3RegConfigDoneWr, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/ConfigDoneWrite", STAMUNIT_OCCURENCES, "SVGA_REG_CONFIG_DONE writes"); 4722 STAM_REL_REG(pVM, &pSVGAState->StatR3RegGmrDescriptorWr, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/GmrDescriptorWrite", STAMUNIT_OCCURENCES, "SVGA_REG_GMR_DESCRIPTOR writes"); 4723 STAM_REL_REG(pVM, &pSVGAState->StatR3RegGmrDescriptorWrErrors, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/GmrDescriptorWrite/Errors", STAMUNIT_OCCURENCES, "Number of erroneous SVGA_REG_GMR_DESCRIPTOR commands."); 4724 STAM_REL_REG(pVM, &pSVGAState->StatR3RegGmrDescriptorWrFree, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/GmrDescriptorWrite/Free", STAMUNIT_OCCURENCES, "Number of SVGA_REG_GMR_DESCRIPTOR commands only freeing the GMR."); 4725 STAM_REL_REG(pVM, &pThis->svga.StatRegBitsPerPixelWr, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/BitsPerPixelWrite", STAMUNIT_OCCURENCES, "SVGA_REG_BITS_PER_PIXEL writes."); 4726 STAM_REL_REG(pVM, &pThis->svga.StatRegBusyWr, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/BusyWrite", STAMUNIT_OCCURENCES, "SVGA_REG_BUSY writes."); 4727 STAM_REL_REG(pVM, &pThis->svga.StatRegCursorXxxxWr, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/CursorXxxxWrite", STAMUNIT_OCCURENCES, "SVGA_REG_CURSOR_XXXX writes."); 4728 STAM_REL_REG(pVM, &pThis->svga.StatRegDepthWr, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/DepthWrite", STAMUNIT_OCCURENCES, "SVGA_REG_DEPTH writes."); 4729 STAM_REL_REG(pVM, &pThis->svga.StatRegDisplayHeightWr, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/DisplayHeightWrite", STAMUNIT_OCCURENCES, "SVGA_REG_DISPLAY_HEIGHT writes."); 4730 STAM_REL_REG(pVM, &pThis->svga.StatRegDisplayIdWr, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/DisplayIdWrite", STAMUNIT_OCCURENCES, "SVGA_REG_DISPLAY_ID writes."); 4731 STAM_REL_REG(pVM, &pThis->svga.StatRegDisplayIsPrimaryWr, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/DisplayIsPrimaryWrite", STAMUNIT_OCCURENCES, "SVGA_REG_DISPLAY_IS_PRIMARY writes."); 4732 STAM_REL_REG(pVM, &pThis->svga.StatRegDisplayPositionXWr, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/DisplayPositionXWrite", STAMUNIT_OCCURENCES, "SVGA_REG_DISPLAY_POSITION_X writes."); 4733 STAM_REL_REG(pVM, &pThis->svga.StatRegDisplayPositionYWr, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/DisplayPositionYWrite", STAMUNIT_OCCURENCES, "SVGA_REG_DISPLAY_POSITION_Y writes."); 4734 STAM_REL_REG(pVM, &pThis->svga.StatRegDisplayWidthWr, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/DisplayWidthWrite", STAMUNIT_OCCURENCES, "SVGA_REG_DISPLAY_WIDTH writes."); 4735 STAM_REL_REG(pVM, &pThis->svga.StatRegEnableWr, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/EnableWrite", STAMUNIT_OCCURENCES, "SVGA_REG_ENABLE writes."); 4736 STAM_REL_REG(pVM, &pThis->svga.StatRegGmrIdWr, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/GmrIdWrite", STAMUNIT_OCCURENCES, "SVGA_REG_GMR_ID writes."); 4737 STAM_REL_REG(pVM, &pThis->svga.StatRegGuestIdWr, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/GuestIdWrite", STAMUNIT_OCCURENCES, "SVGA_REG_GUEST_ID writes."); 4738 STAM_REL_REG(pVM, &pThis->svga.StatRegHeightWr, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/HeightWrite", STAMUNIT_OCCURENCES, "SVGA_REG_HEIGHT writes."); 4739 STAM_REL_REG(pVM, &pThis->svga.StatRegIdWr, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/IdWrite", STAMUNIT_OCCURENCES, "SVGA_REG_ID writes."); 4740 STAM_REL_REG(pVM, &pThis->svga.StatRegIrqMaskWr, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/IrqMaskWrite", STAMUNIT_OCCURENCES, "SVGA_REG_IRQMASK writes."); 4741 STAM_REL_REG(pVM, &pThis->svga.StatRegNumDisplaysWr, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/NumDisplaysWrite", STAMUNIT_OCCURENCES, "SVGA_REG_NUM_DISPLAYS writes."); 4742 STAM_REL_REG(pVM, &pThis->svga.StatRegNumGuestDisplaysWr, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/NumGuestDisplaysWrite", STAMUNIT_OCCURENCES, "SVGA_REG_NUM_GUEST_DISPLAYS writes."); 4743 STAM_REL_REG(pVM, &pThis->svga.StatRegPaletteWr, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/PaletteWrite", STAMUNIT_OCCURENCES, "SVGA_PALETTE_XXXX writes."); 4744 STAM_REL_REG(pVM, &pThis->svga.StatRegPitchLockWr, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/PitchLockWrite", STAMUNIT_OCCURENCES, "SVGA_REG_PITCHLOCK writes."); 4745 STAM_REL_REG(pVM, &pThis->svga.StatRegPseudoColorWr, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/PseudoColorWrite", STAMUNIT_OCCURENCES, "SVGA_REG_PSEUDOCOLOR writes."); 4746 STAM_REL_REG(pVM, &pThis->svga.StatRegReadOnlyWr, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/ReadOnlyWrite", STAMUNIT_OCCURENCES, "Read-only SVGA_REG_XXXX writes."); 4747 STAM_REL_REG(pVM, &pThis->svga.StatRegScratchWr, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/ScratchWrite", STAMUNIT_OCCURENCES, "SVGA_REG_SCRATCH_XXXX writes."); 4748 STAM_REL_REG(pVM, &pThis->svga.StatRegSyncWr, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/SyncWrite", STAMUNIT_OCCURENCES, "SVGA_REG_SYNC writes."); 4749 STAM_REL_REG(pVM, &pThis->svga.StatRegTopWr, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/TopWrite", STAMUNIT_OCCURENCES, "SVGA_REG_TOP writes."); 4750 STAM_REL_REG(pVM, &pThis->svga.StatRegTracesWr, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/TracesWrite", STAMUNIT_OCCURENCES, "SVGA_REG_TRACES writes."); 4751 STAM_REL_REG(pVM, &pThis->svga.StatRegUnknownWr, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/UnknownWrite", STAMUNIT_OCCURENCES, "Writes to unknown register."); 4752 STAM_REL_REG(pVM, &pThis->svga.StatRegWidthWr, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/WidthWrite", STAMUNIT_OCCURENCES, "SVGA_REG_WIDTH writes."); 4753 4754 STAM_REL_REG(pVM, &pThis->svga.StatRegBitsPerPixelRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/BitsPerPixelRead", STAMUNIT_OCCURENCES, "SVGA_REG_BITS_PER_PIXEL reads."); 4755 STAM_REL_REG(pVM, &pThis->svga.StatRegBlueMaskRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/BlueMaskRead", STAMUNIT_OCCURENCES, "SVGA_REG_BLUE_MASK reads."); 4756 STAM_REL_REG(pVM, &pThis->svga.StatRegBusyRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/BusyRead", STAMUNIT_OCCURENCES, "SVGA_REG_BUSY reads."); 4757 STAM_REL_REG(pVM, &pThis->svga.StatRegBytesPerLineRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/BytesPerLineRead", STAMUNIT_OCCURENCES, "SVGA_REG_BYTES_PER_LINE reads."); 4758 STAM_REL_REG(pVM, &pThis->svga.StatRegCapabilitesRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/CapabilitesRead", STAMUNIT_OCCURENCES, "SVGA_REG_CAPABILITIES reads."); 4759 STAM_REL_REG(pVM, &pThis->svga.StatRegConfigDoneRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/ConfigDoneRead", STAMUNIT_OCCURENCES, "SVGA_REG_CONFIG_DONE reads."); 4760 STAM_REL_REG(pVM, &pThis->svga.StatRegCursorXxxxRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/CursorXxxxRead", STAMUNIT_OCCURENCES, "SVGA_REG_CURSOR_XXXX reads."); 4761 STAM_REL_REG(pVM, &pThis->svga.StatRegDepthRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/DepthRead", STAMUNIT_OCCURENCES, "SVGA_REG_DEPTH reads."); 4762 STAM_REL_REG(pVM, &pThis->svga.StatRegDisplayHeightRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/DisplayHeightRead", STAMUNIT_OCCURENCES, "SVGA_REG_DISPLAY_HEIGHT reads."); 4763 STAM_REL_REG(pVM, &pThis->svga.StatRegDisplayIdRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/DisplayIdRead", STAMUNIT_OCCURENCES, "SVGA_REG_DISPLAY_ID reads."); 4764 STAM_REL_REG(pVM, &pThis->svga.StatRegDisplayIsPrimaryRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/DisplayIsPrimaryRead", STAMUNIT_OCCURENCES, "SVGA_REG_DISPLAY_IS_PRIMARY reads."); 4765 STAM_REL_REG(pVM, &pThis->svga.StatRegDisplayPositionXRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/DisplayPositionXRead", STAMUNIT_OCCURENCES, "SVGA_REG_DISPLAY_POSITION_X reads."); 4766 STAM_REL_REG(pVM, &pThis->svga.StatRegDisplayPositionYRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/DisplayPositionYRead", STAMUNIT_OCCURENCES, "SVGA_REG_DISPLAY_POSITION_Y reads."); 4767 STAM_REL_REG(pVM, &pThis->svga.StatRegDisplayWidthRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/DisplayWidthRead", STAMUNIT_OCCURENCES, "SVGA_REG_DISPLAY_WIDTH reads."); 4768 STAM_REL_REG(pVM, &pThis->svga.StatRegEnableRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/EnableRead", STAMUNIT_OCCURENCES, "SVGA_REG_ENABLE reads."); 4769 STAM_REL_REG(pVM, &pThis->svga.StatRegFbOffsetRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/FbOffsetRead", STAMUNIT_OCCURENCES, "SVGA_REG_FB_OFFSET reads."); 4770 STAM_REL_REG(pVM, &pThis->svga.StatRegFbSizeRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/FbSizeRead", STAMUNIT_OCCURENCES, "SVGA_REG_FB_SIZE reads."); 4771 STAM_REL_REG(pVM, &pThis->svga.StatRegFbStartRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/FbStartRead", STAMUNIT_OCCURENCES, "SVGA_REG_FB_START reads."); 4772 STAM_REL_REG(pVM, &pThis->svga.StatRegGmrIdRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/GmrIdRead", STAMUNIT_OCCURENCES, "SVGA_REG_GMR_ID reads."); 4773 STAM_REL_REG(pVM, &pThis->svga.StatRegGmrMaxDescriptorLengthRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/GmrMaxDescriptorLengthRead", STAMUNIT_OCCURENCES, "SVGA_REG_GMR_MAX_DESCRIPTOR_LENGTH reads."); 4774 STAM_REL_REG(pVM, &pThis->svga.StatRegGmrMaxIdsRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/GmrMaxIdsRead", STAMUNIT_OCCURENCES, "SVGA_REG_GMR_MAX_IDS reads."); 4775 STAM_REL_REG(pVM, &pThis->svga.StatRegGmrsMaxPagesRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/GmrsMaxPagesRead", STAMUNIT_OCCURENCES, "SVGA_REG_GMRS_MAX_PAGES reads."); 4776 STAM_REL_REG(pVM, &pThis->svga.StatRegGreenMaskRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/GreenMaskRead", STAMUNIT_OCCURENCES, "SVGA_REG_GREEN_MASK reads."); 4777 STAM_REL_REG(pVM, &pThis->svga.StatRegGuestIdRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/GuestIdRead", STAMUNIT_OCCURENCES, "SVGA_REG_GUEST_ID reads."); 4778 STAM_REL_REG(pVM, &pThis->svga.StatRegHeightRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/HeightRead", STAMUNIT_OCCURENCES, "SVGA_REG_HEIGHT reads."); 4779 STAM_REL_REG(pVM, &pThis->svga.StatRegHostBitsPerPixelRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/HostBitsPerPixelRead", STAMUNIT_OCCURENCES, "SVGA_REG_HOST_BITS_PER_PIXEL reads."); 4780 STAM_REL_REG(pVM, &pThis->svga.StatRegIdRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/IdRead", STAMUNIT_OCCURENCES, "SVGA_REG_ID reads."); 4781 STAM_REL_REG(pVM, &pThis->svga.StatRegIrqMaskRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/IrqMaskRead", STAMUNIT_OCCURENCES, "SVGA_REG_IRQ_MASK reads."); 4782 STAM_REL_REG(pVM, &pThis->svga.StatRegMaxHeightRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/MaxHeightRead", STAMUNIT_OCCURENCES, "SVGA_REG_MAX_HEIGHT reads."); 4783 STAM_REL_REG(pVM, &pThis->svga.StatRegMaxWidthRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/MaxWidthRead", STAMUNIT_OCCURENCES, "SVGA_REG_MAX_WIDTH reads."); 4784 STAM_REL_REG(pVM, &pThis->svga.StatRegMemorySizeRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/MemorySizeRead", STAMUNIT_OCCURENCES, "SVGA_REG_MEMORY_SIZE reads."); 4785 STAM_REL_REG(pVM, &pThis->svga.StatRegMemRegsRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/MemRegsRead", STAMUNIT_OCCURENCES, "SVGA_REG_MEM_REGS reads."); 4786 STAM_REL_REG(pVM, &pThis->svga.StatRegMemSizeRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/MemSizeRead", STAMUNIT_OCCURENCES, "SVGA_REG_MEM_SIZE reads."); 4787 STAM_REL_REG(pVM, &pThis->svga.StatRegMemStartRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/MemStartRead", STAMUNIT_OCCURENCES, "SVGA_REG_MEM_START reads."); 4788 STAM_REL_REG(pVM, &pThis->svga.StatRegNumDisplaysRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/NumDisplaysRead", STAMUNIT_OCCURENCES, "SVGA_REG_NUM_DISPLAYS reads."); 4789 STAM_REL_REG(pVM, &pThis->svga.StatRegNumGuestDisplaysRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/NumGuestDisplaysRead", STAMUNIT_OCCURENCES, "SVGA_REG_NUM_GUEST_DISPLAYS reads."); 4790 STAM_REL_REG(pVM, &pThis->svga.StatRegPaletteRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/PaletteRead", STAMUNIT_OCCURENCES, "SVGA_REG_PLAETTE_XXXX reads."); 4791 STAM_REL_REG(pVM, &pThis->svga.StatRegPitchLockRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/PitchLockRead", STAMUNIT_OCCURENCES, "SVGA_REG_PITCHLOCK reads."); 4792 STAM_REL_REG(pVM, &pThis->svga.StatRegPsuedoColorRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/PsuedoColorRead", STAMUNIT_OCCURENCES, "SVGA_REG_PSEUDOCOLOR reads."); 4793 STAM_REL_REG(pVM, &pThis->svga.StatRegRedMaskRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/RedMaskRead", STAMUNIT_OCCURENCES, "SVGA_REG_RED_MASK reads."); 4794 STAM_REL_REG(pVM, &pThis->svga.StatRegScratchRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/ScratchRead", STAMUNIT_OCCURENCES, "SVGA_REG_SCRATCH reads."); 4795 STAM_REL_REG(pVM, &pThis->svga.StatRegScratchSizeRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/ScratchSizeRead", STAMUNIT_OCCURENCES, "SVGA_REG_SCRATCH_SIZE reads."); 4796 STAM_REL_REG(pVM, &pThis->svga.StatRegSyncRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/SyncRead", STAMUNIT_OCCURENCES, "SVGA_REG_SYNC reads."); 4797 STAM_REL_REG(pVM, &pThis->svga.StatRegTopRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/TopRead", STAMUNIT_OCCURENCES, "SVGA_REG_TOP reads."); 4798 STAM_REL_REG(pVM, &pThis->svga.StatRegTracesRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/TracesRead", STAMUNIT_OCCURENCES, "SVGA_REG_TRACES reads."); 4799 STAM_REL_REG(pVM, &pThis->svga.StatRegUnknownRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/UnknownRead", STAMUNIT_OCCURENCES, "SVGA_REG_UNKNOWN reads."); 4800 STAM_REL_REG(pVM, &pThis->svga.StatRegVramSizeRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/VramSizeRead", STAMUNIT_OCCURENCES, "SVGA_REG_VRAM_SIZE reads."); 4801 STAM_REL_REG(pVM, &pThis->svga.StatRegWidthRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/WidthRead", STAMUNIT_OCCURENCES, "SVGA_REG_WIDTH reads."); 4802 STAM_REL_REG(pVM, &pThis->svga.StatRegWriteOnlyRd, STAMTYPE_COUNTER, "/Devices/VMSVGA/Reg/WriteOnlyRead", STAMUNIT_OCCURENCES, "Write-only SVGA_REG_XXXX reads."); 4803 4362 4804 STAM_REL_REG(pVM, &pSVGAState->StatBusyDelayEmts, STAMTYPE_PROFILE, "/Devices/VMSVGA/EmtDelayOnBusyFifo", STAMUNIT_TICKS_PER_CALL, "Time we've delayed EMTs because of busy FIFO thread."); 4363 4805 STAM_REL_REG(pVM, &pSVGAState->StatFifoCommands, STAMTYPE_COUNTER, "/Devices/VMSVGA/FifoCommands", STAMUNIT_OCCURENCES, "FIFO command counter."); -
trunk/src/VBox/Devices/Graphics/DevVGA.h
r65193 r65265 357 357 PGMPHYSHANDLERTYPE hFifoAccessHandlerType; 358 358 # endif 359 360 STAMCOUNTER StatRegBitsPerPixelWr; 361 STAMCOUNTER StatRegBusyWr; 362 STAMCOUNTER StatRegCursorXxxxWr; 363 STAMCOUNTER StatRegDepthWr; 364 STAMCOUNTER StatRegDisplayHeightWr; 365 STAMCOUNTER StatRegDisplayIdWr; 366 STAMCOUNTER StatRegDisplayIsPrimaryWr; 367 STAMCOUNTER StatRegDisplayPositionXWr; 368 STAMCOUNTER StatRegDisplayPositionYWr; 369 STAMCOUNTER StatRegDisplayWidthWr; 370 STAMCOUNTER StatRegEnableWr; 371 STAMCOUNTER StatRegGmrIdWr; 372 STAMCOUNTER StatRegGuestIdWr; 373 STAMCOUNTER StatRegHeightWr; 374 STAMCOUNTER StatRegIdWr; 375 STAMCOUNTER StatRegIrqMaskWr; 376 STAMCOUNTER StatRegNumDisplaysWr; 377 STAMCOUNTER StatRegNumGuestDisplaysWr; 378 STAMCOUNTER StatRegPaletteWr; 379 STAMCOUNTER StatRegPitchLockWr; 380 STAMCOUNTER StatRegPseudoColorWr; 381 STAMCOUNTER StatRegReadOnlyWr; 382 STAMCOUNTER StatRegScratchWr; 383 STAMCOUNTER StatRegSyncWr; 384 STAMCOUNTER StatRegTopWr; 385 STAMCOUNTER StatRegTracesWr; 386 STAMCOUNTER StatRegUnknownWr; 387 STAMCOUNTER StatRegWidthWr; 388 389 STAMCOUNTER StatRegBitsPerPixelRd; 390 STAMCOUNTER StatRegBlueMaskRd; 391 STAMCOUNTER StatRegBusyRd; 392 STAMCOUNTER StatRegBytesPerLineRd; 393 STAMCOUNTER StatRegCapabilitesRd; 394 STAMCOUNTER StatRegConfigDoneRd; 395 STAMCOUNTER StatRegCursorXxxxRd; 396 STAMCOUNTER StatRegDepthRd; 397 STAMCOUNTER StatRegDisplayHeightRd; 398 STAMCOUNTER StatRegDisplayIdRd; 399 STAMCOUNTER StatRegDisplayIsPrimaryRd; 400 STAMCOUNTER StatRegDisplayPositionXRd; 401 STAMCOUNTER StatRegDisplayPositionYRd; 402 STAMCOUNTER StatRegDisplayWidthRd; 403 STAMCOUNTER StatRegEnableRd; 404 STAMCOUNTER StatRegFbOffsetRd; 405 STAMCOUNTER StatRegFbSizeRd; 406 STAMCOUNTER StatRegFbStartRd; 407 STAMCOUNTER StatRegGmrIdRd; 408 STAMCOUNTER StatRegGmrMaxDescriptorLengthRd; 409 STAMCOUNTER StatRegGmrMaxIdsRd; 410 STAMCOUNTER StatRegGmrsMaxPagesRd; 411 STAMCOUNTER StatRegGreenMaskRd; 412 STAMCOUNTER StatRegGuestIdRd; 413 STAMCOUNTER StatRegHeightRd; 414 STAMCOUNTER StatRegHostBitsPerPixelRd; 415 STAMCOUNTER StatRegIdRd; 416 STAMCOUNTER StatRegIrqMaskRd; 417 STAMCOUNTER StatRegMaxHeightRd; 418 STAMCOUNTER StatRegMaxWidthRd; 419 STAMCOUNTER StatRegMemorySizeRd; 420 STAMCOUNTER StatRegMemRegsRd; 421 STAMCOUNTER StatRegMemSizeRd; 422 STAMCOUNTER StatRegMemStartRd; 423 STAMCOUNTER StatRegNumDisplaysRd; 424 STAMCOUNTER StatRegNumGuestDisplaysRd; 425 STAMCOUNTER StatRegPaletteRd; 426 STAMCOUNTER StatRegPitchLockRd; 427 STAMCOUNTER StatRegPsuedoColorRd; 428 STAMCOUNTER StatRegRedMaskRd; 429 STAMCOUNTER StatRegScratchRd; 430 STAMCOUNTER StatRegScratchSizeRd; 431 STAMCOUNTER StatRegSyncRd; 432 STAMCOUNTER StatRegTopRd; 433 STAMCOUNTER StatRegTracesRd; 434 STAMCOUNTER StatRegUnknownRd; 435 STAMCOUNTER StatRegVramSizeRd; 436 STAMCOUNTER StatRegWidthRd; 437 STAMCOUNTER StatRegWriteOnlyRd; 359 438 } VMSVGAState; 360 439 #endif /* VBOX_WITH_VMSVGA */
Note:
See TracChangeset
for help on using the changeset viewer.