Первый шаг - включить библиотеки отладки DirectX, через панель управления DirectX . (IIRC, это необязательный элемент при установке DirectX SDK, поэтому может потребоваться их установка.)
При следующем запуске приложения DirectX должен предоставить вам больше информации о том, что происходит. В частности, вы захотите поискать строку вроде этой:
D3DX: Set HKLM\Software\Microsoft\Direct3D\D3DXBreakOnAllocId=0x1c17 to debug
allocation id ^^^^^^
Или вот так:
Direct3D9: (WARN) :Memory Address: 00385580 lAllocID=1 dwSize=000047f8, (pid=00000474)
allocation id ^
Если у вас есть идентификатор выделения, вы можете указать DirectX прерывать, когда это распределение происходит в вашей программе, установив параметр Break on AllocID
на панели управления DirectX (или указав ключ реестра, упомянутый выше).
Затем нужно изучить стек вызовов, чтобы увидеть, в чем заключается вызов DirectX.