~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/gpu/afbc.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/gpu/afbc.rst (Version linux-6.12-rc7) and /Documentation/gpu/afbc.rst (Version linux-4.20.17)


  1 .. SPDX-License-Identifier: GPL-2.0+              
  2                                                   
  3 ===================================               
  4  Arm Framebuffer Compression (AFBC)               
  5 ===================================               
  6                                                   
  7 AFBC is a proprietary lossless image compressi    
  8 It provides fine-grained random access and min    
  9 data transferred between IP blocks.               
 10                                                   
 11 AFBC can be enabled on drivers which support i    
 12 format modifiers defined in drm_fourcc.h. See     
 13                                                   
 14 All users of the AFBC modifiers must follow th    
 15 out in this document, to ensure compatibility     
 16 producers and consumers.                          
 17                                                   
 18 Components and Ordering                           
 19 =======================                           
 20                                                   
 21 AFBC streams can contain several components -     
 22 corresponds to a color channel (i.e. R, G, B,     
 23 The assignment of input/output color channels     
 24 between the encoder and the decoder for correc    
 25 the consumer will interpret the decoded data i    
 26                                                   
 27 Furthermore, when the lossless colorspace tran    
 28 (AFBC_FORMAT_MOD_YTR, which should be enabled     
 29 maximum compression efficiency), the component    
 30                                                   
 31  * Component 0: R                                 
 32  * Component 1: G                                 
 33  * Component 2: B                                 
 34                                                   
 35 The component ordering is communicated via the    
 36 fourcc:modifier pair. In general, component '0    
 37 reside in the least-significant bits of the co    
 38 format. For example, COMP(bits):                  
 39                                                   
 40  * DRM_FORMAT_ABGR8888                            
 41                                                   
 42    * Component 0: R(8)                            
 43    * Component 1: G(8)                            
 44    * Component 2: B(8)                            
 45    * Component 3: A(8)                            
 46                                                   
 47  * DRM_FORMAT_BGR888                              
 48                                                   
 49    * Component 0: R(8)                            
 50    * Component 1: G(8)                            
 51    * Component 2: B(8)                            
 52                                                   
 53  * DRM_FORMAT_YUYV                                
 54                                                   
 55    * Component 0: Y(8)                            
 56    * Component 1: Cb(8, 2x1 subsampled)           
 57    * Component 2: Cr(8, 2x1 subsampled)           
 58                                                   
 59 In AFBC, 'X' components are not treated any di    
 60 component. Therefore, an AFBC buffer with four    
 61 encodes with 4 components, like so:               
 62                                                   
 63  * DRM_FORMAT_XBGR8888                            
 64                                                   
 65    * Component 0: R(8)                            
 66    * Component 1: G(8)                            
 67    * Component 2: B(8)                            
 68    * Component 3: X(8)                            
 69                                                   
 70 Please note, however, that the inclusion of a     
 71 bad for compression efficiency, and so it's re    
 72 formats containing 'X' bits. If a fourth compo    
 73 required/expected by the encoder/decoder, then    
 74 instead use an equivalent format with alpha, s    
 75 '1'. If there is no requirement for a fourth c    
 76 which doesn't include alpha can be used, e.g.     
 77                                                   
 78 Number of Planes                                  
 79 ================                                  
 80                                                   
 81 Formats which are typically multi-planar in li    
 82 420), can be encoded into one, or multiple, AF    
 83 component order, the encoder and decoder must     
 84 of planes in order to correctly decode the buf    
 85 used to determine the number of encoded planes    
 86 matching the number of planes for the linear (    
 87 Within each plane, the component ordering also    
 88 code:                                             
 89                                                   
 90 For example:                                      
 91                                                   
 92  * DRM_FORMAT_YUYV: nplanes = 1                   
 93                                                   
 94    * Plane 0:                                     
 95                                                   
 96      * Component 0: Y(8)                          
 97      * Component 1: Cb(8, 2x1 subsampled)         
 98      * Component 2: Cr(8, 2x1 subsampled)         
 99                                                   
100  * DRM_FORMAT_NV12: nplanes = 2                   
101                                                   
102    * Plane 0:                                     
103                                                   
104      * Component 0: Y(8)                          
105                                                   
106    * Plane 1:                                     
107                                                   
108      * Component 0: Cb(8, 2x1 subsampled)         
109      * Component 1: Cr(8, 2x1 subsampled)         
110                                                   
111 Cross-device interoperability                     
112 =============================                     
113                                                   
114 For maximum compatibility across devices, the     
115 canonical formats for use between AFBC-enabled    
116 are listed here must be used exactly as specif    
117 modifiers. Formats which are not listed should    
118                                                   
119 .. flat-table:: AFBC formats                      
120                                                   
121    * - Fourcc code                                
122      - Description                                
123      - Planes/Components                          
124                                                   
125    * - DRM_FORMAT_ABGR2101010                     
126      - 10-bit per component RGB, with 2-bit al    
127      - Plane 0: 4 components                      
128               * Component 0: R(10)                
129               * Component 1: G(10)                
130               * Component 2: B(10)                
131               * Component 3: A(2)                 
132                                                   
133    * - DRM_FORMAT_ABGR8888                        
134      - 8-bit per component RGB, with 8-bit alp    
135      - Plane 0: 4 components                      
136               * Component 0: R(8)                 
137               * Component 1: G(8)                 
138               * Component 2: B(8)                 
139               * Component 3: A(8)                 
140                                                   
141    * - DRM_FORMAT_BGR888                          
142      - 8-bit per component RGB                    
143      - Plane 0: 3 components                      
144               * Component 0: R(8)                 
145               * Component 1: G(8)                 
146               * Component 2: B(8)                 
147                                                   
148    * - DRM_FORMAT_BGR565                          
149      - 5/6-bit per component RGB                  
150      - Plane 0: 3 components                      
151               * Component 0: R(5)                 
152               * Component 1: G(6)                 
153               * Component 2: B(5)                 
154                                                   
155    * - DRM_FORMAT_ABGR1555                        
156      - 5-bit per component RGB, with 1-bit alp    
157      - Plane 0: 4 components                      
158               * Component 0: R(5)                 
159               * Component 1: G(5)                 
160               * Component 2: B(5)                 
161               * Component 3: A(1)                 
162                                                   
163    * - DRM_FORMAT_VUY888                          
164      - 8-bit per component YCbCr 444, single p    
165      - Plane 0: 3 components                      
166               * Component 0: Y(8)                 
167               * Component 1: Cb(8)                
168               * Component 2: Cr(8)                
169                                                   
170    * - DRM_FORMAT_VUY101010                       
171      - 10-bit per component YCbCr 444, single     
172      - Plane 0: 3 components                      
173               * Component 0: Y(10)                
174               * Component 1: Cb(10)               
175               * Component 2: Cr(10)               
176                                                   
177    * - DRM_FORMAT_YUYV                            
178      - 8-bit per component YCbCr 422, single p    
179      - Plane 0: 3 components                      
180               * Component 0: Y(8)                 
181               * Component 1: Cb(8, 2x1 subsamp    
182               * Component 2: Cr(8, 2x1 subsamp    
183                                                   
184    * - DRM_FORMAT_NV16                            
185      - 8-bit per component YCbCr 422, two plan    
186      - Plane 0: 1 component                       
187               * Component 0: Y(8)                 
188        Plane 1: 2 components                      
189               * Component 0: Cb(8, 2x1 subsamp    
190               * Component 1: Cr(8, 2x1 subsamp    
191                                                   
192    * - DRM_FORMAT_Y210                            
193      - 10-bit per component YCbCr 422, single     
194      - Plane 0: 3 components                      
195               * Component 0: Y(10)                
196               * Component 1: Cb(10, 2x1 subsam    
197               * Component 2: Cr(10, 2x1 subsam    
198                                                   
199    * - DRM_FORMAT_P210                            
200      - 10-bit per component YCbCr 422, two pla    
201      - Plane 0: 1 component                       
202               * Component 0: Y(10)                
203        Plane 1: 2 components                      
204               * Component 0: Cb(10, 2x1 subsam    
205               * Component 1: Cr(10, 2x1 subsam    
206                                                   
207    * - DRM_FORMAT_YUV420_8BIT                     
208      - 8-bit per component YCbCr 420, single p    
209      - Plane 0: 3 components                      
210               * Component 0: Y(8)                 
211               * Component 1: Cb(8, 2x2 subsamp    
212               * Component 2: Cr(8, 2x2 subsamp    
213                                                   
214    * - DRM_FORMAT_YUV420_10BIT                    
215      - 10-bit per component YCbCr 420, single     
216      - Plane 0: 3 components                      
217               * Component 0: Y(10)                
218               * Component 1: Cb(10, 2x2 subsam    
219               * Component 2: Cr(10, 2x2 subsam    
220                                                   
221    * - DRM_FORMAT_NV12                            
222      - 8-bit per component YCbCr 420, two plan    
223      - Plane 0: 1 component                       
224               * Component 0: Y(8)                 
225        Plane 1: 2 components                      
226               * Component 0: Cb(8, 2x2 subsamp    
227               * Component 1: Cr(8, 2x2 subsamp    
228                                                   
229    * - DRM_FORMAT_P010                            
230      - 10-bit per component YCbCr 420, two pla    
231      - Plane 0: 1 component                       
232               * Component 0: Y(10)                
233        Plane 1: 2 components                      
234               * Component 0: Cb(10, 2x2 subsam    
235               * Component 1: Cr(10, 2x2 subsam    
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php