Changeset 52260 in vbox
- Timestamp:
- Aug 4, 2014 11:59:46 AM (11 years ago)
- svn:sync-xref-src-repo-rev:
- 95357
- Location:
- trunk
- Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk
- Property svn:mergeinfo changed
/branches/VBox-4.3 merged: 95338
- Property svn:mergeinfo changed
-
trunk/src/VBox
- Property svn:mergeinfo changed
/branches/VBox-4.3/src/VBox merged: 95338
- Property svn:mergeinfo changed
-
trunk/src/VBox/Additions/common/crOpenGL/pack/packspu_misc.c
r51559 r52260 206 206 crUnlockMutex(&_PackMutex); 207 207 } 208 } 209 210 void PACKSPU_APIENTRY packspu_NewList(GLuint list, GLenum mode) 211 { 212 crStateNewList(list, mode); 213 crPackNewList(list, mode); 214 } 215 216 void PACKSPU_APIENTRY packspu_EndList() 217 { 218 crStateEndList(); 219 crPackEndList(); 208 220 } 209 221 -
trunk/src/VBox/Additions/common/crOpenGL/pack/packspu_special
r51559 r52260 134 134 GenTextures 135 135 CompileShader 136 NewList 137 EndList -
trunk/src/VBox/GuestHost/OpenGL/include/cr_pack.h
r51315 r52260 252 252 } while (0) 253 253 254 #define CR_CMDBLOCK_IS_STARTED( pc, op ) CRPACKBLOCKSTATE_IS_OP_STARTED((pc)->u32CmdBlockState, op) 254 255 255 256 #define CR_CMDBLOCK_BEGIN( pc, op ) \ … … 257 258 CR_LOCK_PACKER_CONTEXT(pc); \ 258 259 if (!cr_packer_cmd_blocks_enabled) break; \ 259 if (!CRPACKBLOCKSTATE_IS_STARTED( pc->u32CmdBlockState)) { \260 if (!CRPACKBLOCKSTATE_IS_STARTED((pc)->u32CmdBlockState)) { \ 260 261 THREADASSERT( pc ); \ 261 CRASSERT( pc->currentBuffer ); \262 if (!crPackBufferIsEmpty(& pc->buffer)) { \263 if ((* pc->buffer.opcode_start) != CR_NOP_OPCODE) { \264 pc->Flush( pc->flush_arg ); \265 Assert(crPackCanHoldOpcode( pc, 1, 4 ) ); \266 CR_CMDBLOCK_OP( pc, CR_CMDBLOCKBEGIN_OPCODE ); \262 CRASSERT( (pc)->currentBuffer ); \ 263 if (!crPackBufferIsEmpty(&(pc)->buffer)) { \ 264 if ((*(pc)->buffer.opcode_start) != CR_NOP_OPCODE) { \ 265 (pc)->Flush( (pc)->flush_arg ); \ 266 Assert(crPackCanHoldOpcode( (pc), 1, 4 ) ); \ 267 CR_CMDBLOCK_OP( (pc), CR_CMDBLOCKBEGIN_OPCODE ); \ 267 268 } \ 268 269 else { \ 269 (* pc->buffer.opcode_start) = CR_CMDBLOCKBEGIN_OPCODE; \270 (*(pc)->buffer.opcode_start) = CR_CMDBLOCKBEGIN_OPCODE; \ 270 271 } \ 271 272 } \ 272 273 else { \ 273 Assert(crPackCanHoldOpcode( pc, 1, 4 ) ); \274 CR_CMDBLOCK_OP( pc, CR_CMDBLOCKBEGIN_OPCODE ); \274 Assert(crPackCanHoldOpcode( (pc), 1, 4 ) ); \ 275 CR_CMDBLOCK_OP( (pc), CR_CMDBLOCKBEGIN_OPCODE ); \ 275 276 } \ 276 277 } \ 277 CRPACKBLOCKSTATE_OP_START(pc->u32CmdBlockState, op); \ 278 Assert(!CRPACKBLOCKSTATE_IS_OP_STARTED((pc)->u32CmdBlockState, op)); \ 279 CRPACKBLOCKSTATE_OP_START((pc)->u32CmdBlockState, op); \ 280 Assert(CRPACKBLOCKSTATE_IS_OP_STARTED((pc)->u32CmdBlockState, op)); \ 278 281 } while (0) 279 282 … … 281 284 do { \ 282 285 if (!cr_packer_cmd_blocks_enabled) break; \ 283 CRPACKBLOCKSTATE_OP_STOP(pc->u32CmdBlockState, op); \ 284 if (!CRPACKBLOCKSTATE_IS_STARTED(pc->u32CmdBlockState)) { \ 286 Assert(CRPACKBLOCKSTATE_IS_OP_STARTED((pc)->u32CmdBlockState, op)); \ 287 CRPACKBLOCKSTATE_OP_STOP((pc)->u32CmdBlockState, op); \ 288 Assert(!CRPACKBLOCKSTATE_IS_OP_STARTED((pc)->u32CmdBlockState, op)); \ 289 if (!CRPACKBLOCKSTATE_IS_STARTED((pc)->u32CmdBlockState)) { \ 285 290 THREADASSERT( pc ); \ 286 CRASSERT( pc->currentBuffer );\287 if (!crPackBufferIsEmpty(& pc->buffer)) {\288 if ((* pc->buffer.opcode_start) != CR_CMDBLOCKBEGIN_OPCODE) {\291 CRASSERT( (pc)->currentBuffer ); \ 292 if (!crPackBufferIsEmpty(&(pc)->buffer)) { \ 293 if ((*(pc)->buffer.opcode_start) != CR_CMDBLOCKBEGIN_OPCODE) {\ 289 294 if ( !crPackCanHoldOpcode( pc, 1, 4 ) ) { \ 290 pc->Flush( pc->flush_arg );\295 (pc)->Flush( (pc)->flush_arg ); \ 291 296 Assert(crPackCanHoldOpcode( pc, 1, 4 ) ); \ 292 297 } \ 293 298 CR_CMDBLOCK_OP( pc, CR_CMDBLOCKEND_OPCODE ); \ 294 pc->Flush( pc->flush_arg );\299 (pc)->Flush( (pc)->flush_arg ); \ 295 300 } \ 296 301 else { \ 297 (* pc->buffer.opcode_start) = CR_NOP_OPCODE;\302 (*(pc)->buffer.opcode_start) = CR_NOP_OPCODE; \ 298 303 } \ 299 304 } \ … … 301 306 Assert(crPackCanHoldOpcode( pc, 1, 4 ) ); \ 302 307 CR_CMDBLOCK_OP( pc, CR_CMDBLOCKEND_OPCODE ); \ 303 pc->Flush( pc->flush_arg );\308 (pc)->Flush( pc->flush_arg ); \ 304 309 } \ 305 310 } \ -
trunk/src/VBox/GuestHost/OpenGL/include/cr_server.h
r51670 r52260 356 356 357 357 GLboolean fCrCmdEnabled; 358 359 GLboolean fProcessingPendedCommands; 358 360 359 361 int numClients; -
trunk/src/VBox/GuestHost/OpenGL/packer/pack_beginend.c
r50973 r52260 13 13 unsigned char *data_ptr; 14 14 (void) pc; 15 16 if (CR_CMDBLOCK_IS_STARTED(pc, CRPACKBLOCKSTATE_OP_BEGIN)) 17 { 18 WARN(("recursive begin?")); 19 return; 20 } 15 21 16 22 CR_CMDBLOCK_BEGIN( pc, CRPACKBLOCKSTATE_OP_BEGIN ); -
trunk/src/VBox/GuestHost/OpenGL/packer/pack_lists.c
r50973 r52260 64 64 unsigned char *data_ptr; 65 65 (void) pc; 66 67 if (CR_CMDBLOCK_IS_STARTED(pc, CRPACKBLOCKSTATE_OP_NEWLIST)) 68 { 69 WARN(("recursive NewList?")); 70 return; 71 } 72 66 73 CR_CMDBLOCK_BEGIN( pc, CRPACKBLOCKSTATE_OP_NEWLIST ); 67 74 CR_GET_BUFFERED_POINTER_NO_BEGINEND_FLUSH( pc, 16, GL_FALSE ); -
trunk/src/VBox/GuestHost/OpenGL/state_tracker/state_lists.c
r45910 r52260 174 174 CRStateBits *sb = GetCurrentBits(); 175 175 CRbitvalue *bitID=g->bitid, *negbitID=g->neg_bitid; 176 177 CRASSERT(g_bVBoxEnableDiffOnMakeCurrent); 176 178 177 179 if (CHECKDIRTY(sb->buffer.dirty, negbitID)) -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_lists.c
r50829 r52260 71 71 static void crServerQueryHWState() 72 72 { 73 GLuint fbFbo, bbFbo; 74 CRClient *client = cr_server.curClient; 75 CRMuralInfo *mural = client ? client->currentMural : NULL; 76 if (mural && mural->fRedirected) 77 { 78 fbFbo = mural->aidFBOs[CR_SERVER_FBO_FB_IDX(mural)]; 79 bbFbo = mural->aidFBOs[CR_SERVER_FBO_BB_IDX(mural)]; 80 } 81 else 82 { 83 fbFbo = bbFbo = 0; 84 } 85 crStateQueryHWState(fbFbo, bbFbo); 73 if (!cr_server.bUseMultipleContexts) 74 { 75 GLuint fbFbo, bbFbo; 76 CRClient *client = cr_server.curClient; 77 CRMuralInfo *mural = client ? client->currentMural : NULL; 78 if (mural && mural->fRedirected) 79 { 80 fbFbo = mural->aidFBOs[CR_SERVER_FBO_FB_IDX(mural)]; 81 bbFbo = mural->aidFBOs[CR_SERVER_FBO_BB_IDX(mural)]; 82 } 83 else 84 { 85 fbFbo = bbFbo = 0; 86 } 87 crStateQueryHWState(fbFbo, bbFbo); 88 } 86 89 } 87 90 -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_main.c
r51670 r52260 384 384 385 385 cr_server.fCrCmdEnabled = GL_FALSE; 386 cr_server.fProcessingPendedCommands = GL_FALSE; 386 387 CrHTableCreate(&cr_server.clientTable, CR_MAX_CLIENTS); 387 388 … … 491 492 492 493 cr_server.fCrCmdEnabled = GL_FALSE; 494 cr_server.fProcessingPendedCommands = GL_FALSE; 493 495 CrHTableCreate(&cr_server.clientTable, CR_MAX_CLIENTS); 494 496 -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_retval.py
r49245 r52260 21 21 void crServerReturnValue( const void *payload, unsigned int payload_len ) 22 22 { 23 CRMessageReadback *rb; 24 int msg_len = sizeof( *rb ) + payload_len; 25 26 /* Don't reply to client if we're loading VM snapshot*/ 27 if (cr_server.bIsInLoadingState) 28 return; 29 30 if (cr_server.curClient->conn->type == CR_FILE) 31 { 23 if (!cr_server.fProcessingPendedCommands) 24 { 25 CRMessageReadback *rb; 26 int msg_len = sizeof( *rb ) + payload_len; 27 28 /* Don't reply to client if we're loading VM snapshot*/ 29 if (cr_server.bIsInLoadingState) 30 return; 31 32 if (cr_server.curClient->conn->type == CR_FILE) 33 { 34 return; 35 } 36 37 rb = (CRMessageReadback *) crAlloc( msg_len ); 38 39 rb->header.type = CR_MESSAGE_READBACK; 40 CRDBGPTR_PRINTRB(cr_server.curClient->conn->u32ClientID, &cr_server.writeback_ptr); 41 CRDBGPTR_CHECKNZ(&cr_server.writeback_ptr); 42 CRDBGPTR_CHECKNZ(&cr_server.return_ptr); 43 crMemcpy( &(rb->writeback_ptr), &(cr_server.writeback_ptr), sizeof( rb->writeback_ptr ) ); 44 crMemcpy( &(rb->readback_ptr), &(cr_server.return_ptr), sizeof( rb->readback_ptr ) ); 45 crMemcpy( rb+1, payload, payload_len ); 46 crNetSend( cr_server.curClient->conn, NULL, rb, msg_len ); 47 CRDBGPTR_SETZ(&cr_server.writeback_ptr); 48 CRDBGPTR_SETZ(&cr_server.return_ptr); 49 crFree( rb ); 32 50 return; 33 51 } 34 35 rb = (CRMessageReadback *) crAlloc( msg_len ); 36 37 rb->header.type = CR_MESSAGE_READBACK; 38 CRDBGPTR_PRINTRB(cr_server.curClient->conn->u32ClientID, &cr_server.writeback_ptr); 39 CRDBGPTR_CHECKNZ(&cr_server.writeback_ptr); 40 CRDBGPTR_CHECKNZ(&cr_server.return_ptr); 41 crMemcpy( &(rb->writeback_ptr), &(cr_server.writeback_ptr), sizeof( rb->writeback_ptr ) ); 42 crMemcpy( &(rb->readback_ptr), &(cr_server.return_ptr), sizeof( rb->readback_ptr ) ); 43 crMemcpy( rb+1, payload, payload_len ); 44 crNetSend( cr_server.curClient->conn, NULL, rb, msg_len ); 52 #ifdef DEBUG_misha 53 WARN(("Pending command returns value")); 54 #endif 45 55 CRDBGPTR_SETZ(&cr_server.writeback_ptr); 46 56 CRDBGPTR_SETZ(&cr_server.return_ptr); 47 crFree( rb );48 57 } 49 58 """ -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_stream.c
r51356 r52260 551 551 { 552 552 CR_SERVER_PENDING_MSG *pIter, *pNext; 553 554 cr_server.fProcessingPendedCommands = GL_TRUE; 555 553 556 RTListForEachSafe(&conn->PendingMsgList, pIter, pNext, CR_SERVER_PENDING_MSG, Node) 554 557 { … … 574 577 RTMemFree(pIter); 575 578 } 579 580 cr_server.fProcessingPendedCommands = GL_FALSE; 576 581 } 577 582
Note:
See TracChangeset
for help on using the changeset viewer.