Compute buffer creation fixes

d3d11-revived
Caleb Cornett 2024-02-11 00:36:41 -06:00
parent 9ea76e92dc
commit b827713cb0
1 changed files with 13 additions and 5 deletions

View File

@ -1434,7 +1434,6 @@ static Refresh_ShaderModule* D3D11_CreateShaderModule(
}
}
/* Allocate and set up the shader module */
shaderModule = (D3D11ShaderModule*) SDL_malloc(sizeof(D3D11ShaderModule));
shaderModule->shader = shader;
@ -1748,9 +1747,18 @@ static Refresh_Buffer* D3D11_CreateBuffer(
bufferDesc.ByteWidth = sizeInBytes;
bufferDesc.Usage = D3D11_USAGE_DEFAULT;
bufferDesc.CPUAccessFlags = 0;
bufferDesc.MiscFlags = (usageFlags & REFRESH_BUFFERUSAGE_INDIRECT_BIT) ? D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS : 0;
bufferDesc.StructureByteStride = 0;
bufferDesc.MiscFlags = 0;
if (usageFlags & REFRESH_BUFFERUSAGE_INDIRECT_BIT)
{
bufferDesc.MiscFlags |= D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS;
}
if (usageFlags & REFRESH_BUFFERUSAGE_COMPUTE_BIT)
{
bufferDesc.MiscFlags |= D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS;
}
res = ID3D11Device_CreateBuffer(
renderer->device,
&bufferDesc,
@ -1763,11 +1771,11 @@ static Refresh_Buffer* D3D11_CreateBuffer(
if (usageFlags & REFRESH_BUFFERUSAGE_COMPUTE_BIT)
{
D3D11_UNORDERED_ACCESS_VIEW_DESC uavDesc;
uavDesc.Format = DXGI_FORMAT_R8_UINT;
uavDesc.Format = DXGI_FORMAT_R32_TYPELESS;
uavDesc.ViewDimension = D3D11_UAV_DIMENSION_BUFFER;
uavDesc.Buffer.FirstElement = 0;
uavDesc.Buffer.Flags = 0;
uavDesc.Buffer.NumElements = sizeInBytes;
uavDesc.Buffer.Flags = D3D11_BUFFER_UAV_FLAG_RAW;
uavDesc.Buffer.NumElements = sizeInBytes / sizeof(uint32_t);
res = ID3D11Device_CreateUnorderedAccessView(
renderer->device,