~ubuntu-branches/ubuntu/natty/xserver-xorg-video-intel/natty-updates

« back to all changes in this revision

Viewing changes to src/intel.h

  • Committer: Bazaar Package Importer
  • Author(s): Robert Hooker, Bryce Harrington
  • Date: 2011-01-24 12:58:42 UTC
  • mfrom: (0.1.15 experimental)
  • Revision ID: james.westby@ubuntu.com-20110124125842-1ejnvoe3dwa59w1t
Tags: 2:2.14.0-1ubuntu1
* New upstream release.
  - Sandy Bridge RENDER and XVIDEO acceleration
  - i965+ RENDER acceleration
  - Fix backlight on Arrandale (LP: #705949)
* Remaining Ubuntu Changes:
  - debian/apport-gpu-error-intel.py, debian/xserver-xorg-video-intel.udev,
    debian/xserver-xorg-video-intel:
    Add apport script to collect debug information on GPU hangs
  - rules: Install udev rule to run the script when the kernel detects hung GPU
  - 101_copy-fb.patch: Adds feature to driver so Xserver can draw
    root windows with no background.  This enables smooth boot with
    Plymouth.
  - control: Add Recommends on intel-gpu-tools to xserver-xorg-video-intel
    package for use by GPU hang scripts.
  - xserver-xorg-video-intel.preinst.in, xserver-xorg-video-intel.postinst.in,
    rules:
    Don't install /etc/modprobe.d/i915-kms.conf, and remove it on upgrades.
    At best it's redundant (as the kernel defaults to KMS), at worst it breaks
    the ability to disable KMS.
  - 107_solid_nullptr_check.patch: Check null return from uxa_acquire_solid()

[Bryce Harrington]
* Change dep on libudev-dev to not limit to linux-any (fixes FTBS when
  using pbuilder, see deb bug 600823)
* Add python-dev recommends for xserver-xorg-video-intel, needed by
  debian/apport-gpu-error-intel.py
* Drop 106_restore_backlight_at_mode_set.patch:  Included in release

Show diffs side-by-side

added added

removed removed

Lines of Context:
178
178
 
179
179
        struct list flush, batch, in_flight;
180
180
 
 
181
        uint16_t src_bound, dst_bound;
181
182
        uint16_t stride;
182
183
        uint8_t tiling;
183
184
        int8_t busy :2;
184
185
        int8_t batch_write :1;
185
186
        int8_t offscreen :1;
 
187
        int8_t pinned :1;
186
188
};
187
189
 
188
190
#if HAS_DEVPRIVATEKEYREC
316
318
        /** Number of bytes to be emitted in the current BEGIN_BATCH. */
317
319
        uint32_t batch_emitting;
318
320
        dri_bo *batch_bo;
319
 
        dri_bo *last_batch_bo;
320
321
        /** Whether we're in a section of code that can't tolerate flushing */
321
322
        Bool in_batch_atomic;
322
323
        /** Ending batch_used that was verified by intel_start_batch_atomic() */
352
353
 
353
354
        CloseScreenProcPtr CloseScreen;
354
355
 
 
356
        void (*context_switch) (struct intel_screen_private *intel,
 
357
                                int new_mode);
355
358
        void (*vertex_flush) (struct intel_screen_private *intel);
356
 
        void (*batch_flush_notify) (ScrnInfoPtr scrn);
 
359
        void (*batch_flush) (struct intel_screen_private *intel);
 
360
        void (*batch_commit_notify) (struct intel_screen_private *intel);
357
361
 
358
362
        uxa_driver_t *uxa_driver;
359
363
        Bool need_sync;
400
404
        PixmapPtr render_current_dest;
401
405
        Bool render_source_is_solid;
402
406
        Bool render_mask_is_solid;
 
407
        Bool needs_3d_invariant;
403
408
        Bool needs_render_state_emit;
404
409
        Bool needs_render_vertex_emit;
405
410
        Bool needs_render_ca_pass;
418
423
                uint32_t dst_format;
