1// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef GPU_COMMAND_BUFFER_COMMON_CONSTANTS_H_
6#define GPU_COMMAND_BUFFER_COMMON_CONSTANTS_H_
7
8#include <stddef.h>
9#include <stdint.h>
10
11namespace gpu {
12
13typedef int32_t CommandBufferOffset;
14const CommandBufferOffset kInvalidCommandBufferOffset = -1;
15
16// This enum must stay in sync with NPDeviceContext3DError.
17namespace error {
18  enum Error {
19    kNoError,
20    kInvalidSize,
21    kOutOfBounds,
22    kUnknownCommand,
23    kInvalidArguments,
24    kLostContext,
25    kGenericError,
26    kDeferCommandUntilLater
27  };
28
29  // Return true if the given error code is an actual error.
30  inline bool IsError(Error error) {
31    return error != kNoError && error != kDeferCommandUntilLater;
32  }
33
34  // Provides finer grained information about why the context was lost.
35  enum ContextLostReason {
36    // This context definitely provoked the loss of context.
37    kGuilty,
38
39    // This context definitely did not provoke the loss of context.
40    kInnocent,
41
42    // It is unknown whether this context provoked the loss of context.
43    kUnknown,
44    kContextLostReasonLast = kUnknown
45  };
46}
47
48// Invalid shared memory Id, returned by RegisterSharedMemory in case of
49// failure.
50const int32_t kInvalidSharedMemoryId = -1;
51
52// Common Command Buffer shared memory transfer buffer ID.
53const int32_t kCommandBufferSharedMemoryId = 4;
54
55// The size to set for the program cache.
56const size_t kDefaultMaxProgramCacheMemoryBytes = 6 * 1024 * 1024;
57
58}  // namespace gpu
59
60#endif  // GPU_COMMAND_BUFFER_COMMON_CONSTANTS_H_
61