#buffer become null

2 messages · Page 1 of 1 (latest)

heavy surge
#

I do have a question and that is. Why does min buffer become null. When I include

StructuredBuffer.BindFlags |= D3D11_BIND_UNORDERED_ACCESS;

bool StructuredBufferD3D11::Initialize(ID3D11Device* device, UINT sizeOfElement, size_t nrOfElementsInBuffer, void* bufferData, bool dynamic)
{
elementSize = sizeOfElement;
nrOfElements = nrOfElementsInBuffer;

D3D11_BUFFER_DESC StructuredBuffer;
StructuredBuffer.ByteWidth = elementSize * nrOfElements;
StructuredBuffer.Usage = dynamic ? D3D11_USAGE_DYNAMIC: D3D11_USAGE_IMMUTABLE;
StructuredBuffer.BindFlags = D3D11_BIND_SHADER_RESOURCE; // D3D11_BIND_SHADER_RESOURCE
StructuredBuffer.BindFlags |= D3D11_BIND_UNORDERED_ACCESS; // D3D11_BIND_SHADER_RESOURCE
StructuredBuffer.CPUAccessFlags = dynamic ? D3D11_CPU_ACCESS_WRITE: 0;
StructuredBuffer.MiscFlags = D3D11_RESOURCE_MISC_BUFFER_STRUCTURED; 
StructuredBuffer.StructureByteStride = sizeOfElement;
HRESULT hr = S_OK;

if (bufferData != nullptr)
{
    D3D11_SUBRESOURCE_DATA data;
    data.pSysMem = bufferData;
    data.SysMemPitch = 0;
    data.SysMemSlicePitch = 0;
    hr = device->CreateBuffer(&StructuredBuffer, &data, &buffer);
}

else {
    hr = device->CreateBuffer(&StructuredBuffer, nullptr, &buffer);
}

if (FAILED(hr)) {
    throw std::runtime_error("StructuredBuffer can't get created");
}
return true;

}

whole mesaBOT
#

When your question is answered use !solved to mark the question as resolved.

Remember to ask specific questions, provide necessary details, and reduce your question to its simplest form. For tips on how to ask a good question use !howto ask.