diff options
-rw-r--r-- | android/hw-pipe-net.c | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/android/hw-pipe-net.c b/android/hw-pipe-net.c index dade446..b3bc6c9 100644 --- a/android/hw-pipe-net.c +++ b/android/hw-pipe-net.c @@ -68,7 +68,6 @@ typedef struct { int wakeWanted; LoopIo io[1]; AsyncConnector connector[1]; - int shouldSetSocketOpt; } NetPipe; static void @@ -192,7 +191,6 @@ netPipe_initFromAddress( void* hwpipe, const SockAddress* address, Looper* loop pipe->hwpipe = hwpipe; pipe->state = STATE_INIT; - pipe->shouldSetSocketOpt = 0; { AsyncStatus status; @@ -246,19 +244,6 @@ 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; @@ -480,7 +465,22 @@ openglesPipe_init( void* hwpipe, void* _looper, const char* args ) /* For now, simply connect through tcp */ snprintf(temp, sizeof temp, "%d", DEFAULT_OPENGLES_PORT); pipe = (NetPipe *)netPipe_initTcp(hwpipe, _looper, temp); - pipe->shouldSetSocketOpt = 1; + + // Disable TCP nagle algorithm to improve throughput of small packets + socket_set_nodelay(pipe->io->fd); + + // On Win32, adjust buffer sizes +#ifdef _WIN32 + { + 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()); + } + } +#endif /* _WIN32 */ return pipe; } |