MCPcopy Create free account
hub / github.com/PCSX2/pcsx2 / ipuPACK

Function ipuPACK

pcsx2/IPU/IPU_MultiISA.cpp:1833–1872  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1831}
1832
1833__ri static bool ipuPACK(tIPU_CMD_CSC csc)
1834{
1835 csc.log_from_RGB32();
1836
1837 for (;ipu_cmd.index < (int)csc.MBC; ipu_cmd.index++)
1838 {
1839 for(;ipu_cmd.pos[0] < (int)sizeof(macroblock_rgb32) / 8; ipu_cmd.pos[0]++)
1840 {
1841 if (!getBits64((u8*)&decoder.rgb32 + 8 * ipu_cmd.pos[0], 1)) return false;
1842 }
1843
1844 ipu_dither(decoder.rgb32, decoder.rgb16, csc.DTE);
1845
1846 if (!csc.OFM) ipu_vq(decoder.rgb16, g_ipu_indx4);
1847
1848 if (csc.OFM)
1849 {
1850 ipu_cmd.pos[1] += ipu_fifo.out.write(((u32*) & decoder.rgb16) + 4 * ipu_cmd.pos[1], 32 - ipu_cmd.pos[1]);
1851 if (ipu_cmd.pos[1] < 32)
1852 {
1853 IPUCoreStatus.WaitingOnIPUFrom = true;
1854 return false;
1855 }
1856 }
1857 else
1858 {
1859 ipu_cmd.pos[1] += ipu_fifo.out.write(((u32*)g_ipu_indx4) + 4 * ipu_cmd.pos[1], 8 - ipu_cmd.pos[1]);
1860 if (ipu_cmd.pos[1] < 8)
1861 {
1862 IPUCoreStatus.WaitingOnIPUFrom = true;
1863 return false;
1864 }
1865 }
1866
1867 ipu_cmd.pos[0] = 0;
1868 ipu_cmd.pos[1] = 0;
1869 }
1870
1871 return true;
1872}
1873
1874// --------------------------------------------------------------------------------------
1875// CORE Functions (referenced from MPEG library)

Callers 1

IPUWorkerFunction · 0.85

Calls 5

getBits64Function · 0.85
ipu_ditherFunction · 0.85
ipu_vqFunction · 0.85
log_from_RGB32Method · 0.80
writeMethod · 0.45

Tested by

no test coverage detected