sabaatworld / HyperionScreenCap

Screen capture program for Hyperion ambilight. Updated to support DirectX 11, multiple displays and multiple Hyperion servers.
MIT License
118 stars 18 forks source link

DX11 Screen Capture Error 0x887A0004 #23

Open tools4bash opened 5 years ago

tools4bash commented 5 years ago

Hello,

first of all thank you so much for all your effort and work! This is my first "post" so I hope I got everything right. I've got a working setup for DX9 Client: Windows 7 x64 SP1 | i7-3770K | GTX 1050 Ti > Displayport > Eizo CS2730 HyperionScreenCapture v2.5 (all dependencies are installed) Server: RPi3 over WiFi

Unfortuantely DX9 is not a usable solution, as nothing is smooth (dragging windows, watching TV, ...) But: Whenever I select DX11 as capture source, I receive this error message:

Failed to initialize screen capture:
HRESULT: [0x887A0004], Module: [SharpDX,DXGI],
ApiCode: [DXGI_ERROR_UNSUPPORTED/Unsupported], Message: Unknown

Log: hyperion-screen-capture.log

Available Monitors lists (looks good to me):

Adapter Index 0: NVIDIA GeForce GTX 1050 Ti
Monitor Index 0: \\.\DISPLAY1 2560x1440

I tried switching from Windows 7 Aero Skin to Classic without any success. I stumbled upon this, which indicates only iGPUs would work but I guess that's not the case here. https://stackoverflow.com/questions/40221187/directx11-desktop-duplication-not-working-with-nvidia

I am more than happy to provide any other information. Thank you!

sabaatworld commented 5 years ago

Have you tried installing all the dependencies listed on https://github.com/sabaatworld/HyperionScreenCap ? That may fix the issue.

The post you linked looks interesting. I wonder if there would be a way to run it using some inbuilt Microsoft adapter. Note that there is one virtual GPU that renders the screen when you do remote desktop. Can you try running DX11 capture from your remote machine (just to see if that works)?

I think the bigger issue is the support for windows 7. It seems that by default windows 7 did not support this API. I came across https://stackoverflow.com/questions/30982477/does-windows-7-with-platform-update-support-desktop-duplication which links to some windows update that may fix the problem.

Another thing I found today is https://github.com/rgcjonas/dd4seven: A project that enables desktop duplication on Windows 7.

tools4bash commented 5 years ago

Thank you for your answer and hints!

But to sum it up, without any additional tweaking it's not surprising that the DX11 part is not working in Windows 7?

Edit: Oops, I totally missed the forum post. Sorry for this: https://hyperion-project.org/threads/updated-1-27-2018-v2-5-multiple-displays-servers-4k-uhd-directx-11-windows-screen-grabber.1018/#post-7487

sabaatworld commented 5 years ago

Sorry for the late reply. It does seem that windows 7 is the problem here. I don't have a Win7 PC, but if I get time, I'll try to run this in a virtual image and see what happens.

Skyviewer commented 5 years ago

I have Asrock with intel integrated graphics, i had windows 7 x64 sp1 and always getting the same problem. So no posible use Dx11, than Dx9 performance was very low and not worked on new Kodi leia 18. The only solution that worked is upgrade to Windows 8.1 on the same hardware, and DX11 works properly. it seems because of WDM driver version that supports multiple screens.

andrewpros commented 5 years ago

Looks like win 7 even with sp1 does not support duplication api so it cant be done officially.

The only way to do it in win7 is support project like https://github.com/rgcjonas/dd4seven or use vendor based capture like nvidia gpu capture sdk or game stream used also in https://github.com/moonlight-stream/moonlight-qt

But it all needs to be supported directly in app. dd4seven looks like the best and simple one.