Rev 880 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 880 | Rev 883 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | int ClearPixmap(io_clear_t *io) |
1 | int ClearPixmap(io_clear_t *io) |
2 | { |
2 | { |
3 | u32_t ifl; |
3 | u32_t ifl; |
4 | u32_t *ring, write; |
4 | u32_t *ring; |
Line 5... | Line 5... | ||
5 | 5 | ||
Line 6... | Line 6... | ||
6 | local_pixmap_t *dstpixmap; |
6 | local_pixmap_t *dstpixmap; |
Line 30... | Line 30... | ||
30 | OUTREG(R5XX_DST_WIDTH_HEIGHT,(dstpixmap->width<<16)|dstpixmap->height); |
30 | OUTREG(R5XX_DST_WIDTH_HEIGHT,(dstpixmap->width<<16)|dstpixmap->height); |
31 | 31 | ||
32 | #else |
32 | #else |
Line 33... | Line 33... | ||
33 | BEGIN_RING(); |
33 | BEGIN_RING(6); |
34 | OUT_RING(CP_PACKET3(RADEON_CNTL_PAINT_MULTI, 4)); |
34 | |
- | 35 | OUT_RING(CP_PACKET3(RADEON_CNTL_PAINT_MULTI, 4)); |
|
35 | 36 | ||
Line 36... | Line 37... | ||
36 | OUT_RING(RADEON_GMC_DST_PITCH_OFFSET_CNTL | |
37 | OUT_RING(RADEON_GMC_DST_PITCH_OFFSET_CNTL | |
37 | RADEON_GMC_BRUSH_SOLID_COLOR | |
38 | RADEON_GMC_BRUSH_SOLID_COLOR | |
38 | RADEON_GMC_DST_32BPP | |
39 | RADEON_GMC_DST_32BPP | |
Line 77... | Line 78... | ||
77 | 78 | ||
78 | if ( !LineClip(&clip, &x0, &y0, &x1, &y1 )) |
79 | if ( !LineClip(&clip, &x0, &y0, &x1, &y1 )) |
Line 79... | Line 80... | ||
79 | { |
80 | { |
80 | u32_t efl; |
81 | u32_t ifl; |
81 | u32_t *ring, write; |
82 | u32_t *ring, write; |
82 | 83 | ||
Line 83... | Line 84... | ||
83 | efl = safe_cli(); |
84 | ifl = safe_cli(); |
Line 84... | Line 85... | ||
84 | 85 | ||
Line 85... | Line 86... | ||
85 | #if R300_PIO |
86 | #if R300_PIO |
Line 104... | Line 105... | ||
104 | OUTREG(R5XX_DST_LINE_START,(y0<<16)|x0); |
105 | OUTREG(R5XX_DST_LINE_START,(y0<<16)|x0); |
Line 105... | Line 106... | ||
105 | OUTREG(R5XX_DST_LINE_END,(y1<<16)|x1); |
106 | OUTREG(R5XX_DST_LINE_END,(y1<<16)|x1); |
106 | #else |
107 | #else |
107 | BEGIN_RING(); |
108 | BEGIN_RING(6); |
108 | OUT_RING(CP_PACKET3(RADEON_CNTL_PAINT_POLYLINE, 4)); |
109 | |
- | 110 | OUT_RING(CP_PACKET3(RADEON_CNTL_PAINT_POLYLINE, 4)); |
|
109 | OUT_RING(RADEON_GMC_DST_PITCH_OFFSET_CNTL | |
111 | OUT_RING(RADEON_GMC_DST_PITCH_OFFSET_CNTL | |
110 | RADEON_GMC_BRUSH_SOLID_COLOR | |
112 | RADEON_GMC_BRUSH_SOLID_COLOR | |
111 | RADEON_GMC_DST_32BPP | |
113 | RADEON_GMC_DST_32BPP | |
112 | RADEON_GMC_SRC_DATATYPE_COLOR | |
114 | RADEON_GMC_SRC_DATATYPE_COLOR | |
113 | R5XX_GMC_CLR_CMP_CNTL_DIS | |
115 | R5XX_GMC_CLR_CMP_CNTL_DIS | |
Line 119... | Line 121... | ||
119 | OUT_RING((y0<<16)|x0); |
121 | OUT_RING((y0<<16)|x0); |
120 | OUT_RING((y1<<16)|x1); |
122 | OUT_RING((y1<<16)|x1); |
121 | COMMIT_RING(); |
123 | COMMIT_RING(); |
122 | 124 | #endif |
|
123 | #endif |
125 | safe_sti(ifl); |
124 | safe_sti(efl); |
- | |
125 | }; |
126 | }; |
126 | return ERR_OK; |
127 | return ERR_OK; |
127 | } |
128 | } |
128 | 129 | ||
129 | int DrawRect(io_draw_t* draw) |
130 | int DrawRect(io_draw_t* draw) |
Line 130... | Line 131... | ||
130 | { |
131 | { |
Line 152... | Line 153... | ||
152 | 153 | ||
153 | if( ! BlockClip( &dst_clip, &x0, &y0, &x1, &y1)) |
154 | if( ! BlockClip( &dst_clip, &x0, &y0, &x1, &y1)) |
Line 154... | Line 155... | ||
154 | { |
155 | { |
155 | u32_t *ring, write; |
156 | u32_t *ring; |
156 | u32_t ifl; |
157 | u32_t ifl; |
157 | int w, h; |
158 | int w, h; |
158 | 159 | ||
Line 159... | Line 160... | ||
159 | w = x1 - x0 + 1; |
160 | w = x1 - x0 + 1; |
160 | h = y1 - y0 + 1; |
161 | h = y1 - y0 + 1; |
Line 218... | Line 219... | ||
218 | } |
219 | } |
219 | }; |
220 | }; |
220 | #else |
221 | #else |
221 | BEGIN_RING(); |
222 | |
222 | OUT_RING(CP_PACKET3(RADEON_CNTL_PAINT_MULTI, 4)); |
223 | BEGIN_RING(64); |
- | 224 | ||
223 | 225 | OUT_RING(CP_PACKET3(RADEON_CNTL_PAINT_MULTI, 4)); |
|
- | 226 | ||
224 | OUT_RING(RADEON_GMC_DST_PITCH_OFFSET_CNTL | |
227 | OUT_RING(RADEON_GMC_DST_PITCH_OFFSET_CNTL | |
Line 225... | Line 228... | ||
225 | RADEON_GMC_BRUSH_SOLID_COLOR | |
228 | RADEON_GMC_BRUSH_SOLID_COLOR | |
226 | RADEON_GMC_DST_32BPP | |
229 | RADEON_GMC_DST_32BPP | |
227 | RADEON_GMC_SRC_DATATYPE_COLOR | |
230 | RADEON_GMC_SRC_DATATYPE_COLOR | |
Line 232... | Line 235... | ||
232 | 235 | ||
233 | OUT_RING(dstpixmap->pitch_offset); |
236 | OUT_RING(dstpixmap->pitch_offset); |
Line 234... | Line 237... | ||
234 | OUT_RING(draw->color); |
237 | OUT_RING(draw->color); |
235 | OUT_RING((draw->x0<<16)|y0); |
238 | OUT_RING((x0<<16)|y0); |
236 | OUT_RING((w<<16)|h); |
239 | OUT_RING((w<<16)|h); |
237 | COMMIT_RING(); |
240 | OUT_RING(CP_PACKET2()); |
- | 241 | OUT_RING(CP_PACKET2()); |
|
- | 242 | ||
- | 243 | if( draw->color != draw->border) |
|
- | 244 | { |
|
- | 245 | if( y0 == draw->y0) { |
|
- | 246 | OUT_RING(CP_PACKET3(RADEON_CNTL_PAINT_MULTI, 4)); |
|
- | 247 | OUT_RING(RADEON_GMC_DST_PITCH_OFFSET_CNTL | |
|
- | 248 | RADEON_GMC_BRUSH_SOLID_COLOR | |
|
- | 249 | RADEON_GMC_DST_32BPP | |
|
- | 250 | RADEON_GMC_SRC_DATATYPE_COLOR | |
|
- | 251 | R5XX_GMC_CLR_CMP_CNTL_DIS | |
|
- | 252 | R5XX_GMC_WR_MSK_DIS | |
|
- | 253 | R5XX_ROP3_P |
|
- | 254 | ); |
|
- | 255 | ||
- | 256 | OUT_RING(dstpixmap->pitch_offset); |
|
- | 257 | OUT_RING(draw->border); |
|
- | 258 | OUT_RING((x0<<16)|y0); |
|
- | 259 | OUT_RING((w<<16)|1); |
|
- | 260 | OUT_RING(CP_PACKET2()); |
|
- | 261 | OUT_RING(CP_PACKET2()); |
|
- | 262 | ||
- | 263 | // y0++; |
|
- | 264 | // h--; |
|
- | 265 | } |
|
- | 266 | if( y1 == yend ) { |
|
- | 267 | OUT_RING(CP_PACKET3(RADEON_CNTL_PAINT_MULTI, 4)); |
|
- | 268 | OUT_RING(RADEON_GMC_DST_PITCH_OFFSET_CNTL | |
|
- | 269 | RADEON_GMC_BRUSH_SOLID_COLOR | |
|
- | 270 | RADEON_GMC_DST_32BPP | |
|
- | 271 | RADEON_GMC_SRC_DATATYPE_COLOR | |
|
- | 272 | R5XX_GMC_CLR_CMP_CNTL_DIS | |
|
- | 273 | R5XX_GMC_WR_MSK_DIS | |
|
- | 274 | R5XX_ROP3_P |
|
- | 275 | ); |
|
- | 276 | ||
- | 277 | OUT_RING(dstpixmap->pitch_offset); |
|
- | 278 | OUT_RING(draw->border); |
|
- | 279 | OUT_RING((x0<<16)|y1); |
|
- | 280 | OUT_RING((w<<16)|1); |
|
- | 281 | OUT_RING(CP_PACKET2()); |
|
- | 282 | OUT_RING(CP_PACKET2()); |
|
- | 283 | ||
- | 284 | // h--; |
|
- | 285 | } |
|
- | 286 | if( (h > 0) && (x0 == draw->x0)) { |
|
- | 287 | OUT_RING(CP_PACKET3(RADEON_CNTL_PAINT_MULTI, 4)); |
|
- | 288 | OUT_RING(RADEON_GMC_DST_PITCH_OFFSET_CNTL | |
|
- | 289 | RADEON_GMC_BRUSH_SOLID_COLOR | |
|
- | 290 | RADEON_GMC_DST_32BPP | |
|
- | 291 | RADEON_GMC_SRC_DATATYPE_COLOR | |
|
- | 292 | R5XX_GMC_CLR_CMP_CNTL_DIS | |
|
- | 293 | R5XX_GMC_WR_MSK_DIS | |
|
- | 294 | R5XX_ROP3_P |
|
- | 295 | ); |
|
- | 296 | ||
- | 297 | OUT_RING(dstpixmap->pitch_offset); |
|
- | 298 | OUT_RING(draw->border); |
|
- | 299 | OUT_RING((x0<<16)|y0); |
|
- | 300 | OUT_RING((1<<16)|h); |
|
- | 301 | OUT_RING(CP_PACKET2()); |
|
- | 302 | OUT_RING(CP_PACKET2()); |
|
- | 303 | ||
- | 304 | } |
|
- | 305 | if( (h > 0) && (x1 == xend)) { |
|
- | 306 | OUT_RING(CP_PACKET3(RADEON_CNTL_PAINT_MULTI, 4)); |
|
- | 307 | OUT_RING(RADEON_GMC_DST_PITCH_OFFSET_CNTL | |
|
- | 308 | RADEON_GMC_BRUSH_SOLID_COLOR | |
|
- | 309 | RADEON_GMC_DST_32BPP | |
|
- | 310 | RADEON_GMC_SRC_DATATYPE_COLOR | |
|
- | 311 | R5XX_GMC_CLR_CMP_CNTL_DIS | |
|
- | 312 | R5XX_GMC_WR_MSK_DIS | |
|
- | 313 | R5XX_ROP3_P |
|
- | 314 | ); |
|
- | 315 | ||
- | 316 | OUT_RING(dstpixmap->pitch_offset); |
|
- | 317 | OUT_RING(draw->border); |
|
- | 318 | OUT_RING((x1<<16)|y0); |
|
- | 319 | OUT_RING((1<<16)|h); |
|
- | 320 | OUT_RING(CP_PACKET2()); |
|
- | 321 | OUT_RING(CP_PACKET2()); |
|
- | 322 | ||
- | 323 | } |
|
- | 324 | }; |
|
- | 325 | ||
- | 326 | /* |
|
- | 327 | ||
- | 328 | CP_REG(R5XX_DP_GUI_MASTER_CNTL, |
|
- | 329 | RADEON_GMC_DST_PITCH_OFFSET_CNTL | |
|
- | 330 | RADEON_GMC_BRUSH_SOLID_COLOR | |
|
- | 331 | RADEON_GMC_DST_32BPP | |
|
- | 332 | RADEON_GMC_SRC_DATATYPE_COLOR | |
|
- | 333 | R5XX_GMC_CLR_CMP_CNTL_DIS | |
|
- | 334 | R5XX_GMC_WR_MSK_DIS | |
|
- | 335 | R5XX_ROP3_P |
|
- | 336 | ); |
|
- | 337 | CP_REG(R5XX_DP_BRUSH_FRGD_CLR, draw->color); |
|
- | 338 | CP_REG(R5XX_DP_CNTL, R5XX_DST_X_LEFT_TO_RIGHT | R5XX_DST_Y_TOP_TO_BOTTOM); |
|
- | 339 | ||
- | 340 | CP_REG(R5XX_DST_PITCH_OFFSET, dstpixmap->pitch_offset); |
|
- | 341 | CP_REG(R5XX_DST_Y_X,(y0<<16)|x0); |
|
- | 342 | CP_REG(R5XX_DST_WIDTH_HEIGHT,(w<<16)|h); |
|
- | 343 | if( draw->color != draw->border) |
|
- | 344 | { |
|
- | 345 | CP_REG(R5XX_DP_GUI_MASTER_CNTL, |
|
- | 346 | RADEON_GMC_DST_PITCH_OFFSET_CNTL | |
|
- | 347 | RADEON_GMC_BRUSH_SOLID_COLOR | |
|
- | 348 | RADEON_GMC_DST_32BPP | |
|
- | 349 | RADEON_GMC_SRC_DATATYPE_COLOR | |
|
- | 350 | R5XX_GMC_CLR_CMP_CNTL_DIS | |
|
- | 351 | R5XX_GMC_WR_MSK_DIS | |
|
- | 352 | R5XX_ROP3_P |
|
- | 353 | ); |
|
- | 354 | CP_REG(R5XX_DP_BRUSH_FRGD_CLR, draw->border); |
|
- | 355 | CP_REG(R5XX_DP_CNTL, R5XX_DST_X_LEFT_TO_RIGHT | R5XX_DST_Y_TOP_TO_BOTTOM); |
|
- | 356 | ||
- | 357 | CP_REG(R5XX_DST_PITCH_OFFSET, dstpixmap->pitch_offset); |
|
- | 358 | ||
- | 359 | ||
- | 360 | if( y0 == draw->y0) { |
|
- | 361 | CP_REG(R5XX_DST_Y_X,(y0<<16)|x0); |
|
- | 362 | CP_REG(R5XX_DST_WIDTH_HEIGHT,(w<<16)|1); |
|
- | 363 | y0++; |
|
- | 364 | h--; |
|
- | 365 | } |
|
- | 366 | if( y1 == yend ) { |
|
- | 367 | CP_REG(R5XX_DST_Y_X,(y1<<16)|x0); |
|
- | 368 | CP_REG(R5XX_DST_WIDTH_HEIGHT,(w<<16)|1); |
|
- | 369 | h--; |
|
- | 370 | } |
|
- | 371 | if( (h > 0) && (x0 == draw->x0)) { |
|
- | 372 | CP_REG(R5XX_DST_Y_X,(y0<<16)|x0); |
|
- | 373 | CP_REG(R5XX_DST_WIDTH_HEIGHT,(1<<16)|h); |
|
- | 374 | } |
|
- | 375 | if( (h > 0) && (x1 == xend)) { |
|
- | 376 | CP_REG(R5XX_DST_Y_X,(y0<<16)|x1); |
|
- | 377 | CP_REG(R5XX_DST_WIDTH_HEIGHT,(1<<16)|h); |
|
- | 378 | } |
|
- | 379 | }; |
|
- | 380 | */ |
|
- | 381 | ||
- | 382 | COMMIT_RING(); |
|
238 | #endif |
383 | #endif |
239 | safe_sti(ifl); |
384 | safe_sti(ifl); |
240 | }; |
385 | }; |
241 | return ERR_OK; |
386 | return ERR_OK; |
242 | } |
387 | } |
Line 266... | Line 411... | ||
266 | if( ! BlockClip(&dst_clip, &x0, &y0, &x1, &y1)) |
411 | if( ! BlockClip(&dst_clip, &x0, &y0, &x1, &y1)) |
Line 267... | Line 412... | ||
267 | { |
412 | { |
268 | u32_t *ring, write; |
413 | u32_t *ring, write; |
269 | u32_t ifl = safe_cli(); |
414 | u32_t ifl; |
270 | 415 | ||
271 | #if R300_PIO |
- | |
272 | - | ||
Line 273... | Line 416... | ||
273 | int w = x1 - x0 + 1; |
416 | int w = x1 - x0 + 1; |
274 | int h = y1 - y0 + 1; |
417 | int h = y1 - y0 + 1; |
Line -... | Line 418... | ||
- | 418 | ||
- | 419 | ifl = safe_cli(); |
|
- | 420 | ||
- | 421 | #if R300_PIO |
|
275 | 422 | ||
Line 276... | Line 423... | ||
276 | R5xxFIFOWait(9); |
423 | R5xxFIFOWait(9); |
277 | 424 | ||
278 | OUTREG(R5XX_DP_GUI_MASTER_CNTL, |
425 | OUTREG(R5XX_DP_GUI_MASTER_CNTL, |
Line 348... | Line 495... | ||
348 | 495 | ||
349 | 496 | ||
Line 350... | Line 497... | ||
350 | #else |
497 | #else |
351 | BEGIN_RING(); |
498 | BEGIN_RING(9+10*2); |
- | 499 | ||
352 | OUT_RING(CP_PACKET3(RADEON_CNTL_PAINT, 7)); |
500 | OUT_RING(CP_PACKET3(RADEON_CNTL_PAINT, 7)); |
353 | OUT_RING(RADEON_GMC_DST_PITCH_OFFSET_CNTL | |
501 | OUT_RING(RADEON_GMC_DST_PITCH_OFFSET_CNTL | |
354 | R5XX_GMC_BRUSH_8X8_MONO_FG_BG | |
502 | R5XX_GMC_BRUSH_8X8_MONO_FG_BG | |
355 | RADEON_GMC_DST_32BPP | |
503 | RADEON_GMC_DST_32BPP | |
356 | RADEON_GMC_SRC_DATATYPE_COLOR | |
504 | RADEON_GMC_SRC_DATATYPE_COLOR | |
Line 368... | Line 516... | ||
368 | 516 | ||
369 | OUT_RING((y0<<16)|x0); |
517 | OUT_RING((y0<<16)|x0); |
Line 370... | Line 518... | ||
370 | OUT_RING((y1<<16)|x1); |
518 | OUT_RING((y1<<16)|x1); |
371 | COMMIT_RING(); |
519 | |
- | 520 | if( (fill->border & 0xFF000000) != 0) |
|
- | 521 | { |
|
- | 522 | CP_REG(R5XX_DP_GUI_MASTER_CNTL, |
|
- | 523 | RADEON_GMC_DST_PITCH_OFFSET_CNTL | |
|
- | 524 | RADEON_GMC_BRUSH_SOLID_COLOR | |
|
- | 525 | RADEON_GMC_DST_32BPP | |
|
- | 526 | RADEON_GMC_SRC_DATATYPE_COLOR | |
|
- | 527 | R5XX_GMC_CLR_CMP_CNTL_DIS | |
|
- | 528 | R5XX_GMC_WR_MSK_DIS | |
|
- | 529 | R5XX_ROP3_P |
|
- | 530 | ); |
|
- | 531 | ||
- | 532 | CP_REG(R5XX_DP_BRUSH_FRGD_CLR, fill->border); |
|
- | 533 | ||
- | 534 | if( y0 == fill->y) |
|
- | 535 | { |
|
- | 536 | CP_REG(R5XX_DST_Y_X,(y0<<16)|x0); |
|
- | 537 | CP_REG(R5XX_DST_WIDTH_HEIGHT,(w<<16)|1); |
|
- | 538 | y0++; |
|
- | 539 | h--; |
|
- | 540 | } |
|
- | 541 | if( y1 == yend ) |
|
- | 542 | { |
|
- | 543 | CP_REG(R5XX_DST_Y_X,(y1<<16)|x0); |
|
- | 544 | CP_REG(R5XX_DST_WIDTH_HEIGHT,(w<<16)|1); |
|
- | 545 | h--; |
|
- | 546 | } |
|
- | 547 | if( (h > 0) && (x0 == fill->x)) |
|
- | 548 | { |
|
- | 549 | CP_REG(R5XX_DST_Y_X,(y0<<16)|x0); |
|
- | 550 | CP_REG(R5XX_DST_WIDTH_HEIGHT,(1<<16)|h); |
|
- | 551 | } |
|
- | 552 | if( (h > 0) && (x1 == xend)) |
|
- | 553 | { |
|
- | 554 | CP_REG(R5XX_DST_Y_X,(y0<<16)|x1); |
|
- | 555 | CP_REG(R5XX_DST_WIDTH_HEIGHT,(1<<16)|h); |
|
- | 556 | } |
|
- | 557 | }; |
|
- | 558 | ||
- | 559 | COMMIT_RING(); |
|
372 | 560 | ||
Line 373... | Line 561... | ||
373 | #endif |
561 | #endif |
374 | safe_sti(ifl); |
562 | safe_sti(ifl); |
375 | }; |
563 | }; |
Line 412... | Line 600... | ||
412 | &blit->w, &blit->h) ) |
600 | &blit->w, &blit->h) ) |
413 | { |
601 | { |
414 | u32_t *ring, write; |
602 | u32_t *ring, write; |
415 | 603 | u32_t ifl; |
|
416 | u32_t ifl = safe_cli(); |
604 | |
- | 605 | ifl = safe_cli(); |
|
Line 417... | Line 606... | ||
417 | 606 | ||
Line 418... | Line 607... | ||
418 | #if R300_PIO |
607 | #if R300_PIO |
Line 419... | Line 608... | ||
419 | 608 | ||
Line 441... | Line 630... | ||
441 | OUTREG(R5XX_DST_HEIGHT_WIDTH,(blit->h<<16)|blit->w); |
630 | OUTREG(R5XX_DST_HEIGHT_WIDTH,(blit->h<<16)|blit->w); |
442 | 631 | ||
443 | #else |
632 | #else |
Line 444... | Line 633... | ||
444 | 633 | BEGIN_RING(7); |
|
- | 634 | ||
Line 445... | Line -... | ||
445 | BEGIN_RING(); |
- | |
446 | OUT_RING(CP_PACKET3(RADEON_CNTL_BITBLT, 5)); |
635 | OUT_RING(CP_PACKET3(RADEON_CNTL_BITBLT, 5)); |
Line 447... | Line 636... | ||
447 | 636 | ||
448 | OUT_RING(RADEON_GMC_SRC_PITCH_OFFSET_CNTL | |
637 | OUT_RING(RADEON_GMC_SRC_PITCH_OFFSET_CNTL | |
449 | RADEON_GMC_DST_PITCH_OFFSET_CNTL | |
638 | RADEON_GMC_DST_PITCH_OFFSET_CNTL | |
Line 505... | Line 694... | ||
505 | { |
694 | { |
506 | u32_t *ring, write; |
695 | u32_t *ring, write; |
507 | 696 | ||
508 | u32_t ifl = safe_cli(); |
697 | u32_t ifl; |
Line -... | Line 698... | ||
- | 698 | ||
- | 699 | ifl = safe_cli(); |
|
509 | 700 | ||
Line 510... | Line 701... | ||
510 | #if R300_PIO |
701 | #if R300_PIO |
Line 511... | Line 702... | ||
511 | 702 | ||
Line 524... | Line 715... | ||
524 | 715 | ||
525 | OUTREG(R5XX_DP_CNTL, R5XX_DST_X_LEFT_TO_RIGHT | R5XX_DST_Y_TOP_TO_BOTTOM); |
716 | OUTREG(R5XX_DP_CNTL, R5XX_DST_X_LEFT_TO_RIGHT | R5XX_DST_Y_TOP_TO_BOTTOM); |
Line 526... | Line 717... | ||
526 | 717 | ||
Line 527... | Line 718... | ||
527 | OUTREG(R5XX_CLR_CMP_CLR_SRC, 0xFF000000); |
718 | OUTREG(R5XX_CLR_CMP_CLR_SRC, blit->key); |
528 | OUTREG(R5XX_CLR_CMP_MASK, R5XX_CLR_CMP_MSK); |
719 | OUTREG(R5XX_CLR_CMP_MASK, R5XX_CLR_CMP_MSK); |
529 | OUTREG(R5XX_CLR_CMP_CNTL, R5XX_SRC_CMP_EQ_COLOR | R5XX_CLR_CMP_SRC_SOURCE); |
720 | OUTREG(R5XX_CLR_CMP_CNTL, R5XX_SRC_CMP_EQ_COLOR | R5XX_CLR_CMP_SRC_SOURCE); |
Line 530... | Line 721... | ||
530 | 721 | ||
531 | OUTREG(R5XX_DST_PITCH_OFFSET, dstpixmap->pitch_offset); |
722 | OUTREG(R5XX_DST_PITCH_OFFSET, dstpixmap->pitch_offset); |
Line 537... | Line 728... | ||
537 | 728 | ||
538 | #else |
729 | #else |
Line 539... | Line 730... | ||
539 | 730 | ||
Line 540... | Line 731... | ||
540 | BEGIN_RING(); |
731 | BEGIN_RING(10); |
- | 732 | ||
541 | OUT_RING(CP_PACKET3(RADEON_CNTL_TRANBLT, 8)); |
733 | OUT_RING(CP_PACKET3(RADEON_CNTL_TRANBLT, 8)); |
Line 542... | Line 734... | ||
542 | 734 | ||
543 | OUT_RING(RADEON_GMC_SRC_PITCH_OFFSET_CNTL | |
735 | OUT_RING(RADEON_GMC_SRC_PITCH_OFFSET_CNTL | |
544 | RADEON_GMC_DST_PITCH_OFFSET_CNTL | |
736 | RADEON_GMC_DST_PITCH_OFFSET_CNTL | |
Line 554... | Line 746... | ||
554 | OUT_RING(dstpixmap->pitch_offset); |
746 | OUT_RING(dstpixmap->pitch_offset); |
555 | 747 | ||
Line 556... | Line 748... | ||
556 | OUT_RING(R5XX_CLR_CMP_SRC_SOURCE | R5XX_SRC_CMP_EQ_COLOR); |
748 | OUT_RING(R5XX_CLR_CMP_SRC_SOURCE | R5XX_SRC_CMP_EQ_COLOR); |
557 | OUT_RING(0xFF000000); |
749 | OUT_RING(blit->key); |
558 | OUT_RING(0xFF000000); |
750 | OUT_RING(0xFFFFFFFF); |
Line 559... | Line 751... | ||
559 | 751 | ||
560 | OUT_RING((blit->src_x<<16)|blit->src_y); |
752 | OUT_RING((blit->src_x<<16)|blit->src_y); |
561 | OUT_RING((blit->dst_x<<16)|blit->dst_y); |
753 | OUT_RING((blit->dst_x<<16)|blit->dst_y); |