mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 20:18:12 +02:00
v3d: add helpers to emit ldtlb and ldtlbu signals
The ldtlbu version will read an implicit uniform with the TLB read specifier and should be used for the first read in a sequence of TLB reads (unless the default configuration is valid, in which case we can use ldtlb). The ldtlb version is used for any subsequent TLB read in the sequence. Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
parent
aff8885cf9
commit
d26b35ba44
1 changed files with 24 additions and 0 deletions
|
|
@ -1076,6 +1076,30 @@ vir_UMUL(struct v3d_compile *c, struct qreg src0, struct qreg src1)
|
|||
return vir_UMUL24(c, src0, src1);
|
||||
}
|
||||
|
||||
static inline struct qreg
|
||||
vir_TLBU_COLOR_READ(struct v3d_compile *c, uint32_t config)
|
||||
{
|
||||
assert(c->devinfo->ver >= 41); /* XXX */
|
||||
assert((config & 0xffffff00) == 0xffffff00);
|
||||
|
||||
struct qinst *ldtlb = vir_add_inst(V3D_QPU_A_NOP, c->undef,
|
||||
c->undef, c->undef);
|
||||
ldtlb->qpu.sig.ldtlbu = true;
|
||||
ldtlb->uniform = vir_get_uniform_index(c, QUNIFORM_CONSTANT, config);
|
||||
return vir_emit_def(c, ldtlb);
|
||||
}
|
||||
|
||||
static inline struct qreg
|
||||
vir_TLB_COLOR_READ(struct v3d_compile *c)
|
||||
{
|
||||
assert(c->devinfo->ver >= 41); /* XXX */
|
||||
|
||||
struct qinst *ldtlb = vir_add_inst(V3D_QPU_A_NOP, c->undef,
|
||||
c->undef, c->undef);
|
||||
ldtlb->qpu.sig.ldtlb = true;
|
||||
return vir_emit_def(c, ldtlb);
|
||||
}
|
||||
|
||||
/*
|
||||
static inline struct qreg
|
||||
vir_LOAD_IMM(struct v3d_compile *c, uint32_t val)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue