Rev 818 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
808 | serge | 1 | |
868 | serge | 2 | #define DRAW_RECT 2 |
3 | #define LINE_2P 3 |
||
4 | #define BLIT 4 |
||
5 | #define COMPIZ 5 |
||
6 | #define PIXMAP 6 |
||
7 | #define PIXBLIT 7 |
||
8 | #define PIXLOCK 8 |
||
9 | #define PIXUNLOCK 9 |
||
10 | #define PIXDESTROY 10 |
||
11 | #define TRANSBLIT 11 |
||
12 | |||
808 | serge | 13 | |
868 | serge | 14 | |
808 | serge | 15 | |
16 | |||
17 | { |
||
18 | pixmap_t *dstpix; |
||
817 | serge | 19 | |
20 | |||
21 | int y; |
||
22 | u32_t w; |
||
23 | u32_t h; |
||
24 | color_t color; |
||
25 | }draw_t; |
||
808 | serge | 26 | |
27 | |||
28 | { |
||
29 | pixmap_t *dstpix; |
||
817 | serge | 30 | |
31 | |||
808 | serge | 32 | int y; |
33 | int w; |
||
34 | int h; |
||
35 | |||
36 | |||
37 | color_t fcolor; |
||
38 | |||
39 | |||
40 | u32_t bmp1; |
||
41 | }fill_t; |
||
42 | |||
43 | |||
44 | { |
||
45 | int src_x; |
||
810 | serge | 46 | int src_y; |
47 | int dst_x; |
||
48 | int dst_y; |
||
49 | int w; |
||
50 | int h; |
||
51 | }blit_t; |
||
52 | |||
53 | |||
54 | { |
||
55 | int x0; |
||
808 | serge | 56 | int y0; |
57 | int x1; |
||
58 | int y1; |
||
59 | u32 color; |
||
60 | }line2p_t; |
||
61 | |||
62 | |||
815 | serge | 63 | { |
64 | pixmap_t *pixmap; |
||
817 | serge | 65 | void *usermap; |
66 | u32_t format; |
||
67 | u32_t pitch; |
||
68 | |||
815 | serge | 69 | |
817 | serge | 70 | u32_t height; |
71 | }userpixmap_t; |
||
72 | |||
73 | |||
815 | serge | 74 | { |
75 | pixmap_t *dstpix; |
||
76 | int dst_x; |
||
817 | serge | 77 | int dst_y; |
78 | |||
815 | serge | 79 | |
80 | int src_x; |
||
817 | serge | 81 | int src_y; |
82 | int w; |
||
83 | int h; |
||
84 | }pixblit_t; |
||
815 | serge | 85 | |
86 | |||
87 | |||
808 | serge | 88 | int BlockClip( int *x1, int *y1, int *x2, int* y2); |
89 | |||
90 | |||
91 | int FillRect(fill_t * fill); |
||
92 | |||
93 | |||
94 | |||
95 | |||
810 | serge | 96 | |
808 | serge | 97 | |
813 | serge | 98 | |
99 | |||
817 | serge | 100 | int DestroyPixmap(userpixmap_t *io); |
868 | serge | 101 | int LockPixmap(userpixmap_t *io); |
102 | int UnlockPixmap(userpixmap_t *io); |
||
103 | |||
813 | serge | 104 | |
815 | serge | 105 | |
106 | |||
817 | serge | 107 | |
808 | serge | 108 | # define RADEON_GMC_DST_PITCH_OFFSET_CNTL (1 << 1) |
109 | # define RADEON_GMC_BRUSH_SOLID_COLOR (13 << 4) |
||
811 | serge | 110 | # define RADEON_GMC_BRUSH_NONE (15 << 4) |
111 | # define RADEON_GMC_DST_16BPP (4 << 8) |
||
112 | # define RADEON_GMC_DST_24BPP (5 << 8) |
||
113 | # define RADEON_GMC_DST_32BPP (6 << 8) |
||
114 | # define RADEON_GMC_DST_DATATYPE_SHIFT 8 |
||
115 | # define RADEON_GMC_SRC_DATATYPE_COLOR (3 << 12) |
||
116 | # define RADEON_DP_SRC_SOURCE_MEMORY (2 << 24) |
||
117 | # define RADEON_DP_SRC_SOURCE_HOST_DATA (3 << 24) |
||
118 | # define RADEON_GMC_CLR_CMP_CNTL_DIS (1 << 28) |
||
119 | # define RADEON_GMC_WR_MSK_DIS (1 << 30) |
||
120 | # define RADEON_ROP3_S 0x00cc0000 |
||
121 | # define RADEON_ROP3_P 0x00f00000 |
||
122 | |||
808 | serge | 123 | |
811 | serge | 124 | #define RADEON_CP_PACKET1 0x40000000 |
125 | #define RADEON_CP_PACKET2 0x80000000 |
||
126 | #define RADEON_CP_PACKET3 0xC0000000 |
||
808 | serge | 127 | |
128 | |||
129 | # define RADEON_CNTL_BITBLT 0x00009200 |
||
810 | serge | 130 | # define RADEON_CNTL_TRANBLT 0x00009C00 |
868 | serge | 131 | |
810 | serge | 132 | |
868 | serge | 133 | |
808 | serge | 134 | # define RADEON_CNTL_PAINT_MULTI 0x00009A00 |
135 | |||
136 | |||
811 | serge | 137 | (RADEON_CP_PACKET0 | ((n) << 16) | ((reg) >> 2)) |
138 | |||
139 | |||
140 | (RADEON_CP_PACKET1 | (((reg1) >> 2) << 11) | ((reg0) >> 2)) |
||
141 | |||
142 | |||
143 | (RADEON_CP_PACKET2) |
||
144 | |||
145 | |||
808 | serge | 146 | (RADEON_CP_PACKET3 | (pkt) | ((n) << 16)) |
147 | |||
148 | |||
149 | ring = rhd.ring_base; \ |
||
150 | write = rhd.ring_wp; \ |
||
151 | } while (0) |
||
152 | |||
153 | |||
811 | serge | 154 | |
155 | |||
808 | serge | 156 | ring[write++] = (x); \ |
157 | } while (0) |
||
158 | |||
159 | |||
811 | serge | 160 | do { \ |
161 | OUT_RING(CP_PACKET0(reg, 0)); \ |
||
162 | OUT_RING(val); \ |
||
163 | } while (0) |
||
164 | |||
165 | |||
808 | serge | 166 | |
167 | |||
168 | rhd.ring_wp = write & 0x1FFF; \ |
||
169 | /* Flush writes to ring */ \ |
||
170 | DRM_MEMORYBARRIER(); \ |
||
171 | /*GET_RING_HEAD( dev_priv ); */ \ |
||
172 | OUTREG( RADEON_CP_RB_WPTR, rhd.ring_wp); \ |
||
173 | /* read from PCI bus to ensure correct posting */ \ |
||
174 | INREG( RADEON_CP_RB_RPTR ); \ |
||
175 | } while (0)><>><>><>><>><>><>><>><>><>><>><>><>><>><>><> |
||
176 |