2 weeks ago
2 weeks ago
I'll look into some other tests, honestly I have only experienced 3 main problems so far. It doesn't matter where I setup my Vive, I take it everywhere practically, yes on the go. Controller issues I have are, the untouch trackpad event seems to be missed, and sometimes but also rare, the controllers swap during the first time I use them as they load (like index switching). Both issues are very frustrating. Especially when my modeled hands are loaded and although they appear completely loaded somehow SteamVR still swapped indexes. This problem is very rare but it does happen.
I have watched the loading controllers process best I can and from what I can tell, it loads left controller first, then moves the left controller to right controller, this process re-creates left controller index. Maybe this process is so fast that usually it is not noticed. However I have spent days trying to get my modeled hands to not swap indexes. I have decided to just make a scene detect controllers and then load my main game scene. I know for sure that stops the problem because the controllers are fully loaded with a lot of time waited and nothing happens after that point. My code as of now waits for both controllers to load, so why else they swap indexes? Only can be from my observation, the controller creation is re-created after the controllers did load. But again this is very rare.
The other problem is random 30 fps lock. No joke. I will start up my game scene and bam cannot get out of 30 fps. I have to restart the scene. And this issue is completely random. It will be there or not. I have tried changing settings with SteamVR just to find out I am wasting even more time. However I could not recreate this problem on a desktop cpu with nvidia 1060, so I suppose this problem comes back to not using direct mode on a laptop. It is also possible because I have Unity editor open, problems happen because of slight lag, it isn't a perfect 90fps world with my game and programs open.
Yes, I will run some other tests. I have too, creating a game with this VR. I don't want players crying about anything but gameplay. Bugs I stomp the heck out of.
2 weeks ago
You mentioned having problems on the laptop but not the desktop. Just to clarify, you've changed your power settings to maximum performance during testing, correct?
2 weeks ago
Yes you are correct. I always run max performance and I always leave my laptop plugged in, if not, the performance would be terrible. I will be doing some tests with a desktop, see if the controllers can generate the same bugs. I'm very curious if these issues are related to not having a direct mode.
2 weeks ago
Did you have a chance to test on a different PC? As far as Direct Mode goes, you should be able to make it work regardless, but even if it wouldn't it's only related to the display and I don't think it would affect the controller trackpad.
a week ago
I am rather frustrated. I don't understand how one game build can work on my laptop, detect the controllers, and then move over to the desktop, it detects the controllers once, play my game, no issues. Restart the game and now the desktop can't detect the controllers in my game anymore. I take the game build over to my laptop, detects controllers, no problem, play after play. I think the desktop is fast enough to not detect the controllers and get stuck in a loop. I am looking into this. Also for sure, the desktop runs very clean, smooth, quick 90fps even while turning. On my laptop there is very slight loss of fps, maybe 5-10fps, especially turning it is noticible.
I agree MWilliamGoody, the headset buttons seems to be quick response compared to pressing the button on the controllers. I can confirm the trackpad issue is there even on my desktop. I also can confirm it's there in the Steam Home. I can clearly see the trackpad touch stuck, just looking down at the trackpad, it shows a dot on the trackpad (input dot). I also can confirm the issue ONLY APPEARS at the EDGE OF THE TRACKPAD. This number I get in programming is near the 0.9 and I cannot ever trigger this issue in the center of the trackpad. So for instance a vector2 looks like (x.x, 0.9) or (0.9, y.y). It seems the only way to trigger this issue is sliding the thumb off the trackpad edge, but it is rare, you have to keep trying until it happens. I can be trying for a good minute or two before it does show up.
I have noticed there is slight movement in the trackpad, if I press softly and then harder while circling my thumb, I can feel what is best described as free space for the trackpad to float around. I understand that might be necessary for pressing down on the thumbpad. But maybe the controller's trackpad is slightly too loose?
As for the 30FPS frame rate lock, I cannot seem to trigger this issue on a desktop computer. I have tried two and it doesn't appear. On my laptop is it random and just comes out of the blue even with the game build. I have tried with Unity closed.
As for more testing, it just takes time. I will try to use some gettouch events. I think I wouldn't even discover this issue if I used getpress. But that gettouch is a nice function as a button.
a week ago
Wow is all I can say... I did a Unity update yesterday. The game started bricking today. Got to a point it could never find the controllers. I knew I didn't change any code. I only built the game. The problem started happening in Unity too. I tried putting debug.log("hi"); in fixedupdate and only one would show up. I thought about it for an hour. How could my game brick like this. I couldn't find anyone online with the issue, so I tried setting the timescale to 1f, and of course the game works again. But NO WHERE EVER in my code do I change timescale to 0f. There is definitely a glitch, bug, in Unity that did that. So now I start the timescale at 1f no matter what. Very frustrating. I will run some testing now.
a week ago
That's very strange. So you think it's Unity that's causing the issues then?
a week ago
The trackpad issue is either the controllers' hardware or the code. I know that for sure. My club on Fridays has another Vive, it is one of the older ones. I guess I could try their controllers and see if it comes up on their system. If it does, it is definitely related to code. I haven't dug into the code deep enough to say it is 100% code related. The functions are still returning true and a positive vector when they shouldn't. Of course I know that because I can see the input in Steam Home also getting stuck.
a week ago
If you could isolate that issue to the code or the hardware, that would be a big help! At least if you know it's the code you can try to debug for that!
The trackpad problem is there, tried on a much older Vive. I am pretty sure you will see the problem if you attempt to re-create it yourself. Could be the hardware to the controller but I believe it probably is connected to the code. You will experience the problem as long as the library that uses the trackpad is connected to this:
internal delegate bool _GetControllerState(uint unControllerDeviceIndex, ref VRControllerState_t pControllerState, uint unControllerStateSize);
internal _GetControllerState GetControllerState;
To find out if it isn't a code problem, someone would have to follow _GetControllerState, which I cannot. I don't know where the code is nor if I am able to look into it. When I highlight over it, I get:
Valve.VR.IVRSystem._GetControllerState(uint unControllerDeviceIndex, ref VRControllerState_t pControllerState, uint unControllerStateSize)
Of course I can't find that. But the return of VRControllerState_t is incorrect or the hardware is telling the code it's incorrect. The reason I suppose it is the code is from my belief in experience. After more testing I noticed it is possible to even get vector2 values such like 0.2f to 0.9f while the GetTouch() function return is still positive and nothing is touching it. My belief is the event of a getuntouch is missed and the functions return the belief of being touched when not. Workarounds? I am going to try GetPress() instead. If that becomes the same problem, well then that means the code is wrapped around the same similar design. There is not much I can do from this point because none of it I created or have access to address it. If it is a code problem, it can be fixed much more easily. Hardware... well that's a different story of course. I still believe it is the code though. I trust my gut on it being the code. I been programming for over 10 years and I can imagine how some of that code might be written causing this problem.