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

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: Uploading again 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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698