Index: gpu/command_buffer/client/gles2_implementation.cc |
diff --git a/gpu/command_buffer/client/gles2_implementation.cc b/gpu/command_buffer/client/gles2_implementation.cc |
index 96a71fc4f18fc899c83efe77bc75b55a94dee6c1..66d8c2bb13c288a9342e8ee2f9094bacdf1f66bf 100644 |
--- a/gpu/command_buffer/client/gles2_implementation.cc |
+++ b/gpu/command_buffer/client/gles2_implementation.cc |
@@ -25,10 +25,6 @@ |
#include "gpu/command_buffer/common/gles2_cmd_utils.h" |
#include "gpu/command_buffer/common/trace_event.h" |
-#if defined(__native_client__) && !defined(GLES2_SUPPORT_CLIENT_SIDE_ARRAYS) |
-#define GLES2_SUPPORT_CLIENT_SIDE_ARRAYS |
-#endif |
- |
#if defined(GPU_CLIENT_DEBUG) |
#include "base/command_line.h" |
#include "gpu/command_buffer/client/gpu_switches.h" |
@@ -86,6 +82,7 @@ GLES2Implementation::GLES2Implementation( |
TransferBufferInterface* transfer_buffer, |
bool bind_generates_resource, |
bool lose_context_when_out_of_memory, |
+ bool support_client_side_arrays, |
GpuControl* gpu_control) |
: helper_(helper), |
transfer_buffer_(transfer_buffer), |
@@ -113,6 +110,7 @@ GLES2Implementation::GLES2Implementation( |
error_bits_(0), |
debug_(false), |
lose_context_when_out_of_memory_(lose_context_when_out_of_memory), |
+ support_client_side_arrays_(support_client_side_arrays), |
use_count_(0), |
error_message_callback_(NULL), |
gpu_control_(gpu_control), |
@@ -191,15 +189,16 @@ bool GLES2Implementation::Initialize( |
buffer_tracker_.reset(new BufferTracker(mapped_memory_.get())); |
query_id_allocator_.reset(new IdAllocator()); |
-#if defined(GLES2_SUPPORT_CLIENT_SIDE_ARRAYS) |
- GetIdHandler(id_namespaces::kBuffers)->MakeIds( |
- this, kClientSideArrayId, arraysize(reserved_ids_), &reserved_ids_[0]); |
-#endif |
+ if (support_client_side_arrays_) { |
+ GetIdHandler(id_namespaces::kBuffers)->MakeIds( |
+ this, kClientSideArrayId, arraysize(reserved_ids_), &reserved_ids_[0]); |
+ } |
vertex_array_object_manager_.reset(new VertexArrayObjectManager( |
static_state_.int_state.max_vertex_attribs, |
reserved_ids_[0], |
- reserved_ids_[1])); |
+ reserved_ids_[1], |
+ support_client_side_arrays_)); |
// GL_BIND_GENERATES_RESOURCE_CHROMIUM state must be the same |
// on Client & Service. |
@@ -296,9 +295,8 @@ GLES2Implementation::~GLES2Implementation() { |
WaitForCmd(); |
query_tracker_.reset(); |
-#if defined(GLES2_SUPPORT_CLIENT_SIDE_ARRAYS) |
- DeleteBuffers(arraysize(reserved_ids_), &reserved_ids_[0]); |
-#endif |
+ if (support_client_side_arrays_) |
+ DeleteBuffers(arraysize(reserved_ids_), &reserved_ids_[0]); |
// Release any per-context data in share group. |
share_group_->FreeContext(this); |
@@ -1213,8 +1211,7 @@ void GLES2Implementation::VertexAttribPointer( |
"client side arrays are not allowed in vertex array objects."); |
return; |
} |
-#if defined(GLES2_SUPPORT_CLIENT_SIDE_ARRAYS) |
- if (bound_array_buffer_id_ != 0) { |
+ if (!support_client_side_arrays_ || bound_array_buffer_id_ != 0) { |
// Only report NON client side buffers to the service. |
if (!ValidateOffset("glVertexAttribPointer", |
reinterpret_cast<GLintptr>(ptr))) { |
@@ -1223,14 +1220,6 @@ void GLES2Implementation::VertexAttribPointer( |
helper_->VertexAttribPointer(index, size, type, normalized, stride, |
ToGLuint(ptr)); |
} |
-#else // !defined(GLES2_SUPPORT_CLIENT_SIDE_ARRAYS) |
- if (!ValidateOffset("glVertexAttribPointer", |
- reinterpret_cast<GLintptr>(ptr))) { |
- return; |
- } |
- helper_->VertexAttribPointer(index, size, type, normalized, stride, |
- ToGLuint(ptr)); |
-#endif // !defined(GLES2_SUPPORT_CLIENT_SIDE_ARRAYS) |
CheckGLError(); |
} |
@@ -3953,9 +3942,6 @@ GLuint GLES2Implementation::CreateImageCHROMIUMHelper(ClientBuffer buffer, |
return 0; |
} |
- // Flush the command stream to ensure ordering in case the newly |
- // returned image_id has recently been in use with a different buffer. |
- helper_->CommandBufferHelper::Flush(); |
int32_t image_id = |
gpu_control_->CreateImage(buffer, width, height, internalformat); |
if (image_id < 0) { |