Fix degenerate InputLayout creation when creating graphics pipeline with no vertex attributes
parent
a3c8ab6a55
commit
c9f23dd73b
|
@ -927,6 +927,12 @@ static ID3D11InputLayout* D3D11_INTERNAL_FetchInputLayout(
|
||||||
uint32_t i, bindingIndex;
|
uint32_t i, bindingIndex;
|
||||||
HRESULT res;
|
HRESULT res;
|
||||||
|
|
||||||
|
/* Don't bother creating/fetching an input layout if there are no attributes. */
|
||||||
|
if (inputState.vertexAttributeCount == 0)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/* Allocate an array of vertex elements */
|
/* Allocate an array of vertex elements */
|
||||||
elementDescs = SDL_stack_alloc(
|
elementDescs = SDL_stack_alloc(
|
||||||
D3D11_INPUT_ELEMENT_DESC,
|
D3D11_INPUT_ELEMENT_DESC,
|
||||||
|
@ -1119,7 +1125,6 @@ static Refresh_GraphicsPipeline* D3D11_CreateGraphicsPipeline(
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* Not sure if this is even possible, but juuust in case... */
|
|
||||||
pipeline->vertexStrides = NULL;
|
pipeline->vertexStrides = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1888,15 +1893,18 @@ static void D3D11_QueueDestroyGraphicsPipeline(
|
||||||
ID3D11BlendState_Release(d3dGraphicsPipeline->colorAttachmentBlendState);
|
ID3D11BlendState_Release(d3dGraphicsPipeline->colorAttachmentBlendState);
|
||||||
ID3D11DepthStencilState_Release(d3dGraphicsPipeline->depthStencilState);
|
ID3D11DepthStencilState_Release(d3dGraphicsPipeline->depthStencilState);
|
||||||
ID3D11RasterizerState_Release(d3dGraphicsPipeline->rasterizerState);
|
ID3D11RasterizerState_Release(d3dGraphicsPipeline->rasterizerState);
|
||||||
|
|
||||||
|
if (d3dGraphicsPipeline->inputLayout)
|
||||||
|
{
|
||||||
ID3D11InputLayout_Release(d3dGraphicsPipeline->inputLayout);
|
ID3D11InputLayout_Release(d3dGraphicsPipeline->inputLayout);
|
||||||
|
}
|
||||||
/* FIXME: Release uniform buffers, once that's written in */
|
|
||||||
|
|
||||||
if (d3dGraphicsPipeline->vertexStrides)
|
if (d3dGraphicsPipeline->vertexStrides)
|
||||||
{
|
{
|
||||||
SDL_free(d3dGraphicsPipeline->vertexStrides);
|
SDL_free(d3dGraphicsPipeline->vertexStrides);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* FIXME: Release uniform buffers, once that's written in */
|
||||||
|
|
||||||
SDL_free(d3dGraphicsPipeline);
|
SDL_free(d3dGraphicsPipeline);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue