mirror of https://github.com/RPCS3/rpcs3.git
d3d12: Fix stencil reflect test
This commit is contained in:
parent
8bd678afc0
commit
233450a7ca
|
@ -167,9 +167,12 @@ std::vector<VertexBufferFormat> FormatVertexData(RSXVertexData *m_vertex_data)
|
||||||
{
|
{
|
||||||
if (!m_vertex_data[i].IsEnabled()) continue;
|
if (!m_vertex_data[i].IsEnabled()) continue;
|
||||||
size_t elementCount = m_vertex_data[i].data.size() / (m_vertex_data[i].size * m_vertex_data[i].GetTypeSize());
|
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);
|
// If there is a single element, stride is 0, use the size of element instead
|
||||||
bool isMerged = false;
|
|
||||||
size_t stride = m_vertex_data[i].stride;
|
size_t stride = m_vertex_data[i].stride;
|
||||||
|
size_t elementSize = 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 + elementSize + (elementCount - 1) * stride);
|
||||||
|
bool isMerged = false;
|
||||||
|
|
||||||
for (VertexBufferFormat &vbf : Result)
|
for (VertexBufferFormat &vbf : Result)
|
||||||
{
|
{
|
||||||
if (overlaps(vbf.range, range) && vbf.stride == stride)
|
if (overlaps(vbf.range, range) && vbf.stride == stride)
|
||||||
|
@ -186,7 +189,7 @@ std::vector<VertexBufferFormat> FormatVertexData(RSXVertexData *m_vertex_data)
|
||||||
}
|
}
|
||||||
if (isMerged)
|
if (isMerged)
|
||||||
continue;
|
continue;
|
||||||
VertexBufferFormat newRange = { range, std::vector<size_t>{ i }, elementCount, m_vertex_data[i].stride };
|
VertexBufferFormat newRange = { range, std::vector<size_t>{ i }, elementCount, stride };
|
||||||
Result.emplace_back(newRange);
|
Result.emplace_back(newRange);
|
||||||
}
|
}
|
||||||
return Result;
|
return Result;
|
||||||
|
|
Loading…
Reference in New Issue