i915_drm.h
001: 
002: 
003: 
004: 
005: 
006: 
007: 
008: 
009: 
010: 
011: 
012: 
013: 
014: 
015: 
016: 
017: 
018: 
019: 
020: 
021: 
022: 
023: 
024: 
025: 
026: 
027: #ifndef _I915_DRM_H_
028: #define _I915_DRM_H_
029: 
030: #include <drm/drm.h>
031: 
032: 
033: 
034: 
035: 
036: 
037: 
038: 
039: #define I915_NR_TEX_REGIONS 255 
040: 
041: #define I915_LOG_MIN_TEX_REGION_SIZE 14
042: 
043: typedef struct _drm_i915_init {
044:         enum {
045:                 I915_INIT_DMA = 0x01,
046:                 I915_CLEANUP_DMA = 0x02,
047:                 I915_RESUME_DMA = 0x03
048:         } func;
049:         unsigned int mmio_offset;
050:         int sarea_priv_offset;
051:         unsigned int ring_start;
052:         unsigned int ring_end;
053:         unsigned int ring_size;
054:         unsigned int front_offset;
055:         unsigned int back_offset;
056:         unsigned int depth_offset;
057:         unsigned int w;
058:         unsigned int h;
059:         unsigned int pitch;
060:         unsigned int pitch_bits;
061:         unsigned int back_pitch;
062:         unsigned int depth_pitch;
063:         unsigned int cpp;
064:         unsigned int chipset;
065: } drm_i915_init_t;
066: 
067: typedef struct _drm_i915_sarea {
068:         struct drm_tex_region texList[I915_NR_TEX_REGIONS + 1];
069:         int last_upload;        
070:         int last_enqueue;       
071:         int last_dispatch;      
072:         int ctxOwner;           
073:         int texAge;
074:         int pf_enabled;         
075:         int pf_active;
076:         int pf_current_page;    
077:         int perf_boxes;         
078:         int width, height;      
079: 
080:         drm_handle_t front_handle;
081:         int front_offset;
082:         int front_size;
083: 
084:         drm_handle_t back_handle;
085:         int back_offset;
086:         int back_size;
087: 
088:         drm_handle_t depth_handle;
089:         int depth_offset;
090:         int depth_size;
091: 
092:         drm_handle_t tex_handle;
093:         int tex_offset;
094:         int tex_size;
095:         int log_tex_granularity;
096:         int pitch;
097:         int rotation;           
098:         int rotated_offset;
099:         int rotated_size;
100:         int rotated_pitch;
101:         int virtualX, virtualY;
102: 
103:         unsigned int front_tiled;
104:         unsigned int back_tiled;
105:         unsigned int depth_tiled;
106:         unsigned int rotated_tiled;
107:         unsigned int rotated2_tiled;
108: 
109:         int pipeA_x;
110:         int pipeA_y;
111:         int pipeA_w;
112:         int pipeA_h;
113:         int pipeB_x;
114:         int pipeB_y;
115:         int pipeB_w;
116:         int pipeB_h;
117: 
118:         
119:         drm_handle_t unused_handle;
120:         __u32 unused1, unused2, unused3;
121: 
122:         
123: 
124: 
125:         __u32 front_bo_handle;
126:         __u32 back_bo_handle;
127:         __u32 unused_bo_handle;
128:         __u32 depth_bo_handle;
129: 
130: } drm_i915_sarea_t;
131: 
132: 
133: #define planeA_x pipeA_x
134: #define planeA_y pipeA_y
135: #define planeA_w pipeA_w
136: #define planeA_h pipeA_h
137: #define planeB_x pipeB_x
138: #define planeB_y pipeB_y
139: #define planeB_w pipeB_w
140: #define planeB_h pipeB_h
141: 
142: 
143: 
144: #define I915_BOX_RING_EMPTY    0x1
145: #define I915_BOX_FLIP          0x2
146: #define I915_BOX_WAIT          0x4
147: #define I915_BOX_TEXTURE_LOAD  0x8
148: #define I915_BOX_LOST_CONTEXT  0x10
149: 
150: 
151: 
152: 
153: #define DRM_I915_INIT           0x00
154: #define DRM_I915_FLUSH          0x01
155: #define DRM_I915_FLIP           0x02
156: #define DRM_I915_BATCHBUFFER    0x03
157: #define DRM_I915_IRQ_EMIT       0x04
158: #define DRM_I915_IRQ_WAIT       0x05
159: #define DRM_I915_GETPARAM       0x06
160: #define DRM_I915_SETPARAM       0x07
161: #define DRM_I915_ALLOC          0x08
162: #define DRM_I915_FREE           0x09
163: #define DRM_I915_INIT_HEAP      0x0a
164: #define DRM_I915_CMDBUFFER      0x0b
165: #define DRM_I915_DESTROY_HEAP   0x0c
166: #define DRM_I915_SET_VBLANK_PIPE        0x0d
167: #define DRM_I915_GET_VBLANK_PIPE        0x0e
168: #define DRM_I915_VBLANK_SWAP    0x0f
169: #define DRM_I915_HWS_ADDR       0x11
170: #define DRM_I915_GEM_INIT       0x13
171: #define DRM_I915_GEM_EXECBUFFER 0x14
172: #define DRM_I915_GEM_PIN        0x15
173: #define DRM_I915_GEM_UNPIN      0x16
174: #define DRM_I915_GEM_BUSY       0x17
175: #define DRM_I915_GEM_THROTTLE   0x18
176: #define DRM_I915_GEM_ENTERVT    0x19
177: #define DRM_I915_GEM_LEAVEVT    0x1a
178: #define DRM_I915_GEM_CREATE     0x1b
179: #define DRM_I915_GEM_PREAD      0x1c
180: #define DRM_I915_GEM_PWRITE     0x1d
181: #define DRM_I915_GEM_MMAP       0x1e
182: #define DRM_I915_GEM_SET_DOMAIN 0x1f
183: #define DRM_I915_GEM_SW_FINISH  0x20
184: #define DRM_I915_GEM_SET_TILING 0x21
185: #define DRM_I915_GEM_GET_TILING 0x22
186: #define DRM_I915_GEM_GET_APERTURE 0x23
187: #define DRM_I915_GEM_MMAP_GTT   0x24
188: #define DRM_I915_GET_PIPE_FROM_CRTC_ID  0x25
189: #define DRM_I915_GEM_MADVISE    0x26
190: #define DRM_I915_OVERLAY_PUT_IMAGE      0x27
191: #define DRM_I915_OVERLAY_ATTRS  0x28
192: #define DRM_I915_GEM_EXECBUFFER2        0x29
193: 
194: #define DRM_IOCTL_I915_INIT             DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t)
195: #define DRM_IOCTL_I915_FLUSH            DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLUSH)
196: #define DRM_IOCTL_I915_FLIP             DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLIP)
197: #define DRM_IOCTL_I915_BATCHBUFFER      DRM_IOW( DRM_COMMAND_BASE + DRM_I915_BATCHBUFFER, drm_i915_batchbuffer_t)
198: #define DRM_IOCTL_I915_IRQ_EMIT         DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_IRQ_EMIT, drm_i915_irq_emit_t)
199: #define DRM_IOCTL_I915_IRQ_WAIT         DRM_IOW( DRM_COMMAND_BASE + DRM_I915_IRQ_WAIT, drm_i915_irq_wait_t)
200: #define DRM_IOCTL_I915_GETPARAM         DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GETPARAM, drm_i915_getparam_t)
201: #define DRM_IOCTL_I915_SETPARAM         DRM_IOW( DRM_COMMAND_BASE + DRM_I915_SETPARAM, drm_i915_setparam_t)
202: #define DRM_IOCTL_I915_ALLOC            DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_ALLOC, drm_i915_mem_alloc_t)
203: #define DRM_IOCTL_I915_FREE             DRM_IOW( DRM_COMMAND_BASE + DRM_I915_FREE, drm_i915_mem_free_t)
204: #define DRM_IOCTL_I915_INIT_HEAP        DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT_HEAP, drm_i915_mem_init_heap_t)
205: #define DRM_IOCTL_I915_CMDBUFFER        DRM_IOW( DRM_COMMAND_BASE + DRM_I915_CMDBUFFER, drm_i915_cmdbuffer_t)
206: #define DRM_IOCTL_I915_DESTROY_HEAP     DRM_IOW( DRM_COMMAND_BASE + DRM_I915_DESTROY_HEAP, drm_i915_mem_destroy_heap_t)
207: #define DRM_IOCTL_I915_SET_VBLANK_PIPE  DRM_IOW( DRM_COMMAND_BASE + DRM_I915_SET_VBLANK_PIPE, drm_i915_vblank_pipe_t)
208: #define DRM_IOCTL_I915_GET_VBLANK_PIPE  DRM_IOR( DRM_COMMAND_BASE + DRM_I915_GET_VBLANK_PIPE, drm_i915_vblank_pipe_t)
209: #define DRM_IOCTL_I915_VBLANK_SWAP      DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_VBLANK_SWAP, drm_i915_vblank_swap_t)
210: #define DRM_IOCTL_I915_HWS_ADDR         DRM_IOW(DRM_COMMAND_BASE + DRM_I915_HWS_ADDR, struct drm_i915_gem_init)
211: #define DRM_IOCTL_I915_GEM_INIT         DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_INIT, struct drm_i915_gem_init)
212: #define DRM_IOCTL_I915_GEM_EXECBUFFER   DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_EXECBUFFER, struct drm_i915_gem_execbuffer)
213: #define DRM_IOCTL_I915_GEM_EXECBUFFER2  DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_EXECBUFFER2, struct drm_i915_gem_execbuffer2)
214: #define DRM_IOCTL_I915_GEM_PIN          DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_PIN, struct drm_i915_gem_pin)
215: #define DRM_IOCTL_I915_GEM_UNPIN        DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_UNPIN, struct drm_i915_gem_unpin)
216: #define DRM_IOCTL_I915_GEM_BUSY         DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_BUSY, struct drm_i915_gem_busy)
217: #define DRM_IOCTL_I915_GEM_THROTTLE     DRM_IO ( DRM_COMMAND_BASE + DRM_I915_GEM_THROTTLE)
218: #define DRM_IOCTL_I915_GEM_ENTERVT      DRM_IO(DRM_COMMAND_BASE + DRM_I915_GEM_ENTERVT)
219: #define DRM_IOCTL_I915_GEM_LEAVEVT      DRM_IO(DRM_COMMAND_BASE + DRM_I915_GEM_LEAVEVT)
220: #define DRM_IOCTL_I915_GEM_CREATE       DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_CREATE, struct drm_i915_gem_create)
221: #define DRM_IOCTL_I915_GEM_PREAD        DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_PREAD, struct drm_i915_gem_pread)
222: #define DRM_IOCTL_I915_GEM_PWRITE       DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_PWRITE, struct drm_i915_gem_pwrite)
223: #define DRM_IOCTL_I915_GEM_MMAP         DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_MMAP, struct drm_i915_gem_mmap)
224: #define DRM_IOCTL_I915_GEM_MMAP_GTT     DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_MMAP_GTT, struct drm_i915_gem_mmap_gtt)
225: #define DRM_IOCTL_I915_GEM_SET_DOMAIN   DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_SET_DOMAIN, struct drm_i915_gem_set_domain)
226: #define DRM_IOCTL_I915_GEM_SW_FINISH    DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_SW_FINISH, struct drm_i915_gem_sw_finish)
227: #define DRM_IOCTL_I915_GEM_SET_TILING   DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_SET_TILING, struct drm_i915_gem_set_tiling)
228: #define DRM_IOCTL_I915_GEM_GET_TILING   DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_GET_TILING, struct drm_i915_gem_get_tiling)
229: #define DRM_IOCTL_I915_GEM_GET_APERTURE DRM_IOR  (DRM_COMMAND_BASE + DRM_I915_GEM_GET_APERTURE, struct drm_i915_gem_get_aperture)
230: #define DRM_IOCTL_I915_GET_PIPE_FROM_CRTC_ID DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GET_PIPE_FROM_CRTC_ID, struct drm_i915_get_pipe_from_crtc_id)
231: #define DRM_IOCTL_I915_GEM_MADVISE      DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_MADVISE, struct drm_i915_gem_madvise)
232: #define DRM_IOCTL_I915_OVERLAY_PUT_IMAGE        DRM_IOW(DRM_COMMAND_BASE + DRM_I915_OVERLAY_PUT_IMAGE, struct drm_intel_overlay_put_image)
233: #define DRM_IOCTL_I915_OVERLAY_ATTRS    DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_OVERLAY_ATTRS, struct drm_intel_overlay_attrs)
234: 
235: 
236: 
237: 
238: typedef struct drm_i915_batchbuffer {
239:         int start;              
240:         int used;               
241:         int DR1;                
242:         int DR4;                
243:         int num_cliprects;      
244:         struct drm_clip_rect *cliprects;        
245: } drm_i915_batchbuffer_t;
246: 
247: 
248: 
249: 
250: typedef struct _drm_i915_cmdbuffer {
251:         char *buf;      
252:         int sz;                 
253:         int DR1;                
254:         int DR4;                
255:         int num_cliprects;      
256:         struct drm_clip_rect *cliprects;        
257: } drm_i915_cmdbuffer_t;
258: 
259: 
260: 
261: typedef struct drm_i915_irq_emit {
262:         int *irq_seq;
263: } drm_i915_irq_emit_t;
264: 
265: typedef struct drm_i915_irq_wait {
266:         int irq_seq;
267: } drm_i915_irq_wait_t;
268: 
269: 
270: 
271: #define I915_PARAM_IRQ_ACTIVE            1
272: #define I915_PARAM_ALLOW_BATCHBUFFER     2
273: #define I915_PARAM_LAST_DISPATCH         3
274: #define I915_PARAM_CHIPSET_ID            4
275: #define I915_PARAM_HAS_GEM               5
276: #define I915_PARAM_NUM_FENCES_AVAIL      6
277: #define I915_PARAM_HAS_OVERLAY           7
278: #define I915_PARAM_HAS_PAGEFLIPPING      8
279: #define I915_PARAM_HAS_EXECBUF2          9
280: #define I915_PARAM_HAS_BSD               10
281: #define I915_PARAM_HAS_BLT               11
282: #define I915_PARAM_HAS_RELAXED_FENCING   12
283: #define I915_PARAM_HAS_COHERENT_RINGS    13
284: #define I915_PARAM_HAS_EXEC_CONSTANTS    14
285: #define I915_PARAM_HAS_RELAXED_DELTA     15
286: #define I915_PARAM_HAS_GEN7_SOL_RESET    16
287: 
288: typedef struct drm_i915_getparam {
289:         int param;
290:         int *value;
291: } drm_i915_getparam_t;
292: 
293: 
294: 
295: #define I915_SETPARAM_USE_MI_BATCHBUFFER_START            1
296: #define I915_SETPARAM_TEX_LRU_LOG_GRANULARITY             2
297: #define I915_SETPARAM_ALLOW_BATCHBUFFER                   3
298: #define I915_SETPARAM_NUM_USED_FENCES                     4
299: 
300: typedef struct drm_i915_setparam {
301:         int param;
302:         int value;
303: } drm_i915_setparam_t;
304: 
305: 
306: 
307: #define I915_MEM_REGION_AGP 1
308: 
309: typedef struct drm_i915_mem_alloc {
310:         int region;
311:         int alignment;
312:         int size;
313:         int *region_offset;     
314: } drm_i915_mem_alloc_t;
315: 
316: typedef struct drm_i915_mem_free {
317:         int region;
318:         int region_offset;
319: } drm_i915_mem_free_t;
320: 
321: typedef struct drm_i915_mem_init_heap {
322:         int region;
323:         int size;
324:         int start;
325: } drm_i915_mem_init_heap_t;
326: 
327: 
328: 
329: 
330: typedef struct drm_i915_mem_destroy_heap {
331:         int region;
332: } drm_i915_mem_destroy_heap_t;
333: 
334: 
335: 
336: #define DRM_I915_VBLANK_PIPE_A  1
337: #define DRM_I915_VBLANK_PIPE_B  2
338: 
339: typedef struct drm_i915_vblank_pipe {
340:         int pipe;
341: } drm_i915_vblank_pipe_t;
342: 
343: 
344: 
345: typedef struct drm_i915_vblank_swap {
346:         drm_drawable_t drawable;
347:         enum drm_vblank_seq_type seqtype;
348:         unsigned int sequence;
349: } drm_i915_vblank_swap_t;
350: 
351: typedef struct drm_i915_hws_addr {
352:         __u64 addr;
353: } drm_i915_hws_addr_t;
354: 
355: struct drm_i915_gem_init {
356:         
357: 
358: 
359: 
360:         __u64 gtt_start;
361:         
362: 
363: 
364: 
365:         __u64 gtt_end;
366: };
367: 
368: struct drm_i915_gem_create {
369:         
370: 
371: 
372: 
373: 
374:         __u64 size;
375:         
376: 
377: 
378: 
379: 
380:         __u32 handle;
381:         __u32 pad;
382: };
383: 
384: struct drm_i915_gem_pread {
385:         
386:         __u32 handle;
387:         __u32 pad;
388:         
389:         __u64 offset;
390:         
391:         __u64 size;
392:         
393: 
394: 
395: 
396: 
397:         __u64 data_ptr;
398: };
399: 
400: struct drm_i915_gem_pwrite {
401:         
402:         __u32 handle;
403:         __u32 pad;
404:         
405:         __u64 offset;
406:         
407:         __u64 size;
408:         
409: 
410: 
411: 
412: 
413:         __u64 data_ptr;
414: };
415: 
416: struct drm_i915_gem_mmap {
417:         
418:         __u32 handle;
419:         __u32 pad;
420:         
421:         __u64 offset;
422:         
423: 
424: 
425: 
426: 
427:         __u64 size;
428:         
429: 
430: 
431: 
432: 
433:         __u64 addr_ptr;
434: };
435: 
436: struct drm_i915_gem_mmap_gtt {
437:         
438:         __u32 handle;
439:         __u32 pad;
440:         
441: 
442: 
443: 
444: 
445:         __u64 offset;
446: };
447: 
448: struct drm_i915_gem_set_domain {
449:         
450:         __u32 handle;
451: 
452:         
453:         __u32 read_domains;
454: 
455:         
456:         __u32 write_domain;
457: };
458: 
459: struct drm_i915_gem_sw_finish {
460:         
461:         __u32 handle;
462: };
463: 
464: struct drm_i915_gem_relocation_entry {
465:         
466: 
467: 
468: 
469: 
470: 
471: 
472: 
473:         __u32 target_handle;
474: 
475:         
476: 
477: 
478: 
479:         __u32 delta;
480: 
481:         
482:         __u64 offset;
483: 
484:         
485: 
486: 
487: 
488: 
489: 
490: 
491: 
492:         __u64 presumed_offset;
493: 
494:         
495: 
496: 
497:         __u32 read_domains;
498: 
499:         
500: 
501: 
502: 
503: 
504: 
505: 
506:         __u32 write_domain;
507: };
508: 
509: 
510: 
511: 
512: 
513: 
514: 
515: 
516: 
517: #define I915_GEM_DOMAIN_CPU             0x00000001
518: 
519: #define I915_GEM_DOMAIN_RENDER          0x00000002
520: 
521: #define I915_GEM_DOMAIN_SAMPLER         0x00000004
522: 
523: #define I915_GEM_DOMAIN_COMMAND         0x00000008
524: 
525: #define I915_GEM_DOMAIN_INSTRUCTION     0x00000010
526: 
527: #define I915_GEM_DOMAIN_VERTEX          0x00000020
528: 
529: #define I915_GEM_DOMAIN_GTT             0x00000040
530: 
531: 
532: struct drm_i915_gem_exec_object {
533:         
534: 
535: 
536: 
537:         __u32 handle;
538: 
539:         
540:         __u32 relocation_count;
541:         
542: 
543: 
544: 
545:         __u64 relocs_ptr;
546: 
547:         
548:         __u64 alignment;
549: 
550:         
551: 
552: 
553: 
554:         __u64 offset;
555: };
556: 
557: struct drm_i915_gem_execbuffer {
558:         
559: 
560: 
561: 
562: 
563: 
564: 
565: 
566: 
567: 
568:         __u64 buffers_ptr;
569:         __u32 buffer_count;
570: 
571:         
572:         __u32 batch_start_offset;
573:         
574:         __u32 batch_len;
575:         __u32 DR1;
576:         __u32 DR4;
577:         __u32 num_cliprects;
578:         
579:         __u64 cliprects_ptr;
580: };
581: 
582: struct drm_i915_gem_exec_object2 {
583:         
584: 
585: 
586: 
587:         __u32 handle;
588: 
589:         
590:         __u32 relocation_count;
591:         
592: 
593: 
594: 
595:         __u64 relocs_ptr;
596: 
597:         
598:         __u64 alignment;
599: 
600:         
601: 
602: 
603: 
604:         __u64 offset;
605: 
606: #define EXEC_OBJECT_NEEDS_FENCE (1<<0)
607:         __u64 flags;
608:         __u64 rsvd1;
609:         __u64 rsvd2;
610: };
611: 
612: struct drm_i915_gem_execbuffer2 {
613:         
614: 
615: 
616:         __u64 buffers_ptr;
617:         __u32 buffer_count;
618: 
619:         
620:         __u32 batch_start_offset;
621:         
622:         __u32 batch_len;
623:         __u32 DR1;
624:         __u32 DR4;
625:         __u32 num_cliprects;
626:         
627:         __u64 cliprects_ptr;
628: #define I915_EXEC_RING_MASK              (7<<0)
629: #define I915_EXEC_DEFAULT                (0<<0)
630: #define I915_EXEC_RENDER                 (1<<0)
631: #define I915_EXEC_BSD                    (2<<0)
632: #define I915_EXEC_BLT                    (3<<0)
633: 
634: 
635: 
636: 
637: 
638: 
639: 
640: #define I915_EXEC_CONSTANTS_MASK        (3<<6)
641: #define I915_EXEC_CONSTANTS_REL_GENERAL (0<<6) 
642: #define I915_EXEC_CONSTANTS_ABSOLUTE    (1<<6)
643: #define I915_EXEC_CONSTANTS_REL_SURFACE (2<<6) 
644:         __u64 flags;
645:         __u64 rsvd1;
646:         __u64 rsvd2;
647: };
648: 
649: 
650: #define I915_EXEC_GEN7_SOL_RESET        (1<<8)
651: 
652: struct drm_i915_gem_pin {
653:         
654:         __u32 handle;
655:         __u32 pad;
656: 
657:         
658:         __u64 alignment;
659: 
660:         
661:         __u64 offset;
662: };
663: 
664: struct drm_i915_gem_unpin {
665:         
666:         __u32 handle;
667:         __u32 pad;
668: };
669: 
670: struct drm_i915_gem_busy {
671:         
672:         __u32 handle;
673: 
674:         
675:         __u32 busy;
676: };
677: 
678: #define I915_TILING_NONE        0
679: #define I915_TILING_X           1
680: #define I915_TILING_Y           2
681: 
682: #define I915_BIT_6_SWIZZLE_NONE         0
683: #define I915_BIT_6_SWIZZLE_9            1
684: #define I915_BIT_6_SWIZZLE_9_10         2
685: #define I915_BIT_6_SWIZZLE_9_11         3
686: #define I915_BIT_6_SWIZZLE_9_10_11      4
687: 
688: #define I915_BIT_6_SWIZZLE_UNKNOWN      5
689: 
690: #define I915_BIT_6_SWIZZLE_9_17         6
691: #define I915_BIT_6_SWIZZLE_9_10_17      7
692: 
693: struct drm_i915_gem_set_tiling {
694:         
695:         __u32 handle;
696: 
697:         
698: 
699: 
700: 
701: 
702: 
703: 
704: 
705: 
706: 
707: 
708: 
709:         __u32 tiling_mode;
710: 
711:         
712: 
713: 
714: 
715:         __u32 stride;
716: 
717:         
718: 
719: 
720: 
721:         __u32 swizzle_mode;
722: };
723: 
724: struct drm_i915_gem_get_tiling {
725:         
726:         __u32 handle;
727: 
728:         
729: 
730: 
731: 
732:         __u32 tiling_mode;
733: 
734:         
735: 
736: 
737: 
738:         __u32 swizzle_mode;
739: };
740: 
741: struct drm_i915_gem_get_aperture {
742:         
743:         __u64 aper_size;
744: 
745:         
746: 
747: 
748: 
749:         __u64 aper_available_size;
750: };
751: 
752: struct drm_i915_get_pipe_from_crtc_id {
753:         
754:         __u32 crtc_id;
755: 
756:         
757:         __u32 pipe;
758: };
759: 
760: #define I915_MADV_WILLNEED 0
761: #define I915_MADV_DONTNEED 1
762: #define __I915_MADV_PURGED 2 
763: 
764: struct drm_i915_gem_madvise {
765:         
766:         __u32 handle;
767: 
768:         
769: 
770: 
771:         __u32 madv;
772: 
773:         
774:         __u32 retained;
775: };
776: 
777: 
778: #define I915_OVERLAY_TYPE_MASK          0xff
779: #define I915_OVERLAY_YUV_PLANAR         0x01
780: #define I915_OVERLAY_YUV_PACKED         0x02
781: #define I915_OVERLAY_RGB                0x03
782: 
783: #define I915_OVERLAY_DEPTH_MASK         0xff00
784: #define I915_OVERLAY_RGB24              0x1000
785: #define I915_OVERLAY_RGB16              0x2000
786: #define I915_OVERLAY_RGB15              0x3000
787: #define I915_OVERLAY_YUV422             0x0100
788: #define I915_OVERLAY_YUV411             0x0200
789: #define I915_OVERLAY_YUV420             0x0300
790: #define I915_OVERLAY_YUV410             0x0400
791: 
792: #define I915_OVERLAY_SWAP_MASK          0xff0000
793: #define I915_OVERLAY_NO_SWAP            0x000000
794: #define I915_OVERLAY_UV_SWAP            0x010000
795: #define I915_OVERLAY_Y_SWAP             0x020000
796: #define I915_OVERLAY_Y_AND_UV_SWAP      0x030000
797: 
798: #define I915_OVERLAY_FLAGS_MASK         0xff000000
799: #define I915_OVERLAY_ENABLE             0x01000000
800: 
801: struct drm_intel_overlay_put_image {
802:         
803:         __u32 flags;
804:         
805:         __u32 bo_handle;
806:         
807:         __u16 stride_Y; 
808:         __u16 stride_UV;
809:         __u32 offset_Y; 
810:         __u32 offset_U;
811:         __u32 offset_V;
812:         
813:         __u16 src_width;
814:         __u16 src_height;
815:         
816:         __u16 src_scan_width;
817:         __u16 src_scan_height;
818:         
819:         __u32 crtc_id;
820:         __u16 dst_x;
821:         __u16 dst_y;
822:         __u16 dst_width;
823:         __u16 dst_height;
824: };
825: 
826: 
827: #define I915_OVERLAY_UPDATE_ATTRS       (1<<0)
828: #define I915_OVERLAY_UPDATE_GAMMA       (1<<1)
829: struct drm_intel_overlay_attrs {
830:         __u32 flags;
831:         __u32 color_key;
832:         __s32 brightness;
833:         __u32 contrast;
834:         __u32 saturation;
835:         __u32 gamma0;
836:         __u32 gamma1;
837:         __u32 gamma2;
838:         __u32 gamma3;
839:         __u32 gamma4;
840:         __u32 gamma5;
841: };
842: 
843: #endif                          
844: 
      
      
      
      
   
      
      
         
            
            © Andrew Scott 2006 -
            2025, 
            All Rights Reserved