aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/nouveau/nv10_state_raster.c
diff options
context:
space:
mode:
authorBen Skeggs <[email protected]>2011-12-23 14:03:49 +1000
committerBen Skeggs <[email protected]>2012-04-14 02:56:12 +1000
commit2e47d01c9e5325906cf3bb979279599991c6328e (patch)
tree03f161f671bf350d5455669679c98c46192f9be6 /src/mesa/drivers/dri/nouveau/nv10_state_raster.c
parent7308b6e75fe64f4e3f318bc7b5d276585e4f6957 (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.c120
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]));
}