X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fdrivers%2Fdri%2Fnouveau%2Fnv10_state_raster.c;h=d537f7bc22901e8a1321dc8710c0ffd39a085520;hb=da9e6fdfe27065b8ede8b2fe30c8cccc3b573245;hp=8b08c7519d01d1b6896e01778fda5c2737026659;hpb=2e47d01c9e5325906cf3bb979279599991c6328e;p=mesa.git diff --git a/src/mesa/drivers/dri/nouveau/nv10_state_raster.c b/src/mesa/drivers/dri/nouveau/nv10_state_raster.c index 8b08c7519d0..d537f7bc229 100644 --- a/src/mesa/drivers/dri/nouveau/nv10_state_raster.c +++ b/src/mesa/drivers/dri/nouveau/nv10_state_raster.c @@ -28,9 +28,12 @@ #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) { @@ -94,11 +97,12 @@ void 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)); } @@ -118,7 +122,7 @@ nv10_emit_logic_opcode(struct gl_context *ctx, int emit) 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); @@ -141,11 +145,11 @@ nv10_emit_stencil_func(struct gl_context *ctx, int emit) 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]); }