Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(89)

Side by Side Diff: gpu/command_buffer/common/cmd_buffer_common.h

Issue 7253052: Execute all GL commands up to the put offset reported by a flush. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 OP(Jump) /* 2 */ \ 151 OP(Jump) /* 2 */ \
152 OP(JumpRelative) /* 3 */ \ 152 OP(JumpRelative) /* 3 */ \
153 OP(Call) /* 4 */ \ 153 OP(Call) /* 4 */ \
154 OP(CallRelative) /* 5 */ \ 154 OP(CallRelative) /* 5 */ \
155 OP(Return) /* 6 */ \ 155 OP(Return) /* 6 */ \
156 OP(SetBucketSize) /* 7 */ \ 156 OP(SetBucketSize) /* 7 */ \
157 OP(SetBucketData) /* 8 */ \ 157 OP(SetBucketData) /* 8 */ \
158 OP(SetBucketDataImmediate) /* 9 */ \ 158 OP(SetBucketDataImmediate) /* 9 */ \
159 OP(GetBucketSize) /* 10 */ \ 159 OP(GetBucketSize) /* 10 */ \
160 OP(GetBucketData) /* 11 */ \ 160 OP(GetBucketData) /* 11 */ \
161 OP(YieldScheduler) /* 12 */ \
162 161
163 // Common commands. 162 // Common commands.
164 enum CommandId { 163 enum CommandId {
165 #define COMMON_COMMAND_BUFFER_CMD_OP(name) k ## name, 164 #define COMMON_COMMAND_BUFFER_CMD_OP(name) k ## name,
166 165
167 COMMON_COMMAND_BUFFER_CMDS(COMMON_COMMAND_BUFFER_CMD_OP) 166 COMMON_COMMAND_BUFFER_CMDS(COMMON_COMMAND_BUFFER_CMD_OP)
168 167
169 #undef COMMON_COMMAND_BUFFER_CMD_OP 168 #undef COMMON_COMMAND_BUFFER_CMD_OP
170 169
171 kNumCommands, 170 kNumCommands,
(...skipping 464 matching lines...) Expand 10 before | Expand all | Expand 10 after
636 Offsetof_GetBucketData_bucket_id_not_4); 635 Offsetof_GetBucketData_bucket_id_not_4);
637 COMPILE_ASSERT(offsetof(GetBucketData, offset) == 8, 636 COMPILE_ASSERT(offsetof(GetBucketData, offset) == 8,
638 Offsetof_GetBucketData_offset_not_8); 637 Offsetof_GetBucketData_offset_not_8);
639 COMPILE_ASSERT(offsetof(GetBucketData, size) == 12, 638 COMPILE_ASSERT(offsetof(GetBucketData, size) == 12,
640 Offsetof_GetBucketData_size_not_12); 639 Offsetof_GetBucketData_size_not_12);
641 COMPILE_ASSERT(offsetof(GetBucketData, shared_memory_id) == 16, 640 COMPILE_ASSERT(offsetof(GetBucketData, shared_memory_id) == 16,
642 Offsetof_GetBucketData_shared_memory_id_not_16); 641 Offsetof_GetBucketData_shared_memory_id_not_16);
643 COMPILE_ASSERT(offsetof(GetBucketData, shared_memory_offset) == 20, 642 COMPILE_ASSERT(offsetof(GetBucketData, shared_memory_offset) == 20,
644 Offsetof_GetBucketData_shared_memory_offset_not_20); 643 Offsetof_GetBucketData_shared_memory_offset_not_20);
645 644
646 // A Yield command. Hints the scheduler that this is a good point to update the
647 // state and schedule other command buffers.
648 struct YieldScheduler {
649 typedef YieldScheduler ValueType;
650 static const CommandId kCmdId = kYieldScheduler;
651 static const cmd::ArgFlags kArgFlags = cmd::kFixed;
652
653 void SetHeader() {
654 header.SetCmd<ValueType>();
655 }
656
657 void Init() {
658 SetHeader();
659 }
660 static void* Set(void* cmd) {
661 static_cast<ValueType*>(cmd)->Init();
662 return NextCmdAddress<ValueType>(cmd);
663 }
664
665 CommandHeader header;
666 };
667
668 COMPILE_ASSERT(sizeof(YieldScheduler) == 4, Sizeof_YieldScheduler_is_not_4);
669 COMPILE_ASSERT(offsetof(YieldScheduler, header) == 0,
670 Offsetof_YieldScheduler_header_not_0);
671
672 } // namespace cmd 645 } // namespace cmd
673 646
674 #pragma pack(pop) 647 #pragma pack(pop)
675 648
676 } // namespace gpu 649 } // namespace gpu
677 650
678 #endif // GPU_COMMAND_BUFFER_COMMON_CMD_BUFFER_COMMON_H_ 651 #endif // GPU_COMMAND_BUFFER_COMMON_CMD_BUFFER_COMMON_H_
679 652
OLDNEW
« no previous file with comments | « gpu/command_buffer/client/ring_buffer_test.cc ('k') | gpu/command_buffer/common/command_buffer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698