diff options
| author | degasus <wickmarkus@web.de> | 2013-03-23 00:18:35 +0100 |
|---|---|---|
| committer | degasus <wickmarkus@web.de> | 2013-03-23 00:18:35 +0100 |
| commit | 470c9ff08a79514f70666b0077ef5d2bedab8b3c (patch) | |
| tree | fd99dffbe327ccb9e8ff0ae95dec44b862bdf247 /Source/Core/VideoCommon/Src/VertexManagerBase.cpp | |
| parent | 59b360028404050b5e31de2c9618cb855917cad9 (diff) | |
check for overflow vertex indices, fixes issue 6135
thx @ JMC47 for identifying the reversion, creating a useful bug report with fifo log :-)
Diffstat (limited to 'Source/Core/VideoCommon/Src/VertexManagerBase.cpp')
| -rw-r--r-- | Source/Core/VideoCommon/Src/VertexManagerBase.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/Source/Core/VideoCommon/Src/VertexManagerBase.cpp b/Source/Core/VideoCommon/Src/VertexManagerBase.cpp index 9cfc3aa3f4..87856b5aeb 100644 --- a/Source/Core/VideoCommon/Src/VertexManagerBase.cpp +++ b/Source/Core/VideoCommon/Src/VertexManagerBase.cpp @@ -52,16 +52,18 @@ void VertexManager::PrepareForAdditionalData(int primitive, u32 count, u32 strid { u32 const needed_vertex_bytes = count * stride; - if (needed_vertex_bytes > GetRemainingSize() || count > GetRemainingIndices(primitive)) + if (count > IndexGenerator::GetRemainingIndices() || count > GetRemainingIndices(primitive) || needed_vertex_bytes > GetRemainingSize()) { Flush(); - if (needed_vertex_bytes > GetRemainingSize()) - ERROR_LOG(VIDEO, "VertexManager: Buffer not large enough for all vertices! " - "Increase MAXVBUFFERSIZE or we need primitive breaking afterall."); + if(count > IndexGenerator::GetRemainingIndices()) + ERROR_LOG(VIDEO, "Too less index values. Use 32bit or reset them on flush."); if (count > GetRemainingIndices(primitive)) ERROR_LOG(VIDEO, "VertexManager: Buffer not large enough for all indices! " "Increase MAXIBUFFERSIZE or we need primitive breaking afterall."); + if (needed_vertex_bytes > GetRemainingSize()) + ERROR_LOG(VIDEO, "VertexManager: Buffer not large enough for all vertices! " + "Increase MAXVBUFFERSIZE or we need primitive breaking afterall."); } } |
