muchimi / JoystickGremlinEx

Modified version of Joystick Gremlin to add features I wanted to have but were difficult to do as just a plugin, plus I wanted to run this as 64 bit and on a more current version of Python/QT.
GNU General Public License v3.0
17 stars 2 forks source link

Runaway memory usage - apparently vJoy related? #16

Closed RichardDastardly closed 2 months ago

RichardDastardly commented 3 months ago

This is a new one on me, because I've been using this version ok for a month or so and I've not changed any devices in the period.

Last entry in debug.txt before either there's a quite rapid runaway in memory usage, or the process just stops.

[2024-03-02 10:43:17.891] [debug] [info] {504FB840-FF80-11EA-800C-444553540000}: Processing device: vJoy Device
[2024-03-02 10:43:17.892] [debug] [info] Device summary: vJoy Device {504FB840-FF80-11EA-800C-444553540000}
[2024-03-02 10:43:17.892] [debug] [info] Axis=8 Buttons=32 Hats=0
[2024-03-02 10:43:17.892] [debug] [info] Axis map
[2024-03-02 10:43:17.892] [debug] [info]   linear=1 id=1
[2024-03-02 10:43:17.892] [debug] [info]   linear=2 id=2
[2024-03-02 10:43:17.892] [debug] [info]   linear=3 id=3
[2024-03-02 10:43:17.892] [debug] [info]   linear=4 id=4
[2024-03-02 10:43:17.892] [debug] [info]   linear=5 id=5
[2024-03-02 10:43:17.892] [debug] [info]   linear=6 id=6
[2024-03-02 10:43:17.892] [debug] [info]   linear=7 id=7
[2024-03-02 10:43:17.892] [debug] [info]   linear=8 id=8
[2024-03-02 10:43:17.898] [debug] [error] {CAD14A50-FF7D-11EA-8007-444553540000}: Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED)
[2024-03-02 10:43:17.898] [debug] [error] {CAD14A50-FF7D-11EA-8007-444553540000} Failed reading device in buffered mode, falling back to polling, Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED)
[2024-03-02 10:43:17.898] [debug] [error] {65C0E930-07B1-11EC-8001-444553540000}: Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED)

The old 32bit original version starts up & sits at 50MB or so with the same config. I don't know whether it's a quirk of my install or I've just found a problem that hasn't shown up yet, but I thought some feedback is better than none. Thanks for keeping this util alive :)

Lolo401 commented 2 months ago

Hi, The same issue just appeared on my system. I switched yesterday from a Intel base PC to a AMD AM5 7800X3D. I reinstalled the exact same configuration (VJoy 2.1.9 + JG Ex 13.40.4Ex.).

