VirtualBox

Ignore:
Timestamp:
Jun 3, 2013 5:24:51 PM (12 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
86184
Message:

crOpenGL: more debugging

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server.h

    r46343 r46368  
    386386void crServerInitTmpCtxDispatch();
    387387
     388//#define VBOX_WITH_CRSERVER_DUMPER
    388389#ifdef VBOX_WITH_CRSERVER_DUMPER
    389390void crServerDumpCheckTerm();
    390391int crServerDumpCheckInit();
    391 void crServerDumpBuffer();
     392void crServerDumpBuffer(int idx);
    392393void crServerDumpTextures();
    393 
    394 #define CR_SERVER_DUMP_F_DRAW_BUFF_ENTER 0x01
    395 #define CR_SERVER_DUMP_F_DRAW_BUFF_LEAVE  0x02
    396 #define CR_SERVER_DUMP_F_DRAW_TEX_ENTER  0x10
    397 #define CR_SERVER_DUMP_F_DRAW_TEX_LEAVE   0x20
    398 
    399 extern int g_CrDbgDumpDraw;
    400 bool crServerDumpFilter(int event);
     394void crServerDumpShader(GLint id);
     395void crServerDumpProgram(GLint id);
     396void crServerDumpCurrentProgram();
     397void crServerDumpFramesCheck();
     398
     399extern unsigned long g_CrDbgDumpDraw;
     400extern unsigned long g_CrDbgDumpDrawFramesSettings;
     401extern unsigned long g_CrDbgDumpDrawFramesAppliedSettings;
     402extern unsigned long g_CrDbgDumpDrawFramesCount;
     403bool crServerDumpFilter(unsigned long event);
     404
     405#define CR_SERVER_DUMP_F_DRAW_BUFF_ENTER        0x00000001
     406#define CR_SERVER_DUMP_F_DRAW_BUFF_LEAVE        0x00000002
     407#define CR_SERVER_DUMP_F_DRAW_TEX_ENTER         0x00000010
     408#define CR_SERVER_DUMP_F_DRAW_TEX_LEAVE         0x00000020
     409#define CR_SERVER_DUMP_F_DRAW_PROGRAM_ENTER     0x00000100
     410#define CR_SERVER_DUMP_F_DRAW_PROGRAM_LEAVE     0x00000200
     411
     412#define CR_SERVER_DUMP_F_DRAW_ALL (CR_SERVER_DUMP_F_DRAW_BUFF_ENTER | CR_SERVER_DUMP_F_DRAW_BUFF_LEAVE \
     413        | CR_SERVER_DUMP_F_DRAW_TEX_ENTER | CR_SERVER_DUMP_F_DRAW_TEX_LEAVE \
     414        | CR_SERVER_DUMP_F_DRAW_PROGRAM_ENTER | CR_SERVER_DUMP_F_DRAW_PROGRAM_LEAVE)
     415
     416#define CR_SERVER_DUMP_F_COMPILE_SHADER         0x00001000
     417#define CR_SERVER_DUMP_F_LINK_PROGRAM           0x00002000
     418#define CR_SERVER_DUMP_F_SWAPBUFFERS_ENTER      0x00010000
     419#define CR_SERVER_DUMP_F_SWAPBUFFERS_LEAVE      0x00020000
    401420
    402421#define CR_SERVER_DUMP_IF_ANY(_ev) ((g_CrDbgDumpDraw & (_ev)) && crServerDumpFilter((_ev)))
    403422
    404423#define CR_SERVER_DUMP_DRAW_ENTER() do { \
    405             if (!CR_SERVER_DUMP_IF_ANY(CR_SERVER_DUMP_F_DRAW_BUFF_ENTER | CR_SERVER_DUMP_F_DRAW_TEX_ENTER)) break; \
     424            if (!CR_SERVER_DUMP_IF_ANY(CR_SERVER_DUMP_F_DRAW_BUFF_ENTER | CR_SERVER_DUMP_F_DRAW_TEX_ENTER | CR_SERVER_DUMP_F_DRAW_PROGRAM_ENTER)) break; \
    406425            crServerDumpCheckInit(); \
    407             crDmpStrF(cr_server.Recorder.pDumper, "==> %s\n", __FUNCTION__); \
    408             if (CR_SERVER_DUMP_IF_ANY(CR_SERVER_DUMP_F_DRAW_BUFF_ENTER)) { \
    409                 crServerDumpBuffer(); \
    410             } \
    411             if (CR_SERVER_DUMP_IF_ANY(CR_SERVER_DUMP_F_DRAW_TEX_ENTER)) { \
    412                 crServerDumpTextures(); \
    413             } \
     426            crDmpStrF(cr_server.Recorder.pDumper, "==> %s", __FUNCTION__); \
     427            if (CR_SERVER_DUMP_IF_ANY(CR_SERVER_DUMP_F_DRAW_PROGRAM_ENTER)) { crServerDumpCurrentProgram(); } \
     428            if (CR_SERVER_DUMP_IF_ANY(CR_SERVER_DUMP_F_DRAW_TEX_ENTER)) { crServerDumpTextures(); } \
     429            if (CR_SERVER_DUMP_IF_ANY(CR_SERVER_DUMP_F_DRAW_BUFF_ENTER)) { crServerDumpBuffer(-1); } \
     430            crDmpStrF(cr_server.Recorder.pDumper, "=================="); \
    414431        } while (0)
    415432
    416433#define CR_SERVER_DUMP_DRAW_LEAVE() do { \
    417             if (!CR_SERVER_DUMP_IF_ANY(CR_SERVER_DUMP_F_DRAW_BUFF_LEAVE | CR_SERVER_DUMP_F_DRAW_TEX_LEAVE)) break; \
     434            if (!CR_SERVER_DUMP_IF_ANY(CR_SERVER_DUMP_F_DRAW_BUFF_LEAVE | CR_SERVER_DUMP_F_DRAW_TEX_LEAVE | CR_SERVER_DUMP_F_DRAW_PROGRAM_LEAVE)) break; \
    418435            crServerDumpCheckInit(); \
    419             crDmpStrF(cr_server.Recorder.pDumper, "<== %s\n", __FUNCTION__); \
    420             if (CR_SERVER_DUMP_IF_ANY(CR_SERVER_DUMP_F_DRAW_BUFF_LEAVE)) { \
    421                 crServerDumpBuffer(); \
    422             } \
    423             if (CR_SERVER_DUMP_IF_ANY(CR_SERVER_DUMP_F_DRAW_TEX_LEAVE)) { \
    424                 crServerDumpTextures(); \
    425             } \
     436            crDmpStrF(cr_server.Recorder.pDumper, "<== %s", __FUNCTION__); \
     437            if (CR_SERVER_DUMP_IF_ANY(CR_SERVER_DUMP_F_DRAW_BUFF_LEAVE)) { crServerDumpBuffer(-1); } \
     438            if (CR_SERVER_DUMP_IF_ANY(CR_SERVER_DUMP_F_DRAW_TEX_LEAVE)) { crServerDumpTextures(); } \
     439            if (CR_SERVER_DUMP_IF_ANY(CR_SERVER_DUMP_F_DRAW_PROGRAM_LEAVE)) { crServerDumpCurrentProgram(); } \
     440            crDmpStrF(cr_server.Recorder.pDumper, "=================="); \
    426441        } while (0)
     442
     443#define CR_SERVER_DUMP_COMPILE_SHADER(_id) do { \
     444            if (!CR_SERVER_DUMP_IF_ANY(CR_SERVER_DUMP_F_COMPILE_SHADER)) break; \
     445            crServerDumpCheckInit(); \
     446            crServerDumpShader((_id)); \
     447        } while (0)
     448
     449#define CR_SERVER_DUMP_LINK_PROGRAM(_id) do { \
     450            if (!CR_SERVER_DUMP_IF_ANY(CR_SERVER_DUMP_F_LINK_PROGRAM)) break; \
     451            crServerDumpCheckInit(); \
     452            crServerDumpProgram((_id)); \
     453        } while (0)
     454
     455#define CR_SERVER_DUMP_SWAPBUFFERS_ENTER() do { \
     456            if (!g_CrDbgDumpDrawFramesCount && !CR_SERVER_DUMP_IF_ANY(CR_SERVER_DUMP_F_SWAPBUFFERS_ENTER)) break; \
     457            crServerDumpCheckInit(); \
     458            crDmpStrF(cr_server.Recorder.pDumper, "== %s", __FUNCTION__); \
     459            if (CR_SERVER_DUMP_IF_ANY(CR_SERVER_DUMP_F_SWAPBUFFERS_ENTER)) { crServerDumpBuffer(CR_SERVER_FBO_BB_IDX(cr_server.currentMural)); } \
     460            if (g_CrDbgDumpDrawFramesCount) { crServerDumpFramesCheck(); } \
     461        } while (0)
     462
     463#define CR_SERVER_DUMP_SWAPBUFFERS_LEAVE() do {} while (0)
    427464#else /* if !defined VBOX_WITH_CRSERVER_DUMPER */
    428465#define CR_SERVER_DUMP_DRAW_ENTER() do {} while (0)
    429466#define CR_SERVER_DUMP_DRAW_LEAVE() do {} while (0)
     467#define CR_SERVER_DUMP_COMPILE_SHADER(_id) do {} while (0)
     468#define CR_SERVER_DUMP_LINK_PROGRAM(_id) do {} while (0)
     469#define CR_SERVER_DUMP_SWAPBUFFERS_ENTER() do {} while (0)
     470#define CR_SERVER_DUMP_SWAPBUFFERS_LEAVE() do {} while (0)
    430471#endif /* !VBOX_WITH_CRSERVER_DUMPER */
    431472
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette