void PACKSPU_APIENTRY packspu_Finish( void ) { GET_THREAD(thread); GLint writeback = pack_spu.thread[pack_spu.idxThreadInUse].netServer.conn->actual_network; if (pack_spu.swap) { crPackFinishSWAP(); } else { crPackFinish(); } if (packspuSyncOnFlushes()) { if (writeback) { if (pack_spu.swap) crPackWritebackSWAP(&writeback); else crPackWriteback(&writeback); packspuFlush( (void *) thread ); while (writeback) crNetRecv(); } } }
void PACKSPU_APIENTRY packspu_Finish( void ) { GET_THREAD(thread); GLint writeback = CRPACKSPU_IS_WDDM_CRHGSMI() ? 1 : pack_spu.thread[pack_spu.idxThreadInUse].netServer.conn->actual_network; if (pack_spu.swap) { crPackFinishSWAP(); } else { crPackFinish(); } if (packspuSyncOnFlushes()) { if (writeback) { if (pack_spu.swap) crPackWritebackSWAP(&writeback); else crPackWriteback(&writeback); packspuFlush( (void *) thread ); CRPACKSPU_WRITEBACK_WAIT(thread, writeback); } } }
/** * Implementation of glFinish for tilesorter */ void TILESORTSPU_APIENTRY tilesortspu_Finish(void) { GET_THREAD(thread); GLint writeback = tilesort_spu.num_servers; tilesortspuFlush( thread ); if (tilesort_spu.swap) { crPackFinishSWAP( ); } else { crPackFinish( ); } if (tilesort_spu.syncOnFinish) { if (tilesort_spu.swap) { crPackWritebackSWAP( &writeback ); } else { crPackWriteback( &writeback ); } } tilesortspuBroadcastGeom(0); tilesortspuShipBuffers(); if (tilesort_spu.syncOnFinish) { while(writeback) { crNetRecv(); } } }
void REPLICATESPU_APIENTRY replicatespu_Finish( void ) { unsigned int i; GET_THREAD(thread); replicatespuFlushAll( (void *) thread ); for (i = 0; i < CR_MAX_REPLICANTS; i++) { int writeback = 1; if (!IS_CONNECTED(replicate_spu.rserver[i].conn)) continue; if (replicate_spu.swap) { crPackFinishSWAP(); crPackWritebackSWAP( &writeback ); } else { crPackFinish(); crPackWriteback( &writeback ); } replicatespuFlushOne(thread, i); while (writeback) crNetRecv(); } }
void PACKSPU_APIENTRY packspu_Finish( void ) { GET_THREAD(thread); GLint writeback = pack_spu.thread[0].netServer.conn->actual_network; if (pack_spu.swap) { crPackFinishSWAP( ); if (writeback) crPackWritebackSWAP( &writeback ); } else { crPackFinish( ); if (writeback) crPackWriteback( &writeback ); } packspuFlush( (void *) thread ); while (writeback) crNetRecv(); }