419
424
        } i915_render_state;
420
425
 
 
426
        struct {
 
427
                int num_sf_outputs;
 
428
                int vertex_size;
 
429
                int vertex_type;
 
430
                int drawrect;
 
431
                uint32_t blend;
 
432
                dri_bo *samplers;
 
433
                dri_bo *kernel;
 
434
        } gen6_render_state;
 
435
 
421
436
        uint32_t prim_offset;
422
437
        void (*prim_emit)(PixmapPtr dest,
423
438
                          int srcX, int srcY,
426
441
                          int w, int h);
427
442
        int floats_per_vertex;
428
443
        int last_floats_per_vertex;
429
 
        uint32_t vertex_count;
430
 
        uint32_t vertex_index;
431
 
        uint32_t vertex_used;
 
444
        uint16_t vertex_offset;
 
445
        uint16_t vertex_count;
 
446
        uint16_t vertex_index;
 
447
        uint16_t vertex_used;
432
448
        float vertex_ptr[4*1024];
433
449
        dri_bo *vertex_bo;
434
450
 
 
451
        uint8_t surface_data[16*1024];
 
452
        uint16_t surface_used;
 
453
        uint16_t surface_table;
 
454
        uint32_t surface_reloc;
 
455
        dri_bo *surface_bo;
 
456
 
435
457
        /* 965 render acceleration state */
436
458
        struct gen4_render_state *gen4_render_state;
437
459
 
443
465
 
444
466
        Bool use_pageflipping;
445
467
        Bool force_fallback;
 
468
        Bool can_blt;
446
469
        Bool use_shadow;
447
470
 
448
471
        /* Broken-out options. */
481
504
 
482
505
extern Bool intel_do_pageflip(intel_screen_private *intel,
483
506
                              dri_bo *new_front,
484
 
                              void *data);
 
507
                              void *data, int ref_crtc_hw_id);
485
508
 
486
509
static inline intel_screen_private *
487
510
intel_get_screen_private(ScrnInfoPtr scrn)
548
571
Bool i830_prepare_composite(int op, PicturePtr sourcec, PicturePtr mask,
549
572
                            PicturePtr dest, PixmapPtr sourcecPixmap,
550
573
                            PixmapPtr maskPixmap, PixmapPtr destPixmap);
551
 
 
552
574
void i830_composite(PixmapPtr dest, int srcX, int srcY,
553
575
                    int maskX, int maskY, int dstX, int dstY, int w, int h);
 
576
void i830_vertex_flush(intel_screen_private *intel);
 
577
 
554
578
/* i915_render.c */
555
579
Bool i915_check_composite(int op,
556
580
                          PicturePtr sourcec, PicturePtr mask, PicturePtr dest,
563
587
void i915_composite(PixmapPtr dest, int srcX, int srcY,
564
588
                    int maskX, int maskY, int dstX, int dstY, int w, int h);
565
589
void i915_vertex_flush(intel_screen_private *intel);
566
 
void i915_batch_flush_notify(ScrnInfoPtr scrn);
567
 
void i830_batch_flush_notify(ScrnInfoPtr scrn);
 
590
void i915_batch_commit_notify(intel_screen_private *intel);
 
591
void i830_batch_commit_notify(intel_screen_private *intel);
568
592
/* i965_render.c */
569
593
unsigned int gen4_render_state_size(ScrnInfoPtr scrn);
570
594
void gen4_render_state_init(ScrnInfoPtr scrn);
579
603
void i965_composite(PixmapPtr dest, int srcX, int srcY,
580
604
                    int maskX, int maskY, int dstX, int dstY, int w, int h);
581
605
 
582
 
void i965_batch_flush_notify(ScrnInfoPtr scrn);
 
606
void i965_vertex_flush(intel_screen_private *intel);
 
607
void i965_batch_flush(intel_screen_private *intel);
 
608
void i965_batch_commit_notify(intel_screen_private *intel);
583
609
 
584
610
Bool intel_transform_is_affine(PictTransformPtr t);
585
611
Bool