From: Joel W. <we...@st...> - 2004-11-07 04:54:20
|
Hi folks; It looks to me like every time a CR_MESSAGE_READ_PIXELS, WRITEBACK, or READBACK is sent upstream the communications buffer is never freed. I have a patch to packspu_net.c, replicatespu_net.c, tilesortspu_net.c, and net.c where crNetFree(conn,buf); is added after the appropriate bit of the case statements. For example, in packspu_net.c the code becomes: case CR_MESSAGE_READ_PIXELS: packspuReadPixels( &(msg->readPixels), len ); crNetFree(conn,buf); break; case CR_MESSAGE_WRITEBACK: packspuWriteback( &(msg->writeback) ); crNetFree(conn,buf); break; case CR_MESSAGE_READBACK: packspuReadback( &(msg->readback), len ); crNetFree(conn,buf); break; default: /*crWarning( "Why is the pack SPU getting a message of type 0x%x?", msg-> type ); */ Before I check this in, can someone who knows the network layer look at this and verify that I'm talking sense? I know this fix allows my application to run on Quadrics without running out of Quadrics card memory. Thanks, -Joel we...@ps... |