JG Ex crashes consistently at random times. About 50% of the time, it will crash at start, the rest of the time it will crash randomly within 2 minutes. Same log issues: [2024-04-07 01:44:31.153] [debug] [info] Axis=8 Buttons=121 Hats=0 [2024-04-07 01:44:31.153] [debug] [info] Axis map [2024-04-07 01:44:31.153] [debug] [info] linear=1 id=1 [2024-04-07 01:44:31.153] [debug] [info] linear=2 id=2 [2024-04-07 01:44:31.153] [debug] [info] linear=3 id=3 [2024-04-07 01:44:31.153] [debug] [info] linear=4 id=4 [2024-04-07 01:44:31.153] [debug] [info] linear=5 id=5 [2024-04-07 01:44:31.153] [debug] [info] linear=6 id=6 [2024-04-07 01:44:31.153] [debug] [info] linear=7 id=7 [2024-04-07 01:44:31.153] [debug] [info] linear=8 id=8 [2024-04-07 01:44:31.161] [debug] [error] {30E356A0-F46A-11EE-8002-444553540000}: Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {30E356A0-F46A-11EE-8002-444553540000} Failed reading device in buffered mode, falling back to polling, Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {7789F800-F46C-11EE-800E-444553540000}: Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {7789F800-F46C-11EE-800E-444553540000} Failed reading device in buffered mode, falling back to polling, Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {6982BAF0-F46A-11EE-8005-444553540000}: Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {6982BAF0-F46A-11EE-8005-444553540000} Failed reading device in buffered mode, falling back to polling, Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {74D6D0D0-F46A-11EE-8007-444553540000}: Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {74D6D0D0-F46A-11EE-8007-444553540000} Failed reading device in buffered mode, falling back to polling, Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {66D5FF90-F46C-11EE-8005-444553540000}: Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {66D5FF90-F46C-11EE-8005-444553540000} Failed reading device in buffered mode, falling back to polling, Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {86B84CC0-F46A-11EE-8009-444553540000}: Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {86B84CC0-F46A-11EE-8009-444553540000} Failed reading device in buffered mode, falling back to polling, Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {91266F70-F46A-11EE-800B-444553540000}: Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {91266F70-F46A-11EE-800B-444553540000} Failed reading device in buffered mode, falling back to polling, Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {6C340D60-F46C-11EE-8008-444553540000}: Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {6C340D60-F46C-11EE-8008-444553540000} Failed reading device in buffered mode, falling back to polling, Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {9E90BB20-F46A-11EE-800D-444553540000}: Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {9E90BB20-F46A-11EE-800D-444553540000} Failed reading device in buffered mode, falling back to polling, Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {ABFA6A90-F46A-11EE-800F-444553540000}: Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {ABFA6A90-F46A-11EE-800F-444553540000} Failed reading device in buffered mode, falling back to polling, Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {642362B0-F46C-11EE-8003-444553540000}: Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {642362B0-F46C-11EE-8003-444553540000} Failed reading device in buffered mode, falling back to polling, Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {6EE523A0-F46C-11EE-800A-444553540000}: Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {6EE523A0-F46C-11EE-800A-444553540000} Failed reading device in buffered mode, falling back to polling, Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {680A60E0-F46C-11EE-8007-444553540000}: Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {680A60E0-F46C-11EE-8007-444553540000} Failed reading device in buffered mode, falling back to polling, Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {71E34870-F46C-11EE-800C-444553540000}: Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {71E34870-F46C-11EE-800C-444553540000} Failed reading device in buffered mode, falling back to polling, Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {5292C5E0-F46C-11EE-8001-444553540000}: Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {5292C5E0-F46C-11EE-8001-444553540000} Failed reading device in buffered mode, falling back to polling, Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {7789F800-F46C-11EE-800F-444553540000}: Attempted to read buffered device data from a ...

It's too bad, I will miss the network feature greatly but I have to return to JG 13.3, which is working fine...

muchimi commented 2 months ago

The HID (DI) layer hasn't changed from the original so I'm not sure why it's generating the error - which of course - I cannot reproduce (and I have 13 HID devices to test with). The core changes are 64 bit and a new version of QT (that is what seems to cause the most grief) - but the core modules are unchanged.

I'll investigate.

Just one ask: make sure you use the latest release, as there are some fixes from time to time as I run across them (meaning, the ones I can duplicate).

Thanks for reporting the issues.

Lolo401 commented 2 months ago

@muchimi , many thanks for keeping this project alive !! If I may, would you mind sharing your environment details ?

I am struggling to find a correct OS / Vjoy # / JG # combination. Between VJoy incompatibilities with Win11, all the side projects (Vjoy 2.1.8, 2.1.9, 2.2.1.1, 2.2.0, etc....) and all the JG builds, it would be greatly appreciated to have a clear idea of what a stable environment looks like with the installation steps required. (I always have to install JG 13.3 first via the installer to get JG 13.40 to work, is that expected ?)

As I said above, i recently upgraded from Intel 11th Gen to AMD AM5. On my previous build, I was running Vjoy 2.2.2.0 with JG 14.40.4Ex. Except for the known bugs, it was working fine as long as I edited the profiles manually to avoid the UI crashes.

On my new build, I never managed to get Vjoy 2.2.2.0 to work. I had to rollback to 2.1.9. I wonder if all the VJoy installations / deinstallations did not mess it up beyond recognition.

Cheers,

muchimi commented 2 months ago

Here's what I run and do currently on my systems and my comments for each. Hopefully, parts of this will be helpful.

VJOY has to be the correct version. The specific file that python must find and is included in the distribution: vJoyInterface.dll 2.1.9.1 7/14/19 1:53pm x64

HIDHide I use version 1.2.122 x64

The python environment is also self-contained. GremlinEx is built against 3.11.2 x64. but any version of python 3.11 64 bit should function.

I run windows 11 x64 professional for my two environments, current patch level as released by Microsoft, including the latest "H" releases for Windows 11.

I run GremlinEx's release as my daily driver (so not from the dev environment) and I have two test machines that I use to troubleshoot things. Because of the myriad of combinations of hardware and software, it's very hard to reproduce a particular issue because I don't have the same hardware and every PC is different even though it's supposed to all be the same. What I can say for sure is the functionality I use works all the time - and that is focused on the vjoyremap plugin and the scripting I do - but what works for me - and what works for you - may be two different things!

Firmware: all current on the devices that have a firmware update capability (Virpil, MTG and TM in my case). I do not run any of the software that comes with these devices at all - only to configure - calibrate the hardware and update the firmware. I only use the "raw" HID capabilities of these devices as seen by Windows.

A note to never mix 32 and 64 bit as you'll get unexpected behaviors, and this can also happen with older versions installed, as at runtime, the behavior is to look in the current folder, then look in the path and elsewhere until the dependency is found. "DLL Hell" is very much alive with Windows today - so make sure the program hits the right DLLs - so - you only have one release of VJOY installed, etc... You can have multiple but the one GremlinEx needs comes with the distribution.

Specific to USB / HID type problems:

The base code has not been modified outside of the HID interface compiled for 64 bit.

Random disconnections of HID devices or not detecting devices: some typical root causes in my experience: (1) total cable is too long or faulty - test a different table (2) cable/connection (at either end) (3) insufficient power provided to the USB device - use a powered USB hub if you have more than one device, and some cheaper hubs are unable to provide full spec power (5 volt at 0.5A to 0.9A) - half an amp for USB 2.0 devices, 0.9A for USB 3.0 devices, per port. (4) windows is configured by default to turn off power to USB devices after some time - and it doesn't always detect when a controller is in use. Disable USB power management in Windows (this is usually done via device manager but there are articles online how to do this). NOTE: major Microsoft patches can re-install drivers and reset to default - so you may have to check power settings after some patches. (5) machine was not cold started after a USB device was connected/disconnected. The theory is - yes - you can hot-connect or disconnect USB devices - and it "should" work. If you run into an issue - the first thing to do is to reboot the machine after you've made the modification, and to be extra sure on my end, I cold start to make sure all is re-initialized, including the BIOS and the hardware so the next bootup sequence is going to be predictable. I have some older devices (CH was notorious for this) causing all sorts of headaches because the "logic" was not in the hardware but in some software drivers they had. A telltale sign is if your controller comes with driver software to make it work. Rebooting may be an extra step but it can save a lot of headaches. I found the most problem-free joystick/wheel/pedal controllers are those that are detected as generic HID devices without the need to run any software that came with the device and they are visible to windows (when HIDHide is not enabled) to the control panel app joy.cpl (6) if using a wireless USB device - make sure the batteries are ok. I don't recommend using wireless devices for anything but a mouse or a headset - neither is going to be used by GremlinEx. Wireless is convenient but can also be a source of headaches for game controllers.

Some troubleshooting tips:

Your HID devices should function without GremlinEx installed and be stable using whatever tools came with them to diagnose/test them. Just make sure that HIDHide is not hiding the devices from these utilities when testing. If the HID devices are not stable in Windows - they won't be in GremlinEx either.

If your HID device starts acting up - use a process of elimination and change one thing at a time until you find the root cause. If you change multiple things, like connection, hub, number of devices, multiple changes will make it more difficut to diagnose the issue.

Some tests you can attempt to see if it makes a difference (and yes, it can be tedious to do but necessary in some cases):

HIDHide issues

HIDHide is an essential layer to prevent conflicts in games when the raw hardware is visible to the game, at the same time the virtual (vjoy) hardware is. This can cause many different problems - from the game not detecting the right input - to things not being detected at all to very strange behaviors.

