Hotrian / OVRdrop-Public

Public issue/feature tracker for OVRdrop
103 stars 1 forks source link

Blank White Screen #24

Closed flybers closed 7 years ago

flybers commented 7 years ago

Hi. I have a stock MSI GS43 6RE laptop and a HTC Vive, (which incidentally, works well with all the other 92 VR software titles I have installed),.

My problem is that, within VR, I get nothing but a blank white screen, with a mouse cursor, in all but the HMD & Laptop webcam views. Effectively making this software useless to me. Can you give me any clues as to how I might get this working?

Hotrian commented 7 years ago

Do you have Windows 7? OVRdrop does not currently support Windows 7.

Short of that, can you try the Experimental branch? There were some fixes for monitor rotation, and it's possible your laptop is using a rotated setting inside of Windows. The latest version should be v1.0.4p3 - if you don't get v1.0.4p3 when switching to the Experimental branch, please restart Steam.

Edit: I just checked that laptop and it seems to come with Windows 10 preinstalled. Assuming you didn't downgrade to Windows 7, can you try the Experimental branch, and if that doesn't work, attach the output_log.txt from the Data folder please?

By default, the Data folder should be located at

C:\Program Files (x86)\Steam\steamapps\common\OVRdrop\OVRdrop_Data

flybers commented 7 years ago

I have Windows 10 and I am currently using the SteamVR beta. How do I access the experimental branch? Could you expalin what 'rotated setting inside Windows' means?

Hotrian commented 7 years ago

How do I access the experimental branch?

Right click OVRdrop in your Steam Library, go to Properties, then go to the Betas tab. From there, you should be able to opt into the experimental branch using the dropdown.

Could you expalin what 'rotated setting inside Windows' means?

So Window's has built in settings for rotating monitors. Some monitors can be physically rotated from Landscape to Portrait, and then to Landscape (Flipped) and Portrait (Flipped), but most do not change the setting inside Windows, so it must be changed manually from Settings > System > Display. This can also be accessed by right clicking the desktop and going to Display settings.

It's possible the panel installed inside your laptop has been rotated for some reason, and they changed that setting inside Windows to match (so the display does not appear to be sideways or upside down).

Windows 7 or the rotation issue is my first guess, because other people who have had the white screen have had one of these two problems.

The experimental branch has fixed the White Screen issue for rotated monitors, so it's possible the build on that branch will fix your issue. If not, please send me your output_log.txt.

flybers commented 7 years ago

I see. I will try the beta/experimental version now.

If it is helpful, this is the specs of ,my laptop, in full. https://www.msi.com/Laptop/GS43VR-6RE-Phantom-Pro.html#hero-overview I have the 256GB PCIe, M2 NVMe version.

One thing I have learned about the GS43 6RE is that it has 2 x GFX processors. A (full) GTX 1060 and an Intel onboard 1GB 530 processor.

MSI, in their wisdom, have employed the NVidia Optimus technology to manage these GFX processors. and currently there is no way to turn this off.

http://www.nvidia.com/object/optimus_technology.html

Hotrian commented 7 years ago

One thing I have learned about the GS43 6RE is that it has 2 x GFX processors. A (full) GTX 1060 and an Intel onboard 1GB 530 processor.

If the experimental branch doesn't fix your White Screen, then I suspect this is the problem. Someone reported that OVRdrop doesn't work for monitors plugged into the second GPU, only the primary one. It's possible your Primary GPU doesn't have a display connected, and this is confusing OVRdrop.

OVRdrop should support any number of GPUs and Monitors, but I only have a single GPU in my test system so I haven't tested the dual-GPU issue yet.

Edit: I know for sure OVRdrop can handle multiple monitors, but unfortunately like I said, my test system only uses a single GPU (GTX 1080) so I can't test against multi-GPU right now. I can install my 2x R7 265s later, however, and see if I can work out the issue.

flybers commented 7 years ago

Thus far I have tried the folowing:

Disabled windows screen rotation (for tablets). Installed the experimental version of OVRDrop. Within the Nvidia control panel, set global program & display access to the GTX 1060. None of this has made any difference to the OVRDrop performance. Again, I'm not sure if this is helpful but, Desktop access via the SteamVR in VR works fine, but I have found that if I close OVRDrop via the in VR SteamVR desktop I immediately lose the ability to 'click' with the controller.

Hotrian commented 7 years ago

if I close OVRDrop via the in VR SteamVR desktop I immediately lose the ability to 'click' with the controller.

Very weird, that shouldn't happen :o.

Can you attach the output_log.txt as mentioned earlier?

flybers commented 7 years ago

output_log.txt

There you go. As requested. I have scanned through the NVidia support pages and forums. It appears there little mention of the Optimus issues, but NVidia are aware of it. But as yet there are no plans to solve the problem. Assuming that is the problem of course. I have raised the issue with their support team via email, no reply as yet.

Hotrian commented 7 years ago

HCA: Failed to duplicate Adapter: 0 Output: 0. Unsupported Desktop Mode. Capture Error: CaptureFailed Lost output, retrying..

HCA: Failed to duplicate Adapter: 0 Output: 0. Unsupported Desktop Mode. Capture Error: CaptureFailed Failed to grab capture

Interestingly it seems you are in some Unsupported Mode. I will look into what this means as I have not seen this error occur before.

Hotrian commented 7 years ago

Looks like this error means The requested functionality is not supported by the device or the driver.

Can you send me your dxdiag? Hit Windows+R and type in dxdiag. Wait for the progress bar in the bottom left to disappear, then click the Save All Information... button in the bottom right. Save the file and attach it here please <3.

It's looking like your Intel GPU doesn't support DirectX 10+, and this is bugging out OVRdrop's capture driver.

I should be able to work around it, but I'll need more information first.

Edit: It may also be possible your Laptop's monitor is connected to the Intel GPU instead of the nVidia GPU. This would be an issue if your Intel card doesn't support DirectX 10/11. Do you have an extra monitor plugged into your Laptop by chance?

flybers commented 7 years ago

I will get the DXDiag but that will have to be tomorrow as it is 2:45am here. I can tell you that the laptop has 3 other screen ouputs besides the laptops own built in screen. At the back is a mini displayport connection which currnetly has my Vive headset connected. I use this because the Mini DP is directly connected to the GTX 1060. On the right side there is a 1.4b HDMI. This also works with the Vive HMD OK but, I seem to get better performance from the mini DP. Also on the left is a Type C Thunderbolt USB. This is capable of video output to 2 x 4K screens. I know this works too, as I have had 2 x 55" 4K screens mirroring my Vive output. Soon after I got the laptop, just for the hell of it, I connected the 2 x 4k screens via the USB. The Vive HMD via the mini DP and a 47" LG 3DTV @ 1080 via the HDMI. I got messages from SteamVR control panel saying that screen mirroring may diminish frame rates in VR. But in actual fact I've never noticed any real difference in performance within VR, Even with all that lot connected. Currently though, the only screens in use are the Vive HMD via the mini DP and the laptop screen.

Hotrian commented 7 years ago

I think I may have found the issue. Still testing. The DxDiag will be helpful so I'm ready for it when you are :).

flybers commented 7 years ago

DxDiag.txt

Hotrian commented 7 years ago

Hmm, that's not too good. Looks like your Intel GPU is in fact driving the laptop display (which is an odd decision IMO), and I read online somewhere the capture API I'm using is not normally supported by Intel GPUs.

I should have a new build up later today with a completely rewritten Capture driver, which might fix your issue, but it also might not work for your laptop display or any windows on it :(.

flybers commented 7 years ago

Do you think it may be possible to disable the intel GPU?

Hotrian commented 7 years ago

It might be, but your laptop display is probably hard wired to it, so you'd have to use an external display in that case -- unless there is some way to switch the GPU it is using for that display, which would have to be a custom setting specifically for that laptop, and I've never heard of such a setting.

flybers commented 7 years ago

Thought you might be interested in this. Viewing the INTEL HD GPU control panel show DX 12 compatibility.

2017-04-11

Hotrian commented 7 years ago

So as far as I can tell your system should be fully compatible, but for some reason you are getting the Unsupported error code.

So I don't know if this still exists in the NVidia control panel, but can you give this a try?

  1. Open NVidia Control Panel.
    • Either Right Click the Desktop and click NVIDIA Control Panel or go to Settings and type NVidia in the search box, then click it.
  2. On the left, Navigate to 3D Settings >Manage 3D settings.
  3. Navigate to the Program Settings tab.
  4. Click Add, then select OVRdrop.exe if it is currently running or click Browse... and navigate to C:\Program Files (x86)\Steam\steamapps\common\OVRdrop and select the OVRdrop.exe. Then click Add Selected Program...
  5. See if you have an option for Select the preferred graphics processor for this program - It should look like this.

I don't have that option, but I also only have one GPU installed, so I can't see if this is still in the NVidia Control Panel or if they pulled it.

If you can select the preferred GPU, try using one, then the other, with OVRdrop. You should just have to select it, click Apply, then (re)boot up OVRdrop to see if it works.

flybers commented 7 years ago

OK. So far. I checked for a & installed the Intel GPU driver update. (This gave me more options in it's control panel). Checked OVRDrop. No change. Tried the NVidia 3D settings suggestions. No change. So I looked in the Intel GPU control panel. It had similar 3D management options. I added OVRDrop in the same way as the NVidia version. Again no change. Going to try one more thing. BRB.

Hotrian commented 7 years ago

Dang, that's disappointing. You should still be able to use OVRdrop with your GTX 1060, but you might have to use an external monitor, and either set it to the Primary monitor, or disable the laptop monitor all together to make it work.

flybers commented 7 years ago

OK. Updates:

If NVidia 3D set to Intel GPU. Nothing shows in VR.

Here's the Intel 3D control panel.

2017-04-11 1

This is the NVidia 3D CP. (I only get an ouput in VR with these settings).

2017-04-11 2

flybers commented 7 years ago

I have attached another display via the side HDMI.

2017-04-11 4 Notice the notebook panel does not register and the added panel defaults to the GTX 1060.

So, here's the Intel CP.

2017-04-11 5

Notice the external screen doesn't show as being there.

I realise the issues are due to my hardware setup and not in anyway a fault of your software. I really do appreciate the time and effort you have gone to on my behalf.

Hotrian commented 7 years ago

Very interesting! I assume you can disable one or the other either by Right Clicking your Desktop and going to Display settings or by hitting Windows+P.

flybers commented 7 years ago

Nope. There is no way to disable either. Not even in the bios. It appears that the GTX GPU and the Intel GPU are completely ignoring each other. Just crazy IMHO.

flybers commented 7 years ago

The Mini DP & side HDMI are outputs of the GTX 1060. And yet on the external display I have a mirror of my desktop. If I click identify. a '1' appears both on the external screen and the laptop display. I haven't checked the Thunderbolt USB. I don't know which GPU it would utilise. I'm guessing the GTX though.

Hotrian commented 7 years ago

Weird. You tried Windows + P and then hitting P until you get to either PC screen only or Second screen only? Or does that not even show up for you?

Also in Windows' Display Settings it should show all of your displays even if they are on different GPUs - it should look like this: pic Is that not what you see?

In the dropdown labeled Multiple displays you should be able to set it to Show only on 1 or Show only on 2, etc. Does this not work for you?

Hotrian commented 7 years ago

If I click identify. a '1' appears both on the external screen and the laptop display.

Very strange indeed! When I set mine to Duplicate these displays, it only shows one monitor in the Display settings, but it is labeled 1|2, and when I hit Identify it says 1|2 in the lower corner of both displays, not just 1

Sounds like MSI has an interesting setup there :o

flybers commented 7 years ago

Hahaha... I went into the Windows display properties. Both screens were set to duplicate. So I tried all variations of settings. Finally, I extended my desktop onto monitor 2 (the external monitor). Still no change. Then I noticed that in the pictogram of the screens, screen 2 was slightly lower on the pictogram. I aligned them together. Boom. Monitor 2 now shows in OVRDrop. But The primary display remains blank white. But in the windows settings I have set the taskbar to show on all displays, so I can access the start menu. That's some progress at least.

Hotrian commented 7 years ago

Then I noticed that in the pictogram of the screens, screen 2 was slightly lower on the pictogram.

"This shouldn't matter -"

I aligned them together.

"mmhmm"

Boom. Monitor 2 now shows in OVRDrop.

"Wut."

I have no idea why that would make a difference, but I'll be sure to run some thorough tests on that now. Thanks for the heads up!

flybers commented 7 years ago

Update for you. I am currently in VRChat. I had my OVRDrop window open, watching a youtube unity tutorial. So, out of curiosity I decided to go back into Windows display menu and reset to duplicate screens. Fully expecting to lose OVRDrop in VR. It didn't. Everything simply rescaled and kept working. Now my desktop shows on screen 1, but not 2. In other words. Everything is now set back as it was prior to me messaging you. So it seems just having the 2 displays out of alignment was the only thing killing OVRDrop.

Hotrian commented 7 years ago

Very strange! I have now completely rewritten the capture dll for OVRdrop so I'll have to do some testing and see if I can break it by messing with the display settings.

flybers commented 7 years ago

More info for you. I've now set the FPS to 90. The mouse is a lot smoother now. I've had OVRDrop open in: Raw Data, Arizona Sunshine, Dimensional Rift, VRChat & Unity Editor VR. Even though I'm watching youtube videos in full screen at a virtual screen size of approx 100". It hasn't impacted the gameplay in any way. kudos to you fella. Great program. I will be using it a lot. Especially in Unity Editor VR. Thank you so much.

Hotrian commented 7 years ago

Can you try messing around with the new v1.0.4p4 on the Experimental branch? It's using a new capture driver (same API).

I hooked up my dual R7 265s for testing, and I found that OVRdrop would only clone content on the same GPU as the Primary Monitor.

Alignment didn't seem to make a difference, but checking the Make this my main display box and clicking Apply allows OVRdrop to clone content from any monitor attached to the same GPU as the selected monitor - at least for me.

flybers commented 7 years ago

OK. I'm now using the new v1.0.4p4. It's better. I now get an output on my NVidia overlay, which I wasn't before. Incidentally, Microsoft did the Creators Update on my MSI VR laptop last night. It hasn't (as yet), affected any functionality. I recommended OVRDrop to my son, who lives a few hundred miles away. He is using it too now, he a Unity enthusiast.

Which brings me to my & my son's other questions. We cannot seem to find a way to utilise keyboard input. I tried using windows on screen keyboard. But it didn't work. Also, my son wanted me to ask. When using the Unity interface (as in your Youtube trailer), there doesn't seem to be any drag & drop ability. I have found that only when using the NVidia overlay, I can drag desktop icons. But this doesn't translate to any other open window. (Should these questions have gone in a different thread)?

Also for your interest. Have you heard of VRChat? I, my son & some friends have a few 'worlds' in VRChat. One of which is a virtual TV studio set. We will be creating programs with live audiences. The recordings of which will be put on our Youtube Channel, Facebook page & website. We would like to feature OVRDrop in our next broadcast. Is that OK?

flybers commented 7 years ago

Oh. I almost forgot. Do you remember earlier in the thread, I mentioned that the only two things which would output in OVRDrop were my Vive HMD camera and my Laptop's webcam? Since changing to the first experimental version the laptop's webcam no longer appears in the list. This is of no real importance to me., which is why I forgot to mention it.

Hotrian commented 7 years ago

Which brings me to my & my son's other questions. We cannot seem to find a way to utilise keyboard input.

I'm planning to see if I can incorporate the SteamVR Virtual Keyboard and if not I'm planning to incorporate my own custom VR keyboard. Right now I don't know if there's a way besides the actual keyboard. Can you try launching Steam as Admin - which should launch OVRdrop as Admin - and see if the On Screen Keyboard works then? I don't think you can click on applications with a higher security level - such as Task Manager - unless it is launched as Admin (which elevates OVRdrop's security level).

When using the Unity interface (as in your Youtube trailer), there doesn't seem to be any drag & drop ability.

I recently discovered the Drag+Drop simulation broke at some point. Working to find out where it went wrong. In the trailer I'm using my desktop keyboard/mouse to interact with Unity without leaving VR.

We would like to feature OVRDrop in our next broadcast. Is that OK?

Certainly! If you encounter bugs please note in your broadcast that OVRdrop is newly released and the developer is working to fix bugs ASAP :). Not a requirement of course, just a request :).

Since changing to the first experimental version the laptop's webcam no longer appears in the list.

This one is very strange - I don't believe I have messed with the ability to grab camera outputs. I will look over the code again and see if I messed something up here. Thanks for the report :).

flybers commented 7 years ago

I don't believe I have messed with the ability to grab camera outputs. I will look over the code again and see if I messed something up here.

Don't worry about the webcam on my behalf. To me it is no issue at all.

If you encounter bugs please note in your broadcast that OVRdrop is newly released and the developer is working to fix bugs ASAP

No worries, I have nothing but good things to say about your OVRdrop & in my & my son's experience, we have never come across a dev as willing to help as much you are. Also, we have a few technical issues of our own with the broadcasts. This is due to some of the limitations of VRChat. So, it is going to be a week or two before we can broadcast anyway.

I can tell you. my son and I are using OVRdrop almost constantly within VR now. Each day we find new uses for it. In fact we will be making use of OVRdrop to enable us to create the broadcast. OVRdrop is going to be our in broadcast teleprompter.