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

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

Issue 1323263005: Proposing new CHROMIUM_sync_point API. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 3 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 Name 1 Name
2 2
3 CHROMIUM_sync_point 3 CHROMIUM_sync_point
4 4
5 Name Strings 5 Name Strings
6 6
7 GL_CHROMIUM_sync_point 7 GL_CHROMIUM_sync_point
8 8
9 Version 9 Version
10 10
11 Last Modifed Date: February 25, 2013 11 Last Modifed Date: September 8, 2015
12 12
13 Dependencies 13 Dependencies
14 14
15 OpenGL ES 2.0 is required. 15 OpenGL ES 2.0 is required.
16 16
17 Overview 17 Overview
18 18
19 This extension allows a client to order operations between contexts. 19 This extension allows a client to order operations between contexts.
20 20
21 This extension implements a small subset of ARB_sync, with weaker 21 This extension implements a small subset of ARB_sync, with weaker
22 guarantees. In particular it doesn't ensure commands are actually executed 22 guarantees. In particular it doesn't ensure commands are actually executed
23 by the server, it only guarantees submission order. 23 by the server, it only guarantees submission order.
24 24
25 It does however guarantee operation order with respect to 25 It does however guarantee operation order with respect to
26 ConsumeTextureCHROMIUM and ProduceTextureCHROMIUM from 26 ConsumeTextureCHROMIUM and ProduceTextureCHROMIUM from
27 CHROMIUM_texture_mailbox, if present. 27 CHROMIUM_texture_mailbox, if present.
28 28
29 Issues 29 Issues
30 30
31 None 31 None
32 32
33 New Tokens 33 New Tokens
34 34
35 None 35 None
36 36
37 New Types
38
39 typedef struct __CHROMIUMsync *CHROMIUMsync;
jbauman 2015/09/08 20:54:13 What exactly is __CHROMIUMsync? Can it be passed v
David Yen 2015/09/08 21:35:29 In order to make the tracking of lifetimes easier,
40
37 New Procedures and Functions 41 New Procedures and Functions
38 42
39 The command 43 The command
40 44
41 uint InsertSyncPointCHROMIUM() 45 uint InsertSyncPointCHROMIUM()
42 46
43 flushes the stream of commands for the current context and creates and 47 inserts a sync point in the current command stream. The sync point acts as
44 inserts a sync point. The sync point acts as a fence, which is signaled when 48 a fence, which is signaled when previous commands have been submitted to
45 previous commands have been submitted to the server, or when the context is 49 the server, or when the context is destroyed, whichever happens first.
46 destroyed, whichever happens first. The sync point name is returned. The 50 The sync point name for the current context is returned. Before the
47 sync point is implicitly deleted when it becomes signaled. The sync point 51 returned sync point is waited upon, the command must be flushed and
48 namespace is shared between all contexts on the same server, including other 52 converted to a CHROMIUMsync object using GenSyncPointCHROMIUM. The
49 context groups. 53 CHROMIUMsync object returned from GenSyncPointCHROMIUM is shared between
50 54 all contexts.
51 55
52 The command 56 The command
53 57
54 void WaitSyncPointCHROMIUM(uint sync_point) 58 CHROMIUMsync GenSyncPointCHROMIUM(uint sync_point)
59
60 converts a sync point name for the current context to a sync point object
61 which can be waited on and shared between all contexts on the same server.
62 <sync_point> must be flushed before this function may be called, otherwise
63 an INVALID_OPERATION error is generated.
piman 2015/09/08 18:21:01 Can you clarify whether the CHROMIUMsync handle na
David Yen 2015/09/08 19:07:53 Improved documentation on this. It is shared globa
64
65 The command
66
67 void WaitSyncPointCHROMIUM(CHROMIUMsync sync_point)
55 68
56 causes the current context to stop submitting commands until the specified 69 causes the current context to stop submitting commands until the specified
57 sync point becomes signaled. This is implemented as a server-side wait. 70 sync point becomes signaled. This is implemented as a server-side wait.
58 <sync_point> is the name of the sync point to wait for. If <sync_point> 71 <sync_point> is the name of the sync point to wait for. If <sync_point>
59 isn't a valid sync point returned by InsertSyncPointCHROMIUM, or if the sync 72 isn't a valid sync point returned by GenSyncPointCHROMIUM, or if the sync
60 point has already been deleted, the command is equivalent to a no-op and no 73 point has already been deleted, the command is equivalent to a no-op and no
61 error is generated. 74 error is generated.
62 75
76 The command
77
78 void DeleteSyncPointCHROMIUM(CHROMIUMsync sync_point)
79
80 deletes the corresponding sync point object and makes it so no context can
81 wait on <sync_point> anymore. This will not affect any WaitSyncPointCHROMIUM
82 commands that are already blocking on <sync_point>.
piman 2015/09/08 18:21:01 I'm not sure what "already blocking on <sync_point
David Yen 2015/09/08 19:07:53 I wanted to communicate that on the client side th
83
63 Errors 84 Errors
64 85
65 None. 86 INVALID_VALUE is generated if the <sync_point> parameter of
87 GenSyncPointCHROMIUM is not a valid local sync point name.
88
89 INVALID_OPERATION is generated if the <sync_point> parameter of
90 GenSyncPointCHROMIUM has not been flushed.
66 91
67 New State 92 New State
68 93
69 None. 94 None.
70 95
71 Revision History 96 Revision History
72 97
73 2/25/2013 Documented the extension 98 2/25/2013 Documented the extension
99
100 9/8/2015 Added CHROMIUMsync, WaitSyncPointCHROMIUM,
101 DeleteSyncPointCHROMIUM
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698