nv50: Dehexify and bring up to date with new method defines.
authorMarcin Koƛcielnicki <koriakin@0x04.net>
Mon, 28 Dec 2009 16:23:40 +0000 (16:23 +0000)
committerFrancisco Jerez <currojerez@riseup.net>
Mon, 28 Dec 2009 17:09:26 +0000 (18:09 +0100)
Signed-off-by: Francisco Jerez <currojerez@riseup.net>
src/gallium/drivers/nv50/nv50_program.c
src/gallium/drivers/nv50/nv50_query.c
src/gallium/drivers/nv50/nv50_screen.c
src/gallium/drivers/nv50/nv50_state.c
src/gallium/drivers/nv50/nv50_state_validate.c
src/gallium/drivers/nv50/nv50_surface.c
src/gallium/drivers/nv50/nv50_transfer.c
src/gallium/drivers/nv50/nv50_vbo.c

index a101ac095c270991d9ebdbc2979eed427a232717..b9910b430a16aaeb6d72673d875e0cd3b0942354 100644 (file)
@@ -3498,7 +3498,7 @@ nv50_fragprog_validate(struct nv50_context *nv50)
        so_data  (so, p->cfg.high_temp);
        so_method(so, tesla, NV50TCL_FP_RESULT_COUNT, 1);
        so_data  (so, p->cfg.high_result);
-       so_method(so, tesla, NV50TCL_FP_CTRL_UNK19A8, 1);
+       so_method(so, tesla, NV50TCL_FP_CONTROL, 1);
        so_data  (so, p->cfg.regs[2]);
        so_method(so, tesla, NV50TCL_FP_CTRL_UNK196C, 1);
        so_data  (so, p->cfg.regs[3]);
@@ -3670,7 +3670,7 @@ nv50_linkage_validate(struct nv50_context *nv50)
        so_method(so, tesla, NV50TCL_FP_INTERPOLANT_CTRL, 1);
        so_data  (so, reg[4]);
 
-       so_method(so, tesla, 0x1540, 4);
+       so_method(so, tesla, NV50TCL_NOPERSPECTIVE_BITMAP(0), 4);
        so_datap (so, lin, 4);
 
        if (nv50->rasterizer->pipe.point_sprite) {
index 268c9823f7d8887ceab9b3022662d61a6c372da8..5d9e18218ae8cd976c364a5bdcf2755efc5a0f90 100644 (file)
@@ -77,9 +77,9 @@ nv50_query_begin(struct pipe_context *pipe, struct pipe_query *pq)
        struct nouveau_grobj *tesla = nv50->screen->tesla;
        struct nv50_query *q = nv50_query(pq);
 
-       BEGIN_RING(chan, tesla, 0x1530, 1);
+       BEGIN_RING(chan, tesla, NV50TCL_SAMPLECNT_RESET, 1);
        OUT_RING  (chan, 1);
-       BEGIN_RING(chan, tesla, 0x1514, 1);
+       BEGIN_RING(chan, tesla, NV50TCL_SAMPLECNT_ENABLE, 1);
        OUT_RING  (chan, 1);
 
        q->ready = FALSE;
index 5a1efd3998bc2fed34237ae18bc98c9df67576b2..15e4b6e5ca6884831b3058af0ae271dbbd5cd1a1 100644 (file)
@@ -231,8 +231,7 @@ nv50_screen_create(struct pipe_winsys *ws, struct nouveau_device *dev)
                break;
        case 0x80:
        case 0x90:
-               /* this stupid name should be corrected. */
-               tesla_class = NV54TCL;
+               tesla_class = NV84TCL;
                break;
        case 0xa0:
                switch (chipset) {
@@ -242,7 +241,7 @@ nv50_screen_create(struct pipe_winsys *ws, struct nouveau_device *dev)
                        tesla_class = NVA0TCL;
                        break;
                default:
-                       tesla_class = 0x8597;
+                       tesla_class = NVA8TCL;
                        break;
                }
                break;
@@ -287,7 +286,7 @@ nv50_screen_create(struct pipe_winsys *ws, struct nouveau_device *dev)
        so_data  (so, chan->vram->handle);
        so_method(so, screen->eng2d, NV50_2D_OPERATION, 1);
        so_data  (so, NV50_2D_OPERATION_SRCCOPY);
-       so_method(so, screen->eng2d, 0x0290, 1);
+       so_method(so, screen->eng2d, NV50_2D_CLIP_ENABLE, 1);
        so_data  (so, 0);
        so_method(so, screen->eng2d, 0x0888, 1);
        so_data  (so, 1);
@@ -297,34 +296,33 @@ nv50_screen_create(struct pipe_winsys *ws, struct nouveau_device *dev)
        /* Static tesla init */
        so = so_new(256, 20);
 
-       so_method(so, screen->tesla, 0x1558, 1);
-       so_data  (so, 1);
+       so_method(so, screen->tesla, NV50TCL_COND_MODE, 1);
+       so_data  (so, NV50TCL_COND_MODE_ALWAYS);
        so_method(so, screen->tesla, NV50TCL_DMA_NOTIFY, 1);
        so_data  (so, screen->sync->handle);
-       so_method(so, screen->tesla, NV50TCL_DMA_UNK0(0),
-                                    NV50TCL_DMA_UNK0__SIZE);
-       for (i = 0; i < NV50TCL_DMA_UNK0__SIZE; i++)
+       so_method(so, screen->tesla, NV50TCL_DMA_ZETA, 11);
+       for (i = 0; i < 11; i++)
                so_data(so, chan->vram->handle);
-       so_method(so, screen->tesla, NV50TCL_DMA_UNK1(0),
-                                    NV50TCL_DMA_UNK1__SIZE);
-       for (i = 0; i < NV50TCL_DMA_UNK1__SIZE; i++)
+       so_method(so, screen->tesla, NV50TCL_DMA_COLOR(0),
+                                    NV50TCL_DMA_COLOR__SIZE);
+       for (i = 0; i < NV50TCL_DMA_COLOR__SIZE; i++)
                so_data(so, chan->vram->handle);
-       so_method(so, screen->tesla, 0x121c, 1);
+       so_method(so, screen->tesla, NV50TCL_RT_CONTROL, 1);
        so_data  (so, 1);
 
        /* activate all 32 lanes (threads) in a warp */
-       so_method(so, screen->tesla, 0x19a0, 1);
+       so_method(so, screen->tesla, NV50TCL_WARP_HALVES, 1);
        so_data  (so, 0x2);
        so_method(so, screen->tesla, 0x1400, 1);
        so_data  (so, 0xf);
 
        /* max TIC (bits 4:8) & TSC (ignored) bindings, per program type */
-       so_method(so, screen->tesla, 0x13b4, 1);
+       so_method(so, screen->tesla, NV50TCL_TEX_LIMITS(0), 1);
        so_data  (so, 0x54);
-       so_method(so, screen->tesla, 0x13bc, 1);
+       so_method(so, screen->tesla, NV50TCL_TEX_LIMITS(2), 1);
        so_data  (so, 0x54);
        /* origin is top left (set to 1 for bottom left) */
-       so_method(so, screen->tesla, 0x13ac, 1);
+       so_method(so, screen->tesla, NV50TCL_Y_ORIGIN_BOTTOM, 1);
        so_data  (so, 0);
        so_method(so, screen->tesla, NV50TCL_VP_REG_ALLOC_RESULT, 1);
        so_data  (so, 8);
@@ -360,7 +358,7 @@ nv50_screen_create(struct pipe_winsys *ws, struct nouveau_device *dev)
        //  B = buffer ID (maybe more than 1 byte)
        //  N = CB index used in shader instruction
        //  P = program type (0 = VP, 2 = GP, 3 = FP)
-       so_method(so, screen->tesla, 0x1694, 1);
+       so_method(so, screen->tesla, NV50TCL_SET_PROGRAM_CB, 1);
        so_data  (so, 0x000BBNP1);
        */
 
@@ -424,24 +422,24 @@ nv50_screen_create(struct pipe_winsys *ws, struct nouveau_device *dev)
 
        /* Vertex array limits - max them out */
        for (i = 0; i < 16; i++) {
-               so_method(so, screen->tesla, NV50TCL_UNK1080_OFFSET_HIGH(i), 2);
+               so_method(so, screen->tesla, NV50TCL_VERTEX_ARRAY_LIMIT_HIGH(i), 2);
                so_data  (so, 0x000000ff);
                so_data  (so, 0xffffffff);
        }
 
-       so_method(so, screen->tesla, NV50TCL_DEPTH_RANGE_NEAR, 2);
+       so_method(so, screen->tesla, NV50TCL_DEPTH_RANGE_NEAR(0), 2);
        so_data  (so, fui(0.0));
        so_data  (so, fui(1.0));
 
        /* no dynamic combination of TIC & TSC entries => only BIND_TIC used */
-       so_method(so, screen->tesla, 0x1234, 1);
+       so_method(so, screen->tesla, NV50TCL_LINKED_TSC, 1);
        so_data  (so, 1);
 
        /* activate first scissor rectangle */
-       so_method(so, screen->tesla, NV50TCL_SCISSOR_ENABLE, 1);
+       so_method(so, screen->tesla, NV50TCL_SCISSOR_ENABLE(0), 1);
        so_data  (so, 1);
 
-       so_method(so, screen->tesla, 0x15e4, 1);
+       so_method(so, screen->tesla, NV50TCL_EDGEFLAG_ENABLE, 1);
        so_data  (so, 1); /* default edgeflag to TRUE */
 
        so_emit(chan, so);
index 88aef52d08c6bb57218cea85a52d9af073581b7c..18a2b819d8b609749a244b95f0889831cad58e76 100644 (file)
@@ -295,7 +295,7 @@ nv50_rasterizer_state_create(struct pipe_context *pipe,
        so_method(so, tesla, NV50TCL_SHADE_MODEL, 1);
        so_data  (so, cso->flatshade ? NV50TCL_SHADE_MODEL_FLAT :
                                       NV50TCL_SHADE_MODEL_SMOOTH);
-       so_method(so, tesla, 0x1684, 1);
+       so_method(so, tesla, NV50TCL_PROVOKING_VERTEX_LAST, 1);
        so_data  (so, cso->flatshade_first ? 0 : 1);
 
        so_method(so, tesla, NV50TCL_VERTEX_TWO_SIDE_ENABLE, 1);
@@ -439,9 +439,8 @@ nv50_depth_stencil_alpha_state_create(struct pipe_context *pipe,
                so_data  (so, 0);
        }
 
-       /* XXX: keep hex values until header is updated (names reversed) */
        if (cso->stencil[0].enabled) {
-               so_method(so, tesla, 0x1380, 8);
+               so_method(so, tesla, NV50TCL_STENCIL_FRONT_ENABLE, 8);
                so_data  (so, 1);
                so_data  (so, nvgl_stencil_op(cso->stencil[0].fail_op));
                so_data  (so, nvgl_stencil_op(cso->stencil[0].zfail_op));
@@ -451,23 +450,23 @@ nv50_depth_stencil_alpha_state_create(struct pipe_context *pipe,
                so_data  (so, cso->stencil[0].writemask);
                so_data  (so, cso->stencil[0].valuemask);
        } else {
-               so_method(so, tesla, 0x1380, 1);
+               so_method(so, tesla, NV50TCL_STENCIL_FRONT_ENABLE, 1);
                so_data  (so, 0);
        }
 
        if (cso->stencil[1].enabled) {
-               so_method(so, tesla, 0x1594, 5);
+               so_method(so, tesla, NV50TCL_STENCIL_BACK_ENABLE, 5);
                so_data  (so, 1);
                so_data  (so, nvgl_stencil_op(cso->stencil[1].fail_op));
                so_data  (so, nvgl_stencil_op(cso->stencil[1].zfail_op));
                so_data  (so, nvgl_stencil_op(cso->stencil[1].zpass_op));
                so_data  (so, nvgl_comparison_op(cso->stencil[1].func));
-               so_method(so, tesla, 0x0f54, 3);
+               so_method(so, tesla, NV50TCL_STENCIL_BACK_FUNC_REF, 3);
                so_data  (so, cso->stencil[1].ref_value);
                so_data  (so, cso->stencil[1].writemask);
                so_data  (so, cso->stencil[1].valuemask);
        } else {
-               so_method(so, tesla, 0x1594, 1);
+               so_method(so, tesla, NV50TCL_STENCIL_BACK_ENABLE, 1);
                so_data  (so, 0);
        }
 
index 871e8097b65a9650485c512946b4e6c1adad7dfa..c8bdf9dc2761944d35c086166df6420124ca0fbb 100644 (file)
@@ -41,7 +41,7 @@ nv50_state_validate_fb(struct nv50_context *nv50)
         * FP result 0 always goes to RT[0], bits 4 - 6 are ignored.
         * Ambiguous assignment results in no rendering (no DATA_ERROR).
         */
-       so_method(so, tesla, 0x121c, 1);
+       so_method(so, tesla, NV50TCL_RT_CONTROL, 1);
        so_data  (so, fb->nr_cbufs |
                  (0 <<  4) | (1 <<  7) | (2 << 10) | (3 << 13) |
                  (4 << 16) | (5 << 19) | (6 << 22) | (7 << 25));
@@ -87,7 +87,7 @@ nv50_state_validate_fb(struct nv50_context *nv50)
                                level[fb->cbufs[i]->level].tile_mode << 4);
                so_data(so, 0x00000000);
 
-               so_method(so, tesla, 0x1224, 1);
+               so_method(so, tesla, NV50TCL_RT_ARRAY_MODE, 1);
                so_data  (so, 1);
        }
 
@@ -124,22 +124,22 @@ nv50_state_validate_fb(struct nv50_context *nv50)
                                level[fb->zsbuf->level].tile_mode << 4);
                so_data(so, 0x00000000);
 
-               so_method(so, tesla, 0x1538, 1);
+               so_method(so, tesla, NV50TCL_ZETA_ENABLE, 1);
                so_data  (so, 1);
                so_method(so, tesla, NV50TCL_ZETA_HORIZ, 3);
                so_data  (so, fb->zsbuf->width);
                so_data  (so, fb->zsbuf->height);
                so_data  (so, 0x00010001);
        } else {
-               so_method(so, tesla, 0x1538, 1);
+               so_method(so, tesla, NV50TCL_ZETA_ENABLE, 1);
                so_data  (so, 0);
        }
 
-       so_method(so, tesla, NV50TCL_VIEWPORT_HORIZ, 2);
+       so_method(so, tesla, NV50TCL_VIEWPORT_HORIZ(0), 2);
        so_data  (so, w << 16);
        so_data  (so, h << 16);
        /* set window lower left corner */
-       so_method(so, tesla, NV50TCL_WINDOW_LEFT, 2);
+       so_method(so, tesla, NV50TCL_WINDOW_OFFSET_X, 2);
        so_data  (so, 0);
        so_data  (so, 0);
        /* set screen scissor rectangle */
@@ -325,7 +325,7 @@ nv50_state_validate(struct nv50_context *nv50)
                nv50->state.scissor_enabled = rast->scissor;
 
                so = so_new(3, 0);
