| Index: gpu/command_buffer/common/cmd_buffer_common.h
|
| ===================================================================
|
| --- gpu/command_buffer/common/cmd_buffer_common.h (revision 93137)
|
| +++ gpu/command_buffer/common/cmd_buffer_common.h (working copy)
|
| @@ -158,6 +158,7 @@
|
| OP(SetBucketDataImmediate) /* 9 */ \
|
| OP(GetBucketSize) /* 10 */ \
|
| OP(GetBucketData) /* 11 */ \
|
| + OP(YieldScheduler) /* 12 */ \
|
|
|
| // Common commands.
|
| enum CommandId {
|
| @@ -642,6 +643,32 @@
|
| COMPILE_ASSERT(offsetof(GetBucketData, shared_memory_offset) == 20,
|
| Offsetof_GetBucketData_shared_memory_offset_not_20);
|
|
|
| +// A Yield command. Hints the scheduler that this is a good point to update the
|
| +// state and schedule other command buffers.
|
| +struct YieldScheduler {
|
| + typedef YieldScheduler ValueType;
|
| + static const CommandId kCmdId = kYieldScheduler;
|
| + static const cmd::ArgFlags kArgFlags = cmd::kFixed;
|
| +
|
| + void SetHeader() {
|
| + header.SetCmd<ValueType>();
|
| + }
|
| +
|
| + void Init() {
|
| + SetHeader();
|
| + }
|
| + static void* Set(void* cmd) {
|
| + static_cast<ValueType*>(cmd)->Init();
|
| + return NextCmdAddress<ValueType>(cmd);
|
| + }
|
| +
|
| + CommandHeader header;
|
| +};
|
| +
|
| +COMPILE_ASSERT(sizeof(YieldScheduler) == 4, Sizeof_YieldScheduler_is_not_4);
|
| +COMPILE_ASSERT(offsetof(YieldScheduler, header) == 0,
|
| + Offsetof_YieldScheduler_header_not_0);
|
| +
|
| } // namespace cmd
|
|
|
| #pragma pack(pop)
|
|
|