| Index: gpu/command_buffer/common/command_buffer.h
|
| diff --git a/gpu/command_buffer/common/command_buffer.h b/gpu/command_buffer/common/command_buffer.h
|
| index b69936320eca53013c0110d77743644c97c14834..5fcd30b78f41796f5d8c180e3f3e39438825aaad 100644
|
| --- a/gpu/command_buffer/common/command_buffer.h
|
| +++ b/gpu/command_buffer/common/command_buffer.h
|
| @@ -5,6 +5,7 @@
|
| #ifndef GPU_COMMAND_BUFFER_COMMON_COMMAND_BUFFER_H_
|
| #define GPU_COMMAND_BUFFER_COMMON_COMMAND_BUFFER_H_
|
|
|
| +#include "base/logging.h"
|
| #include "gpu/command_buffer/common/buffer.h"
|
| #include "gpu/command_buffer/common/constants.h"
|
| #include "gpu/gpu_export.h"
|
| @@ -15,6 +16,15 @@ class SharedMemory;
|
|
|
| namespace gpu {
|
|
|
| +enum CommandBufferNamespace {
|
| + kCommandBufferNamespace_Invalid = -1,
|
| +
|
| + kCommandBufferNamespace_GpuIO,
|
| + kCommandBufferNamespace_InProcess,
|
| +
|
| + NUM_COMMAND_BUFFER_NAMESPACES
|
| +};
|
| +
|
| // Common interface for CommandBuffer implementations.
|
| class GPU_EXPORT CommandBuffer {
|
| public:
|
| @@ -56,7 +66,10 @@ class GPU_EXPORT CommandBuffer {
|
| std::string message;
|
| };
|
|
|
| - CommandBuffer() {
|
| + explicit CommandBuffer(CommandBufferNamespace namespace_id,
|
| + uint64_t command_buffer_id)
|
| + : namespace_id_(namespace_id),
|
| + command_buffer_id_(command_buffer_id) {
|
| }
|
|
|
| virtual ~CommandBuffer() {
|
| @@ -126,7 +139,26 @@ class GPU_EXPORT CommandBuffer {
|
| virtual error::Error GetLastError();
|
| #endif
|
|
|
| + // The namespace and command buffer ID forms a unique pair for all existing
|
| + // command buffers in a single process. Intermediate command buffers
|
| + // (such as CommandBufferService) should assign have an invalid namespace
|
| + // to signify that they should not be queried. Command Buffers that forward
|
| + // messages to other command buffers should identify as the command buffer
|
| + // which actually does the executions.
|
| + CommandBufferNamespace namespace_id() const {
|
| + DCHECK_NE(namespace_id_, kCommandBufferNamespace_Invalid);
|
| + return namespace_id_;
|
| + }
|
| +
|
| + uint64_t command_buffer_id() const {
|
| + DCHECK_NE(namespace_id_, kCommandBufferNamespace_Invalid);
|
| + return command_buffer_id_;
|
| + }
|
| +
|
| private:
|
| + const CommandBufferNamespace namespace_id_;
|
| + const uint64_t command_buffer_id_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(CommandBuffer);
|
| };
|
|
|
|
|