-               so_method(so, tesla, NV50TCL_SCISSOR_HORIZ, 2);
+               so_method(so, tesla, NV50TCL_SCISSOR_HORIZ(0), 2);
                if (nv50->state.scissor_enabled) {
                        so_data(so, (s->maxx << 16) | s->minx);
                        so_data(so, (s->maxy << 16) | s->miny);
@@ -355,11 +355,11 @@ scissor_uptodate:
 
                so = so_new(14, 0);
                if (!bypass) {
-                       so_method(so, tesla, NV50TCL_VIEWPORT_TRANSLATE(0), 3);
+                       so_method(so, tesla, NV50TCL_VIEWPORT_TRANSLATE_X(0), 3);
                        so_data  (so, fui(nv50->viewport.translate[0]));
                        so_data  (so, fui(nv50->viewport.translate[1]));
                        so_data  (so, fui(nv50->viewport.translate[2]));
-                       so_method(so, tesla, NV50TCL_VIEWPORT_SCALE(0), 3);
+                       so_method(so, tesla, NV50TCL_VIEWPORT_SCALE_X(0), 3);
                        so_data  (so, fui(nv50->viewport.scale[0]));
                        so_data  (so, fui(nv50->viewport.scale[1]));
                        so_data  (so, fui(nv50->viewport.scale[2]));
@@ -440,7 +440,7 @@ void nv50_so_init_sifc(struct nv50_context *nv50,
        so_data  (so, 1);
        so_reloc (so, bo, offset, reloc | NOUVEAU_BO_HIGH, 0, 0);
        so_reloc (so, bo, offset, reloc | NOUVEAU_BO_LOW, 0, 0);
-       so_method(so, eng2d, NV50_2D_SIFC_UNK0800, 2);
+       so_method(so, eng2d, NV50_2D_SIFC_BITMAP_ENABLE, 2);
        so_data  (so, 0);
        so_data  (so, NV50_2D_SIFC_FORMAT_R8_UNORM);
        so_method(so, eng2d, NV50_2D_SIFC_WIDTH, 10);
index 79655fc08d5a6b782b33eadb5916d0a6697fed19..6378132979ed16e4af90083ad7e6ec4d6ab755b6 100644 (file)
@@ -176,11 +176,11 @@ nv50_surface_fill(struct pipe_context *pipe, struct pipe_surface *dest,
        if (ret)
                return;
 
-       BEGIN_RING(chan, eng2d, 0x0580, 3);
-       OUT_RING  (chan, 4);
+       BEGIN_RING(chan, eng2d, NV50_2D_DRAW_SHAPE, 3);
+       OUT_RING  (chan, NV50_2D_DRAW_SHAPE_RECTANGLES);
        OUT_RING  (chan, format);
        OUT_RING  (chan, value);
-       BEGIN_RING(chan, eng2d, NV50_2D_RECT_X1, 4);
+       BEGIN_RING(chan, eng2d, NV50_2D_DRAW_POINT32_X(0), 4);
        OUT_RING  (chan, destx);
        OUT_RING  (chan, desty);
        OUT_RING  (chan, width);
index 4d9afa6fedc7342d7b53832ab2ecb166df295c2a..a2f1db2914cf7523443fb1babee3196473463569 100644 (file)
@@ -47,7 +47,7 @@ nv50_transfer_rect_m2mf(struct pipe_screen *pscreen,
                        NV50_MEMORY_TO_MEMORY_FORMAT_LINEAR_IN, 1);
                OUT_RING  (chan, 1);
                BEGIN_RING(chan, m2mf,
-                       NV50_MEMORY_TO_MEMORY_FORMAT_PITCH_IN, 1);
+                       NV04_MEMORY_TO_MEMORY_FORMAT_PITCH_IN, 1);
                OUT_RING  (chan, src_pitch);
                src_offset += (sy * src_pitch) + (sx * cpp);
        } else {
@@ -66,7 +66,7 @@ nv50_transfer_rect_m2mf(struct pipe_screen *pscreen,
                        NV50_MEMORY_TO_MEMORY_FORMAT_LINEAR_OUT, 1);
                OUT_RING  (chan, 1);
                BEGIN_RING(chan, m2mf,
-                       NV50_MEMORY_TO_MEMORY_FORMAT_PITCH_OUT, 1);
+                       NV04_MEMORY_TO_MEMORY_FORMAT_PITCH_OUT, 1);
                OUT_RING  (chan, dst_pitch);
                dst_offset += (dy * dst_pitch) + (dx * cpp);
        } else {
@@ -89,7 +89,7 @@ nv50_transfer_rect_m2mf(struct pipe_screen *pscreen,
                OUT_RELOCh(chan, src_bo, src_offset, src_reloc);
                OUT_RELOCh(chan, dst_bo, dst_offset, dst_reloc);
                BEGIN_RING(chan, m2mf,
-                       NV50_MEMORY_TO_MEMORY_FORMAT_OFFSET_IN, 2);
+                       NV04_MEMORY_TO_MEMORY_FORMAT_OFFSET_IN, 2);
                OUT_RELOCl(chan, src_bo, src_offset, src_reloc);
                OUT_RELOCl(chan, dst_bo, dst_offset, dst_reloc);
                if (src_bo->tile_flags) {
@@ -107,7 +107,7 @@ nv50_transfer_rect_m2mf(struct pipe_screen *pscreen,
                        dst_offset += (line_count * dst_pitch);
                }
                BEGIN_RING(chan, m2mf,
-                       NV50_MEMORY_TO_MEMORY_FORMAT_LINE_LENGTH_IN, 4);
+                       NV04_MEMORY_TO_MEMORY_FORMAT_LINE_LENGTH_IN, 4);
                OUT_RING  (chan, width * cpp);
                OUT_RING  (chan, line_count);
                OUT_RING  (chan, 0x00000101);
@@ -291,7 +291,7 @@ nv50_upload_sifc(struct nv50_context *nv50,
 
        /* NV50_2D_OPERATION_SRCCOPY assumed already set */
 
-       BEGIN_RING(chan, eng2d, NV50_2D_SIFC_UNK0800, 2);
+       BEGIN_RING(chan, eng2d, NV50_2D_SIFC_BITMAP_ENABLE, 2);
        OUT_RING  (chan, 0);
        OUT_RING  (chan, src_format);
        BEGIN_RING(chan, eng2d, NV50_2D_SIFC_WIDTH, 10);
@@ -334,6 +334,6 @@ nv50_upload_sifc(struct nv50_context *nv50,
                src += src_pitch;
        }
 
-       BEGIN_RING(chan, tesla, 0x1440, 1);
+       BEGIN_RING(chan, tesla, NV50TCL_CODE_CB_FLUSH, 1);
        OUT_RING  (chan, 0);
 }
index 39324e30f6b86a3308b9159ea0bf73268e288f74..602adfc50deea0643ecb8383dbe8891e35a249f0 100644 (file)
@@ -99,19 +99,19 @@ nv50_vbo_size_to_hw(unsigned size, unsigned nr_c)
 {
        static const uint32_t hw_values[] = {
                0, 0, 0, 0,
-               NV50TCL_VERTEX_ARRAY_ATTRIB_SIZE_8,
-               NV50TCL_VERTEX_ARRAY_ATTRIB_SIZE_8_8,
-               NV50TCL_VERTEX_ARRAY_ATTRIB_SIZE_8_8_8,
-               NV50TCL_VERTEX_ARRAY_ATTRIB_SIZE_8_8_8_8,
-               NV50TCL_VERTEX_ARRAY_ATTRIB_SIZE_16,
-               NV50TCL_VERTEX_ARRAY_ATTRIB_SIZE_16_16,
-               NV50TCL_VERTEX_ARRAY_ATTRIB_SIZE_16_16_16,
-               NV50TCL_VERTEX_ARRAY_ATTRIB_SIZE_16_16_16_16,
+               NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_8,
+               NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_8_8,
+               NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_8_8_8,
+               NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_8_8_8_8,
+               NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_16,
+               NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_16_16,
+               NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_16_16_16,
+               NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_16_16_16_16,
                0, 0, 0, 0,
-               NV50TCL_VERTEX_ARRAY_ATTRIB_SIZE_32,
-               NV50TCL_VERTEX_ARRAY_ATTRIB_SIZE_32_32,
-               NV50TCL_VERTEX_ARRAY_ATTRIB_SIZE_32_32_32,
-               NV50TCL_VERTEX_ARRAY_ATTRIB_SIZE_32_32_32_32 };
+               NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_32,
+               NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_32_32,
+               NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_32_32_32,
+               NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_32_32_32_32 };
 
        /* we'd also have R11G11B10 and R10G10B10A2 */
 
@@ -198,7 +198,7 @@ nv50_draw_elements_inline_u08(struct nv50_context *nv50, uint8_t *map,
                return nv50_push_elements_u08(nv50, map, count);
 
        if (count & 1) {
-               BEGIN_RING(chan, tesla, 0x15e8, 1);
+               BEGIN_RING(chan, tesla, NV50TCL_VB_ELEMENT_U32, 1);
                OUT_RING  (chan, map[0]);
                map++;
                count--;
@@ -208,7 +208,7 @@ nv50_draw_elements_inline_u08(struct nv50_context *nv50, uint8_t *map,
                unsigned nr = count > 2046 ? 2046 : count;
                int i;
 
-               BEGIN_RING(chan, tesla, 0x400015f0, nr >> 1);
+               BEGIN_RING(chan, tesla, NV50TCL_VB_ELEMENT_U16 | 0x40000000, nr >> 1);
                for (i = 0; i < nr; i += 2)
                        OUT_RING  (chan, (map[i + 1] << 16) | map[i]);
 
@@ -231,7 +231,7 @@ nv50_draw_elements_inline_u16(struct nv50_context *nv50, uint16_t *map,
                return nv50_push_elements_u16(nv50, map, count);
 
        if (count & 1) {
-               BEGIN_RING(chan, tesla, 0x15e8, 1);
+               BEGIN_RING(chan, tesla, NV50TCL_VB_ELEMENT_U32, 1);
                OUT_RING  (chan, map[0]);
                map++;
                count--;
@@ -241,7 +241,7 @@ nv50_draw_elements_inline_u16(struct nv50_context *nv50, uint16_t *map,
                unsigned nr = count > 2046 ? 2046 : count;
                int i;
 
-               BEGIN_RING(chan, tesla, 0x400015f0, nr >> 1);
+               BEGIN_RING(chan, tesla, NV50TCL_VB_ELEMENT_U16 | 0x40000000, nr >> 1);
                for (i = 0; i < nr; i += 2)
                        OUT_RING  (chan, (map[i + 1] << 16) | map[i]);
 
@@ -266,7 +266,7 @@ nv50_draw_elements_inline_u32(struct nv50_context *nv50, uint32_t *map,
        while (count) {
                unsigned nr = count > 2047 ? 2047 : count;
 
-               BEGIN_RING(chan, tesla, 0x400015e8, nr);
+               BEGIN_RING(chan, tesla, NV50TCL_VB_ELEMENT_U32 | 0x40000000, nr);
                OUT_RINGp (chan, map, nr);
 
                count -= nr;
@@ -373,7 +373,7 @@ nv50_vbo_static_attrib(struct nv50_context *nv50, unsigned attrib,
                break;
        case 1:
                if (attrib == nv50->vertprog->cfg.edgeflag_in) {
-                       so_method(so, tesla, 0x15e4, 1);
+                       so_method(so, tesla, NV50TCL_EDGEFLAG_ENABLE, 1);
                        so_data  (so, v[0] ? 1 : 0);
                }
                so_method(so, tesla, NV50TCL_VTX_ATTR_1F(attrib), 1);
@@ -452,7 +452,7 @@ nv50_vbo_validate(struct nv50_context *nv50)
                          NOUVEAU_BO_RD | NOUVEAU_BO_LOW, 0, 0);
 
                /* vertex array limits */
-               so_method(vtxbuf, tesla, 0x1080 + (i * 8), 2);
+               so_method(vtxbuf, tesla, NV50TCL_VERTEX_ARRAY_LIMIT_HIGH(i), 2);
                so_reloc (vtxbuf, bo, vb->buffer->size - 1,
                          NOUVEAU_BO_VRAM | NOUVEAU_BO_GART | NOUVEAU_BO_RD |
                          NOUVEAU_BO_HIGH, 0, 0);