Changeset 48897 in vbox
- Timestamp:
- Oct 4, 2013 7:35:58 PM (11 years ago)
- Location:
- trunk/src/VBox
- Files:
-
- 5 edited
-
GuestHost/OpenGL/include/cr_dump.h (modified) (1 diff)
-
GuestHost/OpenGL/state_tracker/dump.cpp (modified) (4 diffs)
-
HostServices/SharedOpenGL/crserverlib/server.h (modified) (4 diffs)
-
HostServices/SharedOpenGL/crserverlib/server_misc.c (modified) (2 diffs)
-
HostServices/SharedOpenGL/crserverlib/server_presenter.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/GuestHost/OpenGL/include/cr_dump.h
r48292 r48897 136 136 VBOXDUMPDECL(void) crRecDumpBuffer(CR_RECORDER *pRec, CRContext *ctx, CR_BLITTER_CONTEXT *pCurCtx, CR_BLITTER_WINDOW *pCurWin, GLint idRedirFBO, VBOXVR_TEXTURE *pRedirTex); 137 137 VBOXDUMPDECL(void) crRecDumpTextures(CR_RECORDER *pRec, CRContext *ctx, CR_BLITTER_CONTEXT *pCurCtx, CR_BLITTER_WINDOW *pCurWin); 138 VBOXDUMPDECL(void) crRecDumpTextureV(CR_RECORDER *pRec, const VBOXVR_TEXTURE *pTex, CR_BLITTER_CONTEXT *pCurCtx, CR_BLITTER_WINDOW *pCurWin, const char *pszStr, va_list pArgList); 139 VBOXDUMPDECL(void) crRecDumpTextureF(CR_RECORDER *pRec, const VBOXVR_TEXTURE *pTex, CR_BLITTER_CONTEXT *pCurCtx, CR_BLITTER_WINDOW *pCurWin, const char *pszStr, ...); 140 VBOXDUMPDECL(void) crRecDumpTextureByIdV(CR_RECORDER *pRec, CRContext *ctx, GLint id, CR_BLITTER_CONTEXT *pCurCtx, CR_BLITTER_WINDOW *pCurWin, const char *pszStr, va_list pArgList); 141 VBOXDUMPDECL(void) crRecDumpTextureByIdF(CR_RECORDER *pRec, CRContext *ctx, GLint id, CR_BLITTER_CONTEXT *pCurCtx, CR_BLITTER_WINDOW *pCurWin, const char *pszStr, ...); 138 142 VBOXDUMPDECL(void) crRecDumpShader(CR_RECORDER *pRec, CRContext *ctx, GLint id, GLint hwid); 139 143 VBOXDUMPDECL(void) crRecDumpProgram(CR_RECORDER *pRec, CRContext *ctx, GLint id, GLint hwid); -
trunk/src/VBox/GuestHost/OpenGL/state_tracker/dump.cpp
r48613 r48897 1232 1232 } 1233 1233 1234 void crRecDumpTextureV(CR_RECORDER *pRec, const VBOXVR_TEXTURE *pTex, CR_BLITTER_CONTEXT *pCurCtx, CR_BLITTER_WINDOW *pCurWin, const char *pszStr, va_list pArgList) 1235 { 1236 CR_BLITTER_IMG Img = {0}; 1237 int rc = CrBltEnter(pRec->pBlitter, pCurCtx, pCurWin); 1238 if (RT_SUCCESS(rc)) 1239 { 1240 rc = CrBltImgGetTex(pRec->pBlitter, pTex, GL_BGRA, &Img); 1241 if (RT_SUCCESS(rc)) 1242 { 1243 crDmpImgV(pRec->pDumper, &Img, pszStr, pArgList); 1244 CrBltImgFree(pRec->pBlitter, &Img); 1245 } 1246 else 1247 { 1248 crWarning("CrBltImgGetTex failed, rc %d", rc); 1249 } 1250 CrBltLeave(pRec->pBlitter); 1251 } 1252 else 1253 { 1254 crWarning("CrBltEnter failed, rc %d", rc); 1255 } 1256 } 1257 1258 void crRecDumpTextureF(CR_RECORDER *pRec, const VBOXVR_TEXTURE *pTex, CR_BLITTER_CONTEXT *pCurCtx, CR_BLITTER_WINDOW *pCurWin, const char *pszStr, ...) 1259 { 1260 va_list pArgList; 1261 va_start(pArgList, pszStr); 1262 crRecDumpTextureV(pRec, pTex, pCurCtx, pCurWin, pszStr, pArgList); 1263 va_end(pArgList); 1264 } 1265 1266 void crRecDumpTextureByIdV(CR_RECORDER *pRec, CRContext *ctx, GLint id, CR_BLITTER_CONTEXT *pCurCtx, CR_BLITTER_WINDOW *pCurWin, const char *pszStr, va_list pArgList) 1267 { 1268 CRTextureObj *pTobj = (CRTextureObj *)crHashtableSearch(ctx->shared->textureTable, id); 1269 if (!pTobj) 1270 { 1271 crWarning("no texture of id %d", id); 1272 return; 1273 } 1274 1275 CRTextureLevel *pTl = &pTobj->level[0][0 /* level */]; 1276 VBOXVR_TEXTURE Tex; 1277 Tex.width = pTl->width; 1278 Tex.height = pTl->height; 1279 Tex.target = pTobj->target; 1280 Assert(Tex.target == GL_TEXTURE_2D); 1281 Tex.hwid = pTobj->hwid; 1282 if (!Tex.hwid) 1283 { 1284 crWarning("no texture hwid of id %d", id); 1285 return; 1286 } 1287 1288 crRecDumpTextureV(pRec, &Tex, pCurCtx, pCurWin, pszStr, pArgList); 1289 } 1290 1291 void crRecDumpTextureByIdF(CR_RECORDER *pRec, CRContext *ctx, GLint id, CR_BLITTER_CONTEXT *pCurCtx, CR_BLITTER_WINDOW *pCurWin, const char *pszStr, ...) 1292 { 1293 va_list pArgList; 1294 va_start(pArgList, pszStr); 1295 crRecDumpTextureByIdV(pRec, ctx, id, pCurCtx, pCurWin, pszStr, pArgList); 1296 va_end(pArgList); 1297 } 1298 1234 1299 void crRecDumpTextures(CR_RECORDER *pRec, CRContext *ctx, CR_BLITTER_CONTEXT *pCurCtx, CR_BLITTER_WINDOW *pCurWin) 1235 1300 { … … 1238 1303 GLint restoreTexUnit = 0; 1239 1304 GLint curProgram = 0; 1240 int rc;1241 1305 int i; 1242 1306 … … 1294 1358 { 1295 1359 GLint hwTex = 0; 1296 CR_BLITTER_IMG Img = {0};1297 1360 VBOXVR_TEXTURE Tex; 1298 1361 … … 1327 1390 } 1328 1391 1329 rc = CrBltEnter(pRec->pBlitter, pCurCtx, pCurWin); 1330 if (RT_SUCCESS(rc)) 1331 { 1332 rc = CrBltImgGetTex(pRec->pBlitter, &Tex, GL_BGRA, &Img); 1333 if (RT_SUCCESS(rc)) 1334 { 1335 crDmpImgF(pRec->pDumper, &Img, "ctx(%d), Unit %d: TEXTURE_2D id(%d) hwid(%d), width(%d), height(%d)", ctx, i, pTobj->id, pTobj->hwid, width, height); 1336 CrBltImgFree(pRec->pBlitter, &Img); 1337 } 1338 else 1339 { 1340 crWarning("CrBltImgGetTex failed, rc %d", rc); 1341 } 1342 CrBltLeave(pRec->pBlitter); 1343 } 1344 else 1345 { 1346 crWarning("CrBltEnter failed, rc %d", rc); 1347 } 1392 crRecDumpTextureF(pRec, &Tex, pCurCtx, pCurWin, "ctx(%d), Unit %d: TEXTURE_2D id(%d) hwid(%d), width(%d), height(%d)", ctx, i, pTobj->id, pTobj->hwid, width, height); 1348 1393 } 1349 1394 // else -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server.h
r48726 r48897 468 468 void crServerDumpBuffer(int idx); 469 469 void crServerDumpTextures(); 470 void crServerDumpTexture(const VBOXVR_TEXTURE *pTex); 470 471 void crServerDumpShader(GLint id); 471 472 void crServerDumpProgram(GLint id); … … 564 565 #define CR_SERVER_DUMP_F_SWAPBUFFERS_ENTER 0x00010000 565 566 #define CR_SERVER_DUMP_F_SWAPBUFFERS_LEAVE 0x00020000 567 #define CR_SERVER_DUMP_F_TEXPRESENT 0x00040000 566 568 #define CR_SERVER_DUMP_F_DRAWEL 0x00100000 567 569 #define CR_SERVER_DUMP_F_COMPILE_SHADER 0x01000000 … … 641 643 } while (0) 642 644 645 #define CR_SERVER_DUMP_TEXPRESENT(_pTex) do { \ 646 if (!CR_SERVER_DUMP_FILTER_OP(CR_SERVER_DUMP_F_TEXPRESENT, cr_server.Recorder.pDumper)) break; \ 647 crServerDumpCheckInit(); \ 648 crDmpStrF(cr_server.Recorder.pDumper, "==[%d] %s==", (uint32_t)cr_server.curClient->pid, __FUNCTION__); \ 649 crServerDumpTexture((_pTex)); \ 650 } while (0) 651 643 652 #define CR_SERVER_DUMP_SWAPBUFFERS_LEAVE() do { \ 644 653 if (!CR_SERVER_DUMP_FILTER_OP(CR_SERVER_DUMP_F_SWAPBUFFERS_LEAVE, cr_server.Recorder.pDumper)) break; \ … … 666 675 #define CR_SERVER_DUMP_COMPILE_SHADER(_id) do {} while (0) 667 676 #define CR_SERVER_DUMP_LINK_PROGRAM(_id) do {} while (0) 677 #define CR_SERVER_DUMP_TEXPRESENT(_pTex) do {} while (0) 668 678 #define CR_SERVER_DUMP_SWAPBUFFERS_ENTER() do {} while (0) 669 679 #define CR_SERVER_DUMP_SWAPBUFFERS_LEAVE() do {} while (0) -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_misc.c
r48615 r48897 1590 1590 } 1591 1591 1592 void crServerDumpTexture s()1592 void crServerDumpTexture(const VBOXVR_TEXTURE *pTex) 1593 1593 { 1594 1594 CRContextInfo *pCtxInfo = cr_server.currentCtxInfo; … … 1606 1606 crServerVBoxBlitterCtxInit(&BltCtx, pCtxInfo); 1607 1607 1608 crRecDumpTextureF(&cr_server.Recorder, pTex, &BltCtx, &BltWin, "Tex (%d x %d), hwid (%d) target %#x", pTex->width, pTex->height, pTex->hwid, pTex->target); 1609 } 1610 1611 void crServerDumpTextures() 1612 { 1613 CRContextInfo *pCtxInfo = cr_server.currentCtxInfo; 1614 CR_BLITTER_WINDOW BltWin; 1615 CR_BLITTER_CONTEXT BltCtx; 1616 CRContext *ctx = crStateGetCurrent(); 1617 int rc = crServerDumpCheckInit(); 1618 if (!RT_SUCCESS(rc)) 1619 { 1620 crWarning("crServerDumpCheckInit failed, rc %d", rc); 1621 return; 1622 } 1623 1624 crServerVBoxBlitterWinInit(&BltWin, cr_server.currentMural); 1625 crServerVBoxBlitterCtxInit(&BltCtx, pCtxInfo); 1626 1608 1627 crRecDumpTextures(&cr_server.Recorder, ctx, &BltCtx, &BltWin); 1609 1628 } -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_presenter.cpp
r48733 r48897 948 948 } 949 949 950 if (!(cfg & CR_PRESENT_FLAG_CLEAR_RECTS)) 951 { 952 CR_SERVER_DUMP_TEXPRESENT(&pEntry->CEntry.Tex); 953 } 954 950 955 CrDpEnter(pDisplay); 951 956
Note:
See TracChangeset
for help on using the changeset viewer.

