Der Dump ist 32-Bit, aber die 64-Bit stürzt genau so ab. Der Absturz findet in ID3D11Device::CreateBuffer() statt. Das leitet weiter an
- d3d11.dll!CDevice::CreateBuffer
- danach d3d11.dll!CDevice::CreateAndRecreateLayeredChild<struct SD3D11LayeredBufferCreationArgs>
- dann d3d11.dll!CDevice::CreateBuffer_Worker
- … und dann sind wir auch schon im Windows Error Reporting, das scheinbar den Stack zurückgespult hat. Stehengeblieben ist er bei call d3d11.dll!NOutermost::CDevice::CreateLayeredChild.
pDesc D3D11_BUFFER_DESC * 0x036efc40
ByteWidth 16
Usage D3D11_USAGE_DYNAMIC (2)
BindFlags D3D11_BIND_CONSTANT_BUFFER (4)
CPUAccessFlags D3D11_CPU_ACCESS_WRITE (65536)
MiscFlags 0
StructureByteStride 0
pInitialData D3D11_SUBRESOURCE_DATA * nullptr
ppBuffer ID3D11Buffer * * 0x040b0818
nullptr
Das ist der dritte Constant Buffer, den ich erzeuge. Die beiden davor funktionieren problemlos.
Die Größe ist gültig (glatt durch 16 teilbar und kleiner als 4096). Ich habe überprüft, ob das Alignment der Parameter stimmt – tut es. Dann, ob die Virtual Function Tables des Devices in Ordnung sind – sind sie (wie wir auch am Call Stack sehen).
Ich bin nun ratlos, was das Problem sein könnte – überall sonst funktioniert es; das spricht für Probleme mit dem PC des Anwenders. Andererseits finde ich nirgends sonst Berichte von Crashes in der speziellen Funktion, also muss es doch irgendwie an mir liegen.
Ich werde schnell noch versuchen, an genaue Exception-Informationen zu kommen. Bis dahin: Fällt euch irgendwas ein?