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

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: Renamed sync object to sync token 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 introduces the concept of "fence syncs" and "sync token".
22 Inserted fence syncs represents a position in the command stream of a
23 context. Sync tokens are generated from fence syncs and allows another
24 context to issue a "wait" command on the sync token. This wait command
25 will then guarantee that commands before the inserted fence sync are
26 submitted before commands after the sync token wait.
27
21 This extension implements a small subset of ARB_sync, with weaker 28 This extension implements a small subset of ARB_sync, with weaker
22 guarantees. In particular it doesn't ensure commands are actually executed 29 guarantees. In particular it doesn't ensure commands are actually executed
23 by the server, it only guarantees submission order. 30 by the server, it only guarantees submission order.
24 31
25 It does however guarantee operation order with respect to 32 It does however guarantee operation order with respect to
26 ConsumeTextureCHROMIUM and ProduceTextureCHROMIUM from 33 ConsumeTextureCHROMIUM and ProduceTextureCHROMIUM from
27 CHROMIUM_texture_mailbox, if present. 34 CHROMIUM_texture_mailbox, if present.
28 35
29 Issues 36 Issues
30 37
31 None 38 None
32 39
33 New Tokens
34
35 None
36
37 New Procedures and Functions 40 New Procedures and Functions
38 41
39 The command 42 The command
40 43
41 uint InsertSyncPointCHROMIUM() 44 uint InsertFenceSyncCHROMIUM()
42 45
43 flushes the stream of commands for the current context and creates and 46 inserts a fence sync in the current command stream. The fence sync is
44 inserts a sync point. The sync point acts as a fence, which is signaled when 47 signaled when previous commands have been submitted to the server, or when
45 previous commands have been submitted to the server, or when the context is 48 the context is destroyed, whichever happens first. The fence sync name is
46 destroyed, whichever happens first. The sync point name is returned. The 49 only visible for the current context. The returned fence sync name cannot
47 sync point is implicitly deleted when it becomes signaled. The sync point 50 be waited upon directly, but once the command is flushed to the server it
48 namespace is shared between all contexts on the same server, including other 51 can be converted to a sync token using GenSyncTokenCHROMIUM which is
49 context groups. 52 waitable.
50
51 53
52 The command 54 The command
53 55
54 void WaitSyncPointCHROMIUM(uint sync_point) 56 void GenSyncTokenCHROMIUM(uint fence_sync, GLbyte *sync_token)
57
58 converts <fence_sync> which is only visible to the current context to a
59 sync token which may be waited upon by any contexts on the same server.
60 The <fence_sync> command must be flushed before this function may be
61 called, otherwise an INVALID_OPERATION error is generated. The generated
62 <sync_token> must be generated on the same context as when
63 InsertSyncPointCHROMIUM was called. The <sync_token> can be passed and
64 used by any context on the same server, including other context groups.
65
66 <sync_token> returns a GL_SYNC_POINT_SIZE_CHROMIUM byte sized name.
67
68 The command
69
70 void WaitSyncTokenCHROMIUM(GLbyte *sync_token)
55 71
56 causes the current context to stop submitting commands until the specified 72 causes the current context to stop submitting commands until the specified
57 sync point becomes signaled. This is implemented as a server-side wait. 73 fence sync 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> 74 <sync_token> is a sync token generated by GenSyncPointCHROMIUM. If
59 isn't a valid sync point returned by InsertSyncPointCHROMIUM, or if the sync 75 <sync_token> isn't a valid sync token returned by GenSyncPointCHROMIUM, the
60 point has already been deleted, the command is equivalent to a no-op and no 76 command is equivalent to a no-op and no error is generated.
61 error is generated. 77
78 New Tokens
79
80 The size of a sync token name in bytes.
81
82 GL_SYNC_TOKEN_SIZE_CHROMIUM 12
62 83
63 Errors 84 Errors
64 85
65 None. 86 INVALID_VALUE is generated if the <fence_sync> parameter of
87 GenSyncPointCHROMIUM is not a valid local fence sync name.
88
89 INVALID_OPERATION is generated if the <fence_sync> parameter of
90 GenSyncPointCHROMIUM has not been flushed to the server.
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 Modified functions to InsertFenceSyncCHROMIUM,
101 GenSyncTokenCHROMIUM, and WaitSyncTokenCHROMIUM.
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