v3d: use helpers util_writes_depth/stencil

The helpers already take into account when depth/stencil ops
don't imply writes.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37397>
This commit is contained in:
Jose Maria Casanova Crespo
2025-09-16 12:26:46 +02:00
committed by Marge Bot
parent 3f060b1467
commit c83fddb9ed
2 changed files with 6 additions and 9 deletions

View File

@@ -23,6 +23,7 @@
#include <inttypes.h>
#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;

View File

@@ -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;