diff options
author | Ben Skeggs <[email protected]> | 2011-12-23 14:03:49 +1000 |
---|---|---|
committer | Ben Skeggs <[email protected]> | 2012-04-14 02:56:12 +1000 |
commit | 2e47d01c9e5325906cf3bb979279599991c6328e (patch) | |
tree | 03f161f671bf350d5455669679c98c46192f9be6 /src/mesa/drivers/dri/nouveau/nv10_state_raster.c | |
parent | 7308b6e75fe64f4e3f318bc7b5d276585e4f6957 (diff) |
nouveau/vieux: switch to libdrm_nouveau-2.0
Diffstat (limited to 'src/mesa/drivers/dri/nouveau/nv10_state_raster.c')
-rw-r--r-- | src/mesa/drivers/dri/nouveau/nv10_state_raster.c | 120 |
1 files changed, 54 insertions, 66 deletions
diff --git a/src/mesa/drivers/dri/nouveau/nv10_state_raster.c b/src/mesa/drivers/dri/nouveau/nv10_state_raster.c index 50021b0a7bf..8b08c7519d0 100644 --- a/src/mesa/drivers/dri/nouveau/nv10_state_raster.c +++ b/src/mesa/drivers/dri/nouveau/nv10_state_raster.c @@ -34,25 +34,23 @@ void nv10_emit_alpha_func(struct gl_context *ctx, int emit) { - struct nouveau_channel *chan = context_chan(ctx); - struct nouveau_grobj *celsius = context_eng3d(ctx); + struct nouveau_pushbuf *push = context_push(ctx); - BEGIN_RING(chan, celsius, NV10_3D_ALPHA_FUNC_ENABLE, 1); - OUT_RINGb(chan, ctx->Color.AlphaEnabled); + BEGIN_NV04(push, NV10_3D(ALPHA_FUNC_ENABLE), 1); + PUSH_DATAb(push, ctx->Color.AlphaEnabled); - BEGIN_RING(chan, celsius, NV10_3D_ALPHA_FUNC_FUNC, 2); - OUT_RING(chan, nvgl_comparison_op(ctx->Color.AlphaFunc)); - OUT_RING(chan, FLOAT_TO_UBYTE(ctx->Color.AlphaRef)); + BEGIN_NV04(push, NV10_3D(ALPHA_FUNC_FUNC), 2); + PUSH_DATA (push, nvgl_comparison_op(ctx->Color.AlphaFunc)); + PUSH_DATA (push, FLOAT_TO_UBYTE(ctx->Color.AlphaRef)); } void nv10_emit_blend_color(struct gl_context *ctx, int emit) { - struct nouveau_channel *chan = context_chan(ctx); - struct nouveau_grobj *celsius = context_eng3d(ctx); + struct nouveau_pushbuf *push = context_push(ctx); - BEGIN_RING(chan, celsius, NV10_3D_BLEND_COLOR, 1); - OUT_RING(chan, FLOAT_TO_UBYTE(ctx->Color.BlendColor[3]) << 24 | + BEGIN_NV04(push, NV10_3D(BLEND_COLOR), 1); + PUSH_DATA (push, FLOAT_TO_UBYTE(ctx->Color.BlendColor[3]) << 24 | FLOAT_TO_UBYTE(ctx->Color.BlendColor[0]) << 16 | FLOAT_TO_UBYTE(ctx->Color.BlendColor[1]) << 8 | FLOAT_TO_UBYTE(ctx->Color.BlendColor[2]) << 0); @@ -61,35 +59,32 @@ nv10_emit_blend_color(struct gl_context *ctx, int emit) void nv10_emit_blend_equation(struct gl_context *ctx, int emit) { - struct nouveau_channel *chan = context_chan(ctx); - struct nouveau_grobj *celsius = context_eng3d(ctx); + struct nouveau_pushbuf *push = context_push(ctx); - BEGIN_RING(chan, celsius, NV10_3D_BLEND_FUNC_ENABLE, 1); - OUT_RINGb(chan, ctx->Color.BlendEnabled); + BEGIN_NV04(push, NV10_3D(BLEND_FUNC_ENABLE), 1); + PUSH_DATAb(push, ctx->Color.BlendEnabled); - BEGIN_RING(chan, celsius, NV10_3D_BLEND_EQUATION, 1); - OUT_RING(chan, nvgl_blend_eqn(ctx->Color.Blend[0].EquationRGB)); + BEGIN_NV04(push, NV10_3D(BLEND_EQUATION), 1); + PUSH_DATA (push, nvgl_blend_eqn(ctx->Color.Blend[0].EquationRGB)); } void nv10_emit_blend_func(struct gl_context *ctx, int emit) { - struct nouveau_channel *chan = context_chan(ctx); - struct nouveau_grobj *celsius = context_eng3d(ctx); + struct nouveau_pushbuf *push = context_push(ctx); - BEGIN_RING(chan, celsius, NV10_3D_BLEND_FUNC_SRC, 2); - OUT_RING(chan, nvgl_blend_func(ctx->Color.Blend[0].SrcRGB)); - OUT_RING(chan, nvgl_blend_func(ctx->Color.Blend[0].DstRGB)); + BEGIN_NV04(push, NV10_3D(BLEND_FUNC_SRC), 2); + PUSH_DATA (push, nvgl_blend_func(ctx->Color.Blend[0].SrcRGB)); + PUSH_DATA (push, nvgl_blend_func(ctx->Color.Blend[0].DstRGB)); } void nv10_emit_color_mask(struct gl_context *ctx, int emit) { - struct nouveau_channel *chan = context_chan(ctx); - struct nouveau_grobj *celsius = context_eng3d(ctx); + struct nouveau_pushbuf *push = context_push(ctx); - BEGIN_RING(chan, celsius, NV10_3D_COLOR_MASK, 1); - OUT_RING(chan, ((ctx->Color.ColorMask[0][3] ? 1 << 24 : 0) | + BEGIN_NV04(push, NV10_3D(COLOR_MASK), 1); + PUSH_DATA (push, ((ctx->Color.ColorMask[0][3] ? 1 << 24 : 0) | (ctx->Color.ColorMask[0][0] ? 1 << 16 : 0) | (ctx->Color.ColorMask[0][1] ? 1 << 8 : 0) | (ctx->Color.ColorMask[0][2] ? 1 << 0 : 0))); @@ -98,85 +93,78 @@ nv10_emit_color_mask(struct gl_context *ctx, int emit) void nv10_emit_depth(struct gl_context *ctx, int emit) { - struct nouveau_channel *chan = context_chan(ctx); - struct nouveau_grobj *celsius = context_eng3d(ctx); - - BEGIN_RING(chan, celsius, NV10_3D_DEPTH_TEST_ENABLE, 1); - OUT_RINGb(chan, ctx->Depth.Test); - BEGIN_RING(chan, celsius, NV10_3D_DEPTH_WRITE_ENABLE, 1); - OUT_RINGb(chan, ctx->Depth.Mask); - BEGIN_RING(chan, celsius, NV10_3D_DEPTH_FUNC, 1); - OUT_RING(chan, nvgl_comparison_op(ctx->Depth.Func)); + struct nouveau_pushbuf *push = context_push(ctx); + + BEGIN_NV04(push, NV10_3D(DEPTH_TEST_ENABLE), 1); + PUSH_DATAb(push, ctx->Depth.Test); + BEGIN_NV04(push, NV10_3D(DEPTH_WRITE_ENABLE), 1); + PUSH_DATAb(push, ctx->Depth.Mask); + BEGIN_NV04(push, NV10_3D(DEPTH_FUNC), 1); + PUSH_DATA (push, nvgl_comparison_op(ctx->Depth.Func)); } void nv10_emit_dither(struct gl_context *ctx, int emit) { - struct nouveau_channel *chan = context_chan(ctx); - struct nouveau_grobj *celsius = context_eng3d(ctx); + struct nouveau_pushbuf *push = context_push(ctx); - BEGIN_RING(chan, celsius, NV10_3D_DITHER_ENABLE, 1); - OUT_RINGb(chan, ctx->Color.DitherFlag); + BEGIN_NV04(push, NV10_3D(DITHER_ENABLE), 1); + PUSH_DATAb(push, ctx->Color.DitherFlag); } void nv10_emit_logic_opcode(struct gl_context *ctx, int emit) { - struct nouveau_channel *chan = context_chan(ctx); - struct nouveau_grobj *celsius = context_eng3d(ctx); + struct nouveau_pushbuf *push = context_push(ctx); assert(!ctx->Color.ColorLogicOpEnabled || context_chipset(ctx) >= 0x11); - BEGIN_RING(chan, celsius, NV11_3D_COLOR_LOGIC_OP_ENABLE, 2); - OUT_RINGb(chan, ctx->Color.ColorLogicOpEnabled); - OUT_RING(chan, nvgl_logicop_func(ctx->Color.LogicOp)); + BEGIN_NV04(push, NV11_3D(COLOR_LOGIC_OP_ENABLE), 2); + PUSH_DATAb(push, ctx->Color.ColorLogicOpEnabled); + PUSH_DATA (push, nvgl_logicop_func(ctx->Color.LogicOp)); } void nv10_emit_shade_model(struct gl_context *ctx, int emit) { - struct nouveau_channel *chan = context_chan(ctx); - struct nouveau_grobj *celsius = context_eng3d(ctx); + struct nouveau_pushbuf *push = context_push(ctx); - BEGIN_RING(chan, celsius, NV10_3D_SHADE_MODEL, 1); - OUT_RING(chan, ctx->Light.ShadeModel == GL_SMOOTH ? + BEGIN_NV04(push, NV10_3D(SHADE_MODEL), 1); + PUSH_DATA (push, ctx->Light.ShadeModel == GL_SMOOTH ? NV10_3D_SHADE_MODEL_SMOOTH : NV10_3D_SHADE_MODEL_FLAT); } void nv10_emit_stencil_func(struct gl_context *ctx, int emit) { - struct nouveau_channel *chan = context_chan(ctx); - struct nouveau_grobj *celsius = context_eng3d(ctx); + struct nouveau_pushbuf *push = context_push(ctx); - BEGIN_RING(chan, celsius, NV10_3D_STENCIL_ENABLE, 1); - OUT_RINGb(chan, ctx->Stencil.Enabled); + BEGIN_NV04(push, NV10_3D(STENCIL_ENABLE), 1); + PUSH_DATAb(push, ctx->Stencil.Enabled); - BEGIN_RING(chan, celsius, NV10_3D_STENCIL_FUNC_FUNC, 3); - OUT_RING(chan, nvgl_comparison_op(ctx->Stencil.Function[0])); - OUT_RING(chan, ctx->Stencil.Ref[0]); - OUT_RING(chan, ctx->Stencil.ValueMask[0]); + BEGIN_NV04(push, NV10_3D(STENCIL_FUNC_FUNC), 3); + PUSH_DATA (push, nvgl_comparison_op(ctx->Stencil.Function[0])); + PUSH_DATA (push, ctx->Stencil.Ref[0]); + PUSH_DATA (push, ctx->Stencil.ValueMask[0]); } void nv10_emit_stencil_mask(struct gl_context *ctx, int emit) { - struct nouveau_channel *chan = context_chan(ctx); - struct nouveau_grobj *celsius = context_eng3d(ctx); + struct nouveau_pushbuf *push = context_push(ctx); - BEGIN_RING(chan, celsius, NV10_3D_STENCIL_MASK, 1); - OUT_RING(chan, ctx->Stencil.WriteMask[0]); + BEGIN_NV04(push, NV10_3D(STENCIL_MASK), 1); + PUSH_DATA (push, ctx->Stencil.WriteMask[0]); } void nv10_emit_stencil_op(struct gl_context *ctx, int emit) { - struct nouveau_channel *chan = context_chan(ctx); - struct nouveau_grobj *celsius = context_eng3d(ctx); + struct nouveau_pushbuf *push = context_push(ctx); - BEGIN_RING(chan, celsius, NV10_3D_STENCIL_OP_FAIL, 3); - OUT_RING(chan, nvgl_stencil_op(ctx->Stencil.FailFunc[0])); - OUT_RING(chan, nvgl_stencil_op(ctx->Stencil.ZFailFunc[0])); - OUT_RING(chan, nvgl_stencil_op(ctx->Stencil.ZPassFunc[0])); + BEGIN_NV04(push, NV10_3D(STENCIL_OP_FAIL), 3); + PUSH_DATA (push, nvgl_stencil_op(ctx->Stencil.FailFunc[0])); + PUSH_DATA (push, nvgl_stencil_op(ctx->Stencil.ZFailFunc[0])); + PUSH_DATA (push, nvgl_stencil_op(ctx->Stencil.ZPassFunc[0])); } |