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 "gpu/command_buffer/common/types.h"
9
10namespace gpu {
11
12typedef int32 CommandBufferOffset;
13const CommandBufferOffset kInvalidCommandBufferOffset = -1;
14
15// This enum must stay in sync with NPDeviceContext3DError.
16namespace error {
17  enum Error {
18    kNoError,
19    kInvalidSize,
20    kOutOfBounds,
21    kUnknownCommand,
22    kInvalidArguments,
23    kLostContext,
24    kGenericError,
25    kDeferCommandUntilLater
26  };
27
28  // Return true if the given error code is an actual error.
29  inline bool IsError(Error error) {
30    return error != kNoError && error != kDeferCommandUntilLater;
31  }
32
33  // Provides finer grained information about why the context was lost.
34  enum ContextLostReason {
35    // This context definitely provoked the loss of context.
36    kGuilty,
37
38    // This context definitely did not provoke the loss of context.
39    kInnocent,
40
41    // It is unknown whether this context provoked the loss of context.
42    kUnknown
43  };
44}
45
46// Invalid shared memory Id, returned by RegisterSharedMemory in case of
47// failure.
48const int32 kInvalidSharedMemoryId = -1;
49
50// Common Command Buffer shared memory transfer buffer ID.
51const int32 kCommandBufferSharedMemoryId = 4;
52
53// The size to set for the program cache.
54const size_t kDefaultMaxProgramCacheMemoryBytes = 6 * 1024 * 1024;
55
56}  // namespace gpu
57
58#endif  // GPU_COMMAND_BUFFER_COMMON_CONSTANTS_H_
59