Question / Help Laptop, Black Screen, Have Read Already Posted Articles

Hovis

New Member
https://hastebin.com/amemolazoc

Hi Guys, I know you must get this post all the time so apologies if this ends up being something really obvious but I have spent 5 hours yesterday and 2 hours this morning reading articles and trying everything with no success. I don't know how to read log files effectively. The program I am trying to capture is Shadow.exe by shadowtech. I have received advice from them but nothing has helped and they have other users which have resolved the issues they had with their advice.

I have: Ran both OBS and Shadow as admin with the NVIDIA graphics selected. I have tried both window capture and game capture. Window capture recognises the initial image with red lines forming the edge and the cursor is seen moving and then goes black with just the cursor moving. Game capture doesnt even create a red outline. If I set both to run on the intergrated intel GPU it does work but the capture is very poor resolution, low frames and blurs a lot. I have previously tried turning off hardware accelleration in google chrome?? Checked and unchecked in all combinations of transparency, anti-cheat, multi-adaptor compatibility etc with no success.

Please let me know if there is anything else you need to know and I appreciate you taking the time to read this. I hope you can help.

Kind Regards
Hovis
 

RytoEX

Forum Admin
Forum Moderator
Developer
I'm not sure that application can be captured with game capture. I notice you have a Kaspersky product installed. If you're having issues with Kaspersky and OBS' window capture, try the steps outlined here.
 

Hovis

New Member
Thanks for your reply, I made the changes to kaspersky but is still the same. I was able to capture shadow if i set both OBS and shadow to intergrated GPU (it looks terrible on obs and stream though) so I'm sure it can be, but I don't understand why I cant with my dedicated GPU. My GPU is fully up to date.
 

RytoEX

Forum Admin
Forum Moderator
Developer
The only thing that stands out to me in your logs is that your laptop somehow moves the display from being attached to the Intel GPU to being attached to the NVIDIA GPU, which I don't think normally happens on laptops with an iGPU and a dedicated GPU. I would normally suggest trying enabling the "SLI/Crossfire Capture Mode (Slow)" option in Game Capture or "Multi-adapter compatibility" in Window Capture, but you said you'd already tried that.
 

Hovis

New Member
Sir you are a freaking genius! I tried the SLI/Crossfire option in game capture and it works!! But I don't understand, I thought crossfire/SLI was for desktops with dual gtx 1080s etc. It was the only option I hadn't tried because no one has mentioned it before on forums etc and I thought there was no point. Anyway thank you so much, you are a hero! There is a pinned article in the OBS forum about laptops and NVIDIA, maybe you can update it to include the SLI/Crossfire in game capture in case others have a similar issue.
 

RytoEX

Forum Admin
Forum Moderator
Developer
Your laptop has multiple GPUs. If SLI/Crossfire Capture Mode is the only way it works, it's because OBS and the game are not running on the same GPU. It is also less efficient and can cause more resource usage, leading to a performance loss, which is why it's not recommended. The best solution is to ensure that the game and OBS are both running on your high-performance GPU (the NVIDIA, in your case).

SLI/Crossfire Capture Mode (it used to be called "Multi-adapter Compatibility") actually is mentioned in the wiki article on laptop issues near the bottom. The stickied post in this forum seems to be a little outdated.
 

koala

Active Member
The name of the SLI/Crossfire Capture Mode suggest it will only work with SLI/Crossfire setups, but it is actually just another generic capture mode different to the standard capture mode, and less efficient.

The standard capture mode works by telling the GPU to make the frame buffer that is used by the captured game directly available to OBS. OBS gets some kind of memory address and is able to just access the original frame data without copying, and it can use very efficient GPU commands to rescale and manipulate this frame data. You see that this mode can only work if the frame buffer of the captured game is on the same GPU as OBS. You cannot access the frame buffer on a different GPU this way, because it is on different memory chips on different GPU cards.

The SLI capture mode works differently. It works by first copying the frame data of the captured game to CPU memory. After that the frame data is copied to GPU memory of the GPU OBS is running on, where OBS is able to use it to compose the final image. This involves two heavy copy commands for every frame from GPU#1 memory through a slow bus to slow CPU memory, then back through the slow bus to the GPU#2 memory. This way, you are able to access every frame buffer of every game, regardless of the GPU the game or OBS is running on, because it is transferred via CPU memory. But this is heavy stress for every component involved, so it should only used as last resort.
 

Hovis

New Member
Thank you both RytoEX and Koala for your replies. I had read that section in the laptop issues but because I had gone to NVIDIA's 3d Settings and set both programs to use the NVIDIA GPU, (and if I right click on their desktop icons and click the "run with graphics processor" they both have the "High-performance NVIDIA processor" set as their default) I assumed that they both were running off the same GPU. I have the NVIDIA GPU Activity notification bar up which says both programs are using the NVIDIA graphics. I have attached two jpegs which display what obs shows with SLI on and SLI off.

I didn't realise that SLI/Crossfire and multi-adapter compatbility are the same thing, as SLI/Crossfire is available with game capture and worked, whereas Multi-adapter compatibility with windows capture didn't work.

So from what you are saying I assume that they are in fact not using the same GPU, in which case is there another way to a.) identify whilst the program is live which GPU it is using? ....and b.) force both programs to use the NVIDIA GPU if they are not other than the NVIDIA 3D settings which hasn't worked? As it is eating into my CPU pretty heavily.

I really appreciate your help, this is a bit of a learning curve for me.
 

Attachments

  • NVIDIAGPUPrtSc.jpg
    NVIDIAGPUPrtSc.jpg
    310.7 KB · Views: 11
  • NVIDIAGPUPrtScSLIoff.jpg
    NVIDIAGPUPrtScSLIoff.jpg
    284.5 KB · Views: 12
Top