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:
committed by
Marge Bot
parent
3f060b1467
commit
c83fddb9ed
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user