summaryrefslogtreecommitdiffstats
path: root/gpu/command_buffer/service
diff options
context:
space:
mode:
Diffstat (limited to 'gpu/command_buffer/service')
-rw-r--r--gpu/command_buffer/service/gles2_cmd_decoder.cc29
-rw-r--r--gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc5
-rw-r--r--gpu/command_buffer/service/gpu_control_service.cc98
-rw-r--r--gpu/command_buffer/service/gpu_control_service.h46
-rw-r--r--gpu/command_buffer/service/gpu_memory_buffer_manager.h4
-rw-r--r--gpu/command_buffer/service/image_manager.cc11
-rw-r--r--gpu/command_buffer/service/image_manager.h4
-rw-r--r--gpu/command_buffer/service/in_process_command_buffer.cc49
-rw-r--r--gpu/command_buffer/service/in_process_command_buffer.h9
-rw-r--r--gpu/command_buffer/service/vertex_array_manager.cc20
-rw-r--r--gpu/command_buffer/service/vertex_array_manager.h10
-rw-r--r--gpu/command_buffer/service/vertex_array_manager_unittest.cc5
12 files changed, 89 insertions, 201 deletions
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc
index 4b75c2e..1824847 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc
@@ -1105,12 +1105,9 @@ class GLES2DecoderImpl : public GLES2Decoder,
}
// Creates a vertex attrib manager for the given vertex array.
- scoped_refptr<VertexAttribManager> CreateVertexAttribManager(
- GLuint client_id,
- GLuint service_id,
- bool client_visible) {
+ void CreateVertexAttribManager(GLuint client_id, GLuint service_id) {
return vertex_array_manager()->CreateVertexAttribManager(
- client_id, service_id, group_->max_vertex_attribs(), client_visible);
+ client_id, service_id, group_->max_vertex_attribs());
}
void DoBindAttribLocation(GLuint client_id, GLuint index, const char* name);
@@ -2358,17 +2355,7 @@ bool GLES2DecoderImpl::Initialize(
disallowed_features_ = disallowed_features;
state_.attrib_values.resize(group_->max_vertex_attribs());
- vertex_array_manager_.reset(new VertexArrayManager());
-
- GLuint default_vertex_attrib_service_id = 0;
- if (features().native_vertex_array_object) {
- glGenVertexArraysOES(1, &default_vertex_attrib_service_id);
- glBindVertexArrayOES(default_vertex_attrib_service_id);
- }
-
- state_.default_vertex_attrib_manager =
- CreateVertexAttribManager(0, default_vertex_attrib_service_id, false);
-
+ state_.default_vertex_attrib_manager = new VertexAttribManager();
state_.default_vertex_attrib_manager->Initialize(
group_->max_vertex_attribs(),
feature_info_->workarounds().init_vertex_attributes);
@@ -2377,6 +2364,7 @@ bool GLES2DecoderImpl::Initialize(
DoBindVertexArrayOES(0);
query_manager_.reset(new QueryManager(this, feature_info_.get()));
+ vertex_array_manager_.reset(new VertexArrayManager());
util_.set_num_compressed_texture_formats(
validators_->compressed_texture_format.GetValues().size());
@@ -2688,6 +2676,7 @@ Capabilities GLES2DecoderImpl::GetCapabilities() {
#endif
caps.post_sub_buffer = supports_post_sub_buffer_;
+ caps.map_image = !!image_manager();
return caps;
}
@@ -9695,14 +9684,14 @@ bool GLES2DecoderImpl::GenVertexArraysOESHelper(
if (!features().native_vertex_array_object) {
// Emulated VAO
for (GLsizei ii = 0; ii < n; ++ii) {
- CreateVertexAttribManager(client_ids[ii], 0, true);
+ CreateVertexAttribManager(client_ids[ii], 0);
}
} else {
scoped_ptr<GLuint[]> service_ids(new GLuint[n]);
glGenVertexArraysOES(n, service_ids.get());
for (GLsizei ii = 0; ii < n; ++ii) {
- CreateVertexAttribManager(client_ids[ii], service_ids[ii], true);
+ CreateVertexAttribManager(client_ids[ii], service_ids[ii]);
}
}
@@ -9725,6 +9714,7 @@ void GLES2DecoderImpl::DeleteVertexArraysOESHelper(
void GLES2DecoderImpl::DoBindVertexArrayOES(GLuint client_id) {
VertexAttribManager* vao = NULL;
+ GLuint service_id = 0;
if (client_id != 0) {
vao = GetVertexAttribManager(client_id);
if (!vao) {
@@ -9736,6 +9726,8 @@ void GLES2DecoderImpl::DoBindVertexArrayOES(GLuint client_id) {
"glBindVertexArrayOES", "bad vertex array id.");
current_decoder_error_ = error::kNoError;
return;
+ } else {
+ service_id = vao->service_id();
}
} else {
vao = state_.default_vertex_attrib_manager.get();
@@ -9747,7 +9739,6 @@ void GLES2DecoderImpl::DoBindVertexArrayOES(GLuint client_id) {
if (!features().native_vertex_array_object) {
EmulateVertexArrayState();
} else {
- GLuint service_id = vao->service_id();
glBindVertexArrayOES(service_id);
}
}
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc
index b1ed1df..f644c89 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc
@@ -146,11 +146,6 @@ void GLES2DecoderTestBase::InitDecoderWithCommandLine(
EXPECT_TRUE(
group_->Initialize(mock_decoder_.get(), DisallowedFeatures()));
- if (group_->feature_info()->feature_flags().native_vertex_array_object) {
- EXPECT_CALL(*gl_, GenVertexArraysOES(1, _)).Times(1).RetiresOnSaturation();
- EXPECT_CALL(*gl_, BindVertexArrayOES(_)).Times(1).RetiresOnSaturation();
- }
-
if (group_->feature_info()->workarounds().init_vertex_attributes)
AddExpectationsForVertexAttribManager();
diff --git a/gpu/command_buffer/service/gpu_control_service.cc b/gpu/command_buffer/service/gpu_control_service.cc
index 893b872..f9f19eb 100644
--- a/gpu/command_buffer/service/gpu_control_service.cc
+++ b/gpu/command_buffer/service/gpu_control_service.cc
@@ -4,84 +4,21 @@
#include "gpu/command_buffer/service/gpu_control_service.h"
-#include "gpu/command_buffer/client/gpu_memory_buffer_factory.h"
#include "gpu/command_buffer/service/gpu_memory_buffer_manager.h"
-#include "gpu/command_buffer/service/mailbox_manager.h"
#include "gpu/command_buffer/service/query_manager.h"
namespace gpu {
GpuControlService::GpuControlService(
GpuMemoryBufferManagerInterface* gpu_memory_buffer_manager,
- GpuMemoryBufferFactory* gpu_memory_buffer_factory,
- gles2::MailboxManager* mailbox_manager,
- gles2::QueryManager* query_manager,
- const gpu::Capabilities& decoder_capabilities)
+ gles2::QueryManager* query_manager)
: gpu_memory_buffer_manager_(gpu_memory_buffer_manager),
- gpu_memory_buffer_factory_(gpu_memory_buffer_factory),
- mailbox_manager_(mailbox_manager),
- query_manager_(query_manager),
- capabilities_(decoder_capabilities) {
- capabilities_.map_image =
- gpu_memory_buffer_manager_ && gpu_memory_buffer_factory_;
+ query_manager_(query_manager) {
}
GpuControlService::~GpuControlService() {
}
-gpu::Capabilities GpuControlService::GetCapabilities() {
- return capabilities_;
-}
-
-gfx::GpuMemoryBuffer* GpuControlService::CreateGpuMemoryBuffer(
- size_t width,
- size_t height,
- unsigned internalformat,
- int32* id) {
- *id = -1;
-
- CHECK(gpu_memory_buffer_factory_) << "No GPU memory buffer factory provided";
- linked_ptr<gfx::GpuMemoryBuffer> buffer = make_linked_ptr(
- gpu_memory_buffer_factory_->CreateGpuMemoryBuffer(width,
- height,
- internalformat));
- if (!buffer.get())
- return NULL;
-
- static int32 next_id = 1;
- *id = next_id++;
-
- if (!RegisterGpuMemoryBuffer(*id,
- buffer->GetHandle(),
- width,
- height,
- internalformat)) {
- *id = -1;
- return NULL;
- }
-
- gpu_memory_buffers_[*id] = buffer;
- return buffer.get();
-}
-
-void GpuControlService::DestroyGpuMemoryBuffer(int32 id) {
- GpuMemoryBufferMap::iterator it = gpu_memory_buffers_.find(id);
- if (it != gpu_memory_buffers_.end())
- gpu_memory_buffers_.erase(it);
-
- gpu_memory_buffer_manager_->DestroyGpuMemoryBuffer(id);
-}
-
-uint32 GpuControlService::InsertSyncPoint() {
- NOTREACHED();
- return 0u;
-}
-
-void GpuControlService::SignalSyncPoint(uint32 sync_point,
- const base::Closure& callback) {
- NOTREACHED();
-}
-
void GpuControlService::SignalQuery(uint32 query_id,
const base::Closure& callback) {
DCHECK(query_manager_);
@@ -92,35 +29,18 @@ void GpuControlService::SignalQuery(uint32 query_id,
query->AddCallback(callback);
}
-void GpuControlService::SetSurfaceVisible(bool visible) {
- NOTREACHED();
-}
-
-void GpuControlService::SendManagedMemoryStats(
- const ManagedMemoryStats& stats) {
- NOTREACHED();
-}
-
-void GpuControlService::Echo(const base::Closure& callback) {
- NOTREACHED();
-}
-
-uint32 GpuControlService::CreateStreamTexture(uint32 texture_id) {
- NOTREACHED();
- return 0;
-}
-
-bool GpuControlService::RegisterGpuMemoryBuffer(
+void GpuControlService::RegisterGpuMemoryBuffer(
int32 id,
gfx::GpuMemoryBufferHandle buffer,
size_t width,
size_t height,
unsigned internalformat) {
- return gpu_memory_buffer_manager_->RegisterGpuMemoryBuffer(id,
- buffer,
- width,
- height,
- internalformat);
+ gpu_memory_buffer_manager_->RegisterGpuMemoryBuffer(
+ id, buffer, width, height, internalformat);
+}
+
+void GpuControlService::UnregisterGpuMemoryBuffer(int32 id) {
+ gpu_memory_buffer_manager_->UnregisterGpuMemoryBuffer(id);
}
} // namespace gpu
diff --git a/gpu/command_buffer/service/gpu_control_service.h b/gpu/command_buffer/service/gpu_control_service.h
index 74fd4d5..9a64946 100644
--- a/gpu/command_buffer/service/gpu_control_service.h
+++ b/gpu/command_buffer/service/gpu_control_service.h
@@ -5,66 +5,36 @@
#ifndef GPU_COMMAND_BUFFER_SERVICE_GPU_CONTROL_SERVICE_H_
#define GPU_COMMAND_BUFFER_SERVICE_GPU_CONTROL_SERVICE_H_
-#include <map>
-
-#include "base/memory/linked_ptr.h"
-#include "gpu/command_buffer/common/gpu_control.h"
+#include "base/callback.h"
+#include "gpu/command_buffer/common/capabilities.h"
+#include "gpu/gpu_export.h"
#include "ui/gfx/gpu_memory_buffer.h"
namespace gpu {
-class GpuMemoryBufferFactory;
class GpuMemoryBufferManagerInterface;
namespace gles2 {
-class MailboxManager;
class QueryManager;
}
-class GPU_EXPORT GpuControlService : public GpuControl {
+class GPU_EXPORT GpuControlService {
public:
GpuControlService(GpuMemoryBufferManagerInterface* gpu_memory_buffer_manager,
- GpuMemoryBufferFactory* gpu_memory_buffer_factory,
- gles2::MailboxManager* mailbox_manager,
- gles2::QueryManager* query_manager,
- const gpu::Capabilities& decoder_capabilities);
+ gles2::QueryManager* query_manager);
virtual ~GpuControlService();
+ void SignalQuery(uint32 query, const base::Closure& callback);
- // GpuControl implementation.
- virtual gpu::Capabilities GetCapabilities() OVERRIDE;
- virtual gfx::GpuMemoryBuffer* CreateGpuMemoryBuffer(
- size_t width,
- size_t height,
- unsigned internalformat,
- int32* id) OVERRIDE;
- virtual void DestroyGpuMemoryBuffer(int32 id) OVERRIDE;
- virtual uint32 InsertSyncPoint() OVERRIDE;
- virtual void SignalSyncPoint(uint32 sync_point,
- const base::Closure& callback) OVERRIDE;
- virtual void SignalQuery(uint32 query,
- const base::Closure& callback) OVERRIDE;
- virtual void SetSurfaceVisible(bool visible) OVERRIDE;
- virtual void SendManagedMemoryStats(const ManagedMemoryStats& stats)
- OVERRIDE;
- virtual void Echo(const base::Closure& callback) OVERRIDE;
- virtual uint32 CreateStreamTexture(uint32 texture_id) OVERRIDE;
-
- // Register an existing gpu memory buffer and get an ID that can be used
- // to identify it in the command buffer.
- bool RegisterGpuMemoryBuffer(int32 id,
+ void RegisterGpuMemoryBuffer(int32 id,
gfx::GpuMemoryBufferHandle buffer,
size_t width,
size_t height,
unsigned internalformat);
+ void UnregisterGpuMemoryBuffer(int32 id);
private:
GpuMemoryBufferManagerInterface* gpu_memory_buffer_manager_;
- GpuMemoryBufferFactory* gpu_memory_buffer_factory_;
- gles2::MailboxManager* mailbox_manager_;
gles2::QueryManager* query_manager_;
- typedef std::map<int32, linked_ptr<gfx::GpuMemoryBuffer> > GpuMemoryBufferMap;
- GpuMemoryBufferMap gpu_memory_buffers_;
- gpu::Capabilities capabilities_;
DISALLOW_COPY_AND_ASSIGN(GpuControlService);
};
diff --git a/gpu/command_buffer/service/gpu_memory_buffer_manager.h b/gpu/command_buffer/service/gpu_memory_buffer_manager.h
index fb44ede..3ddcaad 100644
--- a/gpu/command_buffer/service/gpu_memory_buffer_manager.h
+++ b/gpu/command_buffer/service/gpu_memory_buffer_manager.h
@@ -15,12 +15,12 @@ class GPU_EXPORT GpuMemoryBufferManagerInterface {
public:
virtual ~GpuMemoryBufferManagerInterface() {}
- virtual bool RegisterGpuMemoryBuffer(int32 id,
+ virtual void RegisterGpuMemoryBuffer(int32 id,
gfx::GpuMemoryBufferHandle buffer,
size_t width,
size_t height,
unsigned internalformat) = 0;
- virtual void DestroyGpuMemoryBuffer(int32 id) = 0;
+ virtual void UnregisterGpuMemoryBuffer(int32 id) = 0;
};
} // namespace gpu
diff --git a/gpu/command_buffer/service/image_manager.cc b/gpu/command_buffer/service/image_manager.cc
index f39eba2..a3ac435 100644
--- a/gpu/command_buffer/service/image_manager.cc
+++ b/gpu/command_buffer/service/image_manager.cc
@@ -15,19 +15,19 @@ ImageManager::ImageManager() : release_after_use_(false) {
ImageManager::~ImageManager() {
}
-bool ImageManager::RegisterGpuMemoryBuffer(int32 id,
+void ImageManager::RegisterGpuMemoryBuffer(int32 id,
gfx::GpuMemoryBufferHandle buffer,
size_t width,
size_t height,
unsigned internalformat) {
if (id <= 0) {
DVLOG(0) << "Cannot register GPU memory buffer with non-positive ID.";
- return false;
+ return;
}
if (LookupImage(id)) {
DVLOG(0) << "GPU memory buffer ID already in use.";
- return false;
+ return;
}
scoped_refptr<gfx::GLImage> gl_image =
@@ -35,16 +35,15 @@ bool ImageManager::RegisterGpuMemoryBuffer(int32 id,
gfx::Size(width, height),
internalformat);
if (!gl_image)
- return false;
+ return;
if (release_after_use_)
gl_image->SetReleaseAfterUse();
AddImage(gl_image.get(), id);
- return true;
}
-void ImageManager::DestroyGpuMemoryBuffer(int32 id) {
+void ImageManager::UnregisterGpuMemoryBuffer(int32 id) {
RemoveImage(id);
}
diff --git a/gpu/command_buffer/service/image_manager.h b/gpu/command_buffer/service/image_manager.h
index 51e006d..95d836f 100644
--- a/gpu/command_buffer/service/image_manager.h
+++ b/gpu/command_buffer/service/image_manager.h
@@ -26,12 +26,12 @@ class GPU_EXPORT ImageManager
ImageManager();
// Overridden from GpuMemoryBufferManagerInterface:
- virtual bool RegisterGpuMemoryBuffer(int32 id,
+ virtual void RegisterGpuMemoryBuffer(int32 id,
gfx::GpuMemoryBufferHandle buffer,
size_t width,
size_t height,
unsigned internalformat) OVERRIDE;
- virtual void DestroyGpuMemoryBuffer(int32 id) OVERRIDE;
+ virtual void UnregisterGpuMemoryBuffer(int32 id) OVERRIDE;
void AddImage(gfx::GLImage* gl_image, int32 service_id);
void RemoveImage(int32 service_id);
diff --git a/gpu/command_buffer/service/in_process_command_buffer.cc b/gpu/command_buffer/service/in_process_command_buffer.cc
index f9b81db..f83cf17 100644
--- a/gpu/command_buffer/service/in_process_command_buffer.cc
+++ b/gpu/command_buffer/service/in_process_command_buffer.cc
@@ -24,6 +24,7 @@
#include "base/sequence_checker.h"
#include "base/synchronization/condition_variable.h"
#include "base/threading/thread.h"
+#include "gpu/command_buffer/client/gpu_memory_buffer_factory.h"
#include "gpu/command_buffer/service/command_buffer_service.h"
#include "gpu/command_buffer/service/context_group.h"
#include "gpu/command_buffer/service/gl_context_virtual.h"
@@ -296,8 +297,11 @@ bool InProcessCommandBuffer::Initialize(
base::Bind(&RunTaskWithResult<bool>, init_task, &result, &completion));
completion.Wait();
- if (result)
+ if (result) {
capabilities_ = capabilities;
+ capabilities_.map_image =
+ capabilities_.map_image && g_gpu_memory_buffer_factory;
+ }
return result;
}
@@ -409,15 +413,11 @@ bool InProcessCommandBuffer::InitializeOnGpuThread(
DestroyOnGpuThread();
return false;
}
+ *params.capabilities = decoder_->GetCapabilities();
gpu_control_.reset(
new GpuControlService(decoder_->GetContextGroup()->image_manager(),
- g_gpu_memory_buffer_factory,
- decoder_->GetContextGroup()->mailbox_manager(),
- decoder_->GetQueryManager(),
- decoder_->GetCapabilities()));
-
- *params.capabilities = gpu_control_->GetCapabilities();
+ decoder_->GetQueryManager()));
if (!params.is_offscreen) {
decoder_->SetResizeCallback(base::Bind(
@@ -609,16 +609,37 @@ gfx::GpuMemoryBuffer* InProcessCommandBuffer::CreateGpuMemoryBuffer(
unsigned internalformat,
int32* id) {
CheckSequencedThread();
- base::AutoLock lock(command_buffer_lock_);
- return gpu_control_->CreateGpuMemoryBuffer(width,
- height,
- internalformat,
- id);
+
+ *id = -1;
+ linked_ptr<gfx::GpuMemoryBuffer> buffer =
+ make_linked_ptr(g_gpu_memory_buffer_factory->CreateGpuMemoryBuffer(
+ width, height, internalformat));
+ if (!buffer.get())
+ return NULL;
+
+ static int32 next_id = 1;
+ *id = next_id++;
+
+ base::Closure task = base::Bind(&GpuControlService::RegisterGpuMemoryBuffer,
+ base::Unretained(gpu_control_.get()),
+ *id,
+ buffer->GetHandle(),
+ width,
+ height,
+ internalformat);
+
+ QueueTask(task);
+
+ gpu_memory_buffers_[*id] = buffer;
+ return buffer.get();
}
void InProcessCommandBuffer::DestroyGpuMemoryBuffer(int32 id) {
CheckSequencedThread();
- base::Closure task = base::Bind(&GpuControl::DestroyGpuMemoryBuffer,
+ GpuMemoryBufferMap::iterator it = gpu_memory_buffers_.find(id);
+ if (it != gpu_memory_buffers_.end())
+ gpu_memory_buffers_.erase(it);
+ base::Closure task = base::Bind(&GpuControlService::UnregisterGpuMemoryBuffer,
base::Unretained(gpu_control_.get()),
id);
@@ -667,7 +688,7 @@ void InProcessCommandBuffer::SignalSyncPointOnGpuThread(
void InProcessCommandBuffer::SignalQuery(unsigned query,
const base::Closure& callback) {
CheckSequencedThread();
- QueueTask(base::Bind(&GpuControl::SignalQuery,
+ QueueTask(base::Bind(&GpuControlService::SignalQuery,
base::Unretained(gpu_control_.get()),
query,
WrapCallback(callback)));
diff --git a/gpu/command_buffer/service/in_process_command_buffer.h b/gpu/command_buffer/service/in_process_command_buffer.h
index 7045c9f..7cd5b08 100644
--- a/gpu/command_buffer/service/in_process_command_buffer.h
+++ b/gpu/command_buffer/service/in_process_command_buffer.h
@@ -5,17 +5,19 @@
#ifndef GPU_COMMAND_BUFFER_SERVICE_IN_PROCESS_COMMAND_BUFFER_H_
#define GPU_COMMAND_BUFFER_SERVICE_IN_PROCESS_COMMAND_BUFFER_H_
+#include <map>
#include <vector>
#include "base/callback.h"
#include "base/compiler_specific.h"
+#include "base/memory/linked_ptr.h"
#include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h"
#include "base/memory/weak_ptr.h"
#include "base/synchronization/lock.h"
#include "base/synchronization/waitable_event.h"
+#include "gpu/command_buffer/client/gpu_control.h"
#include "gpu/command_buffer/common/command_buffer.h"
-#include "gpu/command_buffer/common/gpu_control.h"
#include "gpu/gpu_export.h"
#include "ui/gfx/gpu_memory_buffer.h"
#include "ui/gfx/native_widget_types.h"
@@ -50,6 +52,7 @@ class ShaderTranslatorCache;
}
class CommandBufferServiceBase;
+class GpuControlService;
class GpuMemoryBufferFactory;
class GpuScheduler;
class TransferBufferManagerInterface;
@@ -201,6 +204,8 @@ class GPU_EXPORT InProcessCommandBuffer : public CommandBuffer,
State last_state_;
int32 last_put_offset_;
gpu::Capabilities capabilities_;
+ typedef std::map<int32, linked_ptr<gfx::GpuMemoryBuffer> > GpuMemoryBufferMap;
+ GpuMemoryBufferMap gpu_memory_buffers_;
// Accessed on both threads:
scoped_ptr<CommandBufferServiceBase> command_buffer_;
@@ -209,7 +214,7 @@ class GPU_EXPORT InProcessCommandBuffer : public CommandBuffer,
scoped_refptr<Service> service_;
State state_after_last_flush_;
base::Lock state_after_last_flush_lock_;
- scoped_ptr<GpuControl> gpu_control_;
+ scoped_ptr<GpuControlService> gpu_control_;
scoped_refptr<gfx::GLShareGroup> gl_share_group_;
#if defined(OS_ANDROID)
diff --git a/gpu/command_buffer/service/vertex_array_manager.cc b/gpu/command_buffer/service/vertex_array_manager.cc
index 1560c04..9747519 100644
--- a/gpu/command_buffer/service/vertex_array_manager.cc
+++ b/gpu/command_buffer/service/vertex_array_manager.cc
@@ -28,22 +28,14 @@ void VertexArrayManager::Destroy(bool have_context) {
vertex_attrib_managers_.clear();
}
-scoped_refptr<VertexAttribManager>
-VertexArrayManager::CreateVertexAttribManager(GLuint client_id,
- GLuint service_id,
- uint32 num_vertex_attribs,
- bool client_visible) {
+void VertexArrayManager::CreateVertexAttribManager(
+ GLuint client_id, GLuint service_id, uint32 num_vertex_attribs) {
scoped_refptr<VertexAttribManager> vertex_attrib_manager(
new VertexAttribManager(this, service_id, num_vertex_attribs));
-
- if (client_visible) {
- std::pair<VertexAttribManagerMap::iterator, bool> result =
- vertex_attrib_managers_.insert(
- std::make_pair(client_id, vertex_attrib_manager));
- DCHECK(result.second);
- }
-
- return vertex_attrib_manager;
+ std::pair<VertexAttribManagerMap::iterator, bool> result =
+ vertex_attrib_managers_.insert(
+ std::make_pair(client_id, vertex_attrib_manager));
+ DCHECK(result.second);
}
VertexAttribManager* VertexArrayManager::GetVertexAttribManager(
diff --git a/gpu/command_buffer/service/vertex_array_manager.h b/gpu/command_buffer/service/vertex_array_manager.h
index 97ecc1a..4fc567c 100644
--- a/gpu/command_buffer/service/vertex_array_manager.h
+++ b/gpu/command_buffer/service/vertex_array_manager.h
@@ -28,13 +28,9 @@ class GPU_EXPORT VertexArrayManager {
// Must call before destruction.
void Destroy(bool have_context);
- // Creates a VertexAttribManager and if client_visible,
- // maps it to the client_id.
- scoped_refptr<VertexAttribManager> CreateVertexAttribManager(
- GLuint client_id,
- GLuint service_id,
- uint32 num_vertex_attribs,
- bool client_visible);
+ // Creates a VertexArrayInfo for the given vertex array.
+ void CreateVertexAttribManager(GLuint client_id, GLuint service_id,
+ uint32 num_vertex_attribs);
// Gets the vertex attrib manager for the given vertex array.
VertexAttribManager* GetVertexAttribManager(GLuint client_id);
diff --git a/gpu/command_buffer/service/vertex_array_manager_unittest.cc b/gpu/command_buffer/service/vertex_array_manager_unittest.cc
index 617a5f6..3e3fd89 100644
--- a/gpu/command_buffer/service/vertex_array_manager_unittest.cc
+++ b/gpu/command_buffer/service/vertex_array_manager_unittest.cc
@@ -58,7 +58,7 @@ TEST_F(VertexArrayManagerTest, Basic) {
// Check we can create
manager_->CreateVertexAttribManager(
- kClient1Id, kService1Id, kNumVertexAttribs, true);
+ kClient1Id, kService1Id, kNumVertexAttribs);
// Check creation success
VertexAttribManager* info1 = manager_->GetVertexAttribManager(kClient1Id);
ASSERT_TRUE(info1 != NULL);
@@ -84,8 +84,7 @@ TEST_F(VertexArrayManagerTest, Destroy) {
const GLuint kService1Id = 11;
VertexArrayManager manager;
// Check we can create
- manager.CreateVertexAttribManager(
- kClient1Id, kService1Id, kNumVertexAttribs, true);
+ manager.CreateVertexAttribManager(kClient1Id, kService1Id, kNumVertexAttribs);
// Check creation success
VertexAttribManager* info1 = manager.GetVertexAttribManager(kClient1Id);
ASSERT_TRUE(info1 != NULL);