0080デフォルトの名無しさん
2015/10/31(土) 18:10:18.47ID:2qMna6cKChromeだと複数のプロセスからのOpenGLコマンドを一つのプロセスでまとめて実行してるようだ
http://www.chromium.org/developers/design-documents/gpu-command-buffer
The #3 goal is speed. Speed is why a command buffer implementation was chosen.
The client can write commands very quickly with little or no communication with the service and only once in a while tell the service it has written more commands.
For example, another implementation could have used a separate IPC for each OpenGL ES 2.0 function but that would arguably be too slow.
The command buffer gets another speed boost because it effectively parallelizes calls into the OS graphics API.
A call like glUniform or glDrawArrays might be a very expensive call but because of the command buffer the client just writes a few bytes into the command buffer and is done.
The GPU process calls the real OpenGL function on another process which effectively makes the program multi-core.