Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
3254 Serge 1
 
2
 
3
    LAST_3D_OTHER,
4
    LAST_3D_VIDEO,
5
    LAST_3D_RENDER,
6
    LAST_3D_ROTATION
7
};
8
9
10
 
11
 
12
 
13
14
#define RENDER_BATCH                I915_EXEC_RENDER
15
 
16
17
    unsigned int current_batch;
18
 
19
    dri_bufmgr *bufmgr;
20
 
21
    uint32_t batch_ptr[4096];
22
 
23
    unsigned int batch_used;
24
    /** Position in batch_ptr at the start of the current BEGIN_BATCH */
25
    unsigned int batch_emit_start;
26
    /** Number of bytes to be emitted in the current BEGIN_BATCH. */
27
    uint32_t batch_emitting;
28
    dri_bo *batch_bo, *last_batch_bo[2];
29
    /** Whether we're in a section of code that can't tolerate flushing */
30
    Bool in_batch_atomic;
31
    /** Ending batch_used that was verified by intel_start_batch_atomic() */
32
    int batch_atomic_limit;
33
    struct list batch_pixmaps;
34
    drm_intel_bo *wa_scratch_bo;
35
36
    unsigned int tiling;
37
 
38
#define INTEL_TILING_FB     0x1
39
 
40
#define INTEL_TILING_3D     0x4
41
#define INTEL_TILING_ALL   (~0)
42
43
    Bool has_relaxed_fencing;
44
 
45
    int Chipset;
46
 
47
    unsigned int BR[20];
48
 
49
    void (*vertex_flush) (struct intel_screen_private *intel);
50
 
51
    void (*batch_commit_notify) (struct intel_screen_private *intel);
52
53
    Bool need_sync;
54
 
55
    int accel_pixmap_offset_alignment;
56
 
57
    int accel_max_y;
58
    int max_bo_size;
59
    int max_gtt_map_size;
60
    int max_tiling_size;
61
62
    struct {
63
 
64
        drm_intel_bo *gen4_sf_bo;
65
        drm_intel_bo *gen4_wm_packed_bo;
66
        drm_intel_bo *gen4_wm_planar_bo;
67
        drm_intel_bo *gen4_cc_bo;
68
        drm_intel_bo *gen4_cc_vp_bo;
69
        drm_intel_bo *gen4_sampler_bo;
70
        drm_intel_bo *gen4_sip_kernel_bo;
71
        drm_intel_bo *wm_prog_packed_bo;
72
        drm_intel_bo *wm_prog_planar_bo;
73
        drm_intel_bo *gen6_blend_bo;
74
        drm_intel_bo *gen6_depth_stencil_bo;
75
    } video;
76
77
    /* Render accel state */
78
 
79
    /** Transform pointers for src/mask, or NULL if identity */
80
    PictTransform *transform[2];
81
82
    PixmapPtr render_source, render_mask, render_dest;
83
 
84
    Bool needs_3d_invariant;
85
    Bool needs_render_state_emit;
86
    Bool needs_render_vertex_emit;
87
88
    /* i830 render accel state */
89
 
90
    uint32_t cblend, ablend, s8_blendctl;
91
92
    /* i915 render accel state */
93
 
94
    uint32_t mapstate[6];
95
    uint32_t samplerstate[6];
96
97
    struct {
98
 
99
        uint32_t dst_format;
100
    } i915_render_state;
101
102
    struct {
103
 
104
        int drawrect;
105
        uint32_t blend;
106
        dri_bo *samplers;
107
        dri_bo *kernel;
108
    } gen6_render_state;
109
110
    uint32_t prim_offset;
111
 
112
              int srcX, int srcY,
113
              int maskX, int maskY,
114
              int dstX, int dstY,
115
              int w, int h);
116
    int floats_per_vertex;
117
    int last_floats_per_vertex;
118
    uint16_t vertex_offset;
119
    uint16_t vertex_count;
120
    uint16_t vertex_index;
121
    uint16_t vertex_used;
122
    uint32_t vertex_id;
123
    float vertex_ptr[4*1024];
124
    dri_bo *vertex_bo;
125
126
    uint8_t surface_data[16*1024];
127
 
128
    uint16_t surface_table;
129
    uint32_t surface_reloc;
130
    dri_bo *surface_bo;
131
132
    /* 965 render acceleration state */
133
 
134
135
    Bool use_pageflipping;
136
 
137
    Bool force_fallback;
138
    Bool has_kernel_flush;
139
    Bool needs_flush;
140
141
    enum last_3d last_3d;
142
 
143
    /**
144
 
145
     */
146
    Bool fallback_debug;
147
    unsigned debug_flush;
148
    Bool has_prime_vmap_flush;
149
} intel_screen_private;
150