Failed to create Direct3D11 object


#1

Hello!
I have followed the getting started tutorial but when I ran it after successful compilation there was an error:
A fatal error occurred and the program has to terminate!
- Error: RenderingAPIException
- Description: Failed to create Direct3D11 object. D3D11CreateDeviceN returned this error code: -2005270483
- In function: void __cdecl bs::ct::D3D11RenderAPI::initialize(void)
- In file: c:\projects\bsf\source\plugins\bsfd3d11renderapi\bsd3d11renderapi.cpp:99

Stack trace:
0x140724262917734 Module[bsf.dll]
0x140724624469968 Module[bsfD3D11RenderAPI.dll]

What should I do to get rid of this error?


#2

This looks like a d3d11 debug mode error code, maybe you’re missing some d3d11 debug components ?
Take a look here:


#3

And is it going to work with Release configuration and on my deploy targets (other devices) without enabling this feature?


#4

Release configuration does not include debug layers so it should work just fine.


#5

Thank you!
Unfortunately, on Release it simply quits with an error code without creating crash report folder.


#6

Can you please post your graphics card and OS information.


#7

GC: Intel HD Graphics 610 (worst card ever)
OS: Windows 10 Last Version
This is a temporary PC


#8

I don’t have much of any idea of why its failing if the debug layers are off. You could try updating your drivers and see if that changes anything.

Or if you feel comfortable take a peek in the file the error is being reported in and set a breakpoint and see if there’s anything weird going on - you could try messing with the parameters to that function and see if anything gets it to work. It’s failing pretty early in the process so there shouldn’t be some complex reason why.


#9

I have the latest drivers. There is nothing special in variables.(


#10

Hello again!
I found that it is something related to my Intel graphics card. Is there a way I can force bs::f to use Vk or OpenGL?
Or maybe it supports downgrading to DX9?

PS: And Banshee Editor behaves very strange. It is very slow and it cannot do anything, just doesn’t respond.


#11

You can choose OpenGL or Vulkan during the build step in CMake by setting the RENDER_API_MODULE variable.

Are you running the editor in release mode? If not try that. If yes then it might just be your hardware, editor is not optimized yet.


#12

I think it’s my hardware. I’ll try OpenGL and Vulkan because they seem to work normally. Also DX12 works normally)
Anyway thank you for your help!


#13

Any chance you could take a quick jab at the DirectX issue? I have a few suggestions you can try and they would really help me narrow down the potential issue. If you’re already compiling from source, making the changes and recompiling shouldn’t be a big issue.

These are the things I’d like you to try:

  • In BsD3D11RenderAPI.cpp, in the call to D3D11CreateDevice set the first parameter to nullptr and the second parameter to D3D_DRIVER_TYPE_HARDWARE. Recompile and see if that changes anything. Note there are two calls to D3D11CreateDevice so it’s best to change both of them (even though the second one shouldn’t trigger)
  • A few lines above is a requestedLevels array. Remove the first entry D3D_FEATURE_LEVEL_11_1. You can also comment out the second D3D11CreateDevice call as it should no longer be necessary. Recompile and see if that changes anything.
  • Similar to above, from the same array try removing ALL entries except for D3D_FEATURE_LEVEL_11_0. Again recompile and see if that changes anything.

Let me know if you get a chance, as I said it would help a lot.


#14

Hi!
https://www.notebookcheck.net/Intel-HD-Graphics-610-GPU-Benchmarks-and-Specs.257794.0.html

Found the spec here. This is really slow (13fps in SW Battlefield), but seem to be on DX12 specs. It use shared memory and the memory is NOT dedicated, could be thing that is different and make it crash…