msiglreith / rostkatze

C++ implementation of Vulkan sitting on D3D12 :cat2:
Apache License 2.0
82 stars 2 forks source link

WARP software renderer support #9

Closed djnzx48 closed 6 years ago

djnzx48 commented 6 years ago

Hi, just came across this project and it looks quite impressive!

Is it possible to get this to work with the WARP software renderer so that ancient hardware (WDDM 1.3) can run it? I'm on Windows 10 and WARP seems to be supported with D3D_FEATURE_LEVEL_12_1, but when I try changing this line to use EnumWarpAdapter, the D3D12CreateDevice call still fails. So is there some way to get it working, or is it just not possible?

msiglreith commented 6 years ago

Hi! It should support WARP, might require a Windows update though? Currently expecting to support a more recent version of D3D12 (e.g ID3D12Device3 support) which might be the issue here. Not sure how the versioning stuff is handled, but atm I prefer sticking to the recent SDK as it simplifies some implementations and overall in a more experimentale state.

djnzx48 commented 6 years ago

OK, thanks! I'll try updating and see if that fixes the issue.

djnzx48 commented 6 years ago

I just installed the Fall Creator's Update and tested this out with the SaschaWillems gears demo, and it worked!! I couldn't get the cube.exe demo that comes with the Vulkan SDK working though, as it just fails with the error "vkEnumerateInstanceExtensionProperties failed to find the VK_KHR_surface extension". Still, this is pretty cool. It seems like the closest we've got to a Vulkan software renderer on Windows.