OLD | NEW |
---|---|
(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 | |
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) | |
apatrick_chromium
2013/04/29 19:36:10
I think this wants format and type arguments so we
greggman
2013/04/29 19:58:33
Just to follow up, I talked with Kaanb offline. I
kaanb
2013/04/30 03:40:10
Done.
kaanb
2013/04/30 03:40:10
One concern is we need the method to support delet
| |
53 | |
54 Allocates GPU memory for the currently bound buffer with width equal to | |
55 <width> and height equal to <height>. If any memory was previously allocated | |
56 to the bound buffer it is freed before new GPU memory is allocated. If | |
57 <width> and <height> are both 0 no allocation takes place. Similarly if no | |
58 buffer was bound with a call to BindBuffer this method returns immediately | |
59 without allocating any buffers. | |
60 | |
61 INVALID_ENUM is generated if <target> is not GL_IMAGE_BUFFER_CHROMIUM | |
62 | |
63 INVALID_VALUE is generated if <width> or <height> is negative | |
64 | |
65 Errors | |
66 | |
67 None. | |
68 | |
69 New State | |
70 | |
71 None. | |
72 | |
73 Revision History | |
74 | |
75 4/26/2013 Documented the extension | |
OLD | NEW |