mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 15:58:05 +02:00
nouveau: only enable the depth test if there actually is a depth buffer
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.2 10.3" <mesa-stable@lists.freedesktop.org>
(cherry picked from commit 79959e5de5)
This commit is contained in:
parent
e1c04225c1
commit
e221e797b5
5 changed files with 9 additions and 4 deletions
|
|
@ -93,6 +93,7 @@ nv04_emit_framebuffer(struct gl_context *ctx, int emit)
|
|||
|
||||
/* Recompute the scissor state. */
|
||||
context_dirty(ctx, SCISSOR);
|
||||
context_dirty(ctx, CONTROL);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
|||
|
|
@ -123,6 +123,7 @@ void
|
|||
nv04_emit_control(struct gl_context *ctx, int emit)
|
||||
{
|
||||
struct nv04_context *nv04 = to_nv04_context(ctx);
|
||||
struct gl_framebuffer *fb = ctx->DrawBuffer;
|
||||
int cull = ctx->Polygon.CullFaceMode;
|
||||
int front = ctx->Polygon.FrontFace;
|
||||
|
||||
|
|
@ -146,9 +147,9 @@ nv04_emit_control(struct gl_context *ctx, int emit)
|
|||
NV04_TEXTURED_TRIANGLE_CONTROL_CULL_MODE_CCW;
|
||||
|
||||
/* Depth test. */
|
||||
if (ctx->Depth.Test)
|
||||
if (ctx->Depth.Test && fb->Visual.depthBits > 0)
|
||||
nv04->ctrl[0] |= NV04_TEXTURED_TRIANGLE_CONTROL_Z_ENABLE;
|
||||
if (ctx->Depth.Mask)
|
||||
if (ctx->Depth.Mask && fb->Visual.depthBits > 0)
|
||||
nv04->ctrl[0] |= NV04_TEXTURED_TRIANGLE_CONTROL_Z_WRITE;
|
||||
|
||||
nv04->ctrl[0] |= get_comparison_op(ctx->Depth.Func) << 16;
|
||||
|
|
|
|||
|
|
@ -152,6 +152,7 @@ nv10_emit_framebuffer(struct gl_context *ctx, int emit)
|
|||
|
||||
context_dirty(ctx, VIEWPORT);
|
||||
context_dirty(ctx, SCISSOR);
|
||||
context_dirty(ctx, DEPTH);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
|||
|
|
@ -97,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));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -128,6 +128,7 @@ nv20_emit_framebuffer(struct gl_context *ctx, int emit)
|
|||
/* Recompute the viewport/scissor state. */
|
||||
context_dirty(ctx, VIEWPORT);
|
||||
context_dirty(ctx, SCISSOR);
|
||||
context_dirty(ctx, DEPTH);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue