summaryrefslogtreecommitdiffstats
path: root/ppapi/native_client
diff options
context:
space:
mode:
authornfullagar@google.com <nfullagar@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-08 01:04:32 +0000
committernfullagar@google.com <nfullagar@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-08 01:04:32 +0000
commit4223df5774c08d900fe3fe0acedcd21d23020ba2 (patch)
treec7a1a7941d5306c5b03105e5cfe17c0fff44ae92 /ppapi/native_client
parentb513f342e7348004cc23c0a341789579b2a63748 (diff)
downloadchromium_src-4223df5774c08d900fe3fe0acedcd21d23020ba2.zip
chromium_src-4223df5774c08d900fe3fe0acedcd21d23020ba2.tar.gz
chromium_src-4223df5774c08d900fe3fe0acedcd21d23020ba2.tar.bz2
Proxy FlushSyncFast, switch nacl's command buffer to use it.
TEST= try bots, manual BUG= http://code.google.com/p/chromium/issues/detail?id=93170 Review URL: http://codereview.chromium.org/7845003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100064 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/native_client')
-rw-r--r--ppapi/native_client/src/shared/ppapi_proxy/browser_ppb_graphics_3d_rpc_server.cc20
-rw-r--r--ppapi/native_client/src/shared/ppapi_proxy/command_buffer_nacl.cc5
-rw-r--r--ppapi/native_client/src/shared/ppapi_proxy/ppb_graphics_3d.srpc9
-rw-r--r--ppapi/native_client/src/shared/ppapi_proxy/ppb_rpc_client.cc21
-rw-r--r--ppapi/native_client/src/shared/ppapi_proxy/ppb_rpc_server.cc17
-rw-r--r--ppapi/native_client/src/shared/ppapi_proxy/trusted/srpcgen/ppb_rpc.h7
-rw-r--r--ppapi/native_client/src/shared/ppapi_proxy/untrusted/srpcgen/ppb_rpc.h6
7 files changed, 83 insertions, 2 deletions
diff --git a/ppapi/native_client/src/shared/ppapi_proxy/browser_ppb_graphics_3d_rpc_server.cc b/ppapi/native_client/src/shared/ppapi_proxy/browser_ppb_graphics_3d_rpc_server.cc
index f86c735..62ea1eb 100644
--- a/ppapi/native_client/src/shared/ppapi_proxy/browser_ppb_graphics_3d_rpc_server.cc
+++ b/ppapi/native_client/src/shared/ppapi_proxy/browser_ppb_graphics_3d_rpc_server.cc
@@ -330,6 +330,26 @@ void PpbGraphics3DRpcServer::PPB_Graphics3DTrusted_FlushSync(
rpc->result = NACL_SRPC_RESULT_OK;
}
+void PpbGraphics3DRpcServer::PPB_Graphics3DTrusted_FlushSyncFast(
+ NaClSrpcRpc* rpc,
+ NaClSrpcClosure* done,
+ PP_Resource resource_id,
+ int32_t put_offset,
+ int32_t last_known_get,
+ nacl_abi_size_t* state_size, char* state) {
+ DebugPrintf("PPB_Graphics3DTrusted_FlushSyncFast\n");
+ NaClSrpcClosureRunner runner(done);
+ rpc->result = NACL_SRPC_RESULT_APP_ERROR;
+ if (*state_size != sizeof(PP_Graphics3DTrustedState))
+ return;
+ PP_Graphics3DTrustedState trusted_state =
+ ppapi_proxy::PPBGraphics3DTrustedInterface()->FlushSyncFast(
+ resource_id, put_offset, last_known_get);
+ *reinterpret_cast<PP_Graphics3DTrustedState*>(state) = trusted_state;
+ *state_size = sizeof(trusted_state);
+ rpc->result = NACL_SRPC_RESULT_OK;
+}
+
void PpbGraphics3DRpcServer::PPB_Graphics3DTrusted_CreateTransferBuffer(
NaClSrpcRpc* rpc,
NaClSrpcClosure* done,
diff --git a/ppapi/native_client/src/shared/ppapi_proxy/command_buffer_nacl.cc b/ppapi/native_client/src/shared/ppapi_proxy/command_buffer_nacl.cc
index c87ba0c..e151312 100644
--- a/ppapi/native_client/src/shared/ppapi_proxy/command_buffer_nacl.cc
+++ b/ppapi/native_client/src/shared/ppapi_proxy/command_buffer_nacl.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Native Client Authors. All rights reserved.
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -94,10 +94,11 @@ gpu::CommandBuffer::State CommandBufferNacl::FlushSync(int32 put_offset,
NaClSrpcChannel* channel = ppapi_proxy::GetMainSrpcChannel();
NaClSrpcError retval =
- PpbGraphics3DRpcClient::PPB_Graphics3DTrusted_FlushSync(
+ PpbGraphics3DRpcClient::PPB_Graphics3DTrusted_FlushSyncFast(
channel,
graphics_3d_,
put_offset,
+ last_known_get,
&state_size,
reinterpret_cast<char*>(&state));
if (NACL_SRPC_RESULT_OK != retval
diff --git a/ppapi/native_client/src/shared/ppapi_proxy/ppb_graphics_3d.srpc b/ppapi/native_client/src/shared/ppapi_proxy/ppb_graphics_3d.srpc
index 11ebc83..fe0b499 100644
--- a/ppapi/native_client/src/shared/ppapi_proxy/ppb_graphics_3d.srpc
+++ b/ppapi/native_client/src/shared/ppapi_proxy/ppb_graphics_3d.srpc
@@ -109,6 +109,15 @@
'outputs': [['state', 'char[]'], # PP_Graphics3DTrustedState
]
},
+ # Flush sync fast.
+ {'name': 'PPB_Graphics3DTrusted_FlushSyncFast',
+ 'inputs': [['resource_id', 'PP_Resource'],
+ ['put_offset', 'int32_t'],
+ ['last_known_offset', 'int32_t']
+ ],
+ 'outputs': [['state', 'char[]'], # PP_Graphics3DTrustedState
+ ]
+ },
# Create a shared memory transfer buffer.
{'name': 'PPB_Graphics3DTrusted_CreateTransferBuffer',
'inputs': [['resource_id', 'PP_Resource'],
diff --git a/ppapi/native_client/src/shared/ppapi_proxy/ppb_rpc_client.cc b/ppapi/native_client/src/shared/ppapi_proxy/ppb_rpc_client.cc
index 00fe720..4729260 100644
--- a/ppapi/native_client/src/shared/ppapi_proxy/ppb_rpc_client.cc
+++ b/ppapi/native_client/src/shared/ppapi_proxy/ppb_rpc_client.cc
@@ -1540,6 +1540,27 @@ NaClSrpcError PpbGraphics3DRpcClient::PPB_Graphics3DTrusted_FlushSync(
return retval;
}
+NaClSrpcError PpbGraphics3DRpcClient::PPB_Graphics3DTrusted_FlushSyncFast(
+ NaClSrpcChannel* channel,
+ PP_Resource resource_id,
+ int32_t put_offset,
+ int32_t last_known_offset,
+ nacl_abi_size_t* state_bytes, char* state) {
+ VCHECK(ppapi_proxy::PPBCoreInterface()->IsMainThread(),
+ ("%s: PPAPI calls are not supported off the main thread\n",
+ __FUNCTION__));
+ NaClSrpcError retval;
+ retval = NaClSrpcInvokeBySignature(
+ channel,
+ "PPB_Graphics3DTrusted_FlushSyncFast:iii:C",
+ resource_id,
+ put_offset,
+ last_known_offset,
+ state_bytes, state
+ );
+ return retval;
+}
+
NaClSrpcError PpbGraphics3DRpcClient::PPB_Graphics3DTrusted_CreateTransferBuffer(
NaClSrpcChannel* channel,
PP_Resource resource_id,
diff --git a/ppapi/native_client/src/shared/ppapi_proxy/ppb_rpc_server.cc b/ppapi/native_client/src/shared/ppapi_proxy/ppb_rpc_server.cc
index 136fb41..4d05e2d 100644
--- a/ppapi/native_client/src/shared/ppapi_proxy/ppb_rpc_server.cc
+++ b/ppapi/native_client/src/shared/ppapi_proxy/ppb_rpc_server.cc
@@ -1238,6 +1238,22 @@ static void PPB_Graphics3DTrusted_FlushSyncDispatcher(
);
}
+static void PPB_Graphics3DTrusted_FlushSyncFastDispatcher(
+ NaClSrpcRpc* rpc,
+ NaClSrpcArg** inputs,
+ NaClSrpcArg** outputs,
+ NaClSrpcClosure* done
+) {
+ PpbGraphics3DRpcServer::PPB_Graphics3DTrusted_FlushSyncFast(
+ rpc,
+ done,
+ inputs[0]->u.ival,
+ inputs[1]->u.ival,
+ inputs[2]->u.ival,
+ &(outputs[0]->u.count), outputs[0]->arrays.carr
+ );
+}
+
static void PPB_Graphics3DTrusted_CreateTransferBufferDispatcher(
NaClSrpcRpc* rpc,
NaClSrpcArg** inputs,
@@ -2330,6 +2346,7 @@ NaClSrpcHandlerDesc PpbRpcs::srpc_methods[] = {
{ "PPB_Graphics3DTrusted_GetState:i:C", PPB_Graphics3DTrusted_GetStateDispatcher },
{ "PPB_Graphics3DTrusted_Flush:ii:", PPB_Graphics3DTrusted_FlushDispatcher },
{ "PPB_Graphics3DTrusted_FlushSync:ii:C", PPB_Graphics3DTrusted_FlushSyncDispatcher },
+ { "PPB_Graphics3DTrusted_FlushSyncFast:iii:C", PPB_Graphics3DTrusted_FlushSyncFastDispatcher },
{ "PPB_Graphics3DTrusted_CreateTransferBuffer:iii:i", PPB_Graphics3DTrusted_CreateTransferBufferDispatcher },
{ "PPB_Graphics3DTrusted_DestroyTransferBuffer:ii:", PPB_Graphics3DTrusted_DestroyTransferBufferDispatcher },
{ "PPB_Graphics3DTrusted_GetTransferBuffer:ii:hi", PPB_Graphics3DTrusted_GetTransferBufferDispatcher },
diff --git a/ppapi/native_client/src/shared/ppapi_proxy/trusted/srpcgen/ppb_rpc.h b/ppapi/native_client/src/shared/ppapi_proxy/trusted/srpcgen/ppb_rpc.h
index 29b86fd..26d37b5 100644
--- a/ppapi/native_client/src/shared/ppapi_proxy/trusted/srpcgen/ppb_rpc.h
+++ b/ppapi/native_client/src/shared/ppapi_proxy/trusted/srpcgen/ppb_rpc.h
@@ -619,6 +619,13 @@ class PpbGraphics3DRpcServer {
PP_Resource resource_id,
int32_t put_offset,
nacl_abi_size_t* state_bytes, char* state);
+ static void PPB_Graphics3DTrusted_FlushSyncFast(
+ NaClSrpcRpc* rpc,
+ NaClSrpcClosure* done,
+ PP_Resource resource_id,
+ int32_t put_offset,
+ int32_t last_known_offset,
+ nacl_abi_size_t* state_bytes, char* state);
static void PPB_Graphics3DTrusted_CreateTransferBuffer(
NaClSrpcRpc* rpc,
NaClSrpcClosure* done,
diff --git a/ppapi/native_client/src/shared/ppapi_proxy/untrusted/srpcgen/ppb_rpc.h b/ppapi/native_client/src/shared/ppapi_proxy/untrusted/srpcgen/ppb_rpc.h
index 5a5001b..7c58187 100644
--- a/ppapi/native_client/src/shared/ppapi_proxy/untrusted/srpcgen/ppb_rpc.h
+++ b/ppapi/native_client/src/shared/ppapi_proxy/untrusted/srpcgen/ppb_rpc.h
@@ -539,6 +539,12 @@ class PpbGraphics3DRpcClient {
PP_Resource resource_id,
int32_t put_offset,
nacl_abi_size_t* state_bytes, char* state);
+ static NaClSrpcError PPB_Graphics3DTrusted_FlushSyncFast(
+ NaClSrpcChannel* channel,
+ PP_Resource resource_id,
+ int32_t put_offset,
+ int32_t last_known_offset,
+ nacl_abi_size_t* state_bytes, char* state);
static NaClSrpcError PPB_Graphics3DTrusted_CreateTransferBuffer(
NaClSrpcChannel* channel,
PP_Resource resource_id,