diff options
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/swrast/s_depth.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/mesa/swrast/s_depth.c b/src/mesa/swrast/s_depth.c index 8a2d08b58e..061eb9c595 100644 --- a/src/mesa/swrast/s_depth.c +++ b/src/mesa/swrast/s_depth.c @@ -519,12 +519,13 @@ depth_test_span( GLcontext *ctx, struct sw_span *span) if (rb->GetPointer(ctx, rb, 0, 0)) { /* Directly access buffer */ - if (ctx->DrawBuffer->Visual.depthBits <= 16) { + if (rb->DataType == GL_UNSIGNED_SHORT) { GLushort *zbuffer = (GLushort *) rb->GetPointer(ctx, rb, x, y); passed = depth_test_span16(ctx, count, zbuffer, zValues, mask); } else { GLuint *zbuffer = (GLuint *) rb->GetPointer(ctx, rb, x, y); + ASSERT(rb->DataType == GL_UNSIGNED_INT); passed = depth_test_span32(ctx, count, zbuffer, zValues, mask); } } @@ -1070,6 +1071,7 @@ depth_test_pixels( GLcontext *ctx, struct sw_span *span ) else { GLuint *zStart = (GLuint *) rb->Data; GLuint stride = rb->Width; + ASSERT(rb->DataType == GL_UNSIGNED_INT); direct_depth_test_pixels32(ctx, zStart, stride, count, x, y, z, mask); } } @@ -1157,6 +1159,7 @@ _swrast_depth_bounds_test( GLcontext *ctx, struct sw_span *span ) else { /* get 32-bit values */ GLuint zbuffer32[MAX_WIDTH], *zbuffer; + ASSERT(rb->DataType == GL_UNSIGNED_INT); if (span->arrayMask & SPAN_XY) { _swrast_get_values(ctx, rb, count, span->array->x, span->array->y, zbuffer32, sizeof(GLuint)); |