| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // This file contains the common parts of command buffer formats. | 5 // This file contains the common parts of command buffer formats. |
| 6 | 6 |
| 7 #ifndef GPU_COMMAND_BUFFER_COMMON_CMD_BUFFER_COMMON_H_ | 7 #ifndef GPU_COMMAND_BUFFER_COMMON_CMD_BUFFER_COMMON_H_ |
| 8 #define GPU_COMMAND_BUFFER_COMMON_CMD_BUFFER_COMMON_H_ | 8 #define GPU_COMMAND_BUFFER_COMMON_CMD_BUFFER_COMMON_H_ |
| 9 | 9 |
| 10 #include <stddef.h> | 10 #include <stddef.h> |
| (...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 148 // | 148 // |
| 149 // NOTE: THE ORDER OF THESE MUST NOT CHANGE (their id is derived by order) | 149 // NOTE: THE ORDER OF THESE MUST NOT CHANGE (their id is derived by order) |
| 150 #define COMMON_COMMAND_BUFFER_CMDS(OP) \ | 150 #define COMMON_COMMAND_BUFFER_CMDS(OP) \ |
| 151 OP(Noop) /* 0 */ \ | 151 OP(Noop) /* 0 */ \ |
| 152 OP(SetToken) /* 1 */ \ | 152 OP(SetToken) /* 1 */ \ |
| 153 OP(SetBucketSize) /* 2 */ \ | 153 OP(SetBucketSize) /* 2 */ \ |
| 154 OP(SetBucketData) /* 3 */ \ | 154 OP(SetBucketData) /* 3 */ \ |
| 155 OP(SetBucketDataImmediate) /* 4 */ \ | 155 OP(SetBucketDataImmediate) /* 4 */ \ |
| 156 OP(GetBucketStart) /* 5 */ \ | 156 OP(GetBucketStart) /* 5 */ \ |
| 157 OP(GetBucketData) /* 6 */ \ | 157 OP(GetBucketData) /* 6 */ \ |
| 158 OP(SetAsyncToken) /* 7 */ \ |
| 158 | 159 |
| 159 // Common commands. | 160 // Common commands. |
| 160 enum CommandId { | 161 enum CommandId { |
| 161 #define COMMON_COMMAND_BUFFER_CMD_OP(name) k ## name, | 162 #define COMMON_COMMAND_BUFFER_CMD_OP(name) k ## name, |
| 162 | 163 |
| 163 COMMON_COMMAND_BUFFER_CMDS(COMMON_COMMAND_BUFFER_CMD_OP) | 164 COMMON_COMMAND_BUFFER_CMDS(COMMON_COMMAND_BUFFER_CMD_OP) |
| 164 | 165 |
| 165 #undef COMMON_COMMAND_BUFFER_CMD_OP | 166 #undef COMMON_COMMAND_BUFFER_CMD_OP |
| 166 | 167 |
| 167 kNumCommands, | 168 kNumCommands, |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 216 } | 217 } |
| 217 static void* Set(void* cmd, uint32 token) { | 218 static void* Set(void* cmd, uint32 token) { |
| 218 static_cast<ValueType*>(cmd)->Init(token); | 219 static_cast<ValueType*>(cmd)->Init(token); |
| 219 return NextCmdAddress<ValueType>(cmd); | 220 return NextCmdAddress<ValueType>(cmd); |
| 220 } | 221 } |
| 221 | 222 |
| 222 CommandHeader header; | 223 CommandHeader header; |
| 223 uint32 token; | 224 uint32 token; |
| 224 }; | 225 }; |
| 225 | 226 |
| 227 struct SetAsyncToken { |
| 228 typedef SetAsyncToken ValueType; |
| 229 static const CommandId kCmdId = kSetAsyncToken; |
| 230 static const cmd::ArgFlags kArgFlags = cmd::kFixed; |
| 231 |
| 232 void SetHeader() { |
| 233 header.SetCmd<ValueType>(); |
| 234 } |
| 235 |
| 236 void Init(uint32 _async_token) { |
| 237 SetHeader(); |
| 238 async_token = _async_token; |
| 239 } |
| 240 |
| 241 static void* Set(void* cmd, uint32 async_token) { |
| 242 static_cast<ValueType*>(cmd)->Init(async_token); |
| 243 return NextCmdAddress<ValueType>(cmd); |
| 244 } |
| 245 |
| 246 CommandHeader header; |
| 247 uint32 async_token; |
| 248 }; |
| 249 |
| 226 COMPILE_ASSERT(sizeof(SetToken) == 8, Sizeof_SetToken_is_not_8); | 250 COMPILE_ASSERT(sizeof(SetToken) == 8, Sizeof_SetToken_is_not_8); |
| 227 COMPILE_ASSERT(offsetof(SetToken, header) == 0, | 251 COMPILE_ASSERT(offsetof(SetToken, header) == 0, |
| 228 Offsetof_SetToken_header_not_0); | 252 Offsetof_SetToken_header_not_0); |
| 229 COMPILE_ASSERT(offsetof(SetToken, token) == 4, | 253 COMPILE_ASSERT(offsetof(SetToken, token) == 4, |
| 230 Offsetof_SetToken_token_not_4); | 254 Offsetof_SetToken_token_not_4); |
| 231 | 255 |
| 232 // Sets the size of a bucket for collecting data on the service side. | 256 // Sets the size of a bucket for collecting data on the service side. |
| 233 // This is a utility for gathering data on the service side so it can be used | 257 // This is a utility for gathering data on the service side so it can be used |
| 234 // all at once when some service side API is called. It removes the need to add | 258 // all at once when some service side API is called. It removes the need to add |
| 235 // special commands just to support a particular API. For example, any API | 259 // special commands just to support a particular API. For example, any API |
| (...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 520 Offsetof_GetBucketData_shared_memory_offset_not_20); | 544 Offsetof_GetBucketData_shared_memory_offset_not_20); |
| 521 | 545 |
| 522 } // namespace cmd | 546 } // namespace cmd |
| 523 | 547 |
| 524 #pragma pack(pop) | 548 #pragma pack(pop) |
| 525 | 549 |
| 526 } // namespace gpu | 550 } // namespace gpu |
| 527 | 551 |
| 528 #endif // GPU_COMMAND_BUFFER_COMMON_CMD_BUFFER_COMMON_H_ | 552 #endif // GPU_COMMAND_BUFFER_COMMON_CMD_BUFFER_COMMON_H_ |
| 529 | 553 |
| OLD | NEW |