Rev 811 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
808 | serge | 1 | |
2 | #define DRAW_RECT 2 |
||
3 | #define LINE_2P 3 |
||
4 | #define BLIT 4 |
||
810 | serge | 5 | #define COMPIZ 5 |
813 | serge | 6 | |
808 | serge | 7 | |
8 | |||
9 | |||
10 | { |
||
11 | int x; |
||
12 | int y; |
||
13 | int w; |
||
14 | int h; |
||
15 | u32 color; |
||
16 | }draw_t; |
||
17 | |||
18 | |||
19 | { |
||
20 | int x; |
||
21 | int y; |
||
22 | int w; |
||
23 | int h; |
||
24 | |||
25 | |||
26 | color_t fcolor; |
||
27 | |||
28 | |||
29 | u32_t bmp1; |
||
30 | }fill_t; |
||
31 | |||
32 | |||
33 | { |
||
34 | int src_x; |
||
810 | serge | 35 | int src_y; |
36 | int dst_x; |
||
37 | int dst_y; |
||
38 | int w; |
||
39 | int h; |
||
40 | }blit_t; |
||
41 | |||
42 | |||
43 | { |
||
44 | int x0; |
||
808 | serge | 45 | int y0; |
46 | int x1; |
||
47 | int y1; |
||
48 | u32 color; |
||
49 | }line2p_t; |
||
50 | |||
51 | |||
52 | int BlockClip( int *x1, int *y1, int *x2, int* y2); |
||
53 | |||
54 | |||
55 | int FillRect(fill_t * fill); |
||
56 | |||
57 | |||
58 | |||
59 | |||
810 | serge | 60 | |
808 | serge | 61 | |
813 | serge | 62 | |
63 | |||
64 | |||
65 | |||
808 | serge | 66 | # define RADEON_GMC_DST_PITCH_OFFSET_CNTL (1 << 1) |
67 | # define RADEON_GMC_BRUSH_SOLID_COLOR (13 << 4) |
||
811 | serge | 68 | # define RADEON_GMC_BRUSH_NONE (15 << 4) |
69 | # define RADEON_GMC_DST_16BPP (4 << 8) |
||
70 | # define RADEON_GMC_DST_24BPP (5 << 8) |
||
71 | # define RADEON_GMC_DST_32BPP (6 << 8) |
||
72 | # define RADEON_GMC_DST_DATATYPE_SHIFT 8 |
||
73 | # define RADEON_GMC_SRC_DATATYPE_COLOR (3 << 12) |
||
74 | # define RADEON_DP_SRC_SOURCE_MEMORY (2 << 24) |
||
75 | # define RADEON_DP_SRC_SOURCE_HOST_DATA (3 << 24) |
||
76 | # define RADEON_GMC_CLR_CMP_CNTL_DIS (1 << 28) |
||
77 | # define RADEON_GMC_WR_MSK_DIS (1 << 30) |
||
78 | # define RADEON_ROP3_S 0x00cc0000 |
||
79 | # define RADEON_ROP3_P 0x00f00000 |
||
80 | |||
808 | serge | 81 | |
811 | serge | 82 | #define RADEON_CP_PACKET1 0x40000000 |
83 | #define RADEON_CP_PACKET2 0x80000000 |
||
84 | #define RADEON_CP_PACKET3 0xC0000000 |
||
808 | serge | 85 | |
86 | |||
87 | # define RADEON_CNTL_BITBLT 0x00009200 |
||
810 | serge | 88 | |
89 | |||
808 | serge | 90 | # define RADEON_CNTL_PAINT_MULTI 0x00009A00 |
91 | |||
92 | |||
811 | serge | 93 | (RADEON_CP_PACKET0 | ((n) << 16) | ((reg) >> 2)) |
94 | |||
95 | |||
96 | (RADEON_CP_PACKET1 | (((reg1) >> 2) << 11) | ((reg0) >> 2)) |
||
97 | |||
98 | |||
99 | (RADEON_CP_PACKET2) |
||
100 | |||
101 | |||
808 | serge | 102 | (RADEON_CP_PACKET3 | (pkt) | ((n) << 16)) |
103 | |||
104 | |||
105 | ring = rhd.ring_base; \ |
||
106 | write = rhd.ring_wp; \ |
||
107 | } while (0) |
||
108 | |||
109 | |||
811 | serge | 110 | |
111 | |||
808 | serge | 112 | ring[write++] = (x); \ |
113 | } while (0) |
||
114 | |||
115 | |||
811 | serge | 116 | do { \ |
117 | OUT_RING(CP_PACKET0(reg, 0)); \ |
||
118 | OUT_RING(val); \ |
||
119 | } while (0) |
||
120 | |||
121 | |||
808 | serge | 122 | |
123 | |||
124 | rhd.ring_wp = write & 0x1FFF; \ |
||
125 | /* Flush writes to ring */ \ |
||
126 | DRM_MEMORYBARRIER(); \ |
||
127 | /*GET_RING_HEAD( dev_priv ); */ \ |
||
128 | OUTREG( RADEON_CP_RB_WPTR, rhd.ring_wp); \ |
||
129 | /* read from PCI bus to ensure correct posting */ \ |
||
130 | INREG( RADEON_CP_RB_RPTR ); \ |
||
131 | } while (0)><>><>><>><>><>><>><>><>><>><>><>><>><>><>><> |
||
132 |