Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 // Multiply-included message file, hence no include guard here, but see below | |
| 6 // for a much smaller-than-usual include guard section. | |
| 7 | |
| 5 #include <vector> | 8 #include <vector> |
| 6 #include <string> | 9 #include <string> |
| 7 | 10 |
| 8 | |
| 9 #include "base/shared_memory.h" | 11 #include "base/shared_memory.h" |
| 10 #include "content/common/common_param_traits.h" | 12 #include "content/common/common_param_traits.h" |
| 11 #include "content/common/gpu/gpu_info.h" | 13 #include "content/common/gpu/gpu_info.h" |
| 12 #include "content/common/gpu/gpu_process_launch_causes.h" | 14 #include "content/common/gpu/gpu_process_launch_causes.h" |
| 13 #include "gpu/command_buffer/common/command_buffer.h" | 15 #include "gpu/command_buffer/common/command_buffer.h" |
| 14 #include "gpu/ipc/gpu_command_buffer_traits.h" | 16 #include "gpu/ipc/gpu_command_buffer_traits.h" |
| 15 #include "ipc/ipc_channel_handle.h" | 17 #include "ipc/ipc_channel_handle.h" |
| 16 #include "ipc/ipc_message_macros.h" | 18 #include "ipc/ipc_message_macros.h" |
| 17 #include "ui/gfx/native_widget_types.h" | 19 #include "ui/gfx/native_widget_types.h" |
| 18 #include "ui/gfx/size.h" | 20 #include "ui/gfx/size.h" |
| 19 // Multiply-included message file, hence no include guard. | 21 |
| 22 // Singly-included section, not converted. | |
|
jam
2011/06/27 18:21:35
nit: the ", not converted" part is not true.
Ami GONE FROM CHROMIUM
2011/06/27 18:43:49
Done. I don't know what that was talking about; I
| |
| 23 #ifndef CONTENT_COMMON_GPU_GPU_MESSAGES_H_ | |
| 24 #define CONTENT_COMMON_GPU_GPU_MESSAGES_H_ | |
| 25 // typedef is required because commas confuse IPC_MESSAGE_* macro expansions. | |
| 26 // Pair contains: first: last_token_read, second: last_token_written. | |
| 27 typedef std::pair<int32, int32> ReadWriteTokens; | |
| 28 #endif // CONTENT_COMMON_GPU_GPU_MESSAGES_H_ | |
| 20 | 29 |
| 21 #define IPC_MESSAGE_START GpuMsgStart | 30 #define IPC_MESSAGE_START GpuMsgStart |
| 22 | 31 |
| 23 IPC_STRUCT_BEGIN(GPUCreateCommandBufferConfig) | 32 IPC_STRUCT_BEGIN(GPUCreateCommandBufferConfig) |
| 24 IPC_STRUCT_MEMBER(std::string, allowed_extensions) | 33 IPC_STRUCT_MEMBER(std::string, allowed_extensions) |
| 25 IPC_STRUCT_MEMBER(std::vector<int>, attribs) | 34 IPC_STRUCT_MEMBER(std::vector<int>, attribs) |
| 26 IPC_STRUCT_MEMBER(GURL, active_url) | 35 IPC_STRUCT_MEMBER(GURL, active_url) |
| 27 IPC_STRUCT_END() | 36 IPC_STRUCT_END() |
| 28 | 37 |
| 29 #if defined(OS_MACOSX) | 38 #if defined(OS_MACOSX) |
| (...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 299 | 308 |
| 300 // Create a surface for offscreen rendering. | 309 // Create a surface for offscreen rendering. |
| 301 IPC_SYNC_MESSAGE_CONTROL1_1(GpuChannelMsg_CreateOffscreenSurface, | 310 IPC_SYNC_MESSAGE_CONTROL1_1(GpuChannelMsg_CreateOffscreenSurface, |
| 302 gfx::Size, /* size */ | 311 gfx::Size, /* size */ |
| 303 int /* route_id */) | 312 int /* route_id */) |
| 304 | 313 |
| 305 // Destroy a surface by routing id. | 314 // Destroy a surface by routing id. |
| 306 IPC_MESSAGE_CONTROL1(GpuChannelMsg_DestroySurface, | 315 IPC_MESSAGE_CONTROL1(GpuChannelMsg_DestroySurface, |
| 307 int /* route_id */) | 316 int /* route_id */) |
| 308 | 317 |
| 309 // Create hardware video decoder && associate it with the output |decoder_id|; | 318 // Create a hardware video decoder; the new route ID is returned through |
| 319 // AcceleratedVideoDecoderHostMsg_CreateDone. | |
| 310 // We need this to be control message because we had to map the GpuChannel and | 320 // We need this to be control message because we had to map the GpuChannel and |
| 311 // |decoder_id|. | 321 // |decoder_id|. |
| 312 IPC_MESSAGE_CONTROL3(GpuChannelMsg_CreateVideoDecoder, | 322 IPC_MESSAGE_CONTROL3(GpuChannelMsg_CreateVideoDecoder, |
| 313 int32, /* decoder_id */ | 323 int32, /* decoder_host_id */ |
| 314 uint32, /* command buffer route id*/ | 324 uint32, /* command buffer route id*/ |
| 315 std::vector<uint32>) /* configs */ | 325 std::vector<uint32>) /* configs */ |
| 316 | 326 |
| 317 // Release all resource of the hardware video decoder which was assocaited | 327 // Release all resource of the hardware video decoder which was assocaited |
| 318 // with the input |decoder_id|. | 328 // with the input |decoder_id|. |
| 319 // TODO(hclam): This message needs to be asynchronous. | 329 // TODO(hclam): This message needs to be asynchronous. |
| 320 IPC_SYNC_MESSAGE_CONTROL1_0(GpuChannelMsg_DestroyVideoDecoder, | 330 IPC_SYNC_MESSAGE_CONTROL1_0(GpuChannelMsg_DestroyVideoDecoder, |
| 321 int32 /* decoder_id */) | 331 int32 /* decoder_id */) |
| 322 | 332 |
| 323 // Create a TransportTexture corresponding to |host_id|. | 333 // Create a TransportTexture corresponding to |host_id|. |
| 324 IPC_MESSAGE_CONTROL2(GpuChannelMsg_CreateTransportTexture, | 334 IPC_MESSAGE_CONTROL2(GpuChannelMsg_CreateTransportTexture, |
| 325 int32, /* context_route_id */ | 335 int32, /* context_route_id */ |
| 326 int32 /* host_id */) | 336 int32 /* host_id */) |
| 327 | 337 |
| 328 // Sent from Renderer process to the GPU process to give the texture IDs for | |
| 329 // the textures the decoder will use for output. | |
| 330 IPC_MESSAGE_CONTROL4(GpuChannelMsg_AssignTexturesToVideoDecoder, | |
| 331 int32, /* Decoder ID */ | |
| 332 std::vector<int32>, /* Picture buffer ID */ | |
| 333 std::vector<uint32>, /* Texture ID */ | |
| 334 std::vector<gfx::Size>) /* Size */ | |
| 335 //------------------------------------------------------------------------------ | 338 //------------------------------------------------------------------------------ |
| 336 // GPU Command Buffer Messages | 339 // GPU Command Buffer Messages |
| 337 // These are messages between a renderer process to the GPU process relating to | 340 // These are messages between a renderer process to the GPU process relating to |
| 338 // a single OpenGL context. | 341 // a single OpenGL context. |
| 339 // Initialize a command buffer with the given number of command entries. | 342 // Initialize a command buffer with the given number of command entries. |
| 340 // Returns the shared memory handle for the command buffer mapped to the | 343 // Returns the shared memory handle for the command buffer mapped to the |
| 341 // calling process. | 344 // calling process. |
| 342 IPC_SYNC_MESSAGE_ROUTED2_1(GpuCommandBufferMsg_Initialize, | 345 IPC_SYNC_MESSAGE_ROUTED2_1(GpuCommandBufferMsg_Initialize, |
| 343 base::SharedMemoryHandle /* ring_buffer */, | 346 base::SharedMemoryHandle /* ring_buffer */, |
| 344 int32 /* size */, | 347 int32 /* size */, |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 457 // Instruct the renderer to release all generated textures. | 460 // Instruct the renderer to release all generated textures. |
| 458 IPC_MESSAGE_ROUTED0(GpuTransportTextureHostMsg_ReleaseTextures) | 461 IPC_MESSAGE_ROUTED0(GpuTransportTextureHostMsg_ReleaseTextures) |
| 459 | 462 |
| 460 // Notify a texture has been updated. The texture id is in the client context. | 463 // Notify a texture has been updated. The texture id is in the client context. |
| 461 IPC_MESSAGE_ROUTED1(GpuTransportTextureHostMsg_TextureUpdated, | 464 IPC_MESSAGE_ROUTED1(GpuTransportTextureHostMsg_TextureUpdated, |
| 462 int /* texture_id */) | 465 int /* texture_id */) |
| 463 | 466 |
| 464 //------------------------------------------------------------------------------ | 467 //------------------------------------------------------------------------------ |
| 465 // Accelerated Video Decoder Messages | 468 // Accelerated Video Decoder Messages |
| 466 // These messages are sent from Renderer process to GPU process. | 469 // These messages are sent from Renderer process to GPU process. |
| 470 // | |
| 471 // Most of these messages defer execution until |tokens.second| is seen (using | |
| 472 // |tokens.first| as a wrap-around indicator). | |
| 473 | |
| 467 // Message to query configuration information from the GPU process. | 474 // Message to query configuration information from the GPU process. |
| 468 IPC_SYNC_MESSAGE_CONTROL1_1(AcceleratedVideoDecoderMsg_GetConfigs, | 475 IPC_SYNC_MESSAGE_CONTROL2_1(AcceleratedVideoDecoderMsg_GetConfigs, |
| 476 ReadWriteTokens, /* tokens: <read,write> */ | |
| 469 std::vector<uint32>, /* Proto config */ | 477 std::vector<uint32>, /* Proto config */ |
| 470 std::vector<uint32>) /* Matching configs */ | 478 std::vector<uint32>) /* Matching configs */ |
| 471 | 479 |
| 472 // Message to initialize the accelerated video decoder. | 480 // Message to initialize the accelerated video decoder. |
| 473 IPC_MESSAGE_ROUTED1(AcceleratedVideoDecoderMsg_Initialize, | 481 IPC_MESSAGE_ROUTED2(AcceleratedVideoDecoderMsg_Initialize, |
| 482 ReadWriteTokens, /* tokens: <read,write> */ | |
| 474 std::vector<uint32>) /* Config */ | 483 std::vector<uint32>) /* Config */ |
| 475 | 484 |
| 476 // Send input buffer for decoding. | 485 // Send input buffer for decoding. |
| 477 IPC_MESSAGE_ROUTED3(AcceleratedVideoDecoderMsg_Decode, | 486 IPC_MESSAGE_ROUTED4(AcceleratedVideoDecoderMsg_Decode, |
| 487 ReadWriteTokens, /* tokens: <read,write> */ | |
| 488 base::SharedMemoryHandle, /* input_buffer_handle */ | |
| 478 int32, /* bitstream_buffer_id */ | 489 int32, /* bitstream_buffer_id */ |
| 479 base::SharedMemoryHandle, /* input_buffer_handle */ | |
| 480 int32) /* size */ | 490 int32) /* size */ |
| 481 | 491 |
| 492 // Sent from Renderer process to the GPU process to give the texture IDs for | |
| 493 // the textures the decoder will use for output. Delays evaluation until | |
| 494 // |token.second| is seen. | |
| 495 IPC_MESSAGE_ROUTED4(AcceleratedVideoDecoderMsg_AssignTextures, | |
| 496 ReadWriteTokens, /* tokens: <read,write> */ | |
| 497 std::vector<int32>, /* Picture buffer ID */ | |
| 498 std::vector<uint32>, /* Texture ID */ | |
| 499 std::vector<gfx::Size>) /* Size */ | |
| 500 | |
| 482 // Sent from Renderer process to the GPU process to give the system memory | 501 // Sent from Renderer process to the GPU process to give the system memory |
| 483 // buffers that the decoder will use for output. | 502 // buffers that the decoder will use for output. |
| 484 // | 503 // |
| 485 // The length of the list of SharedMemoryHandles cannot exceed | 504 // The length of the list of SharedMemoryHandles cannot exceed |
| 486 // FileDescriptorSet::MAX_DESCRIPTORS_PER_MESSAGE; see | 505 // FileDescriptorSet::MAX_DESCRIPTORS_PER_MESSAGE; see |
| 487 // ipc/file_descriptor_set_posix. | 506 // ipc/file_descriptor_set_posix. |
| 488 IPC_MESSAGE_ROUTED3(AcceleratedVideoDecoderMsg_AssignSysmemBuffers, | 507 IPC_MESSAGE_ROUTED4(AcceleratedVideoDecoderMsg_AssignSysmemBuffers, |
| 508 ReadWriteTokens, /* tokens: <read,write> */ | |
| 489 std::vector<int32>, /* Picture buffer ID */ | 509 std::vector<int32>, /* Picture buffer ID */ |
| 490 std::vector<base::SharedMemoryHandle>, /* Sysmem buffer */ | 510 std::vector<base::SharedMemoryHandle>, /* Sysmem buffer */ |
| 491 std::vector<gfx::Size>) /* Size */ | 511 std::vector<gfx::Size>) /* Size */ |
| 492 | 512 |
| 493 // Send from Renderer process to the GPU process to recycle the given picture | 513 // Send from Renderer process to the GPU process to recycle the given picture |
| 494 // buffer for further decoding. | 514 // buffer for further decoding. |
| 495 IPC_MESSAGE_ROUTED1(AcceleratedVideoDecoderMsg_ReusePictureBuffer, | 515 IPC_MESSAGE_ROUTED2(AcceleratedVideoDecoderMsg_ReusePictureBuffer, |
| 516 ReadWriteTokens, /* tokens: <read,write> */ | |
| 496 int32) /* Picture buffer ID */ | 517 int32) /* Picture buffer ID */ |
| 497 | 518 |
| 498 // Send flush request to the decoder. | 519 // Send flush request to the decoder. |
| 499 IPC_MESSAGE_ROUTED0(AcceleratedVideoDecoderMsg_Flush) | 520 IPC_MESSAGE_ROUTED1(AcceleratedVideoDecoderMsg_Flush, |
| 521 ReadWriteTokens) /* tokens: <read,write> */ | |
| 500 | 522 |
| 501 // Send abort request to the decoder. | 523 // Send abort request to the decoder. |
| 502 IPC_MESSAGE_ROUTED0(AcceleratedVideoDecoderMsg_Abort) | 524 IPC_MESSAGE_ROUTED1(AcceleratedVideoDecoderMsg_Abort, |
| 525 ReadWriteTokens) /* tokens: <read,write> */ | |
| 503 | 526 |
| 504 // Destroy and release decoder asynchronously. | 527 // Destroy and release decoder asynchronously. |
| 505 IPC_SYNC_MESSAGE_CONTROL0_0(AcceleratedVideoDecoderMsg_Destroy) | 528 IPC_SYNC_MESSAGE_CONTROL1_0(AcceleratedVideoDecoderMsg_Destroy, |
| 529 ReadWriteTokens) /* tokens: <read,write> */ | |
| 506 | 530 |
| 507 //------------------------------------------------------------------------------ | 531 //------------------------------------------------------------------------------ |
| 508 // Accelerated Video Decoder Host Messages | 532 // Accelerated Video Decoder Host Messages |
| 509 // These messages are sent from GPU process to Renderer process. | 533 // These messages are sent from GPU process to Renderer process. |
| 510 // Inform AcceleratedVideoDecoderHost that AcceleratedVideoDecoder has been | 534 // Inform AcceleratedVideoDecoderHost that AcceleratedVideoDecoder has been |
| 511 // created. | 535 // created. |
| 512 | 536 |
| 513 // Accelerated video decoder has consumed input buffer from transfer buffer. | 537 // Accelerated video decoder has consumed input buffer from transfer buffer. |
| 514 IPC_MESSAGE_ROUTED1(AcceleratedVideoDecoderHostMsg_BitstreamBufferProcessed, | 538 IPC_MESSAGE_ROUTED1(AcceleratedVideoDecoderHostMsg_BitstreamBufferProcessed, |
| 515 int32) /* Processed buffer ID */ | 539 int32) /* Processed buffer ID */ |
| (...skipping 28 matching lines...) Expand all Loading... | |
| 544 | 568 |
| 545 // Confirm decoder has been aborted. | 569 // Confirm decoder has been aborted. |
| 546 IPC_MESSAGE_ROUTED0(AcceleratedVideoDecoderHostMsg_AbortDone) | 570 IPC_MESSAGE_ROUTED0(AcceleratedVideoDecoderHostMsg_AbortDone) |
| 547 | 571 |
| 548 // Decoder has faced end of stream marker in the stream. | 572 // Decoder has faced end of stream marker in the stream. |
| 549 IPC_MESSAGE_ROUTED0(AcceleratedVideoDecoderHostMsg_EndOfStream) | 573 IPC_MESSAGE_ROUTED0(AcceleratedVideoDecoderHostMsg_EndOfStream) |
| 550 | 574 |
| 551 // Video decoder has encountered an error. | 575 // Video decoder has encountered an error. |
| 552 IPC_MESSAGE_ROUTED1(AcceleratedVideoDecoderHostMsg_ErrorNotification, | 576 IPC_MESSAGE_ROUTED1(AcceleratedVideoDecoderHostMsg_ErrorNotification, |
| 553 uint32) /* Error ID */ | 577 uint32) /* Error ID */ |
| OLD | NEW |