diff options
Diffstat (limited to 'src/nvc0_exa.c')
-rw-r--r-- | src/nvc0_exa.c | 119 |
1 files changed, 62 insertions, 57 deletions
diff --git a/src/nvc0_exa.c b/src/nvc0_exa.c index 338c765..45647ce 100644 --- a/src/nvc0_exa.c +++ b/src/nvc0_exa.c @@ -36,6 +36,7 @@ NVC0AccelDownloadM2MF(PixmapPtr pspix, int x, int y, int w, int h, NVPtr pNv = NVPTR(pScrn); struct nouveau_channel *chan = pNv->chan; struct nouveau_bo *bo = nouveau_pixmap_bo(pspix); + struct nouveau_grobj *m2mf = pNv->NvMemFormat; const int cpp = pspix->drawable.bitsPerPixel / 8; const int line_len = w * cpp; const int line_limit = (128 << 10) / line_len; @@ -46,7 +47,7 @@ NVC0AccelDownloadM2MF(PixmapPtr pspix, int x, int y, int w, int h, src_pitch = exaGetPixmapPitch(pspix); src_offset = (y * src_pitch) + (x * cpp); } else { - BEGIN_RING(chan, NvSubM2MF, NVC0_M2MF_TILING_MODE_IN, 5); + BEGIN_RING(chan, m2mf, NVC0_M2MF_TILING_MODE_IN, 5); OUT_RING (chan, bo->tile_mode); OUT_RING (chan, pspix->drawable.width * cpp); OUT_RING (chan, pspix->drawable.height); @@ -65,11 +66,11 @@ NVC0AccelDownloadM2MF(PixmapPtr pspix, int x, int y, int w, int h, MARK_RING(chan, 16, 4); - BEGIN_RING(chan, NvSubM2MF, NVC0_M2MF_OFFSET_OUT_HIGH, 2); + BEGIN_RING(chan, m2mf, NVC0_M2MF_OFFSET_OUT_HIGH, 2); OUT_RELOCh(chan, pNv->GART, 0, NOUVEAU_BO(GART, GART, WR)); OUT_RELOCl(chan, pNv->GART, 0, NOUVEAU_BO(GART, GART, WR)); - BEGIN_RING(chan, NvSubM2MF, NVC0_M2MF_OFFSET_IN_HIGH, 6); + BEGIN_RING(chan, m2mf, NVC0_M2MF_OFFSET_IN_HIGH, 6); OUT_RELOCh(chan, bo, src_offset, NOUVEAU_BO(VRAM, GART, RD)); OUT_RELOCl(chan, bo, src_offset, NOUVEAU_BO(VRAM, GART, RD)); OUT_RING (chan, src_pitch); @@ -78,13 +79,13 @@ NVC0AccelDownloadM2MF(PixmapPtr pspix, int x, int y, int w, int h, OUT_RING (chan, line_count); if (tiled) { - BEGIN_RING(chan, NvSubM2MF, + BEGIN_RING(chan, m2mf, NVC0_M2MF_TILING_POSITION_IN_X, 2); OUT_RING (chan, x * cpp); OUT_RING (chan, y); } - BEGIN_RING(chan, NvSubM2MF, NVC0_M2MF_EXEC, 1); + BEGIN_RING(chan, m2mf, NVC0_M2MF_EXEC, 1); OUT_RING (chan, 0x100000 | (tiled << 8)); if (nouveau_bo_map(pNv->GART, NOUVEAU_BO_RD)) { @@ -122,6 +123,7 @@ NVC0AccelUploadM2MF(PixmapPtr pdpix, int x, int y, int w, int h, NVPtr pNv = NVPTR(pScrn); struct nouveau_channel *chan = pNv->chan; struct nouveau_bo *bo = nouveau_pixmap_bo(pdpix); + struct nouveau_grobj *m2mf = pNv->NvMemFormat; int cpp = pdpix->drawable.bitsPerPixel / 8; int line_len = w * cpp; int line_limit = (128 << 10) / line_len; @@ -132,7 +134,7 @@ NVC0AccelUploadM2MF(PixmapPtr pdpix, int x, int y, int w, int h, dst_pitch = exaGetPixmapPitch(pdpix); dst_offset = (y * dst_pitch) + (x * cpp); } else { - BEGIN_RING(chan, NvSubM2MF, NVC0_M2MF_TILING_MODE_OUT, 5); + BEGIN_RING(chan, m2mf, NVC0_M2MF_TILING_MODE_OUT, 5); OUT_RING (chan, bo->tile_mode); OUT_RING (chan, pdpix->drawable.width * cpp); OUT_RING (chan, pdpix->drawable.height); @@ -167,28 +169,28 @@ NVC0AccelUploadM2MF(PixmapPtr pdpix, int x, int y, int w, int h, if (MARK_RING(chan, 16, 4)) return FALSE; - BEGIN_RING(chan, NvSubM2MF, NVC0_M2MF_OFFSET_IN_HIGH, 2); + BEGIN_RING(chan, m2mf, NVC0_M2MF_OFFSET_IN_HIGH, 2); OUT_RELOCh(chan, pNv->GART, 0, NOUVEAU_BO(GART, GART, RD)); OUT_RELOCl(chan, pNv->GART, 0, NOUVEAU_BO(GART, GART, RD)); - BEGIN_RING(chan, NvSubM2MF, NVC0_M2MF_OFFSET_OUT_HIGH, 2); + BEGIN_RING(chan, m2mf, NVC0_M2MF_OFFSET_OUT_HIGH, 2); OUT_RELOCh(chan, bo, dst_offset, NOUVEAU_BO(VRAM, GART, WR)); OUT_RELOCl(chan, bo, dst_offset, NOUVEAU_BO(VRAM, GART, WR)); if (tiled) { - BEGIN_RING(chan, NvSubM2MF, + BEGIN_RING(chan, m2mf, NVC0_M2MF_TILING_POSITION_OUT_X, 2); OUT_RING (chan, x * cpp); OUT_RING (chan, y); } - BEGIN_RING(chan, NvSubM2MF, NVC0_M2MF_PITCH_IN, 4); + BEGIN_RING(chan, m2mf, NVC0_M2MF_PITCH_IN, 4); OUT_RING (chan, line_len); OUT_RING (chan, dst_pitch); OUT_RING (chan, line_len); OUT_RING (chan, line_count); - BEGIN_RING(chan, NvSubM2MF, NVC0_M2MF_EXEC, 1); + BEGIN_RING(chan, m2mf, NVC0_M2MF_EXEC, 1); OUT_RING (chan, 0x100000 | (tiled << 4)); FIRE_RING (chan); @@ -218,6 +220,9 @@ static struct nvc0_exa_state exa_state; ScrnInfoPtr pScrn = xf86Screens[(p)->drawable.pScreen->myNum]; \ NVPtr pNv = NVPTR(pScrn); \ struct nouveau_channel *chan = pNv->chan; (void)chan; \ + struct nouveau_grobj *m2mf = pNv->NvMemFormat; (void)m2mf; \ + struct nouveau_grobj *eng2d = pNv->Nv2D; (void)eng2d; \ + struct nouveau_grobj *fermi = pNv->Nv3D; (void)fermi; \ struct nvc0_exa_state *state = &exa_state; (void)state #define BF(f) NV50_BLEND_FACTOR_##f @@ -271,7 +276,7 @@ static void NVC0EXASetClip(PixmapPtr ppix, int x, int y, int w, int h) { NVC0EXA_LOCALS(ppix); - BEGIN_RING(chan, NvSub2D, NV50_2D_CLIP_X, 4); + BEGIN_RING(chan, eng2d, NV50_2D_CLIP_X, 4); OUT_RING (chan, x); OUT_RING (chan, y); OUT_RING (chan, w); @@ -293,13 +298,13 @@ NVC0EXAAcquireSurface2D(PixmapPtr ppix, int is_src) bo_flags |= is_src ? NOUVEAU_BO_RD : NOUVEAU_BO_WR; if (!nv50_style_tiled_pixmap(ppix)) { - BEGIN_RING(chan, NvSub2D, mthd, 2); + BEGIN_RING(chan, eng2d, mthd, 2); OUT_RING (chan, fmt); OUT_RING (chan, 1); - BEGIN_RING(chan, NvSub2D, mthd + 0x14, 1); + BEGIN_RING(chan, eng2d, mthd + 0x14, 1); OUT_RING (chan, (uint32_t)exaGetPixmapPitch(ppix)); } else { - BEGIN_RING(chan, NvSub2D, mthd, 5); + BEGIN_RING(chan, eng2d, mthd, 5); OUT_RING (chan, fmt); OUT_RING (chan, 0); OUT_RING (chan, bo->tile_mode); @@ -307,7 +312,7 @@ NVC0EXAAcquireSurface2D(PixmapPtr ppix, int is_src) OUT_RING (chan, 0); } - BEGIN_RING(chan, NvSub2D, mthd + 0x18, 4); + BEGIN_RING(chan, eng2d, mthd + 0x18, 4); OUT_RING (chan, ppix->drawable.width); OUT_RING (chan, ppix->drawable.height); if (OUT_RELOCh(chan, bo, 0, bo_flags) || @@ -325,7 +330,7 @@ NVC0EXASetPattern(PixmapPtr pdpix, int col0, int col1, int pat0, int pat1) { NVC0EXA_LOCALS(pdpix); - BEGIN_RING(chan, NvSub2D, NV50_2D_PATTERN_COLOR(0), 4); + BEGIN_RING(chan, eng2d, NV50_2D_PATTERN_COLOR(0), 4); OUT_RING (chan, col0); OUT_RING (chan, col1); OUT_RING (chan, pat0); @@ -343,7 +348,7 @@ NVC0EXASetROP(PixmapPtr pdpix, int alu, Pixel planemask) else rop = NVROP[alu].copy; - BEGIN_RING(chan, NvSub2D, NV50_2D_OPERATION, 1); + BEGIN_RING(chan, eng2d, NV50_2D_OPERATION, 1); if (alu == GXcopy && EXA_PM_IS_SOLID(&pdpix->drawable, planemask)) { OUT_RING (chan, NV50_2D_OPERATION_SRCCOPY); return; @@ -351,7 +356,7 @@ NVC0EXASetROP(PixmapPtr pdpix, int alu, Pixel planemask) OUT_RING (chan, NV50_2D_OPERATION_SRCCOPY_PREMULT); } - BEGIN_RING(chan, NvSub2D, NV50_2D_PATTERN_FORMAT, 2); + BEGIN_RING(chan, eng2d, NV50_2D_PATTERN_FORMAT, 2); switch (pdpix->drawable.bitsPerPixel) { case 8: OUT_RING (chan, 3); break; case 15: OUT_RING (chan, 1); break; @@ -378,7 +383,7 @@ NVC0EXASetROP(PixmapPtr pdpix, int alu, Pixel planemask) } if (pNv->currentRop != alu) { - BEGIN_RING(chan, NvSub2D, NV50_2D_ROP, 1); + BEGIN_RING(chan, eng2d, NV50_2D_ROP, 1); OUT_RING (chan, rop); pNv->currentRop = alu; } @@ -413,7 +418,7 @@ NVC0EXAPrepareSolid(PixmapPtr pdpix, int alu, Pixel planemask, Pixel fg) NVC0EXASetROP(pdpix, alu, planemask); - BEGIN_RING(chan, NvSub2D, NV50_2D_DRAW_SHAPE, 3); + BEGIN_RING(chan, eng2d, NV50_2D_DRAW_SHAPE, 3); OUT_RING (chan, NV50_2D_DRAW_SHAPE_RECTANGLES); OUT_RING (chan, fmt); OUT_RING (chan, fg); @@ -432,7 +437,7 @@ NVC0EXASolid(PixmapPtr pdpix, int x1, int y1, int x2, int y2) NVC0EXA_LOCALS(pdpix); WAIT_RING (chan, 5); - BEGIN_RING(chan, NvSub2D, NV50_2D_DRAW_POINT32_X(0), 4); + BEGIN_RING(chan, eng2d, NV50_2D_DRAW_POINT32_X(0), 4); OUT_RING (chan, x1); OUT_RING (chan, y1); OUT_RING (chan, x2); @@ -497,11 +502,11 @@ NVC0EXACopy(PixmapPtr pdpix, int srcX , int srcY, NVC0EXA_LOCALS(pdpix); WAIT_RING (chan, 17); - BEGIN_RING(chan, NvSub2D, NV50_2D_SERIALIZE, 1); + BEGIN_RING(chan, eng2d, NV50_2D_SERIALIZE, 1); OUT_RING (chan, 0); - BEGIN_RING(chan, NvSub2D, 0x088c, 1); + BEGIN_RING(chan, eng2d, 0x088c, 1); OUT_RING (chan, 0); - BEGIN_RING(chan, NvSub2D, NV50_2D_BLIT_DST_X, 12); + BEGIN_RING(chan, eng2d, NV50_2D_BLIT_DST_X, 12); OUT_RING (chan, dstX); OUT_RING (chan, dstY); OUT_RING (chan, width); @@ -564,12 +569,12 @@ NVC0EXAUploadSIFC(const char *src, int src_pitch, */ NVC0EXASetClip(pdpix, x, y, w, h); - BEGIN_RING(chan, NvSub2D, NV50_2D_OPERATION, 1); + BEGIN_RING(chan, eng2d, NV50_2D_OPERATION, 1); OUT_RING (chan, NV50_2D_OPERATION_SRCCOPY); - BEGIN_RING(chan, NvSub2D, NV50_2D_SIFC_BITMAP_ENABLE, 2); + BEGIN_RING(chan, eng2d, NV50_2D_SIFC_BITMAP_ENABLE, 2); OUT_RING (chan, 0); OUT_RING (chan, sifc_fmt); - BEGIN_RING(chan, NvSub2D, NV50_2D_SIFC_WIDTH, 10); + BEGIN_RING(chan, eng2d, NV50_2D_SIFC_WIDTH, 10); OUT_RING (chan, (line_dwords * 4) / cpp); OUT_RING (chan, h); OUT_RING (chan, 0); /* SIFC_DX,Y_DU,V_FRACT,INT */ @@ -592,7 +597,7 @@ NVC0EXAUploadSIFC(const char *src, int src_pitch, int size = count > 1792 ? 1792 : count; WAIT_RING (chan, size + 1); - BEGIN_RING_NI(chan, NvSub2D, NV50_2D_SIFC_DATA, size); + BEGIN_RING_NI(chan, eng2d, NV50_2D_SIFC_DATA, size); OUT_RINGp (chan, ptr, size); ptr += size * 4; @@ -666,7 +671,7 @@ NVC0EXARenderTarget(PixmapPtr ppix, PicturePtr ppict) NOUVEAU_FALLBACK("invalid picture format\n"); } - BEGIN_RING(chan, NvSub3D, NVC0_3D_RT_ADDRESS_HIGH(0), 8); + BEGIN_RING(chan, fermi, NVC0_3D_RT_ADDRESS_HIGH(0), 8); if (OUT_RELOCh(chan, bo, 0, NOUVEAU_BO_VRAM | NOUVEAU_BO_WR) || OUT_RELOCl(chan, bo, 0, NOUVEAU_BO_VRAM | NOUVEAU_BO_WR)) return FALSE; @@ -759,24 +764,24 @@ NVC0EXATexture(PixmapPtr ppix, PicturePtr ppict, unsigned unit) if (!nv50_style_tiled_pixmap(ppix)) NOUVEAU_FALLBACK("pixmap is scanout buffer\n"); - BEGIN_RING(chan, NvSub3D, NVC0_3D_TIC_ADDRESS_HIGH, 3); + BEGIN_RING(chan, fermi, NVC0_3D_TIC_ADDRESS_HIGH, 3); if (OUT_RELOCh(chan, pNv->tesla_scratch, TIC_OFFSET, tcb_flags) || OUT_RELOCl(chan, pNv->tesla_scratch, TIC_OFFSET, tcb_flags)) return FALSE; OUT_RING (chan, 15); - BEGIN_RING(chan, NvSubM2MF, NVC0_M2MF_OFFSET_OUT_HIGH, 2); + BEGIN_RING(chan, m2mf, NVC0_M2MF_OFFSET_OUT_HIGH, 2); if (OUT_RELOCh(chan, pNv->tesla_scratch, TIC_OFFSET + unit * 32, tcb_flags) || OUT_RELOCl(chan, pNv->tesla_scratch, TIC_OFFSET + unit * 32, tcb_flags)) return FALSE; - BEGIN_RING(chan, NvSubM2MF, NVC0_M2MF_LINE_LENGTH_IN, 2); + BEGIN_RING(chan, m2mf, NVC0_M2MF_LINE_LENGTH_IN, 2); OUT_RING (chan, 8 * 4); OUT_RING (chan, 1); - BEGIN_RING(chan, NvSubM2MF, NVC0_M2MF_EXEC, 1); + BEGIN_RING(chan, m2mf, NVC0_M2MF_EXEC, 1); OUT_RING (chan, 0x100111); - BEGIN_RING_NI(chan, NvSubM2MF, NVC0_M2MF_DATA, 8); + BEGIN_RING_NI(chan, m2mf, NVC0_M2MF_DATA, 8); switch (ppict->format) { case PICT_a8r8g8b8: @@ -858,24 +863,24 @@ NVC0EXATexture(PixmapPtr ppix, PicturePtr ppict, unsigned unit) OUT_RING (chan, 0x03000000); OUT_RING (chan, 0x00000000); - BEGIN_RING(chan, NvSub3D, NVC0_3D_TSC_ADDRESS_HIGH, 3); + BEGIN_RING(chan, fermi, NVC0_3D_TSC_ADDRESS_HIGH, 3); if (OUT_RELOCh(chan, pNv->tesla_scratch, TSC_OFFSET, tcb_flags) || OUT_RELOCl(chan, pNv->tesla_scratch, TSC_OFFSET, tcb_flags)) return FALSE; OUT_RING (chan, 0); - BEGIN_RING(chan, NvSubM2MF, NVC0_M2MF_OFFSET_OUT_HIGH, 2); + BEGIN_RING(chan, m2mf, NVC0_M2MF_OFFSET_OUT_HIGH, 2); if (OUT_RELOCh(chan, pNv->tesla_scratch, TSC_OFFSET + unit * 32, tcb_flags) || OUT_RELOCl(chan, pNv->tesla_scratch, TSC_OFFSET + unit * 32, tcb_flags)) return FALSE; - BEGIN_RING(chan, NvSubM2MF, NVC0_M2MF_LINE_LENGTH_IN, 2); + BEGIN_RING(chan, m2mf, NVC0_M2MF_LINE_LENGTH_IN, 2); OUT_RING (chan, 8 * 4); OUT_RING (chan, 1); - BEGIN_RING(chan, NvSubM2MF, NVC0_M2MF_EXEC, 1); + BEGIN_RING(chan, m2mf, NVC0_M2MF_EXEC, 1); OUT_RING (chan, 0x100111); - BEGIN_RING_NI(chan, NvSubM2MF, NVC0_M2MF_DATA, 8); + BEGIN_RING_NI(chan, m2mf, NVC0_M2MF_DATA, 8); if (ppict->repeat) { switch (ppict->repeatType) { @@ -962,18 +967,18 @@ NVC0EXABlend(PixmapPtr ppix, PicturePtr ppict, int op, int component_alpha) } if (sblend == BF(ONE) && dblend == BF(ZERO)) { - BEGIN_RING(chan, NvSub3D, NVC0_3D_BLEND_ENABLE(0), 1); + BEGIN_RING(chan, fermi, NVC0_3D_BLEND_ENABLE(0), 1); OUT_RING (chan, 0); } else { - BEGIN_RING(chan, NvSub3D, NVC0_3D_BLEND_ENABLE(0), 1); + BEGIN_RING(chan, fermi, NVC0_3D_BLEND_ENABLE(0), 1); OUT_RING (chan, 1); - BEGIN_RING(chan, NvSub3D, NVC0_3D_BLEND_EQUATION_RGB, 5); + BEGIN_RING(chan, fermi, NVC0_3D_BLEND_EQUATION_RGB, 5); OUT_RING (chan, NVC0_3D_BLEND_EQUATION_RGB_FUNC_ADD); OUT_RING (chan, sblend); OUT_RING (chan, dblend); OUT_RING (chan, NVC0_3D_BLEND_EQUATION_ALPHA_FUNC_ADD); OUT_RING (chan, sblend); - BEGIN_RING(chan, NvSub3D, NVC0_3D_BLEND_FUNC_DST_ALPHA, 1); + BEGIN_RING(chan, fermi, NVC0_3D_BLEND_FUNC_DST_ALPHA, 1); OUT_RING (chan, dblend); } } @@ -1032,7 +1037,7 @@ NVC0EXAPrepareComposite(int op, NOUVEAU_FALLBACK("comp-alpha"); */ - BEGIN_RING(chan, NvSub2D, NV50_2D_SERIALIZE, 1); + BEGIN_RING(chan, eng2d, NV50_2D_SERIALIZE, 1); OUT_RING (chan, 0); if (!NVC0EXARenderTarget(pdpix, pdpict)) { @@ -1043,7 +1048,7 @@ NVC0EXAPrepareComposite(int op, NVC0EXABlend(pdpix, pdpict, op, pmpict && pmpict->componentAlpha && PICT_FORMAT_RGB(pmpict->format)); - BEGIN_RING(chan, NvSub3D, NVC0_3D_CODE_ADDRESS_HIGH, 2); + BEGIN_RING(chan, fermi, NVC0_3D_CODE_ADDRESS_HIGH, 2); if (OUT_RELOCh(chan, pNv->tesla_scratch, CODE_OFFSET, shd_flags) || OUT_RELOCl(chan, pNv->tesla_scratch, CODE_OFFSET, shd_flags)) { MARK_UNDO(chan); @@ -1054,7 +1059,7 @@ NVC0EXAPrepareComposite(int op, MARK_UNDO(chan); NOUVEAU_FALLBACK("src picture invalid\n"); } - BEGIN_RING(chan, NvSub3D, NVC0_3D_BIND_TIC(4), 1); + BEGIN_RING(chan, fermi, NVC0_3D_BIND_TIC(4), 1); OUT_RING (chan, (0 << 9) | (0 << 1) | NVC0_3D_BIND_TIC_ACTIVE); if (pmpict) { @@ -1064,10 +1069,10 @@ NVC0EXAPrepareComposite(int op, } state->have_mask = TRUE; - BEGIN_RING(chan, NvSub3D, NVC0_3D_BIND_TIC(4), 1); + BEGIN_RING(chan, fermi, NVC0_3D_BIND_TIC(4), 1); OUT_RING (chan, (1 << 9) | (1 << 1) | NVC0_3D_BIND_TIC_ACTIVE); - BEGIN_RING(chan, NvSub3D, NVC0_3D_SP_START_ID(5), 1); + BEGIN_RING(chan, fermi, NVC0_3D_SP_START_ID(5), 1); if (pdpict->format == PICT_a8) { OUT_RING (chan, PFP_C_A8); } else { @@ -1084,21 +1089,21 @@ NVC0EXAPrepareComposite(int op, } else { state->have_mask = FALSE; - BEGIN_RING(chan, NvSub3D, NVC0_3D_BIND_TIC(4), 1); + BEGIN_RING(chan, fermi, NVC0_3D_BIND_TIC(4), 1); OUT_RING (chan, (1 << 1) | 0); - BEGIN_RING(chan, NvSub3D, NVC0_3D_SP_START_ID(5), 1); + BEGIN_RING(chan, fermi, NVC0_3D_SP_START_ID(5), 1); if (pdpict->format == PICT_a8) OUT_RING (chan, PFP_S_A8); else OUT_RING (chan, PFP_S); } - BEGIN_RING(chan, NvSub3D, NVC0_3D_TSC_FLUSH, 1); + BEGIN_RING(chan, fermi, NVC0_3D_TSC_FLUSH, 1); OUT_RING (chan, 0); - BEGIN_RING(chan, NvSub3D, NVC0_3D_TIC_FLUSH, 1); + BEGIN_RING(chan, fermi, NVC0_3D_TIC_FLUSH, 1); OUT_RING (chan, 0); - BEGIN_RING(chan, NvSub3D, NVC0_3D_TEX_CACHE_CTL, 1); + BEGIN_RING(chan, fermi, NVC0_3D_TEX_CACHE_CTL, 1); OUT_RING (chan, 0); pNv->alu = op; @@ -1143,10 +1148,10 @@ NVC0EXAComposite(PixmapPtr pdpix, float sX0, sX1, sX2, sY0, sY1, sY2; WAIT_RING (chan, 64); - BEGIN_RING(chan, NvSub3D, NVC0_3D_SCISSOR_HORIZ(0), 2); + BEGIN_RING(chan, fermi, NVC0_3D_SCISSOR_HORIZ(0), 2); OUT_RING (chan, ((dx + w) << 16) | dx); OUT_RING (chan, ((dy + h) << 16) | dy); - BEGIN_RING(chan, NvSub3D, NVC0_3D_VERTEX_BEGIN_GL, 1); + BEGIN_RING(chan, fermi, NVC0_3D_VERTEX_BEGIN_GL, 1); OUT_RING (chan, NVC0_3D_VERTEX_BEGIN_GL_PRIMITIVE_TRIANGLES); NVC0EXATransform(state->unit[0].transform, sx, sy + (h * 2), @@ -1181,7 +1186,7 @@ NVC0EXAComposite(PixmapPtr pdpix, VTX1s(pNv, sX2, sY2, dx + (w * 2), dy); } - BEGIN_RING(chan, NvSub3D, NVC0_3D_VERTEX_END_GL, 1); + BEGIN_RING(chan, fermi, NVC0_3D_VERTEX_END_GL, 1); OUT_RING (chan, 0); } |