d3d: don't attempt to create 0 sized vertex buffers

This commit is contained in:
Luke Usher 2020-08-21 20:13:23 +01:00
parent 4b735c58cc
commit d961d4e7e7
1 changed files with 9 additions and 1 deletions

View File

@ -382,6 +382,14 @@ void CxbxVertexBufferConverter::ConvertStream
pNewHostVertexBuffer = nullptr;
}
}
// If dwHostVertexDataSize is zero, the allocation/creation will fail
// This can be caused by a stride of 0, and 'other' invalid configurations
// Test Case :SSX series of games
if (dwHostVertexDataSize == 0) {
LOG_TEST_CASE("Attempted to use a 0 sized vertex stream");
return;
}
// Allocate new buffers
if (pDrawContext->pXboxVertexStreamZeroData != xbnullptr) {
@ -390,7 +398,7 @@ void CxbxVertexBufferConverter::ConvertStream
if (pHostVertexData == nullptr) {
CxbxKrnlCleanup("Couldn't allocate the new stream zero buffer");
}
} else {
} else {
HRESULT hRet = g_pD3DDevice->CreateVertexBuffer(
dwHostVertexDataSize,
D3DUSAGE_WRITEONLY | D3DUSAGE_DYNAMIC,