mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-04-21 03:55:32 +00:00
d3d12: Fix vertex buffer reconstruction with mismatching stride
This commit is contained in:
parent
8ad1bc1970
commit
8bd678afc0
1 changed files with 3 additions and 2 deletions
|
@ -169,15 +169,16 @@ std::vector<VertexBufferFormat> FormatVertexData(RSXVertexData *m_vertex_data)
|
|||
size_t elementCount = m_vertex_data[i].data.size() / (m_vertex_data[i].size * m_vertex_data[i].GetTypeSize());
|
||||
std::pair<size_t, size_t> range = std::make_pair(m_vertex_data[i].addr, m_vertex_data[i].addr + elementCount * m_vertex_data[i].stride);
|
||||
bool isMerged = false;
|
||||
size_t stride = m_vertex_data[i].stride;
|
||||
for (VertexBufferFormat &vbf : Result)
|
||||
{
|
||||
if (overlaps(vbf.range, range))
|
||||
if (overlaps(vbf.range, range) && vbf.stride == stride)
|
||||
{
|
||||
// Extend buffer if necessary
|
||||
vbf.range.first = MIN2(vbf.range.first, range.first);
|
||||
vbf.range.second = MAX2(vbf.range.second, range.second);
|
||||
vbf.elementCount = MAX2(vbf.elementCount, elementCount);
|
||||
assert(vbf.stride == m_vertex_data[i].stride);
|
||||
|
||||
vbf.attributeId.push_back(i);
|
||||
isMerged = true;
|
||||
break;
|
||||
|
|
Loading…
Add table
Reference in a new issue