mirror of https://github.com/PCSX2/pcsx2.git
vif: repack nVifBlock struct
cl/wl can fit in a single byte. Add a 2B length field instead. It will contains the pre computed length to reduce dVifsetVUptr overhead
This commit is contained in:
parent
d34e99b38b
commit
1a32062439
|
@ -326,10 +326,11 @@ _vifT __fi void dVifUnpack(const u8* data, bool isFill) {
|
||||||
__aligned16 nVifBlock block;
|
__aligned16 nVifBlock block;
|
||||||
block.upkType = upkType;
|
block.upkType = upkType;
|
||||||
block.num = (u8&)vifRegs.num;
|
block.num = (u8&)vifRegs.num;
|
||||||
|
block.length = 0;
|
||||||
block.mode = (u8&)vifRegs.mode;
|
block.mode = (u8&)vifRegs.mode;
|
||||||
|
block.aligned = vif.start_aligned; //MTVU doesn't have a packet size!
|
||||||
block.cl = vifRegs.cycle.cl;
|
block.cl = vifRegs.cycle.cl;
|
||||||
block.wl = vifRegs.cycle.wl;
|
block.wl = vifRegs.cycle.wl;
|
||||||
block.aligned = vif.start_aligned; //MTVU doesn't have a packet size!
|
|
||||||
block.startPtr = 0; // Ease the detection of the end of the hash bucket
|
block.startPtr = 0; // Ease the detection of the end of the hash bucket
|
||||||
|
|
||||||
if ((upkType & 0xf) != 9)
|
if ((upkType & 0xf) != 9)
|
||||||
|
|
|
@ -20,14 +20,15 @@
|
||||||
// nVifBlock - Ordered for Hashing; the 'num' field and the lower 6 bits of upkType are
|
// nVifBlock - Ordered for Hashing; the 'num' field and the lower 6 bits of upkType are
|
||||||
// used as the hash bucket selector.
|
// used as the hash bucket selector.
|
||||||
struct __aligned16 nVifBlock {
|
struct __aligned16 nVifBlock {
|
||||||
u8 num; // [00] Num Field
|
u8 num; // [00] Num Field
|
||||||
u8 upkType; // [01] Unpack Type [usn1:mask1:upk*4]
|
u8 upkType; // [01] Unpack Type [usn1:mask1:upk*4]
|
||||||
u8 mode; // [02] Mode Field
|
u16 length; // [02] Extra: pre computed Length
|
||||||
u8 aligned; // [03] Packet Alignment
|
u32 mask; // [04] Mask Field
|
||||||
u32 mask; // [04] Mask Field
|
u8 mode; // [08] Mode Field
|
||||||
u16 cl; // [08] CL Field
|
u8 aligned; // [09] Packet Alignment
|
||||||
u16 wl; // [10] WL Field
|
u8 cl; // [10] CL Field
|
||||||
uptr startPtr; // [12] Start Ptr of RecGen Code
|
u8 wl; // [11] WL Field
|
||||||
|
uptr startPtr; // [12] Start Ptr of RecGen Code
|
||||||
}; // 16 bytes
|
}; // 16 bytes
|
||||||
|
|
||||||
#define hSize 0x4000 // [usn*1:mask*1:upk*4:num*8] hash...
|
#define hSize 0x4000 // [usn*1:mask*1:upk*4:num*8] hash...
|
||||||
|
|
Loading…
Reference in New Issue