#include "nouveau_context.h"
#include "nouveau_gldefs.h"
#include "nouveau_util.h"
+#include "nv_object.xml.h"
#include "nv10_3d.xml.h"
#include "nv10_driver.h"
+#include "main/stencil.h"
+
void
nv10_emit_alpha_func(struct gl_context *ctx, int emit)
{
nv10_emit_depth(struct gl_context *ctx, int emit)
{
struct nouveau_pushbuf *push = context_push(ctx);
+ struct gl_framebuffer *fb = ctx->DrawBuffer;
BEGIN_NV04(push, NV10_3D(DEPTH_TEST_ENABLE), 1);
- PUSH_DATAb(push, ctx->Depth.Test);
+ PUSH_DATAb(push, ctx->Depth.Test && fb->Visual.depthBits > 0);
BEGIN_NV04(push, NV10_3D(DEPTH_WRITE_ENABLE), 1);
- PUSH_DATAb(push, ctx->Depth.Mask);
+ PUSH_DATAb(push, ctx->Depth.Mask && fb->Visual.depthBits > 0);
BEGIN_NV04(push, NV10_3D(DEPTH_FUNC), 1);
PUSH_DATA (push, nvgl_comparison_op(ctx->Depth.Func));
}
struct nouveau_pushbuf *push = context_push(ctx);
assert(!ctx->Color.ColorLogicOpEnabled
- || context_chipset(ctx) >= 0x11);
+ || context_eng3d(ctx)->oclass >= NV15_3D_CLASS);
BEGIN_NV04(push, NV11_3D(COLOR_LOGIC_OP_ENABLE), 2);
PUSH_DATAb(push, ctx->Color.ColorLogicOpEnabled);
struct nouveau_pushbuf *push = context_push(ctx);
BEGIN_NV04(push, NV10_3D(STENCIL_ENABLE), 1);
- PUSH_DATAb(push, ctx->Stencil.Enabled);
+ PUSH_DATAb(push, _mesa_stencil_is_enabled(ctx));
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, _mesa_get_stencil_ref(ctx, 0));
PUSH_DATA (push, ctx->Stencil.ValueMask[0]);
}