mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-29 08:00:12 +01:00
nak: Make BindlessSSA store [SSAValue; 2]
This reduces the size of ir::Src from 40 bytes down to 32 bytes. This makes the size of ir::Op fall from 272 bytes down to 232 bytes, meaning we save 40 bytes per instruction. Reviewed-by: Mary Guillemard <mary@mary.zone> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37130>
This commit is contained in:
parent
8ac9b077b1
commit
a9ea4630d4
3 changed files with 6 additions and 6 deletions
|
|
@ -3343,7 +3343,7 @@ impl<'a> ShaderFromNir<'a> {
|
|||
let (off, off_imm) = self.get_cbuf_addr_offset(&srcs[1]);
|
||||
|
||||
let cb = CBufRef {
|
||||
buf: CBuf::BindlessSSA(handle),
|
||||
buf: CBuf::BindlessSSA(handle[..].try_into().unwrap()),
|
||||
offset: off_imm,
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -535,7 +535,7 @@ pub enum CBuf {
|
|||
Binding(u8),
|
||||
|
||||
#[allow(dead_code)]
|
||||
BindlessSSA(SSARef),
|
||||
BindlessSSA([SSAValue; 2]),
|
||||
|
||||
#[allow(dead_code)]
|
||||
BindlessUGPR(RegRef),
|
||||
|
|
@ -545,7 +545,7 @@ impl fmt::Display for CBuf {
|
|||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
match self {
|
||||
CBuf::Binding(idx) => write!(f, "c[{:#x}]", idx),
|
||||
CBuf::BindlessSSA(v) => write!(f, "cx[{}]", v),
|
||||
CBuf::BindlessSSA(v) => write!(f, "cx[{{{}, {}}}]", v[0], v[1]),
|
||||
CBuf::BindlessUGPR(r) => write!(f, "cx[{}]", r),
|
||||
}
|
||||
}
|
||||
|
|
@ -683,7 +683,7 @@ impl SrcRef {
|
|||
| SrcRef::Reg(_) => &[],
|
||||
SrcRef::CBuf(cb) => match &cb.buf {
|
||||
CBuf::Binding(_) | CBuf::BindlessUGPR(_) => &[],
|
||||
CBuf::BindlessSSA(ssa) => ssa.deref(),
|
||||
CBuf::BindlessSSA(ssa) => &ssa[..],
|
||||
},
|
||||
SrcRef::SSA(ssa) => ssa.deref(),
|
||||
}
|
||||
|
|
@ -699,7 +699,7 @@ impl SrcRef {
|
|||
| SrcRef::Reg(_) => &mut [],
|
||||
SrcRef::CBuf(cb) => match &mut cb.buf {
|
||||
CBuf::Binding(_) | CBuf::BindlessUGPR(_) => &mut [],
|
||||
CBuf::BindlessSSA(ssa) => ssa.deref_mut(),
|
||||
CBuf::BindlessSSA(ssa) => &mut ssa[..],
|
||||
},
|
||||
SrcRef::SSA(ssa) => ssa.deref_mut(),
|
||||
}
|
||||
|
|
|
|||
|
|
@ -452,7 +452,7 @@ fn legalize_instr(
|
|||
SrcRef::CBuf(CBufRef {
|
||||
buf: CBuf::BindlessSSA(handle),
|
||||
..
|
||||
}) => assert!(pinned.contains(handle)),
|
||||
}) => assert!(pinned.contains(&SSARef::new(handle))),
|
||||
_ => (),
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue