Giter VIP home page Giter VIP logo

Comments (21)

fredemmott avatar fredemmott commented on May 31, 2024

Can you share the DCS log and crash dump? As it’s DCS crashing, those are needed, even if it’s OpenKneeboard causing it

from openkneeboard.

fredemmott avatar fredemmott commented on May 31, 2024

It will also log some information to the system debug stream - https://docs.microsoft.com/en-us/sysinternals/downloads/debugview#introduction is the best way to view it

from openkneeboard.

franukis avatar franukis commented on May 31, 2024

Of course :)

Description of the process captured in the Debug stream:
1.- Opened WMR
2.- Launched SteamVR using WMR for SteamVR shortcut
3.- Launched dbgview64.exe
4.- LAunched DCS
5.- Alt+tab out of DCS and launch Openkneeboard (selection not to install DCS hooks)
6.- DCS crashes to Desktop
7.- Close Openkneeboard
8.- call windows task manager
9.- Kill Openkneeboard process still running
10.- Save debug stream and close debugviewer
FRANUKIS.LOG
DCS_Logs.zip

from openkneeboard.

fredemmott avatar fredemmott commented on May 31, 2024

:( sadly the dcs crash log is empty - do you have any DCS .dmp files, either in the the DCS logs folder, or %LOCALAPPDATA%\CrashDumps ?

That said, the debugview log is very useful:

00000019	0.06093640	[7140] [01:56:23.873][PID 5184] Starting graphics hook in process C:\Program Files\Eagle Dynamics\DCS World OpenBeta\bin\DCS.exe 	
00000022	0.08188850	[5184] [01:56:23.896][PID 5184] Hooked D3D9 	
00000028	1.06108701	[7140] [01:56:24.875][PID 1600] Creating overlay renderer for 5184 	

These messages - and all the others of the form [NNNN] [nn:nn:nn.nnn][PID nnnn] are being made by another overlay renderer. Do you have any idea what this is? This is anything you use that has the ability to show content inside of/on top of a game. For example:

  • Steam overlay (not steamvr overlay)
  • Discord in-game overlay
  • performance monitoring software
  • software that came with your motherboard, graphics card, or any 'gaming' hardware

The next steps are:

  1. try to disable any software like this, check DCS + OpenKneeboard work
  2. enable it one at a time until DCS stops working
  3. then we figure out how to make them work together if it's something important to you. If the software requires specific hardware, I'm unlikely to be able to work on this, but can point another developer in the right direction if there is someone with the appropriate hardware.

9.- Kill Openkneeboard process still running

Can you file a separate issue for this? The shutdown code is executing, and the windows app runtime is 'meant' to close the process automatically after that, but it isn't happening for you. If you're familiar with windows debugging tools (e.g. windbg from the microsoft store), attaching to that process after closing the window and creating a dump would be extremely useful.

I'm not able to reproduce either crash :(

from openkneeboard.

fredemmott avatar fredemmott commented on May 31, 2024

As for what's going on, without the hooks, OpenKneeboard does 3 things to DCS:

  1. loads a DLL that talks to the wacom/huion driver. There is no way for OpenKneeboard to 'own' the tablet when it's not the active window, so, it makes DCS own it and forward penstrokes/buttonpresses.
  2. loads a different DLL that detects if steamvr, oculus SDK, or non-VR rendering is being used
  3. (shouldn't be happening for you) If oculus SDK or non-VR rendering is being used, it then modifies directX or the oculus SDK in memory to also render the kneeboard.

(2) is where the problem is. There's no proper way to do any of this - part of DirectX needs to be rewritten in memory to figure out what DCS is doing. Whatever software is incompatible isn't 'buggy', nor is OpenKneeboard here: any two applications doing this can interfere with each other, and they made need specific code to play nicely together.

For example, the steam and discord overlays work the same way, and both OpenKneeboard and Discord have special code to be compatible with the steam overlay.

from openkneeboard.

franukis avatar franukis commented on May 31, 2024

Thx for the detailed information. Ther could be two things...

  • Discord running in background
  • fpsVR app which launches automatically with steamVR and has the ability to inject another overlay... even though I think it was hidden

Let me re-run the test with both apps off, and I will come back :)

from openkneeboard.

fredemmott avatar fredemmott commented on May 31, 2024

Discord

This is likely, I'll see if I can reproduce the problem

fpsVR

While this has /some/ oculus support which could potentially interfere (even when not using an oculus headset), I'd expect it to just be running in steamvr mode for you and not be a problem.


While I'd like to fix (or at least identify) whatever's interacting with the autodetection, I'm also going to add an option to force steamvr and skip the autodetection, which should be a workaround.

from openkneeboard.

franukis avatar franukis commented on May 31, 2024
  • Closed Discord
  • Disabled fpsVR launch
  • Disabled Geforce Experience In-Game overlay (for recording, was not in use)

Still crashing :(
I found the dump file, and I am also attaching it this time
New_logs.zip

from openkneeboard.

fredemmott avatar fredemmott commented on May 31, 2024

From the crash dump:

C:\Program Files\Eagle Dynamics\DCS World OpenBeta\bin\dxgi.dll

This interacts with the DirectX implementation, and isn't a normal part of DCS or Microsoft's version from system32 (it has no author data); do you know where it came from? Removing it may resolve the issue

C:\Users\franu\Saved Games\DCS.openbeta\Mods\Services\DCS-SRS\bin\srs.dll

Ok, I know this one, but don't use it :) Is there anything visible in DCS when using it?

from openkneeboard.

fritzcloud avatar fritzcloud commented on May 31, 2024

Having crashes as well, anything that could draw on top of DCS is: Simple Radio, Scratchpad mod. I think that's it?

from openkneeboard.

franukis avatar franukis commented on May 31, 2024

I will have a look into dxgi.dll as I don‘t recall what it is …

SRS does indeed show some info, but it is integrated into DCS as if it was a module. There‘s a key combo to show a window/dialog with the connection status and the channels/frequencies. But I inow people using it together with Openkneeboard with no issues, so I will explore the first lead first ;)

from openkneeboard.

fredemmott avatar fredemmott commented on May 31, 2024

OpenKneeboard-RelWithDebInfo.msix from https://github.com/fredemmott/OpenKneeboard/actions/runs/2019411271 may fix this; if it doesn't, it also adds an API choice to the game settings. If you set that to SteamVR it should work around this. Please let me know if it works on auto-detect, and if not, if steamvr fixes it.

Any chance you're using RivaTuner or MSI Afterburner?

from openkneeboard.

franukis avatar franukis commented on May 31, 2024

I will give it a try: uninstall current version, and install using that .msix

Regarding Afterburner, I have it somewhere (as well as the equivalent ASUS GPU Tweak II), but it was not running, and it is not installed, so the process was not running in background... will double check, just in case, though.

from openkneeboard.

franukis avatar franukis commented on May 31, 2024

Please let me know if it works on auto-detect, and if not, if steamvr fixes it.

Auto-detect did not work, but manually setting to SteamVR did work perfectly :)

from openkneeboard.

fredemmott avatar fredemmott commented on May 31, 2024

If you’re interested in continuing to figure out what the interaction is in auto detect mode, please leave this open; if you’d rather just get on with using it now there’s a workaround, please close it.

once closed, I’ll lock this issue: there’s a tendency for other people to report new issues by commenting on issues like this one - even if closed - instead of opening new ones which makes it hard to keep track of what discussions are relevant to each problem

from openkneeboard.

franukis avatar franukis commented on May 31, 2024

It is fine for me to work with no auto-detect. However, if you want to investigate why it did not work, I am available to support and run the tests you want.

I will close the issue now and, if you want to continue the investigation, just re-open/ping me, and I will support to the best of my knowledge :) (I mean, I have my own SW development - shameless plug: DCS Datcard Generator-, and sometimes I feel more offended by a bug, cause I do not understand it, than the users, who are happy with a workaround)

from openkneeboard.

fredemmott avatar fredemmott commented on May 31, 2024

Were you able to try removing dxgi.dll from the DCS bin folder? Other than that, the only clear next step would be to go through task manager and kill everything related to performance monitoring or gaming

from openkneeboard.

franukis avatar franukis commented on May 31, 2024

Honestly, I had forgotten about it... However, just looked into the folder and looking into a dxgi.log, I learnt it was related to Reshade (I had a user mod called "VR Sharpen color IGM" that was a pre-configured Reshade). I disabled it via Ovgme, and confirmed that dxgi.dll was no longer present in bin folder... and now Auto-detect works!!!

from openkneeboard.

fredemmott avatar fredemmott commented on May 31, 2024

Thanks :)

from openkneeboard.

fredemmott avatar fredemmott commented on May 31, 2024

For now, this is "explicitly use steamvr or don't use reshade", but should be possible to make them play nicely together.

from openkneeboard.

fredemmott avatar fredemmott commented on May 31, 2024

So, brief experimentation:

  • latest reshade with defaults installed is fine
  • latest vrperfkit is fine

Given OpenKneeboard doesn't care about the specific shaders used, I'm guessing this was an old version of reshade with an older dxgi.dll ; both vrperfkit and latest reshade replace dxgidll with one that doesn't interfere with openkneeboard

from openkneeboard.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.