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

Side by Side Diff: gpu/GLES2/extensions/CHROMIUM/CHROMIUM_gpu_memory_buffer.txt

Issue 14456004: GPU client side changes for GpuMemoryBuffers (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@glapi
Patch Set: More code reviews Created 7 years, 7 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
OLDNEW
(Empty)
1 Name
2
3 CHROMIUM_gpu_memory_buffer
4
5 Name Strings
6
7 GL_CHROMIUM_gpu_memory_buffer
8
9 Version
10
11 Last Modifed Date: April 26, 2013
12
13 Dependencies
14
15 OpenGL ES 2.0 is required.
16
17 Overview
18
19 This extension allows for more efficiently uploading of buffer or texture
20 data through Chromium's OpenGL ES 2.0 implementation.
21
22 For security reasons Chromium accesses the GPU from a separate process. User
23 processes are not allowed to access the GPU directly. This multi-process
24 architechure has the advantage that GPU operations can be secured and
25 pipelined but it has the disadvantage that all data that is going to be
26 passed to GPU must first be made available to the separate GPU process.
27
28 Chromium's OpenGL ES 2.0 implementation hides this issue when using the
29 standard OpenGL functions BufferData, BufferSubData, TexImage2D, and
30 TexSubImage2D by first copying the user's data to shared memory and then
31 telling the GPU process to use that shared memory to upload the data.
32
33 This extension helps avoid that extra copy from user memory to shared memory
greggman 2013/05/03 23:48:01 This extension is, at least at the moment, specifi
kaanb 2013/05/06 18:20:53 I'll go over this document once we finalize the na
34 in a safe and secure manner by allowing the client to directly allocate
35 GPU memory. After allocating the memory the client of this interface
36 can use methods in CHROMIUM_map_sub extension to map the GPU buffer into
37 the user memory and modify the pixels.
38
39 Issues
40
41 The initial use of this extension was designed for the single process
42 mode of Chromium where OpenGL ES 2.0 and GPU implementations share the
43 same process. Some additions may be required to support the case where
44 OpenGL ES 2.0 and GPU implementations live in different processes.
45
46 New Tokens
47
48 None
49
50 New Procedures and Functions
51
52 void ImageBufferDataCHROMIUM (GLenum target, GLsizei width, GLsizei height,
53 GLenum format, GLenum type)
54
55 Allocates GPU memory for the currently bound buffer with width equal to
56 <width> and height equal to <height>. If any memory was previously allocated
57 to the bound buffer it is freed before new GPU memory is allocated. If
58 <width> and <height> are both 0 no allocation takes place. Similarly if no
59 buffer was bound with a call to BindBuffer this method returns immediately
60 without allocating any buffers.
61
62 INVALID_ENUM is generated if <target> is not GL_IMAGE_BUFFER_CHROMIUM
63
64 INVALID_VALUE is generated if <width> or <height> is negative
65
66 INVALID_ENUM is generated if <format> is not GL_RGBA
67
68 INVALID_ENUM is generated if <type> is not GL_UNSIGNED_BYTE
69
70 Errors
71
72 None.
73
74 New State
75
76 None.
77
78 Revision History
79
80 4/26/2013 Documented the extension
OLDNEW
« no previous file with comments | « no previous file | gpu/GLES2/gl2chromium_autogen.h » ('j') | gpu/command_buffer/client/gles2_implementation.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698