mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 19:40:10 +01:00
freedreno/a4xx: move where we deal w/ binning FS
Move where we pick dummy FS for binning pass, so the whole driver sees the same dummy/no-op FS stage. Signed-off-by: Rob Clark <robclark@freedesktop.org>
This commit is contained in:
parent
09b3447344
commit
dd9135c452
3 changed files with 10 additions and 10 deletions
|
|
@ -156,6 +156,7 @@ fd4_draw_vbo(struct fd_context *ctx, const struct pipe_draw_info *info)
|
|||
emit.key.binning_pass = false;
|
||||
emit.dirty = dirty;
|
||||
emit.vp = NULL; /* we changed key so need to refetch vp */
|
||||
emit.fp = NULL;
|
||||
draw_impl(ctx, ctx->ring, &emit);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -84,8 +84,14 @@ static inline const struct ir3_shader_variant *
|
|||
fd4_emit_get_fp(struct fd4_emit *emit)
|
||||
{
|
||||
if (!emit->fp) {
|
||||
struct fd4_shader_stateobj *so = emit->prog->fp;
|
||||
emit->fp = ir3_shader_variant(so->shader, emit->key);
|
||||
if (emit->key.binning_pass) {
|
||||
/* use dummy stateobj to simplify binning vs non-binning: */
|
||||
static const struct ir3_shader_variant binning_fp = {};
|
||||
emit->fp = &binning_fp;
|
||||
} else {
|
||||
struct fd4_shader_stateobj *so = emit->prog->fp;
|
||||
emit->fp = ir3_shader_variant(so->shader, emit->key);
|
||||
}
|
||||
}
|
||||
return emit->fp;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -151,14 +151,7 @@ setup_stages(struct fd4_emit *emit, struct stage *s)
|
|||
unsigned i;
|
||||
|
||||
s[VS].v = fd4_emit_get_vp(emit);
|
||||
|
||||
if (emit->key.binning_pass) {
|
||||
/* use dummy stateobj to simplify binning vs non-binning: */
|
||||
static const struct ir3_shader_variant binning_fp = {};
|
||||
s[FS].v = &binning_fp;
|
||||
} else {
|
||||
s[FS].v = fd4_emit_get_fp(emit);
|
||||
}
|
||||
s[FS].v = fd4_emit_get_fp(emit);
|
||||
|
||||
s[HS].v = s[DS].v = s[GS].v = NULL; /* for now */
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue