Subversion Repositories Kolibri OS

Rev

Rev 5068 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5068 Rev 6110
Line 125... Line 125...
125
#define DRM_FORMAT_YUV422	fourcc_code('Y', 'U', '1', '6') /* 2x1 subsampled Cb (1) and Cr (2) planes */
125
#define DRM_FORMAT_YUV422	fourcc_code('Y', 'U', '1', '6') /* 2x1 subsampled Cb (1) and Cr (2) planes */
126
#define DRM_FORMAT_YVU422	fourcc_code('Y', 'V', '1', '6') /* 2x1 subsampled Cr (1) and Cb (2) planes */
126
#define DRM_FORMAT_YVU422	fourcc_code('Y', 'V', '1', '6') /* 2x1 subsampled Cr (1) and Cb (2) planes */
127
#define DRM_FORMAT_YUV444	fourcc_code('Y', 'U', '2', '4') /* non-subsampled Cb (1) and Cr (2) planes */
127
#define DRM_FORMAT_YUV444	fourcc_code('Y', 'U', '2', '4') /* non-subsampled Cb (1) and Cr (2) planes */
128
#define DRM_FORMAT_YVU444	fourcc_code('Y', 'V', '2', '4') /* non-subsampled Cr (1) and Cb (2) planes */
128
#define DRM_FORMAT_YVU444	fourcc_code('Y', 'V', '2', '4') /* non-subsampled Cr (1) and Cb (2) planes */
Line -... Line 129...
-
 
129
 
-
 
130
 
-
 
131
/*
-
 
132
 * Format Modifiers:
-
 
133
 *
-
 
134
 * Format modifiers describe, typically, a re-ordering or modification
-
 
135
 * of the data in a plane of an FB.  This can be used to express tiled/
-
 
136
 * swizzled formats, or compression, or a combination of the two.
-
 
137
 *
-
 
138
 * The upper 8 bits of the format modifier are a vendor-id as assigned
-
 
139
 * below.  The lower 56 bits are assigned as vendor sees fit.
-
 
140
 */
-
 
141
 
-
 
142
/* Vendor Ids: */
-
 
143
#define DRM_FORMAT_MOD_NONE           0
-
 
144
#define DRM_FORMAT_MOD_VENDOR_INTEL   0x01
-
 
145
#define DRM_FORMAT_MOD_VENDOR_AMD     0x02
-
 
146
#define DRM_FORMAT_MOD_VENDOR_NV      0x03
-
 
147
#define DRM_FORMAT_MOD_VENDOR_SAMSUNG 0x04
-
 
148
#define DRM_FORMAT_MOD_VENDOR_QCOM    0x05
-
 
149
/* add more to the end as needed */
-
 
150
 
-
 
151
#define fourcc_mod_code(vendor, val) \
-
 
152
	((((__u64)DRM_FORMAT_MOD_VENDOR_## vendor) << 56) | (val & 0x00ffffffffffffffULL))
-
 
153
 
-
 
154
/*
-
 
155
 * Format Modifier tokens:
-
 
156
 *
-
 
157
 * When adding a new token please document the layout with a code comment,
-
 
158
 * similar to the fourcc codes above. drm_fourcc.h is considered the
-
 
159
 * authoritative source for all of these.
-
 
160
 */
-
 
161
 
-
 
162
/* Intel framebuffer modifiers */
-
 
163
 
-
 
164
/*
-
 
165
 * Intel X-tiling layout
-
 
166
 *
-
 
167
 * This is a tiled layout using 4Kb tiles (except on gen2 where the tiles 2Kb)
-
 
168
 * in row-major layout. Within the tile bytes are laid out row-major, with
-
 
169
 * a platform-dependent stride. On top of that the memory can apply
-
 
170
 * platform-depending swizzling of some higher address bits into bit6.
-
 
171
 *
-
 
172
 * This format is highly platforms specific and not useful for cross-driver
-
 
173
 * sharing. It exists since on a given platform it does uniquely identify the
-
 
174
 * layout in a simple way for i915-specific userspace.
-
 
175
 */
-
 
176
#define I915_FORMAT_MOD_X_TILED	fourcc_mod_code(INTEL, 1)
-
 
177
 
-
 
178
/*
-
 
179
 * Intel Y-tiling layout
-
 
180
 *
-
 
181
 * This is a tiled layout using 4Kb tiles (except on gen2 where the tiles 2Kb)
-
 
182
 * in row-major layout. Within the tile bytes are laid out in OWORD (16 bytes)
-
 
183
 * chunks column-major, with a platform-dependent height. On top of that the
-
 
184
 * memory can apply platform-depending swizzling of some higher address bits
-
 
185
 * into bit6.
-
 
186
 *
-
 
187
 * This format is highly platforms specific and not useful for cross-driver
-
 
188
 * sharing. It exists since on a given platform it does uniquely identify the
-
 
189
 * layout in a simple way for i915-specific userspace.
-
 
190
 */
-
 
191
#define I915_FORMAT_MOD_Y_TILED	fourcc_mod_code(INTEL, 2)
-
 
192
 
-
 
193
/*
-
 
194
 * Intel Yf-tiling layout
-
 
195
 *
-
 
196
 * This is a tiled layout using 4Kb tiles in row-major layout.
-
 
197
 * Within the tile pixels are laid out in 16 256 byte units / sub-tiles which
-
 
198
 * are arranged in four groups (two wide, two high) with column-major layout.
-
 
199
 * Each group therefore consits out of four 256 byte units, which are also laid
-
 
200
 * out as 2x2 column-major.
-
 
201
 * 256 byte units are made out of four 64 byte blocks of pixels, producing
-
 
202
 * either a square block or a 2:1 unit.
-
 
203
 * 64 byte blocks of pixels contain four pixel rows of 16 bytes, where the width
-
 
204
 * in pixel depends on the pixel depth.
-
 
205
 */
-
 
206
#define I915_FORMAT_MOD_Yf_TILED fourcc_mod_code(INTEL, 3)
-
 
207
 
-
 
208
/*
-
 
209
 * Tiled, NV12MT, grouped in 64 (pixels) x 32 (lines) -sized macroblocks
-
 
210
 *
-
 
211
 * Macroblocks are laid in a Z-shape, and each pixel data is following the
-
 
212
 * standard NV12 style.
-
 
213
 * As for NV12, an image is the result of two frame buffers: one for Y,
-
 
214
 * one for the interleaved Cb/Cr components (1/2 the height of the Y buffer).
-
 
215
 * Alignment requirements are (for each buffer):
-
 
216
 * - multiple of 128 pixels for the width
-
 
217
 * - multiple of  32 pixels for the height
-
 
218
 *
-
 
219
 * For more information: see http://linuxtv.org/downloads/v4l-dvb-apis/re32.html
-
 
220
 */
-
 
221
#define DRM_FORMAT_MOD_SAMSUNG_64_32_TILE	fourcc_mod_code(SAMSUNG, 1)
129
 
222