Changeset 41637 in vbox for trunk/src/VBox/Additions/WINNT
- Timestamp:
- Jun 9, 2012 12:57:58 PM (13 years ago)
- Location:
- trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/VBoxDispD3D.cpp
r41475 r41637 35 35 36 36 #ifdef VBOX_WDDMDISP_WITH_PROFILE 37 #include "VBoxDispProfile.h" 37 38 volatile uint32_t g_u32VBoxDispProfileFunctionLoggerIndex = 0; 39 40 struct VBOXDISPPROFILE_GLOBAL { 41 VBoxDispProfileFpsCounter ProfileDdiFps; 42 VBoxDispProfileSet ProfileDdiFunc; 43 } g_VBoxDispProfile; 38 44 39 45 /* uncomment to enable particular logging */ 40 #define VBOXDISPPROFILE_DDI_STATISTIC_LOGGER_ENABLE 41 //#define VBOXDISPPROFILE_DDI_FUNCTION_LOGGER_ENABLE 42 43 #ifdef VBOXDISPPROFILE_DDI_FUNCTION_LOGGER_ENABLE 44 static VBoxDispProfileSet g_VBoxDispProfileDDI("D3D_DDI"); 45 #define VBOXDISPPROFILE_DDI_FUNCTION_LOGGER_PROLOGUE() VBOXDISPPROFILE_FUNCTION_LOGGER_DEFINE(g_VBoxDispProfileDDI) 46 #define VBOXDDIROFILE_FUNCTION_LOGGER_DUMP() do {\ 47 g_VBoxDispProfileDDI.dump(_pDev); \ 46 /* allows dumping fps + how much time is spent in ddi functions in comparison with the rest time */ 47 //# define VBOXDISPPROFILE_DDI_STATISTIC_LOGGER_ENABLE 48 /* allows dumping time spent in each function and the number of calls made for any given function */ 49 # define VBOXDISPPROFILE_DDI_FUNCTION_LOGGER_ENABLE 50 51 # ifdef VBOXDISPPROFILE_DDI_FUNCTION_LOGGER_ENABLE 52 53 extern volatile uint32_t g_u322VBoxDispProfileFunctionLoggerIndex = 0; 54 55 //static VBoxDispProfileSet g_VBoxDispProfileDDI("D3D_DDI"); 56 # define VBOXDISPPROFILE_DDI_FUNCTION_LOGGER_PROLOGUE(_pObj) VBOXDISPPROFILE_FUNCTION_LOGGER_DEFINE((_pObj)->ProfileDdiFunc) 57 # define VBOXDISPPROFILE_DDI_FUNCTION_LOGGER_DUMP(_pObj) do {\ 58 (_pObj)->ProfileDdiFunc.dump(_pObj); \ 48 59 } while (0) 49 # define VBOXDISPPROFILE_DDI_FUNCTION_LOGGER_RESET() do {\50 g_VBoxDispProfileDDI.resetEntries();\60 # define VBOXDISPPROFILE_DDI_FUNCTION_LOGGER_RESET(_pObj) do {\ 61 (_pObj)->ProfileDdiFunc.resetEntries();\ 51 62 } while (0) 52 # define VBOXDISPPROFILE_DDI_FUNCTION_LOGGER_DISABLE_CURRENT() do {\63 # define VBOXDISPPROFILE_DDI_FUNCTION_LOGGER_DISABLE_CURRENT() do {\ 53 64 VBOXDISPPROFILE_FUNCTION_LOGGER_DISABLE_CURRENT();\ 54 65 } while (0) 55 66 56 57 #else 58 #define VBOXDISPPROFILE_DDI_FUNCTION_LOGGER_PROLOGUE() do {} while(0) 59 #define VBOXDISPPROFILE_DDI_FUNCTION_LOGGER_DUMP() do {} while(0) 60 #define VBOXDISPPROFILE_DDI_FUNCTION_LOGGER_RESET() do {} while(0) 61 #define VBOXDISPPROFILE_DDI_FUNCTION_LOGGER_DISABLE_CURRENT() do {} while (0) 62 #endif 63 64 #ifdef VBOXDISPPROFILE_DDI_STATISTIC_LOGGER_ENABLE 65 static VBoxDispProfileFpsCounter g_VBoxDispFpsDDI(64); 66 #define VBOXDISPPROFILE_DDI_STATISTIC_LOGGER_PROLOGUE() VBOXDISPPROFILE_STATISTIC_LOGGER_DEFINE(&g_VBoxDispFpsDDI) 67 #define VBOXDISPPROFILE_DDI_STATISTIC_LOGGER_DISABLE_CURRENT() do {\ 67 # define VBOXDISPPROFILE_DDI_FUNCTION_LOGGER_LOG_AND_DISABLE_CURRENT() VBOXDISPPROFILE_FUNCTION_LOGGER_LOG_AND_DISABLE_CURRENT() 68 69 # define VBOXDISPPROFILE_DDI_FUNCTION_LOGGER_REPORT_FRAME(_pObj) do { \ 70 if (!((_pObj)->ProfileDdiFunc.reportIteration() % 31) && !VBOXVDBG_IS_DWM()) {\ 71 VBOXDISPPROFILE_DDI_FUNCTION_LOGGER_DUMP(_pObj); \ 72 VBOXDISPPROFILE_DDI_FUNCTION_LOGGER_RESET(_pObj); \ 73 } \ 74 } while (0) 75 76 # else 77 # define VBOXDISPPROFILE_DDI_FUNCTION_LOGGER_PROLOGUE(_pObj) do {} while(0) 78 # define VBOXDISPPROFILE_DDI_FUNCTION_LOGGER_DUMP(_pObj) do {} while(0) 79 # define VBOXDISPPROFILE_DDI_FUNCTION_LOGGER_RESET(_pObj) do {} while(0) 80 # define VBOXDISPPROFILE_DDI_FUNCTION_LOGGER_DISABLE_CURRENT() do {} while (0) 81 # define VBOXDISPPROFILE_DDI_FUNCTION_LOGGER_LOG_AND_DISABLE_CURRENT() do {} while (0) 82 # define VBOXDISPPROFILE_DDI_FUNCTION_LOGGER_REPORT_FRAME(_pDev) do {} while (0) 83 # endif 84 85 # ifdef VBOXDISPPROFILE_DDI_STATISTIC_LOGGER_ENABLE 86 //static VBoxDispProfileFpsCounter g_VBoxDispFpsDDI(64); 87 # define VBOXDISPPROFILE_DDI_STATISTIC_LOGGER_PROLOGUE(_pObj) VBOXDISPPROFILE_STATISTIC_LOGGER_DEFINE(&(_pObj)->ProfileDdiFps) 88 # define VBOXDISPPROFILE_DDI_STATISTIC_LOGGER_DISABLE_CURRENT() do {\ 68 89 VBOXDISPPROFILE_STATISTIC_LOGGER_DISABLE_CURRENT();\ 69 90 } while (0) 70 #define VBOXDISPPROFILE_DDI_STATISTIC_LOGGER_REPORT_FRAME(_pDev) do { \ 71 VBOXDISPPROFILE_STATISTIC_LOGGER_LOG_AND_DISABLE_CURRENT(); \ 72 g_VBoxDispFpsDDI.ReportFrame(); \ 73 if(!(g_VBoxDispFpsDDI.GetNumFrames() % 31)) \ 91 92 # define VBOXDISPPROFILE_DDI_STATISTIC_LOGGER_DUMP(_pObj) do { \ 93 double fps = (_pObj)->ProfileDdiFps.GetFps(); \ 94 double cps = (_pObj)->ProfileDdiFps.GetCps(); \ 95 double tup = (_pObj)->ProfileDdiFps.GetTimeProcPercent(); \ 96 VBOXDISPPROFILE_DUMP(("[0x%p]: fps: %f, cps: %.1f, host %.1f%%", (_pObj), fps, cps, tup)); \ 97 } while (0) 98 99 # define VBOXDISPPROFILE_DDI_STATISTIC_LOGGER_REPORT_FRAME(_pObj) do { \ 100 (_pObj)->ProfileDdiFps.ReportFrame(); \ 101 if(!((_pObj)->ProfileDdiFps.GetNumFrames() % 31)) \ 74 102 { \ 75 double fps = g_VBoxDispFpsDDI.GetFps(); \ 76 double cps = g_VBoxDispFpsDDI.GetCps(); \ 77 double tup = g_VBoxDispFpsDDI.GetTimeProcPercent(); \ 78 VBOXDISPPROFILE_DUMP(("fps: %f, cps: %.1f, host %.1f%%\n", fps, cps, tup)); \ 103 VBOXDISPPROFILE_DDI_STATISTIC_LOGGER_DUMP(_pObj); \ 79 104 } \ 80 105 } while (0) 106 107 # define VBOXDISPPROFILE_DDI_STATISTIC_LOGGER_LOG_AND_DISABLE_CURRENT() VBOXDISPPROFILE_STATISTIC_LOGGER_LOG_AND_DISABLE_CURRENT() 108 # else 109 # define VBOXDISPPROFILE_DDI_STATISTIC_LOGGER_PROLOGUE(_pObj) do {} while(0) 110 # define VBOXDISPPROFILE_DDI_STATISTIC_LOGGER_DISABLE_CURRENT() do {} while (0) 111 # define VBOXDISPPROFILE_DDI_STATISTIC_LOGGER_LOG_AND_DISABLE_CURRENT() do {} while (0) 112 # define VBOXDISPPROFILE_DDI_STATISTIC_LOGGER_REPORT_FRAME(_pDev) do {} while (0) 113 # define VBOXDISPPROFILE_DDI_STATISTIC_LOGGER_DUMP(_pObj) do {} while (0) 114 # endif 115 116 # define VBOXDISPPROFILE_FUNCTION_DDI_PROLOGUE(_pObj) \ 117 VBOXDISPPROFILE_DDI_FUNCTION_LOGGER_PROLOGUE(_pObj); \ 118 VBOXDISPPROFILE_DDI_STATISTIC_LOGGER_PROLOGUE(_pObj); 119 120 # define VBOXDISPPROFILE_DDI_LOG_AND_DISABLE_CURRENT() \ 121 VBOXDISPPROFILE_DDI_STATISTIC_LOGGER_LOG_AND_DISABLE_CURRENT(); \ 122 VBOXDISPPROFILE_DDI_FUNCTION_LOGGER_LOG_AND_DISABLE_CURRENT(); 123 124 # define VBOXDISPPROFILE_DDI_REPORT_FRAME(_pDev) do {\ 125 VBOXDISPPROFILE_DDI_LOG_AND_DISABLE_CURRENT(); \ 126 VBOXDISPPROFILE_DDI_STATISTIC_LOGGER_REPORT_FRAME(_pDev); \ 127 VBOXDISPPROFILE_DDI_FUNCTION_LOGGER_REPORT_FRAME(_pDev); \ 128 } while (0) 129 130 # define VBOXDISPPROFILE_DDI_REPORT_FLUSH(_pDev) do {\ 131 VBOXDISPPROFILE_DDI_LOG_AND_DISABLE_CURRENT(); \ 132 VBOXDISPPROFILE_DDI_STATISTIC_LOGGER_REPORT_FRAME(_pDev); \ 133 VBOXDISPPROFILE_DDI_FUNCTION_LOGGER_REPORT_FRAME(_pDev); \ 134 } while (0) 135 136 # define VBOXDISPPROFILE_DDI_INIT_CMN(_pObj, _name, _cEntries) do { \ 137 (_pObj)->ProfileDdiFps = VBoxDispProfileFpsCounter(); \ 138 (_pObj)->ProfileDdiFps.init(_cEntries); \ 139 (_pObj)->ProfileDdiFunc = VBoxDispProfileSet(_name); \ 140 } while (0) 141 142 # define VBOXDISPPROFILE_DDI_TERM_CMN(_pObj) do { \ 143 (_pObj)->ProfileDdiFps.term(); \ 144 } while (0) 145 146 # define VBOXDISPPROFILE_DDI_TERM(_pObj) do {\ 147 VBOXDISPPROFILE_DDI_LOG_AND_DISABLE_CURRENT(); \ 148 VBOXDISPPROFILE_DDI_FUNCTION_LOGGER_DUMP(_pObj); \ 149 VBOXDISPPROFILE_DDI_FUNCTION_LOGGER_RESET(_pObj); \ 150 VBOXDISPPROFILE_DDI_TERM_CMN(_pObj); \ 151 } while (0) 152 153 # define VBOXDISPPROFILE_DDI_PRINT(_m) VBOXDISPPROFILE_DUMP(_m) 154 155 # define VBOXDISPPROFILE_DDI_INIT_GLBL() VBOXDISPPROFILE_DDI_INIT_CMN(&g_VBoxDispProfile, "DDI_Adp", 64) 156 # define VBOXDISPPROFILE_DDI_INIT_ADP(_pAdp) VBOXDISPPROFILE_DDI_INIT_CMN(_pAdp, "DDI_Adp", 64) 157 # define VBOXDISPPROFILE_DDI_INIT_DEV(_pDev) VBOXDISPPROFILE_DDI_INIT_CMN(_pDev, "DDI_Dev", 64) 81 158 #else 82 #define VBOXDISPPROFILE_DDI_STATISTIC_LOGGER_PROLOGUE() do {} while(0) 83 #define VBOXDISPPROFILE_DDI_STATISTIC_LOGGER_DISABLE_CURRENT() do {} while (0) 84 #define VBOXDISPPROFILE_DDI_STATISTIC_LOGGER_REPORT_FRAME(_pDev) do {} while (0) 85 #endif 86 87 #define VBOXDISPPROFILE_FUNCTION_DDI_PROLOGUE() \ 88 VBOXDISPPROFILE_DDI_FUNCTION_LOGGER_PROLOGUE(); \ 89 VBOXDISPPROFILE_DDI_STATISTIC_LOGGER_PROLOGUE(); 90 91 #define VBOXDISPPROFILE_DDI_DUMPRESET(_pDev) do {\ 92 VBOXDISPPROFILE_DDI_FUNCTION_LOGGER_DUMP(); \ 93 VBOXDISPPROFILE_DDI_FUNCTION_LOGGER_RESET(); \ 94 VBOXDISPPROFILE_DDI_FUNCTION_LOGGER_DISABLE_CURRENT();\ 95 } while (0) 96 97 #define VBOXDISPPROFILE_DDI_REPORT_FRAME(_pDev) do {\ 98 VBOXDISPPROFILE_DDI_STATISTIC_LOGGER_REPORT_FRAME(_pDev); \ 99 } while (0) 100 101 102 #else 103 #define VBOXDISPPROFILE_FUNCTION_DDI_PROLOGUE() do {} while (0) 104 #define VBOXDISPPROFILE_DDI_DUMPRESET(_pDev) do {} while (0) 105 #define VBOXDISPPROFILE_DDI_REPORT_FRAME(_pDev) do {} while (0) 159 # define VBOXDISPPROFILE_FUNCTION_DDI_PROLOGUE(_pObj) do {} while (0) 160 # define VBOXDISPPROFILE_DDI_REPORT_FRAME(_pDev) do {} while (0) 161 # define VBOXDISPPROFILE_DDI_REPORT_FLUSH(_pDev) do {} while (0) 162 # define VBOXDISPPROFILE_DDI_INIT_GLBL() do {} while (0) 163 # define VBOXDISPPROFILE_DDI_INIT_ADP(_pAdp) do {} while (0) 164 # define VBOXDISPPROFILE_DDI_INIT_DEV(_pDev) do {} while (0) 165 # define VBOXDISPPROFILE_DDI_TERM(_pObj) do {} while (0) 166 # define VBOXDISPPROFILE_DDI_PRINT(_m) do {} while (0) 106 167 #endif 107 168 108 169 /* debugging/profiling stuff could go here. 109 170 * NOP in release */ 110 #define VBOXDISP_DDI_PROLOGUE () \171 #define VBOXDISP_DDI_PROLOGUE_CMN() \ 111 172 VBOXVDBG_BREAK_DDI(); \ 112 VBOXDISPPROFILE_FUNCTION_DDI_PROLOGUE(); \113 173 VBOXVDBG_CREATE_CHECK_SWAPCHAIN(); 174 175 #define VBOXDISP_DDI_PROLOGUE_DEV(_hDevice) \ 176 VBOXDISP_DDI_PROLOGUE_CMN(); \ 177 VBOXDISPPROFILE_FUNCTION_DDI_PROLOGUE((PVBOXWDDMDISP_DEVICE)(_hDevice)); 178 179 #define VBOXDISP_DDI_PROLOGUE_ADP(_hAdapter) \ 180 VBOXDISP_DDI_PROLOGUE_CMN(); \ 181 VBOXDISPPROFILE_FUNCTION_DDI_PROLOGUE((PVBOXWDDMDISP_ADAPTER)(_hAdapter)); 182 183 #define VBOXDISP_DDI_PROLOGUE_GLBL() \ 184 VBOXDISP_DDI_PROLOGUE_CMN(); \ 185 VBOXDISPPROFILE_FUNCTION_DDI_PROLOGUE(&g_VBoxDispProfile); 114 186 115 187 #ifdef VBOXDISPMP_TEST … … 1035 1107 static BOOLEAN vboxWddmDalCheckAdd(PVBOXWDDMDISP_DEVICE pDevice, PVBOXWDDMDISP_ALLOCATION pAlloc, BOOLEAN fWrite) 1036 1108 { 1037 if (!pAlloc->h SharedHandle/* only shared resources matter */1109 if (!pAlloc->hAllocation /* only shared resources matter */ 1038 1110 #ifdef VBOX_WDDM_SHRC_WO_NOTIFY 1039 1111 || !fWrite /* only write op matter */ … … 1046 1118 Assert(!pAlloc->DirtyAllocListEntry.pNext); 1047 1119 #endif 1120 Assert(!pAlloc->hSharedHandle); 1121 1048 1122 return FALSE; 1049 1123 } … … 2887 2961 { 2888 2962 VBOXVDBG_ASSERT_IS_DWM(FALSE); 2963 2964 HRESULT hr = pDevice->pAdapter->D3D.pfnVBoxWineExD3DDev9Flush((IDirect3DDevice9Ex*)pDevice->pDevice9If); 2965 Assert(hr == S_OK); 2966 2967 vboxWddmDalNotifyChange(pDevice); 2968 2889 2969 return S_OK; 2890 2970 } 2971 2972 VBOXVDBG_ASSERT_IS_DWM(TRUE); 2891 2973 2892 2974 BOOL bNeedPresent; … … 3149 3231 static HRESULT APIENTRY vboxWddmDispGetCaps (HANDLE hAdapter, CONST D3DDDIARG_GETCAPS* pData) 3150 3232 { 3151 VBOXDISP_DDI_PROLOGUE ();3233 VBOXDISP_DDI_PROLOGUE_ADP(hAdapter); 3152 3234 3153 3235 vboxVDbgPrint(("==> "__FUNCTION__", hAdapter(0x%p), caps type(%d)\n", hAdapter, pData->Type)); … … 3450 3532 static HRESULT APIENTRY vboxWddmDDevSetRenderState(HANDLE hDevice, CONST D3DDDIARG_RENDERSTATE* pData) 3451 3533 { 3452 VBOXDISP_DDI_PROLOGUE ();3534 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 3453 3535 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 3454 3536 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 3464 3546 static HRESULT APIENTRY vboxWddmDDevUpdateWInfo(HANDLE hDevice, CONST D3DDDIARG_WINFO* pData) 3465 3547 { 3466 VBOXDISP_DDI_PROLOGUE ();3548 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 3467 3549 // PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; 3468 3550 // VBOXDISPCRHGSMI_SCOPE_SET_DEV(pDevice); … … 3474 3556 static HRESULT APIENTRY vboxWddmDDevValidateDevice(HANDLE hDevice, D3DDDIARG_VALIDATETEXTURESTAGESTATE* pData) 3475 3557 { 3476 VBOXDISP_DDI_PROLOGUE ();3558 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 3477 3559 // PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; 3478 3560 // VBOXDISPCRHGSMI_SCOPE_SET_DEV(pDevice); … … 3489 3571 static HRESULT APIENTRY vboxWddmDDevSetTextureStageState(HANDLE hDevice, CONST D3DDDIARG_TEXTURESTAGESTATE* pData) 3490 3572 { 3491 VBOXDISP_DDI_PROLOGUE ();3573 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 3492 3574 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 3493 3575 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 3515 3597 static HRESULT APIENTRY vboxWddmDDevSetTexture(HANDLE hDevice, UINT Stage, HANDLE hTexture) 3516 3598 { 3517 VBOXDISP_DDI_PROLOGUE ();3599 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 3518 3600 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 3519 3601 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 3599 3681 static HRESULT APIENTRY vboxWddmDDevSetPixelShader(HANDLE hDevice, HANDLE hShaderHandle) 3600 3682 { 3601 VBOXDISP_DDI_PROLOGUE ();3683 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 3602 3684 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 3603 3685 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 3614 3696 static HRESULT APIENTRY vboxWddmDDevSetPixelShaderConst(HANDLE hDevice, CONST D3DDDIARG_SETPIXELSHADERCONST* pData, CONST FLOAT* pRegisters) 3615 3697 { 3616 VBOXDISP_DDI_PROLOGUE ();3698 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 3617 3699 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 3618 3700 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 3628 3710 static HRESULT APIENTRY vboxWddmDDevSetStreamSourceUm(HANDLE hDevice, CONST D3DDDIARG_SETSTREAMSOURCEUM* pData, CONST VOID* pUMBuffer ) 3629 3711 { 3630 VBOXDISP_DDI_PROLOGUE ();3712 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 3631 3713 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 3632 3714 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 3654 3736 static HRESULT APIENTRY vboxWddmDDevSetIndices(HANDLE hDevice, CONST D3DDDIARG_SETINDICES* pData) 3655 3737 { 3656 VBOXDISP_DDI_PROLOGUE ();3738 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 3657 3739 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 3658 3740 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 3685 3767 static HRESULT APIENTRY vboxWddmDDevSetIndicesUm(HANDLE hDevice, UINT IndexSize, CONST VOID* pUMBuffer) 3686 3768 { 3687 VBOXDISP_DDI_PROLOGUE ();3769 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 3688 3770 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 3689 3771 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 3700 3782 static HRESULT APIENTRY vboxWddmDDevDrawPrimitive(HANDLE hDevice, CONST D3DDDIARG_DRAWPRIMITIVE* pData, CONST UINT* pFlagBuffer) 3701 3783 { 3702 VBOXDISP_DDI_PROLOGUE ();3784 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 3703 3785 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 3704 3786 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 3778 3860 static HRESULT APIENTRY vboxWddmDDevDrawIndexedPrimitive(HANDLE hDevice, CONST D3DDDIARG_DRAWINDEXEDPRIMITIVE* pData) 3779 3861 { 3780 VBOXDISP_DDI_PROLOGUE ();3862 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 3781 3863 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 3782 3864 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 3832 3914 static HRESULT APIENTRY vboxWddmDDevDrawRectPatch(HANDLE hDevice, CONST D3DDDIARG_DRAWRECTPATCH* pData, CONST D3DDDIRECTPATCH_INFO* pInfo, CONST FLOAT* pPatch) 3833 3915 { 3834 VBOXDISP_DDI_PROLOGUE ();3916 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 3835 3917 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 3836 3918 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 3845 3927 static HRESULT APIENTRY vboxWddmDDevDrawTriPatch(HANDLE hDevice, CONST D3DDDIARG_DRAWTRIPATCH* pData, CONST D3DDDITRIPATCH_INFO* pInfo, CONST FLOAT* pPatch) 3846 3928 { 3847 VBOXDISP_DDI_PROLOGUE ();3929 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 3848 3930 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 3849 3931 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 3858 3940 static HRESULT APIENTRY vboxWddmDDevDrawPrimitive2(HANDLE hDevice, CONST D3DDDIARG_DRAWPRIMITIVE2* pData) 3859 3941 { 3860 VBOXDISP_DDI_PROLOGUE ();3942 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 3861 3943 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 3862 3944 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 3955 4037 static HRESULT APIENTRY vboxWddmDDevDrawIndexedPrimitive2(HANDLE hDevice, CONST D3DDDIARG_DRAWINDEXEDPRIMITIVE2* pData, UINT dwIndicesSize, CONST VOID* pIndexBuffer, CONST UINT* pFlagBuffer) 3956 4038 { 3957 VBOXDISP_DDI_PROLOGUE ();4039 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 3958 4040 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 3959 4041 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 3968 4050 static HRESULT APIENTRY vboxWddmDDevVolBlt(HANDLE hDevice, CONST D3DDDIARG_VOLUMEBLT* pData) 3969 4051 { 3970 VBOXDISP_DDI_PROLOGUE ();4052 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 3971 4053 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 3972 4054 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 3981 4063 static HRESULT APIENTRY vboxWddmDDevBufBlt(HANDLE hDevice, CONST D3DDDIARG_BUFFERBLT* pData) 3982 4064 { 3983 VBOXDISP_DDI_PROLOGUE ();4065 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 3984 4066 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 3985 4067 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 3994 4076 static HRESULT APIENTRY vboxWddmDDevTexBlt(HANDLE hDevice, CONST D3DDDIARG_TEXBLT* pData) 3995 4077 { 3996 VBOXDISP_DDI_PROLOGUE ();4078 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 3997 4079 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 3998 4080 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 4073 4155 static HRESULT APIENTRY vboxWddmDDevStateSet(HANDLE hDevice, D3DDDIARG_STATESET* pData) 4074 4156 { 4075 VBOXDISP_DDI_PROLOGUE ();4157 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 4076 4158 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 4077 4159 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 4084 4166 static HRESULT APIENTRY vboxWddmDDevSetPriority(HANDLE hDevice, CONST D3DDDIARG_SETPRIORITY* pData) 4085 4167 { 4086 VBOXDISP_DDI_PROLOGUE ();4168 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 4087 4169 // PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; 4088 4170 // Assert(pDevice); … … 4104 4186 static HRESULT APIENTRY vboxWddmDDevClear(HANDLE hDevice, CONST D3DDDIARG_CLEAR* pData, UINT NumRect, CONST RECT* pRect) 4105 4187 { 4106 VBOXDISP_DDI_PROLOGUE ();4188 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 4107 4189 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 4108 4190 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 4121 4203 static HRESULT APIENTRY vboxWddmDDevUpdatePalette(HANDLE hDevice, CONST D3DDDIARG_UPDATEPALETTE* pData, CONST PALETTEENTRY* pPaletteData) 4122 4204 { 4123 VBOXDISP_DDI_PROLOGUE ();4205 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 4124 4206 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 4125 4207 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 4133 4215 static HRESULT APIENTRY vboxWddmDDevSetPalette(HANDLE hDevice, CONST D3DDDIARG_SETPALETTE* pData) 4134 4216 { 4135 VBOXDISP_DDI_PROLOGUE ();4217 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 4136 4218 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 4137 4219 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 4145 4227 static HRESULT APIENTRY vboxWddmDDevSetVertexShaderConst(HANDLE hDevice, CONST D3DDDIARG_SETVERTEXSHADERCONST* pData , CONST VOID* pRegisters) 4146 4228 { 4147 VBOXDISP_DDI_PROLOGUE ();4229 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 4148 4230 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 4149 4231 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 4161 4243 static HRESULT APIENTRY vboxWddmDDevMultiplyTransform(HANDLE hDevice, CONST D3DDDIARG_MULTIPLYTRANSFORM* pData) 4162 4244 { 4163 VBOXDISP_DDI_PROLOGUE ();4245 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 4164 4246 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 4165 4247 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 4172 4254 static HRESULT APIENTRY vboxWddmDDevSetTransform(HANDLE hDevice, CONST D3DDDIARG_SETTRANSFORM* pData) 4173 4255 { 4174 VBOXDISP_DDI_PROLOGUE ();4256 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 4175 4257 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 4176 4258 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 4183 4265 static HRESULT APIENTRY vboxWddmDDevSetViewport(HANDLE hDevice, CONST D3DDDIARG_VIEWPORTINFO* pData) 4184 4266 { 4185 VBOXDISP_DDI_PROLOGUE ();4267 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 4186 4268 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 4187 4269 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 4201 4283 static HRESULT APIENTRY vboxWddmDDevSetZRange(HANDLE hDevice, CONST D3DDDIARG_ZRANGE* pData) 4202 4284 { 4203 VBOXDISP_DDI_PROLOGUE ();4285 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 4204 4286 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 4205 4287 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 4217 4299 static HRESULT APIENTRY vboxWddmDDevSetMaterial(HANDLE hDevice, CONST D3DDDIARG_SETMATERIAL* pData) 4218 4300 { 4219 VBOXDISP_DDI_PROLOGUE ();4301 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 4220 4302 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 4221 4303 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 4228 4310 static HRESULT APIENTRY vboxWddmDDevSetLight(HANDLE hDevice, CONST D3DDDIARG_SETLIGHT* pData, CONST D3DDDI_LIGHT* pLightProperties) 4229 4311 { 4230 VBOXDISP_DDI_PROLOGUE ();4312 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 4231 4313 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 4232 4314 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 4239 4321 static HRESULT APIENTRY vboxWddmDDevCreateLight(HANDLE hDevice, CONST D3DDDIARG_CREATELIGHT* pData) 4240 4322 { 4241 VBOXDISP_DDI_PROLOGUE ();4323 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 4242 4324 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 4243 4325 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 4250 4332 static HRESULT APIENTRY vboxWddmDDevDestroyLight(HANDLE hDevice, CONST D3DDDIARG_DESTROYLIGHT* pData) 4251 4333 { 4252 VBOXDISP_DDI_PROLOGUE ();4334 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 4253 4335 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 4254 4336 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 4261 4343 static HRESULT APIENTRY vboxWddmDDevSetClipPlane(HANDLE hDevice, CONST D3DDDIARG_SETCLIPPLANE* pData) 4262 4344 { 4263 VBOXDISP_DDI_PROLOGUE ();4345 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 4264 4346 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 4265 4347 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 4276 4358 static HRESULT APIENTRY vboxWddmDDevGetInfo(HANDLE hDevice, UINT DevInfoID, VOID* pDevInfoStruct, UINT DevInfoSize) 4277 4359 { 4278 VBOXDISP_DDI_PROLOGUE ();4360 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 4279 4361 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 4280 4362 // PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 4309 4391 static HRESULT APIENTRY vboxWddmDDevLock(HANDLE hDevice, D3DDDIARG_LOCK* pData) 4310 4392 { 4311 VBOXDISP_DDI_PROLOGUE ();4393 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 4312 4394 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 4313 4395 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 4759 4841 static HRESULT APIENTRY vboxWddmDDevUnlock(HANDLE hDevice, CONST D3DDDIARG_UNLOCK* pData) 4760 4842 { 4761 VBOXDISP_DDI_PROLOGUE ();4843 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 4762 4844 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 4763 4845 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 4987 5069 static HRESULT APIENTRY vboxWddmDDevLockAsync(HANDLE hDevice, D3DDDIARG_LOCKASYNC* pData) 4988 5070 { 4989 VBOXDISP_DDI_PROLOGUE ();5071 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 4990 5072 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 4991 5073 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 4998 5080 static HRESULT APIENTRY vboxWddmDDevUnlockAsync(HANDLE hDevice, CONST D3DDDIARG_UNLOCKASYNC* pData) 4999 5081 { 5000 VBOXDISP_DDI_PROLOGUE ();5082 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 5001 5083 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 5002 5084 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 5009 5091 static HRESULT APIENTRY vboxWddmDDevRename(HANDLE hDevice, CONST D3DDDIARG_RENAME* pData) 5010 5092 { 5011 VBOXDISP_DDI_PROLOGUE ();5093 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 5012 5094 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 5013 5095 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 5063 5145 static HRESULT APIENTRY vboxWddmDDevCreateResource(HANDLE hDevice, D3DDDIARG_CREATERESOURCE* pResource) 5064 5146 { 5065 VBOXDISP_DDI_PROLOGUE ();5147 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 5066 5148 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 5067 5149 HRESULT hr = S_OK; … … 5622 5704 if (pResource->Flags.SharedResource) 5623 5705 { 5624 #ifdef DEBUG_misha5706 #ifdef VBOXWDDMDISP_DEBUG_PRINT_SHARED_CREATE 5625 5707 Assert(VBOXWDDMDISP_IS_TEXTURE(pResource->Flags)); 5626 5708 vboxVDbgPrint(("\n\n********\n(0x%x:0n%d)Shared CREATED pAlloc(0x%p), hRc(0x%p), hAl(0x%p), " … … 5667 5749 static HRESULT APIENTRY vboxWddmDDevDestroyResource(HANDLE hDevice, HANDLE hResource) 5668 5750 { 5669 VBOXDISP_DDI_PROLOGUE ();5751 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 5670 5752 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 5671 5753 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 5687 5769 if (pAlloc->hSharedHandle) 5688 5770 { 5689 #ifdef DEBUG_misha5771 #ifdef VBOXWDDMDISP_DEBUG_PRINT_SHARED_CREATE 5690 5772 vboxVDbgPrint(("\n\n********\n(0x%x:0n%d)Shared DESTROYED pAlloc(0x%p), hRc(0x%p), hAl(0x%p), " 5691 5773 "Handle(0x%x), (0n%d) \n***********\n\n", … … 5748 5830 static HRESULT APIENTRY vboxWddmDDevSetDisplayMode(HANDLE hDevice, CONST D3DDDIARG_SETDISPLAYMODE* pData) 5749 5831 { 5750 VBOXDISP_DDI_PROLOGUE ();5832 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 5751 5833 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 5752 5834 HRESULT hr = S_OK; … … 5780 5862 static HRESULT APIENTRY vboxWddmDDevPresent(HANDLE hDevice, CONST D3DDDIARG_PRESENT* pData) 5781 5863 { 5782 VBOXDISP_DDI_PROLOGUE ();5864 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 5783 5865 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 5784 5866 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 5826 5908 DdiPresent.hContext = pDevice->DefaultContext.ContextInfo.hContext; 5827 5909 5910 #if 0 //def VBOX_WDDMDISP_WITH_PROFILE 5911 VBoxDispProfileScopeLogger<VBoxDispProfileEntry> profilePresentCbLogger(pDevice->ProfileDdiPresentCb.alloc("pfnPresentCb")); 5912 #endif 5913 #ifdef VBOXWDDMDISP_DEBUG_TIMER 5914 HANDLE hTimer = NULL; 5915 vboxVDbgTimerStart(pDevice->hTimerQueue, &hTimer, 1000); 5916 #endif 5828 5917 hr = pDevice->RtCallbacks.pfnPresentCb(pDevice->hDevice, &DdiPresent); 5918 #ifdef VBOXWDDMDISP_DEBUG_TIMER 5919 vboxVDbgTimerStop(pDevice->hTimerQueue, hTimer); 5920 #endif 5921 #if 0 //def VBOX_WDDMDISP_WITH_PROFILE 5922 profilePresentCbLogger.logAndDisable(); 5923 if (pDevice->ProfileDdiPresentCb.getNumEntries() == 64) 5924 { 5925 pDevice->ProfileDdiPresentCb.dump(pDevice); 5926 pDevice->ProfileDdiPresentCb.reset(); 5927 } 5928 #endif 5829 5929 Assert(hr == S_OK); 5830 5930 } 5831 5931 5932 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p), hr(0x%x)\n", hDevice, hr)); 5933 5832 5934 VBOXDISPPROFILE_DDI_REPORT_FRAME(pDevice); 5833 5935 5834 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p), hr(0x%x)\n", hDevice, hr));5835 5936 return hr; 5836 5937 } … … 5838 5939 static HRESULT APIENTRY vboxWddmDDevFlush(HANDLE hDevice) 5839 5940 { 5840 VBOXDISP_DDI_PROLOGUE ();5941 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 5841 5942 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 5842 5943 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 5855 5956 } 5856 5957 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p), hr(0x%x)\n", hDevice, hr)); 5958 5959 VBOXDISPPROFILE_DDI_REPORT_FLUSH(pDevice); 5960 5857 5961 return hr; 5858 5962 } … … 5875 5979 static HRESULT APIENTRY vboxWddmDDevCreateVertexShaderDecl(HANDLE hDevice, D3DDDIARG_CREATEVERTEXSHADERDECL* pData, CONST D3DDDIVERTEXELEMENT* pVertexElements) 5876 5980 { 5877 VBOXDISP_DDI_PROLOGUE ();5981 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 5878 5982 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 5879 5983 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 5923 6027 static HRESULT APIENTRY vboxWddmDDevSetVertexShaderDecl(HANDLE hDevice, HANDLE hShaderHandle) 5924 6028 { 5925 VBOXDISP_DDI_PROLOGUE ();6029 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 5926 6030 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 5927 6031 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 5938 6042 static HRESULT APIENTRY vboxWddmDDevDeleteVertexShaderDecl(HANDLE hDevice, HANDLE hShaderHandle) 5939 6043 { 5940 VBOXDISP_DDI_PROLOGUE ();6044 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 5941 6045 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 5942 6046 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 5951 6055 static HRESULT APIENTRY vboxWddmDDevCreateVertexShaderFunc(HANDLE hDevice, D3DDDIARG_CREATEVERTEXSHADERFUNC* pData, CONST UINT* pCode) 5952 6056 { 5953 VBOXDISP_DDI_PROLOGUE ();6057 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 5954 6058 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 5955 6059 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 5971 6075 static HRESULT APIENTRY vboxWddmDDevSetVertexShaderFunc(HANDLE hDevice, HANDLE hShaderHandle) 5972 6076 { 5973 VBOXDISP_DDI_PROLOGUE ();6077 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 5974 6078 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 5975 6079 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 5985 6089 static HRESULT APIENTRY vboxWddmDDevDeleteVertexShaderFunc(HANDLE hDevice, HANDLE hShaderHandle) 5986 6090 { 5987 VBOXDISP_DDI_PROLOGUE ();6091 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 5988 6092 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 5989 6093 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 5998 6102 static HRESULT APIENTRY vboxWddmDDevSetVertexShaderConstI(HANDLE hDevice, CONST D3DDDIARG_SETVERTEXSHADERCONSTI* pData, CONST INT* pRegisters) 5999 6103 { 6000 VBOXDISP_DDI_PROLOGUE ();6104 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6001 6105 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6002 6106 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 6011 6115 static HRESULT APIENTRY vboxWddmDDevSetVertexShaderConstB(HANDLE hDevice, CONST D3DDDIARG_SETVERTEXSHADERCONSTB* pData, CONST BOOL* pRegisters) 6012 6116 { 6013 VBOXDISP_DDI_PROLOGUE ();6117 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6014 6118 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6015 6119 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 6024 6128 static HRESULT APIENTRY vboxWddmDDevSetScissorRect(HANDLE hDevice, CONST RECT* pRect) 6025 6129 { 6026 VBOXDISP_DDI_PROLOGUE ();6130 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6027 6131 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6028 6132 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 6037 6141 static HRESULT APIENTRY vboxWddmDDevSetStreamSource(HANDLE hDevice, CONST D3DDDIARG_SETSTREAMSOURCE* pData) 6038 6142 { 6039 VBOXDISP_DDI_PROLOGUE ();6143 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6040 6144 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6041 6145 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 6082 6186 static HRESULT APIENTRY vboxWddmDDevSetStreamSourceFreq(HANDLE hDevice, CONST D3DDDIARG_SETSTREAMSOURCEFREQ* pData) 6083 6187 { 6084 VBOXDISP_DDI_PROLOGUE ();6188 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6085 6189 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6086 6190 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 6093 6197 static HRESULT APIENTRY vboxWddmDDevSetConvolutionKernelMono(HANDLE hDevice, CONST D3DDDIARG_SETCONVOLUTIONKERNELMONO* pData) 6094 6198 { 6095 VBOXDISP_DDI_PROLOGUE ();6199 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6096 6200 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6097 6201 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 6104 6208 static HRESULT APIENTRY vboxWddmDDevComposeRects(HANDLE hDevice, CONST D3DDDIARG_COMPOSERECTS* pData) 6105 6209 { 6106 VBOXDISP_DDI_PROLOGUE ();6210 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6107 6211 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6108 6212 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 6116 6220 static HRESULT APIENTRY vboxWddmDDevBlt(HANDLE hDevice, CONST D3DDDIARG_BLT* pData) 6117 6221 { 6118 VBOXDISP_DDI_PROLOGUE ();6222 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6119 6223 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6120 6224 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 6195 6299 static HRESULT APIENTRY vboxWddmDDevColorFill(HANDLE hDevice, CONST D3DDDIARG_COLORFILL* pData) 6196 6300 { 6197 VBOXDISP_DDI_PROLOGUE ();6301 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6198 6302 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6199 6303 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 6225 6329 static HRESULT APIENTRY vboxWddmDDevDepthFill(HANDLE hDevice, CONST D3DDDIARG_DEPTHFILL* pData) 6226 6330 { 6227 VBOXDISP_DDI_PROLOGUE ();6331 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6228 6332 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6229 6333 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 6237 6341 static HRESULT APIENTRY vboxWddmDDevCreateQuery(HANDLE hDevice, D3DDDIARG_CREATEQUERY* pData) 6238 6342 { 6239 VBOXDISP_DDI_PROLOGUE ();6343 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6240 6344 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6241 6345 // PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 6267 6371 static HRESULT APIENTRY vboxWddmDDevDestroyQuery(HANDLE hDevice, HANDLE hQuery) 6268 6372 { 6269 VBOXDISP_DDI_PROLOGUE ();6373 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6270 6374 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6271 6375 HRESULT hr = S_OK; … … 6282 6386 static HRESULT APIENTRY vboxWddmDDevIssueQuery(HANDLE hDevice, CONST D3DDDIARG_ISSUEQUERY* pData) 6283 6387 { 6284 VBOXDISP_DDI_PROLOGUE ();6388 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6285 6389 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6286 6390 HRESULT hr = S_OK; … … 6297 6401 static HRESULT APIENTRY vboxWddmDDevGetQueryData(HANDLE hDevice, CONST D3DDDIARG_GETQUERYDATA* pData) 6298 6402 { 6299 VBOXDISP_DDI_PROLOGUE ();6403 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6300 6404 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6301 6405 HRESULT hr = S_OK; … … 6323 6427 static HRESULT APIENTRY vboxWddmDDevSetRenderTarget(HANDLE hDevice, CONST D3DDDIARG_SETRENDERTARGET* pData) 6324 6428 { 6325 VBOXDISP_DDI_PROLOGUE ();6429 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6326 6430 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6327 6431 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 6342 6446 static HRESULT APIENTRY vboxWddmDDevSetDepthStencil(HANDLE hDevice, CONST D3DDDIARG_SETDEPTHSTENCIL* pData) 6343 6447 { 6344 VBOXDISP_DDI_PROLOGUE ();6448 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6345 6449 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6346 6450 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 6366 6470 static HRESULT APIENTRY vboxWddmDDevGenerateMipSubLevels(HANDLE hDevice, CONST D3DDDIARG_GENERATEMIPSUBLEVELS* pData) 6367 6471 { 6368 VBOXDISP_DDI_PROLOGUE ();6472 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6369 6473 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6370 6474 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 6378 6482 static HRESULT APIENTRY vboxWddmDDevSetPixelShaderConstI(HANDLE hDevice, CONST D3DDDIARG_SETPIXELSHADERCONSTI* pData, CONST INT* pRegisters) 6379 6483 { 6380 VBOXDISP_DDI_PROLOGUE ();6484 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6381 6485 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6382 6486 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 6392 6496 static HRESULT APIENTRY vboxWddmDDevSetPixelShaderConstB(HANDLE hDevice, CONST D3DDDIARG_SETPIXELSHADERCONSTB* pData, CONST BOOL* pRegisters) 6393 6497 { 6394 VBOXDISP_DDI_PROLOGUE ();6498 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6395 6499 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6396 6500 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 6406 6510 static HRESULT APIENTRY vboxWddmDDevCreatePixelShader(HANDLE hDevice, D3DDDIARG_CREATEPIXELSHADER* pData, CONST UINT* pCode) 6407 6511 { 6408 VBOXDISP_DDI_PROLOGUE ();6512 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6409 6513 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6410 6514 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 6427 6531 static HRESULT APIENTRY vboxWddmDDevDeletePixelShader(HANDLE hDevice, HANDLE hShaderHandle) 6428 6532 { 6429 VBOXDISP_DDI_PROLOGUE ();6533 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6430 6534 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6431 6535 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 6441 6545 static HRESULT APIENTRY vboxWddmDDevCreateDecodeDevice(HANDLE hDevice, D3DDDIARG_CREATEDECODEDEVICE* pData) 6442 6546 { 6443 VBOXDISP_DDI_PROLOGUE ();6547 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6444 6548 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6445 6549 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 6453 6557 static HRESULT APIENTRY vboxWddmDDevDestroyDecodeDevice(HANDLE hDevice, HANDLE hDecodeDevice) 6454 6558 { 6455 VBOXDISP_DDI_PROLOGUE ();6559 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6456 6560 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6457 6561 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 6465 6569 static HRESULT APIENTRY vboxWddmDDevSetDecodeRenderTarget(HANDLE hDevice, CONST D3DDDIARG_SETDECODERENDERTARGET* pData) 6466 6570 { 6467 VBOXDISP_DDI_PROLOGUE ();6571 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6468 6572 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6469 6573 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 6477 6581 static HRESULT APIENTRY vboxWddmDDevDecodeBeginFrame(HANDLE hDevice, D3DDDIARG_DECODEBEGINFRAME* pData) 6478 6582 { 6479 VBOXDISP_DDI_PROLOGUE ();6583 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6480 6584 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6481 6585 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 6489 6593 static HRESULT APIENTRY vboxWddmDDevDecodeEndFrame(HANDLE hDevice, D3DDDIARG_DECODEENDFRAME* pData) 6490 6594 { 6491 VBOXDISP_DDI_PROLOGUE ();6595 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6492 6596 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6493 6597 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 6501 6605 static HRESULT APIENTRY vboxWddmDDevDecodeExecute(HANDLE hDevice, CONST D3DDDIARG_DECODEEXECUTE* pData) 6502 6606 { 6503 VBOXDISP_DDI_PROLOGUE ();6607 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6504 6608 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6505 6609 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 6513 6617 static HRESULT APIENTRY vboxWddmDDevDecodeExtensionExecute(HANDLE hDevice, CONST D3DDDIARG_DECODEEXTENSIONEXECUTE* pData) 6514 6618 { 6515 VBOXDISP_DDI_PROLOGUE ();6619 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6516 6620 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6517 6621 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 6525 6629 static HRESULT APIENTRY vboxWddmDDevCreateVideoProcessDevice(HANDLE hDevice, D3DDDIARG_CREATEVIDEOPROCESSDEVICE* pData) 6526 6630 { 6527 VBOXDISP_DDI_PROLOGUE ();6631 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6528 6632 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6529 6633 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 6537 6641 static HRESULT APIENTRY vboxWddmDDevDestroyVideoProcessDevice(HANDLE hDevice, HANDLE hVideoProcessor) 6538 6642 { 6539 VBOXDISP_DDI_PROLOGUE ();6643 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6540 6644 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6541 6645 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 6549 6653 static HRESULT APIENTRY vboxWddmDDevVideoProcessBeginFrame(HANDLE hDevice, HANDLE hVideoProcess) 6550 6654 { 6551 VBOXDISP_DDI_PROLOGUE ();6655 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6552 6656 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6553 6657 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 6561 6665 static HRESULT APIENTRY vboxWddmDDevVideoProcessEndFrame(HANDLE hDevice, D3DDDIARG_VIDEOPROCESSENDFRAME* pData) 6562 6666 { 6563 VBOXDISP_DDI_PROLOGUE ();6667 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6564 6668 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6565 6669 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 6573 6677 static HRESULT APIENTRY vboxWddmDDevSetVideoProcessRenderTarget(HANDLE hDevice, CONST D3DDDIARG_SETVIDEOPROCESSRENDERTARGET* pData) 6574 6678 { 6575 VBOXDISP_DDI_PROLOGUE ();6679 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6576 6680 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6577 6681 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 6585 6689 static HRESULT APIENTRY vboxWddmDDevVideoProcessBlt(HANDLE hDevice, CONST D3DDDIARG_VIDEOPROCESSBLT* pData) 6586 6690 { 6587 VBOXDISP_DDI_PROLOGUE ();6691 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6588 6692 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6589 6693 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 6597 6701 static HRESULT APIENTRY vboxWddmDDevCreateExtensionDevice(HANDLE hDevice, D3DDDIARG_CREATEEXTENSIONDEVICE* pData) 6598 6702 { 6599 VBOXDISP_DDI_PROLOGUE ();6703 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6600 6704 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6601 6705 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 6609 6713 static HRESULT APIENTRY vboxWddmDDevDestroyExtensionDevice(HANDLE hDevice, HANDLE hExtension) 6610 6714 { 6611 VBOXDISP_DDI_PROLOGUE ();6715 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6612 6716 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6613 6717 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 6621 6725 static HRESULT APIENTRY vboxWddmDDevExtensionExecute(HANDLE hDevice, CONST D3DDDIARG_EXTENSIONEXECUTE* pData) 6622 6726 { 6623 VBOXDISP_DDI_PROLOGUE ();6727 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6624 6728 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6625 6729 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 6633 6737 static HRESULT APIENTRY vboxWddmDDevDestroyDevice(IN HANDLE hDevice) 6634 6738 { 6635 VBOXDISP_DDI_PROLOGUE(); 6636 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6637 6638 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; 6639 Assert(pDevice); 6640 VBOXDISPCRHGSMI_SCOPE_SET_DEV(pDevice); 6641 6642 VBOXDISPPROFILE_DDI_DUMPRESET(pDevice); 6739 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6740 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6741 6742 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; 6743 Assert(pDevice); 6744 VBOXDISPCRHGSMI_SCOPE_SET_DEV(pDevice); 6745 6746 VBOXDISPPROFILE_DDI_PRINT(("Dumping on DestroyDevice: 0x%p", pDevice)); 6747 VBOXDISPPROFILE_DDI_TERM(pDevice); 6748 6749 #ifdef VBOXWDDMDISP_DEBUG_TIMER 6750 DeleteTimerQueueEx(pDevice->hTimerQueue, INVALID_HANDLE_VALUE /* see term */); 6751 pDevice->hTimerQueue = NULL; 6752 #endif 6753 6643 6754 PVBOXWDDMDISP_ADAPTER pAdapter = pDevice->pAdapter; 6644 6755 if (VBOXDISPMODE_IS_3D(pAdapter)) … … 6680 6791 static HRESULT APIENTRY vboxWddmDDevCreateOverlay(HANDLE hDevice, D3DDDIARG_CREATEOVERLAY* pData) 6681 6792 { 6682 VBOXDISP_DDI_PROLOGUE ();6793 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6683 6794 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6684 6795 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 6744 6855 static HRESULT APIENTRY vboxWddmDDevUpdateOverlay(HANDLE hDevice, CONST D3DDDIARG_UPDATEOVERLAY* pData) 6745 6856 { 6746 VBOXDISP_DDI_PROLOGUE ();6857 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6747 6858 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6748 6859 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 6788 6899 static HRESULT APIENTRY vboxWddmDDevFlipOverlay(HANDLE hDevice, CONST D3DDDIARG_FLIPOVERLAY* pData) 6789 6900 { 6790 VBOXDISP_DDI_PROLOGUE ();6901 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6791 6902 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6792 6903 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 6825 6936 static HRESULT APIENTRY vboxWddmDDevGetOverlayColorControls(HANDLE hDevice, D3DDDIARG_GETOVERLAYCOLORCONTROLS* pData) 6826 6937 { 6827 VBOXDISP_DDI_PROLOGUE ();6938 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6828 6939 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6829 6940 Assert(0); … … 6833 6944 static HRESULT APIENTRY vboxWddmDDevSetOverlayColorControls(HANDLE hDevice, CONST D3DDDIARG_SETOVERLAYCOLORCONTROLS* pData) 6834 6945 { 6835 VBOXDISP_DDI_PROLOGUE ();6946 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6836 6947 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6837 6948 Assert(0); … … 6841 6952 static HRESULT APIENTRY vboxWddmDDevDestroyOverlay(HANDLE hDevice, CONST D3DDDIARG_DESTROYOVERLAY* pData) 6842 6953 { 6843 VBOXDISP_DDI_PROLOGUE ();6954 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6844 6955 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6845 6956 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 6863 6974 static HRESULT APIENTRY vboxWddmDDevQueryResourceResidency(HANDLE hDevice, CONST D3DDDIARG_QUERYRESOURCERESIDENCY* pData) 6864 6975 { 6865 VBOXDISP_DDI_PROLOGUE ();6976 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6866 6977 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6867 6978 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 6910 7021 static HRESULT APIENTRY vboxWddmDDevOpenResource(HANDLE hDevice, D3DDDIARG_OPENRESOURCE* pData) 6911 7022 { 6912 VBOXDISP_DDI_PROLOGUE ();7023 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 6913 7024 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 6914 7025 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 7005 7116 Assert(pAllocation->hSharedHandle); 7006 7117 #endif 7118 #ifdef VBOXWDDMDISP_DEBUG_PRINT_SHARED_CREATE 7007 7119 vboxVDbgPrint(("\n\n********\n(0x%x:0n%d)Shared OPENNED pAlloc(0x%p), hRc(0x%p), hAl(0x%p), " 7008 7120 "Handle(0x%x), (0n%d) \n***********\n\n", … … 7011 7123 pAllocation->hSharedHandle, pAllocation->hSharedHandle 7012 7124 )); 7125 #endif 7013 7126 } 7014 7127 … … 7126 7239 static HRESULT APIENTRY vboxWddmDDevGetCaptureAllocationHandle(HANDLE hDevice, D3DDDIARG_GETCAPTUREALLOCATIONHANDLE* pData) 7127 7240 { 7128 VBOXDISP_DDI_PROLOGUE ();7241 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 7129 7242 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 7130 7243 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 7139 7252 static HRESULT APIENTRY vboxWddmDDevCaptureToSysMem(HANDLE hDevice, CONST D3DDDIARG_CAPTURETOSYSMEM* pData) 7140 7253 { 7141 VBOXDISP_DDI_PROLOGUE ();7254 VBOXDISP_DDI_PROLOGUE_DEV(hDevice); 7142 7255 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 7143 7256 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; … … 7152 7265 static HRESULT APIENTRY vboxWddmDispCreateDevice (IN HANDLE hAdapter, IN D3DDDIARG_CREATEDEVICE* pCreateData) 7153 7266 { 7154 VBOXDISP_DDI_PROLOGUE ();7267 VBOXDISP_DDI_PROLOGUE_ADP(hAdapter); 7155 7268 HRESULT hr = S_OK; 7156 7269 vboxVDbgPrint(("==> "__FUNCTION__", hAdapter(0x%p), Interface(%d), Version(%d)\n", hAdapter, pCreateData->Interface, pCreateData->Version)); … … 7286 7399 pCreateData->pDeviceFuncs->pfnRename = NULL; //vboxWddmDDevRename; 7287 7400 7401 VBOXDISPPROFILE_DDI_INIT_DEV(pDevice); 7402 #ifdef VBOX_WDDMDISP_WITH_PROFILE 7403 pDevice->ProfileDdiPresentCb = VBoxDispProfileSet("pfnPresentCb"); 7404 #endif 7405 7406 #ifdef VBOXWDDMDISP_DEBUG_TIMER 7407 pDevice->hTimerQueue = CreateTimerQueue(); 7408 Assert(pDevice->hTimerQueue); 7409 #endif 7288 7410 7289 7411 do … … 7380 7502 static HRESULT APIENTRY vboxWddmDispCloseAdapter (IN HANDLE hAdapter) 7381 7503 { 7382 VBOXDISP_DDI_PROLOGUE ();7504 VBOXDISP_DDI_PROLOGUE_ADP(hAdapter); 7383 7505 vboxVDbgPrint(("==> "__FUNCTION__", hAdapter(0x%p)\n", hAdapter)); 7384 7506 … … 7396 7518 7397 7519 vboxCapsFree(pAdapter); 7520 7521 VBOXDISPPROFILE_DDI_TERM(pAdapter); 7398 7522 7399 7523 RTMemFree(pAdapter); … … 7440 7564 HRESULT APIENTRY OpenAdapter(__inout D3DDDIARG_OPENADAPTER* pOpenData) 7441 7565 { 7442 VBOXDISP_DDI_PROLOGUE ();7566 VBOXDISP_DDI_PROLOGUE_GLBL(); 7443 7567 7444 7568 vboxVDbgPrint(("==> "__FUNCTION__"\n")); … … 7525 7649 VBOXDISPCRHGSMI_SCOPE_SET_GLOBAL(); 7526 7650 /* try enable the 3D */ 7651 #if 1 7527 7652 hr = VBoxDispD3DOpen(&pAdapter->D3D); 7528 7653 Assert(hr == S_OK); 7654 #else 7655 hr = E_FAIL; 7656 #endif 7529 7657 if (hr == S_OK) 7530 7658 { … … 7573 7701 hr = S_OK; 7574 7702 // RTMemFree(pAdapter); 7703 7704 VBOXDISPPROFILE_DDI_INIT_ADP(pAdapter); 7575 7705 } 7576 7706 else -
trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/VBoxDispD3D.h
r41473 r41637 26 26 #endif 27 27 28 #ifdef VBOX_WDDMDISP_WITH_PROFILE 29 #include <iprt/asm.h> 30 extern volatile uint32_t g_u32VBoxDispProfileFunctionLoggerIndex; 31 # define VBOXDISPPROFILE_FUNCTION_LOGGER_INDEX_GEN() ASMAtomicIncU32(&g_u32VBoxDispProfileFunctionLoggerIndex); 32 # include "VBoxDispProfile.h" 33 #endif 34 28 35 #include <iprt/cdefs.h> 29 36 #include <iprt/list.h> … … 77 84 DDSURFACEDESC *paSurfDescs; 78 85 UINT cMaxSimRTs; 86 #ifdef VBOX_WDDMDISP_WITH_PROFILE 87 VBoxDispProfileFpsCounter ProfileDdiFps; 88 VBoxDispProfileSet ProfileDdiFunc; 89 #endif 79 90 #ifdef VBOX_WITH_VIDEOHWACCEL 80 91 uint32_t cHeads; … … 205 216 UINT cSamplerTextures; 206 217 struct VBOXWDDMDISP_RESOURCE *aSamplerTextures[VBOXWDDMDISP_TOTAL_SAMPLERS]; 218 219 #ifdef VBOX_WDDMDISP_WITH_PROFILE 220 VBoxDispProfileFpsCounter ProfileDdiFps; 221 VBoxDispProfileSet ProfileDdiFunc; 222 223 VBoxDispProfileSet ProfileDdiPresentCb; 224 #endif 225 226 #ifdef VBOXWDDMDISP_DEBUG_TIMER 227 HANDLE hTimerQueue; 228 #endif 207 229 208 230 UINT cRTs; -
trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/VBoxDispD3DIf.h
r40388 r41637 24 24 #include <iprt/semaphore.h> 25 25 26 # define _InterlockedExchange _InterlockedExchange_StupidDDKVsCompilerCrap 27 # define _InterlockedExchangeAdd _InterlockedExchangeAdd_StupidDDKVsCompilerCrap 28 # define _InterlockedCompareExchange _InterlockedCompareExchange_StupidDDKVsCompilerCrap 29 # define _InterlockedAddLargeStatistic _InterlockedAddLargeStatistic_StupidDDKVsCompilerCrap 30 # define _interlockedbittestandset _interlockedbittestandset_StupidDDKVsCompilerCrap 31 # define _interlockedbittestandreset _interlockedbittestandreset_StupidDDKVsCompilerCrap 32 # define _interlockedbittestandset64 _interlockedbittestandset64_StupidDDKVsCompilerCrap 33 # define _interlockedbittestandreset64 _interlockedbittestandreset64_StupidDDKVsCompilerCrap 34 # pragma warning(disable : 4163) 26 35 #include <D3D9.h> 36 # pragma warning(default : 4163) 37 # undef _InterlockedExchange 38 # undef _InterlockedExchangeAdd 39 # undef _InterlockedCompareExchange 40 # undef _InterlockedAddLargeStatistic 41 # undef _interlockedbittestandset 42 # undef _interlockedbittestandreset 43 # undef _interlockedbittestandset64 44 # undef _interlockedbittestandreset64 27 45 28 46 #include "../../../Wine/vbox/VBoxWineEx.h" -
trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/VBoxDispDbg.cpp
r41475 r41637 50 50 #include <iprt/assert.h> 51 51 52 static DWORD g_VBoxVDbgFIsModuleNameInited = 0; 53 static char g_VBoxVDbgModuleName[MAX_PATH]; 54 55 char *vboxVDbgDoGetModuleName() 56 { 57 if (!g_VBoxVDbgFIsModuleNameInited) 58 { 59 DWORD cName = GetModuleFileNameA(NULL, g_VBoxVDbgModuleName, RT_ELEMENTS(g_VBoxVDbgModuleName)); 60 if (!cName) 61 { 62 DWORD winEr = GetLastError(); 63 WARN(("GetModuleFileNameA failed, winEr %d", winEr)); 64 return NULL; 65 } 66 g_VBoxVDbgFIsModuleNameInited = TRUE; 67 } 68 return g_VBoxVDbgModuleName; 69 } 70 52 71 static void vboxDispLogDbgFormatStringV(char * szBuffer, uint32_t cbBuffer, const char * szString, va_list pArgList) 53 72 { 54 uint32_t cbWritten = sprintf(szBuffer, "[ 0x%x.0x%x] Disp: ", GetCurrentProcessId(), GetCurrentThreadId());73 uint32_t cbWritten = sprintf(szBuffer, "['%s' 0x%x.0x%x] Disp: ", vboxVDbgDoGetModuleName(), GetCurrentProcessId(), GetCurrentThreadId()); 55 74 if (cbWritten > cbBuffer) 56 75 { … … 90 109 DWORD g_VBoxVDbgFLog = 1; 91 110 DWORD g_VBoxVDbgFLogFlow = 0; 92 93 DWORD g_VBoxVDbgFIsModuleNameInited = 0;94 char g_VBoxVDbgModuleName[MAX_PATH];95 111 96 112 LONG g_VBoxVDbgFIsDwm = -1; … … 626 642 } 627 643 628 char *vboxVDbgDoGetModuleName()629 {630 if (!g_VBoxVDbgFIsModuleNameInited)631 {632 DWORD cName = GetModuleFileNameA(NULL, g_VBoxVDbgModuleName, RT_ELEMENTS(g_VBoxVDbgModuleName));633 if (!cName)634 {635 DWORD winEr = GetLastError();636 WARN(("GetModuleFileNameA failed, winEr %d", winEr));637 return NULL;638 }639 g_VBoxVDbgFIsModuleNameInited = TRUE;640 }641 return g_VBoxVDbgModuleName;642 }643 644 644 BOOL vboxVDbgDoCheckExe(const char * pszName) 645 645 { … … 655 655 return FALSE; 656 656 return TRUE; 657 } 658 659 static VOID CALLBACK vboxVDbgTimerCb(__in PVOID lpParameter, __in BOOLEAN TimerOrWaitFired) 660 { 661 Assert(0); 662 } 663 664 HRESULT vboxVDbgTimerStart(HANDLE hTimerQueue, HANDLE *phTimer, DWORD msTimeout) 665 { 666 if (!CreateTimerQueueTimer(phTimer, hTimerQueue, 667 vboxVDbgTimerCb, 668 NULL, 669 msTimeout, /* ms*/ 670 0, 671 WT_EXECUTEONLYONCE)) 672 { 673 DWORD winEr = GetLastError(); 674 AssertMsgFailed(("CreateTimerQueueTimer failed, winEr (%d)\n", winEr)); 675 return E_FAIL; 676 } 677 return S_OK; 678 } 679 680 HRESULT vboxVDbgTimerStop(HANDLE hTimerQueue, HANDLE hTimer) 681 { 682 if (!DeleteTimerQueueTimer(hTimerQueue, hTimer, NULL)) 683 { 684 DWORD winEr = GetLastError(); 685 AssertMsg(winEr == ERROR_IO_PENDING, ("DeleteTimerQueueTimer failed, winEr (%d)\n", winEr)); 686 } 687 return S_OK; 657 688 } 658 689 #endif -
trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/VBoxDispDbg.h
r41481 r41637 44 44 /* disable shared resource creation with wine */ 45 45 //# define VBOXWDDMDISP_DEBUG_NOSHARED 46 47 //# define VBOXWDDMDISP_DEBUG_PRINT_SHARED_CREATE 48 49 //# define VBOXWDDMDISP_DEBUG_TIMER 46 50 # endif 47 51 … … 74 78 extern DWORD g_VBoxVDbgFLog; 75 79 extern DWORD g_VBoxVDbgFLogFlow; 76 77 extern DWORD g_VBoxVDbgFIsModuleNameInited;78 extern char g_VBoxVDbgModuleName[];79 80 80 81 extern LONG g_VBoxVDbgFIsDwm; … … 261 262 262 263 VOID vboxVDbgDoPrintLopLastCmd(const char* pszDesc); 264 265 HRESULT vboxVDbgTimerStart(HANDLE hTimerQueue, HANDLE *phTimer, DWORD msTimeout); 266 HRESULT vboxVDbgTimerStop(HANDLE hTimerQueue, HANDLE hTimer); 263 267 264 268 extern DWORD g_VBoxVDbgPid; -
trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/VBoxDispProfile.h
r36867 r41637 19 19 #ifndef ___VBoxDispProfile_h__ 20 20 #define ___VBoxDispProfile_h__ 21 #include "VBoxDispD3DCmn.h" 22 21 23 #include <iprt/ctype.h> 22 24 #include <iprt/time.h> 23 24 #include "VBoxDispD3DCmn.h"25 25 26 26 #define VBOXDISPPROFILE_MAX_SETSIZE 512 … … 28 28 #define VBOXDISPPROFILE_GET_TIME_MILLI() RTTimeMilliTS() 29 29 #define VBOXDISPPROFILE_DUMP(_m) do {\ 30 L ogRel(_m); \30 LOGREL_EXACT(_m); \ 31 31 } while (0) 32 32 … … 58 58 } 59 59 60 void dump(const PVBOXWDDMDISP_DEVICE pDevice) const 60 uint64_t getTime() const 61 { 62 return m_cTime; 63 } 64 65 uint32_t getNumCalls() const 66 { 67 return m_cCalls; 68 } 69 70 const char* getName() const 71 { 72 return m_pName; 73 } 74 75 void dump(void *pvObj, uint64_t cTotalEntriesTime, uint64_t cTotalTime) const 61 76 { 62 77 // VBOXDISPPROFILE_DUMP((pDevice, "Entry '%s': calls(%d), time: nanos(%I64u), micros(%I64u), millis(%I64u)\n", 63 78 // m_pName, m_cCalls, 64 79 // m_cTime, m_cTime/1000, m_cTime/1000000)); 65 VBOXDISPPROFILE_DUMP(("%s\t%d\t%I64u\t%I64u\t%I64u\n", 66 m_pName, m_cCalls, 67 m_cTime, m_cTime/1000, m_cTime/1000000)); 80 VBOXDISPPROFILE_DUMP(("'%s' [0x%p]: \t%d\t%u\t%u\t%u\t%u\t%u", m_pName, pvObj, 81 m_cCalls, 82 (uint32_t)m_cTime, (uint32_t)(m_cTime/1000), (uint32_t)(m_cTime/1000000), 83 (uint32_t)(((double)m_cTime)/cTotalEntriesTime), 84 (uint32_t)(((double)m_cTime)/cTotalTime))); 68 85 } 69 86 private: … … 78 95 VBoxDispProfileSet(const char *pName) : 79 96 m_cEntries(0), 97 m_cIterations(0), 80 98 m_pName(pName) 81 {} 99 { 100 m_cTime = VBOXDISPPROFILE_GET_TIME_NANO(); 101 } 102 103 VBoxDispProfileSet() : 104 m_cEntries(0), 105 m_cIterations(0), 106 m_pName("global") 107 { 108 m_cTime = VBOXDISPPROFILE_GET_TIME_NANO(); 109 } 82 110 83 111 VBoxDispProfileEntry * alloc(const char *pName) … … 93 121 } 94 122 123 VBoxDispProfileEntry * get(uint32_t u32Entry, const char *pName) 124 { 125 if (u32Entry < RT_ELEMENTS(m_Entries)) 126 { 127 VBoxDispProfileEntry * entry = &m_Entries[u32Entry]; 128 if (entry->getName()) 129 return entry; 130 ++m_cEntries; 131 *entry = VBoxDispProfileEntry(pName); 132 return entry; 133 } 134 return NULL; 135 } 136 137 uint32_t reportIteration() 138 { 139 return ++m_cIterations; 140 } 141 142 uint32_t getNumIterations() const 143 { 144 return m_cIterations; 145 } 146 147 uint32_t getNumEntries() const 148 { 149 return m_cEntries; 150 } 151 152 #define VBOXDISPPROFILESET_FOREACHENTRY(_op) \ 153 for (uint32_t i = 0, e = 0; e < m_cEntries && i < RT_ELEMENTS(m_Entries); ++i) { \ 154 if (m_Entries[i].getName()) { \ 155 { \ 156 _op \ 157 } \ 158 ++e; \ 159 } \ 160 } \ 161 95 162 void resetEntries() 96 163 { 97 for (uint32_t i = 0; i < m_cEntries; ++i) 98 { 99 m_Entries[i].reset(); 100 } 101 } 102 103 void dump(const PVBOXWDDMDISP_DEVICE pDevice) 104 { 105 VBOXDISPPROFILE_DUMP((">>>> Start of VBox Disp Dump '%s': num entries(%d) >>>>>\n", m_pName, m_cEntries)); 106 VBOXDISPPROFILE_DUMP(("Name\tCalls\tNanos\tMicros\tMillis\n")); 107 for (uint32_t i = 0; i < m_cEntries; ++i) 108 { 109 m_Entries[i].dump(pDevice); 110 } 111 VBOXDISPPROFILE_DUMP(("<<<< Endi of VBox Disp Dump '%s' <<<<<\n", m_pName)); 164 VBOXDISPPROFILESET_FOREACHENTRY( m_Entries[i].reset(); ); 165 m_cTime = VBOXDISPPROFILE_GET_TIME_NANO(); 166 } 167 168 void reset() 169 { 170 m_cEntries = 0; 171 m_cTime = VBOXDISPPROFILE_GET_TIME_NANO(); 172 } 173 174 void dump(void *pvObj) 175 { 176 uint64_t cEntriesTime = 0; 177 VBOXDISPPROFILESET_FOREACHENTRY( cEntriesTime += m_Entries[i].getTime(); ); 178 179 VBOXDISPPROFILE_DUMP((">>>> '%s' [0x%p]: Start of VBox Disp Dump: num entries(%d), et(%u), tt(%u) >>>>>", m_pName, pvObj, m_cEntries, 180 (uint32_t)(cEntriesTime / 1000000), (uint32_t)(m_cTime / 1000000))); 181 VBOXDISPPROFILE_DUMP(("Name\tCalls\tNanos\tMicros\tMillis\tentries_quota\ttotal_quota")); 182 VBOXDISPPROFILESET_FOREACHENTRY( 183 if (m_Entries[i].getNumCalls()) 184 m_Entries[i].dump(pvObj, cEntriesTime, m_cTime); ); 185 VBOXDISPPROFILE_DUMP(("<<<< '%s' [0x%p]: End of VBox Disp Dump <<<<<", m_pName, pvObj)); 112 186 } 113 187 … … 115 189 VBoxDispProfileEntry m_Entries[VBOXDISPPROFILE_MAX_SETSIZE]; 116 190 uint32_t m_cEntries; 191 uint32_t m_cIterations; 192 uint64_t m_cTime; 117 193 const char * m_pName; 118 194 }; … … 164 240 VBoxDispProfileFpsCounter(uint32_t cPeriods) 165 241 { 242 init(cPeriods); 243 } 244 245 VBoxDispProfileFpsCounter() 246 { 247 memset(&m_Data, 0, sizeof (m_Data)); 248 } 249 250 ~VBoxDispProfileFpsCounter() 251 { 252 term(); 253 } 254 255 void term() 256 { 257 if (m_Data.mpaPeriods) 258 { 259 RTMemFree(m_Data.mpaPeriods); 260 m_Data.mpaPeriods = NULL; 261 } 262 if (m_Data.mpaCalls) 263 { 264 RTMemFree(m_Data.mpaCalls); 265 m_Data.mpaCalls = NULL; 266 } 267 if (m_Data.mpaTimes) 268 { 269 RTMemFree(m_Data.mpaTimes); 270 m_Data.mpaTimes = NULL; 271 } 272 m_Data.mcPeriods = 0; 273 } 274 275 /* to be called in case fps counter was created with default constructor */ 276 void init(uint32_t cPeriods) 277 { 166 278 memset(&m_Data, 0, sizeof (m_Data)); 167 279 m_Data.mcPeriods = cPeriods; 168 m_Data.mpaPeriods = (uint64_t *)RTMemAllocZ(sizeof (m_Data.mpaPeriods[0]) * cPeriods); 169 m_Data.mpaCalls = (uint32_t *)RTMemAllocZ(sizeof (m_Data.mpaCalls[0]) * cPeriods); 170 m_Data.mpaTimes = (uint64_t *)RTMemAllocZ(sizeof (m_Data.mpaTimes[0]) * cPeriods); 171 } 172 173 ~VBoxDispProfileFpsCounter() 174 { 175 RTMemFree(m_Data.mpaPeriods); 176 RTMemFree(m_Data.mpaCalls); 177 RTMemFree(m_Data.mpaTimes); 280 if (cPeriods) 281 { 282 m_Data.mpaPeriods = (uint64_t *)RTMemAllocZ(sizeof (m_Data.mpaPeriods[0]) * cPeriods); 283 m_Data.mpaCalls = (uint32_t *)RTMemAllocZ(sizeof (m_Data.mpaCalls[0]) * cPeriods); 284 m_Data.mpaTimes = (uint64_t *)RTMemAllocZ(sizeof (m_Data.mpaTimes[0]) * cPeriods); 285 } 178 286 } 179 287 … … 264 372 } while (0) 265 373 266 #define VBOXDISPPROFILE_FUNCTION_LOGGER_DEFINE(_p) \ 374 #ifdef VBOXDISPPROFILE_FUNCTION_LOGGER_GLOBAL_PROFILE 375 # define VBOXDISPPROFILE_FUNCTION_LOGGER_DEFINE(_p) \ 267 376 static VBoxDispProfileEntry * __pVBoxDispProfileEntry = NULL; \ 268 377 if (!__pVBoxDispProfileEntry) { __pVBoxDispProfileEntry = _p.alloc(__FUNCTION__); } \ 269 378 VBoxDispProfileScopeLogger<VBoxDispProfileEntry> __vboxDispProfileFunctionLogger(__pVBoxDispProfileEntry); 379 #else 380 # ifndef VBOXDISPPROFILE_FUNCTION_LOGGER_INDEX_GEN 381 # error "VBOXDISPPROFILE_FUNCTION_LOGGER_INDEX_GEN should be fedined!" 382 # endif 383 # define VBOXDISPPROFILE_FUNCTION_LOGGER_DEFINE(_p) \ 384 static uint32_t __u32VBoxDispProfileIndex = VBOXDISPPROFILE_FUNCTION_LOGGER_INDEX_GEN(); \ 385 VBoxDispProfileEntry * __pVBoxDispProfileEntry = _p.get(__u32VBoxDispProfileIndex, __FUNCTION__); \ 386 VBoxDispProfileScopeLogger<VBoxDispProfileEntry> __vboxDispProfileFunctionLogger(__pVBoxDispProfileEntry); 387 #endif 270 388 271 389 #define VBOXDISPPROFILE_STATISTIC_LOGGER_DISABLE_CURRENT() do { \
Note:
See TracChangeset
for help on using the changeset viewer.