diff --git a/src/gallium/drivers/v3d/v3d_program.c b/src/gallium/drivers/v3d/v3d_program.c index 884c7f8c508..454b6df1f99 100644 --- a/src/gallium/drivers/v3d/v3d_program.c +++ b/src/gallium/drivers/v3d/v3d_program.c @@ -23,6 +23,7 @@ #include #include "util/format/u_format.h" +#include "util/u_inlines.h" #include "util/u_math.h" #include "util/u_memory.h" #include "util/ralloc.h" @@ -628,12 +629,7 @@ v3d_update_compiled_fs(struct v3d_context *v3d, uint8_t prim_mode) key->can_earlyz_with_discard = s->info.fs.uses_discard && !s->info.fs.uses_fbfetch_output && (!v3d->zsa || !job->zsbuf.texture || - ((!v3d->zsa->base.depth_enabled || - !v3d->zsa->base.depth_writemask) && - (!v3d->zsa->base.stencil[0].enabled || - !v3d->zsa->base.stencil[0].writemask) && - (!v3d->zsa->base.stencil[1].enabled || - !v3d->zsa->base.stencil[1].writemask))) && + !util_writes_depth_stencil(&v3d->zsa->base)) && !(v3d->active_queries && v3d->current_oq); key->software_blend = v3d->blend->use_software; diff --git a/src/gallium/drivers/v3d/v3dx_draw.c b/src/gallium/drivers/v3d/v3dx_draw.c index 3dac278c0dc..18f07dad94b 100644 --- a/src/gallium/drivers/v3d/v3dx_draw.c +++ b/src/gallium/drivers/v3d/v3dx_draw.c @@ -24,6 +24,7 @@ #include "util/perf/cpu_trace.h" #include "util/u_blitter.h" #include "util/u_draw.h" +#include "util/u_inlines.h" #include "util/u_prim.h" #include "util/format/u_format.h" #include "util/u_helpers.h" @@ -1071,7 +1072,7 @@ v3d_update_job_tlb_load_store(struct v3d_job *job) { struct v3d_resource *rsc = v3d_resource(job->zsbuf.texture); v3d_job_add_bo(job, rsc->bo); job->load |= PIPE_CLEAR_DEPTH & ~no_load_mask; - if (v3d->zsa->base.depth_writemask) + if (util_writes_depth(&v3d->zsa->base)) job->store |= PIPE_CLEAR_DEPTH; rsc->initialized_buffers |= PIPE_CLEAR_DEPTH; } @@ -1085,8 +1086,8 @@ v3d_update_job_tlb_load_store(struct v3d_job *job) { v3d_job_add_bo(job, rsc->bo); job->load |= PIPE_CLEAR_STENCIL & ~no_load_mask; - if (v3d->zsa->base.stencil[0].writemask || - v3d->zsa->base.stencil[1].writemask) { + if (util_writes_stencil(&v3d->zsa->base.stencil[0]) || + util_writes_stencil(&v3d->zsa->base.stencil[1])) { job->store |= PIPE_CLEAR_STENCIL; } rsc->initialized_buffers |= PIPE_CLEAR_STENCIL;