HIDHide is very stable but you need to run it and verify the configuration every time you connect or disconnect hardware (which is one reason please figure out a way to not constantly connect/disconnect).

How can you tell HIDHide is working or not? Again go back to joy.cpl - the windows control panel joystick app from 25 years ago, and it should only "see" the devices you can the game to see. If you see all your raw hardware - HIDHide isn't doing its job.

What does it look like when HIDHIde is set up correctly? vjoy.cpl only shows your VJOY devices, all your actual "raw" controllers will not work there.

Checking your mappings

Vjoy comes with a Vjoymonitor utility that will display what outputs you have. That will show all your vjoy devices and let you verify the mapping is as expected. I use it constantly to check inversion and button pulse vs hold mappings. If vjoymonitor doesn't show what you expect, it will definitely not work correctly in the game either.

A note about the changes I made to GremlinEx

I have made the following modifications to the original code: (1) change to python 3.11 to use 64 bits and take advantage of significant performance boost over prior releases of python (2) move to QT 6 for the user interface (this was a heck of a change because this version of QT is drastically different in terms of how it behaves, and can cause a lot of UI issues, and I squash them as I encounter them). This was necessary because the original QT was too old and didn't work in Python 3.11 64 bit. (3) recompiled the HID layer (DILL) to 64 bit libraries (no code changes) (4) added a separate plugin called vjoyremap to add functionality I was interested in having such as a 1 click inversion (5) added a separate internal plugin to handle local network broadcasts so one Gremlin client can send events to another (6) added more decorator events so that GremlinEx python scripts know when a profile is loaded, started or stopped so they can reset themselves - mostly QOL type things I've run across when doing my own advanced profile scripting.

Most of the problems I've encountered are all QT related because of the significant changes internal to QT in terms of how it fires events - and events run the whole show in Gremlin world. I also confess that I don't use many of the features in the base Gremlin because I do this differently (and much faster in my view) using scripting or using my vjoyremap plugin instead - so I haven't routinely tested all the older features because I don't use them - but I haven't changed the code either so what I found out is that if something doesn't work - it's either QT causing the problem with its event model - or there is some situation the older code didn't handle linked to some of the new features added. I'll fix those as I come across them but I'll confess - not a priority if the function has already been handled by vjoyremap. I also don't have a lot of time to focus on this (one reason is that it works well for me!), but I'll do my best to address things that come up as I can. Your patience is appreciated.

M

muchimi commented 2 months ago

Hi, The same issue just appeared on my system. I switched yesterday from a Intel base PC to a AMD AM5 7800X3D. I reinstalled the exact same configuration (VJoy 2.1.9 + JG Ex 13.40.4Ex.).

JG Ex crashes consistently at random times. About 50% of the time, it will crash at start, the rest of the time it will crash randomly within 2 minutes. Same log issues: [2024-04-07 01:44:31.153] [debug] [info] Axis=8 Buttons=121 Hats=0 [2024-04-07 01:44:31.153] [debug] [info] Axis map [2024-04-07 01:44:31.153] [debug] [info] linear=1 id=1 [2024-04-07 01:44:31.153] [debug] [info] linear=2 id=2 [2024-04-07 01:44:31.153] [debug] [info] linear=3 id=3 [2024-04-07 01:44:31.153] [debug] [info] linear=4 id=4 [2024-04-07 01:44:31.153] [debug] [info] linear=5 id=5 [2024-04-07 01:44:31.153] [debug] [info] linear=6 id=6 [2024-04-07 01:44:31.153] [debug] [info] linear=7 id=7 [2024-04-07 01:44:31.153] [debug] [info] linear=8 id=8 [2024-04-07 01:44:31.161] [debug] [error] {30E356A0-F46A-11EE-8002-444553540000}: Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {30E356A0-F46A-11EE-8002-444553540000} Failed reading device in buffered mode, falling back to polling, Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {7789F800-F46C-11EE-800E-444553540000}: Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {7789F800-F46C-11EE-800E-444553540000} Failed reading device in buffered mode, falling back to polling, Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {6982BAF0-F46A-11EE-8005-444553540000}: Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {6982BAF0-F46A-11EE-8005-444553540000} Failed reading device in buffered mode, falling back to polling, Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {74D6D0D0-F46A-11EE-8007-444553540000}: Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {74D6D0D0-F46A-11EE-8007-444553540000} Failed reading device in buffered mode, falling back to polling, Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {66D5FF90-F46C-11EE-8005-444553540000}: Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {66D5FF90-F46C-11EE-8005-444553540000} Failed reading device in buffered mode, falling back to polling, Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {86B84CC0-F46A-11EE-8009-444553540000}: Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {86B84CC0-F46A-11EE-8009-444553540000} Failed reading device in buffered mode, falling back to polling, Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {91266F70-F46A-11EE-800B-444553540000}: Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {91266F70-F46A-11EE-800B-444553540000} Failed reading device in buffered mode, falling back to polling, Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {6C340D60-F46C-11EE-8008-444553540000}: Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {6C340D60-F46C-11EE-8008-444553540000} Failed reading device in buffered mode, falling back to polling, Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {9E90BB20-F46A-11EE-800D-444553540000}: Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {9E90BB20-F46A-11EE-800D-444553540000} Failed reading device in buffered mode, falling back to polling, Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {ABFA6A90-F46A-11EE-800F-444553540000}: Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {ABFA6A90-F46A-11EE-800F-444553540000} Failed reading device in buffered mode, falling back to polling, Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {642362B0-F46C-11EE-8003-444553540000}: Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {642362B0-F46C-11EE-8003-444553540000} Failed reading device in buffered mode, falling back to polling, Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {6EE523A0-F46C-11EE-800A-444553540000}: Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {6EE523A0-F46C-11EE-800A-444553540000} Failed reading device in buffered mode, falling back to polling, Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {680A60E0-F46C-11EE-8007-444553540000}: Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {680A60E0-F46C-11EE-8007-444553540000} Failed reading device in buffered mode, falling back to polling, Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {71E34870-F46C-11EE-800C-444553540000}: Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {71E34870-F46C-11EE-800C-444553540000} Failed reading device in buffered mode, falling back to polling, Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {5292C5E0-F46C-11EE-8001-444553540000}: Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {5292C5E0-F46C-11EE-8001-444553540000} Failed reading device in buffered mode, falling back to polling, Attempted to read buffered device data from a device that is not buffered. (DIERR_NOTBUFFERED) [2024-04-07 01:44:31.161] [debug] [error] {7789F800-F46C-11EE-800F-444553540000}: Attempted to read buffered device data from a ...

It's too bad, I will miss the network feature greatly but I have to return to JG 13.3, which is working fine...

This looks to me like a DLL issue. The error code DIERR_NOBUFFERED is a DirectX error from the HID API - I suspect it's because you are somehow using a different version of dill.dll.

Lolo401 commented 2 months ago

@muchimi , Wow thanks a lot !! A few straight forward questions I hope you'll have time to answer quickly :

HidHide: I thought that HidHide 1.2.122 was faulty ? Have you tried 1.2.128 or newer ? Can I stick to the latest 1.5.xxx ?

Vjoy: Can you confirm that those are the right links : Vjoy 2.1.9.1: https://sourceforge.net/projects/vjoystick/

Python: I installed 3.12, I'll rollback to 3.11.2 to give it a shot.

QT: I have no idea what QT is, any required installation ?

Last, do you install JG 13.30 before running JG Ex ?

Cheers,

Lolo

Lolo401 commented 2 months ago

@muchimi , I think I have isolated the issue.

@RichardDastardly, try disabling the following under Options / General :

  1. Highlight currently used input
  2. Highlight currently used buttons

JG Ex has been running smooth for the last 2 hours on my system without any crash since disabling those options.

Cheers,

muchimi commented 2 months ago

@Lolo401 hmm well definitely QT related then. I shall investigate why there is a race condition!

@RichardDastardly you can run any version of HIDHide >= 1.2.122. The functionality is unrelated to GEX and won't impact anything (provided that hiding is functioning correctly - see troubleshooting guide added today at the end of the docs).