mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-07 07:21:25 +12:00
RSX: Fix index gathering
This commit is contained in:
parent
3b8c34e47c
commit
02594c8239
1 changed files with 15 additions and 13 deletions
|
@ -938,29 +938,31 @@ void RSXThread::DoCmd(const u32 fcmd, const u32 cmd, const u32 args_addr, const
|
||||||
|
|
||||||
if (first < m_indexed_array.m_first) m_indexed_array.m_first = first;
|
if (first < m_indexed_array.m_first) m_indexed_array.m_first = first;
|
||||||
|
|
||||||
for (u32 i=first; i<_count; ++i)
|
int pos = (int)m_indexed_array.m_data.size();
|
||||||
|
|
||||||
|
switch (m_indexed_array.m_type)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
m_indexed_array.m_data.resize(pos + 4 * _count);
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
m_indexed_array.m_data.resize(pos + 2 * _count);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (u32 i=first; i< first + _count; ++i)
|
||||||
{
|
{
|
||||||
u32 index;
|
u32 index;
|
||||||
switch(m_indexed_array.m_type)
|
switch(m_indexed_array.m_type)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
{
|
|
||||||
int pos = (int)m_indexed_array.m_data.size();
|
|
||||||
m_indexed_array.m_data.resize(m_indexed_array.m_data.size() + 4);
|
|
||||||
index = vm::read32(m_indexed_array.m_addr + i * 4);
|
index = vm::read32(m_indexed_array.m_addr + i * 4);
|
||||||
*(u32*)&m_indexed_array.m_data[pos] = index;
|
*(u32*)&m_indexed_array.m_data[i * 4] = index;
|
||||||
//LOG_WARNING(RSX, "index 4: %d", *(u32*)&m_indexed_array.m_data[pos]);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
{
|
|
||||||
int pos = (int)m_indexed_array.m_data.size();
|
|
||||||
m_indexed_array.m_data.resize(m_indexed_array.m_data.size() + 2);
|
|
||||||
index = vm::read16(m_indexed_array.m_addr + i * 2);
|
index = vm::read16(m_indexed_array.m_addr + i * 2);
|
||||||
//LOG_WARNING(RSX, "index 2: %d", index);
|
*(u16*)&m_indexed_array.m_data[i * 2] = index;
|
||||||
*(u16*)&m_indexed_array.m_data[pos] = index;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue