Party Panic

Party Panic

View Stats:
Bloodaxe Nov 24, 2017 @ 12:11pm
Poor performance, and black screen (Ubuntu 17.10)
Hey! I've read some of your posts here, and you seem like a very helpful dev :D

I'm having some proper performance-issues on my Ubuntu machine. I'm constantly at about 15 fps. I've got a GTX 970 graphics card, + a more than capable CPU, so my hardware is not the issue.

When I tried to change the settings, the game suddenly went black. Now, every time I try to start it, I just stay stuck on a black screen. I can hear the music in the background though.

Seems people around here fixed this issue in the game's config file. Is that the boot.config file in the game directory? Because that file is completely empty, without any text in it.
< >
Showing 1-15 of 47 comments
DMeville  [developer] Nov 24, 2017 @ 6:31pm 
Hey!

I'm not super familiar with Linux, unfortunately, but you're on the right track. For *some* reason when trying to play the game in fullscreen Linux thinks the fullscreen resolution is 0x0 and causes that black screen. The solution to this is to just play in windowed mode. The problem is that since you're getting the black screen you have to find a way to disable fullscreen without being able to see the screen which is obviously problematic!

Another Linux user had this problem, and posted his solution in this thread:
http://steamcommunity.com/app/506500/discussions/1/1473095965301638656/

You should be able to find a prefs file located at ~/.config/unity3d/Party\ Panic/Party\ Panic/prefs that you can remove which will reset the game to the defaults next time you launch. Just make note that when you make any changes to the settings that fullscreen is disabled before you hit "Apply Settings".

Regarding your fps, that does sound odd. The biggest fps hit seems to come from rendering in Party Panic, so if you're playing at a very large resolution that could be causing some of the issue. You can also try playing with the quality settings, or disabing camera effects, hopefully with a little bit of adjusting you can find settings that work well!

If you're using a controller you could try unplugging it to see if the input device is causing some hang-up or something, which is possible, but unlikely.
Last edited by DMeville; Nov 24, 2017 @ 6:33pm
Hartmnt Dec 22, 2017 @ 11:57am 
Hi there,
I've pretty much got the same problem as OP. I'm running the game on Ubuntu 17.10 on a decent i7, gtx 770, 16GB RAM rig with the latest nvidia driver properly installed.

The fps of this game stay < 20 at about 15 as OP already said.

I've tried to disable "Camera effects", low effects, and running the game in windowed mode with half resolution. None of this helps at all.

Some of the minigames are barely playable at this fps rate. I'm happy to supply further info to help with this problem, though Player.log shows nothing special.
Thank you
DMeville  [developer] Dec 22, 2017 @ 12:33pm 
Hmm. I'm not sure what could be causing this. I'm not very familiar with Linux, but my best guess is that it's some sort of driver issue causing the unity engine to not run as smoothly as it should on specific linux configurations.

Could you load up the game, and press the (`) key to bring up the stats window, and let me know what it says under the second "GPU:" line in the top right corner of the screen? I'm curious to know what renderer it's using, DX11/OpenGL/etc
Hartmnt Dec 22, 2017 @ 12:42pm 
https://image.ibb.co/jQj876/screenshot.png -Screenshot

It's using OpenGL for sure since DX is win exclusive. Anyway the screenshot shows the problem clearly.
DMeville  [developer] Dec 22, 2017 @ 1:29pm 
Shooting in the dark, but if you add the launch option "-force-gfx-direct" (without quotes) do you notice any changes? You can add a launch option by right clicking Party Panic in your library, selecting properties and then clicking the "add launch options" button.

Hartmnt Dec 22, 2017 @ 1:55pm 
Originally posted by DMeville:
Shooting in the dark, but if you add the launch option "-force-gfx-direct" (without quotes) do you notice any changes? You can add a launch option by right clicking Party Panic in your library, selecting properties and then clicking the "add launch options" button.
That didn't help. Party Panic is the only Unity game which has this problem right now. At least of the ones I'm aware of. I've tried another suggested solution i found (https://forum.unity.com/threads/bug-2017-1-0b8-running-very-slow-on-elementary-os.478465/), but that didn't help either. My best guess it's a Unity-version / driver-version mismatch of some kind.
DMeville  [developer] Dec 22, 2017 @ 2:01pm 
I'll see about upgrading to the latest release of Unity and get you a build to see if it does anything. Party Panic is built against Unity 2017.1 0f2, which is two major releases behind, and maybe it will magically fix this issue without breaking other things!

Hartmnt Dec 22, 2017 @ 2:02pm 
Originally posted by DMeville:
without breaking other things!
Haha good one.

No but seriously. I think that might be the best bet
DMeville  [developer] Jan 2, 2018 @ 1:49am 
There's now a version of Party Panic in the secret branch that you can try out. When you have a moment can you download it (1.3.2) and let me know if ther performance has improved for you at all on Linux?

You can opt-into the secret branch by right clicking Party Panic in your Steam library and click "Properties". Next, open the "Betas" tab, and click the "Check Code" box (with no password) and it should then let you select "Secret" from the drop down box. Restart Steam and the secret branch should download the latest version.

Let me know how it goes!
Bloodaxe Jan 2, 2018 @ 3:38am 
I've tested it, and this update fixes the black screen issue. Thanks a lot DMeville :D People will have to delete their config files if they have the black screen issue from before, but after that everything works as expected.

Now all that is left is the performance issue I'm having with this game, even on the lowest graphics settings... :/
Hartmnt Jan 2, 2018 @ 4:38am 
Originally posted by DMeville:
There's now a version of Party Panic in the secret branch that you can try out. When you have a moment can you download it (1.3.2) and let me know if ther performance has improved for you at all on Linux?

You can opt-into the secret branch by right clicking Party Panic in your Steam library and click "Properties". Next, open the "Betas" tab, and click the "Check Code" box (with no password) and it should then let you select "Secret" from the drop down box. Restart Steam and the secret branch should download the latest version.

Let me know how it goes!

Still no performance increase at all.

So I've done some digging:

Using your secret branch unity version
I tried out multiple nvidia drivers: 340.104 381.26.20 and 384.90
None of these made a difference

Also: Every other unity game i currently own is not affected by this. They all run fine at appropriate framerates.
This makes me think that there is something special/unique about PartyPanic that causes this problem.

I've installed PartyPanic on a different, Arch-based, Linux machine with Intel integrated Graphics 4000 chipset and it ran better on there than my main gaming rig.

Finally i noticed something that may be important. The fps are already horrendously low as soon as the Everglow Interactive logo appears. So this problem is indifferent to the complexity of the scene which is being rendered.

Are you using any 3rd-Party libraries or frameworks or whatever, which are loaded in the beginning and could be causing any issues?

This is a very odd problem and I'm still very happy if i can provide further help solving this. I know the linux playerbase is small proportionately, so thank you for even trying to solve this.
DMeville  [developer] Jan 2, 2018 @ 7:12pm 
That's disappointing. I was really hoping the update would just fix the Linux performance problems.

Thanks for doing some additional testing Hartmunt. Which other Unity games have you tested? I might be able to find out differences in engine version or something with them that might help get this resolved.

From the sounds of it it seems like the problem is obvious - Linux isn't using the proper rendering engine or just offloading all the GPU tasks onto the CPU or something. I have one more thing I want to try, which probably won't make a difference but I'll have another build up in a few hours.

Could you take a look at your GPU and CPU usage while playing Party Panic and another (non lagging) Unity game? I'm curious if this is actually what's happening.
Last edited by DMeville; Jan 2, 2018 @ 7:23pm
DMeville  [developer] Jan 2, 2018 @ 8:53pm 
New Linux build available, let me know if it's still the same!
Hartmnt Jan 3, 2018 @ 4:19am 
Hi,

Originally posted by DMeville:
New Linux build available, let me know if it's still the same!

Same bad performance for the EverglowInteractive logo and the loading screen. I've opened the debug info to see that the game is now using Vulkan as rendering pipeline. Unfortunately though, the game consistently crashes now after the loading screen with:
Receiving unhandled NULL exception #0 0x007ffe95ace140 in funlockfile #1 0x007ffe95ace588 in vkEndCommandBuffer #2 0x007ffe95ace590 in std::vector<std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > >, std::allocator<std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > > > >::~vector() #3 0x007ffe95ace600 in std::vector<std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > >, std::allocator<std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > > > >::~vector() #4 0x007ffe95ace7d0 in std::vector<std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > >, std::allocator<std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > > > >::~vector() #5 0x007ffe95ace7f0 in std::vector<std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > >, std::allocator<std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > > > >::~vector() #6 0x007ffe95ace810 in std::vector<std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > >, std::allocator<std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > > > >::~vector() #7 0x007ffe95ace850 in operator delete(void*, std::nothrow_t const&) #8 0x007ffe95aceb20 in operator delete(void*, std::nothrow_t const&) #9 0x007ffe95aced10 in operator delete(void*, std::nothrow_t const&) #10 0x007ffe95aceee0 in operator delete(void*, std::nothrow_t const&) #11 0x007ffe95acef10 in operator delete(void*, std::nothrow_t const&) #12 0x007ffe95adefe0 in operator delete(void*, std::nothrow_t const&) #13 0x007ffe95adf020 in operator delete(void*, std::nothrow_t const&) #14 0x007ffe95adf900 in operator delete(void*, std::nothrow_t const&) #15 0x007ffe95adf960 in operator delete(void*, std::nothrow_t const&) #16 0x007ffe95adf980 in zcfree #17 0x007ffe95adffc0 in __libc_start_main #18 0x007ffe95ae0080 in zcfree

Note however that I use a Vulkan compatible graphics card and driver (e.g. F1 2017 runs perfectly fine). I've heard the Vulkan rendering pipeline of the Unity engine is not stable right now. So that crash probably unrelated to game code I would assume. Moreover for the logo and loading screen Vulkan didn't seem to help anyway.


Originally posted by DMeville:
Additionally, I wonder if anything in this thread helps at all: https://www.reddit.com/r/linux_gaming/comments/7m99hd/some_unity_games_max_out_cpu_games_and_lag_the/?st=jbyhyxr3&sh=5da0bf1b

This is most likely unrelated. Optimus is a tool to "switch graphic context" between integrated Intel graphics and dedicated graphics cards on *laptops*. Forcing games to use the Nvidia card while the system can run on the integrated chip to save power. (I never used this on any system so I'm not an expert on this)


Originally posted by DMeville:
Thanks for doing some additional testing Hartmunt. Which other Unity games have you tested? I might be able to find out differences in engine version or something with them that might help get this resolved.

Could you take a look at your GPU and CPU usage while playing Party Panic and another (non lagging) Unity game? I'm curious if this is actually what's happening.

Well yes and now it gets interesting:

*Using the stable/main branch of PartyPanic now since "secret" crashes on load*

I've monitored the cpu and gpu performance of PartyPanic, Golf with your Friends and MoveOrDie, since those were random unity games i recently played.

You can see the results as a screenshot here:
http://image.ibb.co/n8LkHG/Compare.png

What caught my eye instantly is that PartyPanic indeed uses up 100% cpu load of a single core at the time, which is almost never a good sign. So most likely the cpu is holding us back, but why?
If you take a look at the gpu load ("GPU Utilization"), you can see that for PartyPanic this is somewhat lower than for the other two.

Finally I've noticed something very curious: Take a look at the "PCIe Bandwith Utilization" of all three games. It is significantly higher for PartyPanic than any of the others.

*Please note that I have some experience in OpenGL programming but close to zero knowledge of the internals of the unity engine/ unity rendering pipeline. I don't know how much custom OpenGL programming is needed to create a game in Unity, but I would assume very little.*

I would conclude the following:
For whatever reason (as in either game or engine code) PartyPanic at least on Linux is sending to much data to the gpu per frame and the Linux NVidia driver does not like that somehow.
For example in "modern" OpenGL you would create a vertex buffer for one or more models and upload it once to the gpu. Then in every frame you'd tell the gpu to render the buffer with the id it created for the buffer. This way you wouldn't need to upload all the vertex data every frame thus saving time per frame.

This also explains the high CPU load, because uploading stuff to the gpu constantly is CPU intensive and therefore creating a bottleneck. Why does PartyPanic do that? I don't know for sure. Something seems to be uploaded constantly to the GPU. Maybe the Nvidia Linux driver has a caching bug and uploads too much too often. Maybe there is a bug in the Linux Unity Player, maybe a combination of both.

Now why is only PartyPanic (as far as i know) affected by this. What makes PartyPanic unique? What comes to my mind first are the ragdoll- like characters. A lot of changeing vertices almost every frame. Maybe some Unity optimization flag is not properly set or something. This raises the question though, why the performance is already bad as soon as the logo is loaded.

Anyway I will think a little more about this. Hopefully you might have an idea what could be causing this. The worst case is, that this is simply a unity/nvidia bug combination you can't really do anything about.
< >
Showing 1-15 of 47 comments
Per page: 1530 50