iris: Use converted depth in clear_depth_stencil

Until recently, the depth value from glClearBufferfv wasn't clamped.

Before then, this patch enabled the driver to fail the clearbuffer-depth
piglit test with INTEL_DEBUG=nofc. This is because convert_depth_value
relies on the assumption that the depth value is clamped.

Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7410>
This commit is contained in:
Nanley Chery 2020-10-14 10:45:57 -07:00 committed by Marge Bot
parent 667813431c
commit 0fe2d49ccd
1 changed files with 2 additions and 5 deletions

View File

@ -464,11 +464,8 @@ fast_clear_depth(struct iris_context *ice,
const struct pipe_box *box,
float depth)
{
struct pipe_resource *p_res = (void *) res;
struct iris_batch *batch = &ice->batches[IRIS_BATCH_RENDER];
depth = convert_depth_value(p_res->format, depth);
bool update_clear_depth = false;
/* If we're clearing to a new clear value, then we need to resolve any clear
@ -690,7 +687,7 @@ iris_clear(struct pipe_context *ctx,
clear_depth_stencil(ice, psurf->texture, psurf->u.tex.level, &box, true,
buffers & PIPE_CLEAR_DEPTH,
buffers & PIPE_CLEAR_STENCIL,
depth, stencil);
convert_depth_value(psurf->format, depth), stencil);
}
if (buffers & PIPE_CLEAR_COLOR) {
@ -837,7 +834,7 @@ iris_clear_depth_stencil(struct pipe_context *ctx,
clear_depth_stencil(ice, psurf->texture, psurf->u.tex.level, &box,
render_condition_enabled,
flags & PIPE_CLEAR_DEPTH, flags & PIPE_CLEAR_STENCIL,
depth, stencil);
convert_depth_value(psurf->format, depth), stencil);
}
void