示例#1
0
void PACKSPU_APIENTRY packspu_BarrierExecCR( GLuint name )
{
	GET_THREAD(thread);
	if (pack_spu.swap)
	{
		crPackBarrierExecCRSWAP( name );
	}
	else
	{
		crPackBarrierExecCR( name );
	}
	packspuFlush( (void *) thread );
}
示例#2
0
/**
 * Causes the caller to wait on the barrier until all peers meet the
 * barrier.
 * \param name  the semaphore ID
 */
void TILESORTSPU_APIENTRY tilesortspu_BarrierExecCR(GLuint name)
{
	GET_THREAD(thread);
	GLenum dlMode = thread->currentContext->displayListMode;
	/* check if we're compiling a display list, if so, error! */
	if (dlMode != GL_FALSE) {
	    crStateError(__LINE__, __FILE__, GL_INVALID_OPERATION,
		"tilesortspu_BarrierExecCR called during DL compilation");
	    return;
	}
	tilesortspuFlush( thread );
	if (tilesort_spu.swap)
	{
		crPackBarrierExecCRSWAP(name);
	}
	else
	{
		crPackBarrierExecCR(name);
	}
	tilesortspuBroadcastGeom(0);
	tilesortspuShipBuffers();
}