aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Turner <digit@android.com>2011-07-11 16:15:38 -0700
committerAndroid Code Review <code-review@android.com>2011-07-11 16:15:38 -0700
commitb0fb4888979957e742ecf4f98957ac199f5e51db (patch)
tree460d0c725e73e05d2367077894b6de7d21146320
parent44ce50f294d25e15a7b26bbca96d0540724abd9b (diff)
parente2790e0d387de88c7ff5e3c42229c659dbe34524 (diff)
downloadexternal_qemu-b0fb4888979957e742ecf4f98957ac199f5e51db.zip
external_qemu-b0fb4888979957e742ecf4f98957ac199f5e51db.tar.gz
external_qemu-b0fb4888979957e742ecf4f98957ac199f5e51db.tar.bz2
Merge "opengles qemu-pipe perforance on windows"
-rw-r--r--android/hw-pipe-net.c22
1 files changed, 20 insertions, 2 deletions
diff --git a/android/hw-pipe-net.c b/android/hw-pipe-net.c
index 951b4d3..dade446 100644
--- a/android/hw-pipe-net.c
+++ b/android/hw-pipe-net.c
@@ -68,7 +68,7 @@ typedef struct {
int wakeWanted;
LoopIo io[1];
AsyncConnector connector[1];
-
+ int shouldSetSocketOpt;
} NetPipe;
static void
@@ -192,6 +192,7 @@ netPipe_initFromAddress( void* hwpipe, const SockAddress* address, Looper* loop
pipe->hwpipe = hwpipe;
pipe->state = STATE_INIT;
+ pipe->shouldSetSocketOpt = 0;
{
AsyncStatus status;
@@ -245,6 +246,19 @@ netPipe_sendBuffers( void* opaque, const GoldfishPipeBuffer* buffers, int numBuf
const GoldfishPipeBuffer* buff = buffers;
const GoldfishPipeBuffer* buffEnd = buff + numBuffers;
+#ifdef _WIN32
+ if (pipe->shouldSetSocketOpt == 1) {
+ int sndbuf = 128 * 1024;
+ int len = sizeof(sndbuf);
+ if (setsockopt(pipe->io->fd, SOL_SOCKET, SO_SNDBUF,
+ (char*)&sndbuf, len) == SOCKET_ERROR) {
+ D("Failed to set SO_SNDBUF to %d error=0x%x\n",
+ sndbuf, WSAGetLastError());
+ }
+ pipe->shouldSetSocketOpt = 0;
+ }
+#endif
+
for (; buff < buffEnd; buff++)
count += buff->size;
@@ -461,10 +475,14 @@ static void*
openglesPipe_init( void* hwpipe, void* _looper, const char* args )
{
char temp[32];
+ NetPipe *pipe;
/* For now, simply connect through tcp */
snprintf(temp, sizeof temp, "%d", DEFAULT_OPENGLES_PORT);
- return netPipe_initTcp(hwpipe, _looper, temp);
+ pipe = (NetPipe *)netPipe_initTcp(hwpipe, _looper, temp);
+ pipe->shouldSetSocketOpt = 1;
+
+ return pipe;
}
static const GoldfishPipeFuncs openglesPipe_funcs = {