• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Name
2
3    NV_stream_dma
4
5Name Strings
6
7    EGL_NV_stream_dma
8
9Contributors
10
11    Santanu Thangaraj
12    Daniel Kartch
13    Arihant Jejani
14
15Contacts
16
17    Santanu Thangaraj, NVIDIA (sthangaraj 'at' nvidia.com)
18    Arihant Jejani, NVIDIA (ajejani 'at' nvidia.com)
19
20Status
21
22    Draft
23
24Version
25
26    Version 1 - April 15, 2019
27
28Number
29
30    135
31
32Extension Type
33
34    EGL display extension
35
36Dependencies
37
38    Requires EGL_NV_stream_remote extension.
39
40    Requires EGL_NV_stream_cross_system extension.
41
42    Interacts with EGL_NV_stream_socket extensions.
43
44Overview:
45
46    This extension provides the framework for performing DMA transfers
47    between opposite ends of a single stream, if there is no shared
48    memory available between them.
49
50    In case of cross system streams the buffer contents of one end of
51    the stream is transferred to other end using sockets by
52    EGL_NV_stream_socket extension. Transferring buffer contents
53    through sockets is slower compared to DMA transfers. Since DMA
54    transfers have higher throughput compared to sockets, using
55    EGL_NV_stream_dma extension, applications can request EGL to
56    utilize DMA channels to perform buffer copies.
57
58New types
59
60    None
61
62New Procedures and functions
63
64    None
65
66New Tokens
67
68    Accepted as attribute names in eglCreateStreamKHR,
69    eglCreateStreamAttribKHR, eglQueryStreamKHR, and
70    eglQueryStreamAttribKHR:
71
72    EGL_STREAM_DMA_NV                         0x3371
73    EGL_STREAM_DMA_SERVER_NV                  0x3372
74
75Add to list of failures in section "3.10.1 Creating an EGLStream" in
76EGL_KHR stream:
77    - EGL_BAD_MATCH is generated if the value of EGL_STREAM_DMA_NV is
78      neither EGL_TRUE nor EGL_FALSE.
79    - EGL_BAD_MATCH is generated if the value of
80      EGL_STREAM_DMA_SERVER_NV is not EGL_DONT_CARE or a valid
81      DMA server identifier as defined by the platform.
82
83Add to "Table 3.10.4.4 EGLStream Attributes" in EGL_KHR_stream:
84
85    Attribute                 Read/Write   Type              Section
86    ------------------------ -----------   ------            ----------
87    EGL_STREAM_DMA_NV            io       EGLint             3.10.4.x
88    EGL_STREAM_DMA_SERVER_NV     io       platform dependent 3.10.4.x+1
89
90Add new subsections to the end of section "3.10.4 EGLStream Attributes"
91in EGL_KHR_stream:
92
93    3.10.4.x EGL_STREAM_DMA_NV Attribute
94
95    The EGL_STREAM_DMA_NV attribute may be set when the stream is
96    created, and indicates whether the DMA channels have to be used to
97    transfer the buffer contents from producer to consumer. Legal
98    values are EGL_TRUE or EGL_FALSE. The default value is EGL_FALSE.
99
100    A value of EGL_TRUE indicates that EGL has to use DMA channels to
101    transfer buffers from producer to consumer.
102
103    If EGL_FALSE is specified, DMA channels will not be utilized for
104    buffer transfers.
105
106    3.10.4.x+1 EGL_STREAM_DMA_SERVER_NV Attribute
107
108    The EGL_STREAM_DMA_SERVER_NV attribute is a platform dependent
109    identifier which may be set when the stream is created and it
110    indicates the server, which must be contacted to handle DMA
111    transfers, if that server is not local. Legal values, aside from
112    EGL_DONT_CARE, are determined by the implementation. The default
113    value is EGL_DONT_CARE.
114
115Issues
116
117    1.  What happens when application requests DMA copy using
118        EGL_STREAM_DMA_NV attribute in eglCreateStreamKHR or
119        eglCreateStreamAttribKHR API, but the system does not support
120        access to DMA channels?
121
122        RESOLVED: The functions return EGL_NO_STREAM_KHR and
123        EGL_BAD_ATTRIBUTE error is set.
124
125    2.  What happens when application requests DMA copy using
126        EGL_STREAM_DMA_NV attribute in eglCreateStreamKHR or
127        eglCreateStreamAttribKHR API, and the system supports DMA
128        channels, but currently none of the channels are available for
129        use?
130
131        RESOLVED: The functions return EGL_NO_STREAM_KHR and
132        EGL_BAD_ATTRIBUTE error is set.
133
134Revision History
135
136    #1  (April 15, 2019) Santanu Thangaraj
137        - Initial version
138