Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Odd Smoke Grenade Effects on Performance (Measured FPS) #6565

Closed
Steve161st opened this issue Sep 5, 2018 · 12 comments
Closed

Odd Smoke Grenade Effects on Performance (Measured FPS) #6565

Steve161st opened this issue Sep 5, 2018 · 12 comments
Assignees

Comments

@Steve161st
Copy link

Steve161st commented Sep 5, 2018

Arma 3 Version: 1.84 (Performance Binary)
CBA Version: 3.8.0 (stable)
ACE3 Version: 3.12.3 (stable)

Mods:
Only

  • CBA_A3
  • ace
    The 'bug' is NOT repeatable with the Vanilla/no mods

Description:

  • Smoke grenades (hand thrown or 40mm) have a dramatic effect on frame rate which does not recover once the smoke has cleared.

Steps to reproduce:

  • Go to the Virtual Arsenal. Throw 3-4 smoke grenades in an arc in front of you. Watch FPS drop significantly. Notice it barely increase once all the smoke has cleared.
    Going back into the virtual arsenal seems to recover the frames, as does (rather strangely,) shooting enough rounds from any weapon.
    Repeating the test after the first large frame drop does not seem quite as dramatic without exiting and re-starting the VA.
    (E.g numbers for my rig:
    Baseline arsenal = 180ish FPS.
    4 smoke grenades with Vanilla game cause frames to drop to 80fps but recovers once the smoke has cleared.
    With CBA and ACE3, FPS can drop as low as 20fps and barely recover (e.g. gets back to 22 fps.)
    Suspect the exact location of smoke affects exact fps drop - repeat runs gave 32, 26, 24 and 41 fps as minimums.
    Repeat runs without exiting and re-starting the VA were 52, 42 and 55 FPS - however, this might just be smoke location causing the differences.)

Where did the issue occur?

  • Virtual Arsenal

Placed Modules:

  • None

RPT log file:

  • If possible at the time the bug is encountered, go to Options and select "ACE Debug To Clipboard", this will print extensive debug information to the RPT file and copy it to clipboard.

Arma3_x64_2018-09-05_21-43-02.rpt.txt

Ace3_Paste_to_clipboard.txt

Further thoughts:
Given that firing rounds from any weapon seems to recover FPS, could this bug be related to advanced ballistics? Are some of the smoke particles being counted as 'rounds' that need to be calculated through advanced ballistics?

@commy2
Copy link
Contributor

commy2 commented Sep 5, 2018

Given that firing rounds from any weapon seems to recover FPS, could this bug be related to advanced ballistics?

Well, have you tried with AB disabled?

Can you please upload the RPT to pastbin or Github gist? Dropbox just says no preview for .RPT (stupid), and I can't seem to download the file either.

@bux
Copy link
Member

bux commented Sep 6, 2018

can't seem to download the file either

You would need to download the zip file behind the link first.

ACE Debug: https://hastebin.com/erisacegof.cpp
RPT: https://hastebin.com/ifawokalok.makefile

@dedmen
Copy link
Contributor

dedmen commented Sep 6, 2018

Given that firing rounds from any weapon seems to recover FPS, could this bug be related to advanced ballistics?

Grenades are not bullets. no.
The FPS recovers when you shoot because the weapon firing kills some smoke particles.
ace_particles optional increases particle count I think.
Maybe there are invisible particles floating around?

But again just speculating around doesn't help much. diag_captureFrame will give us more insight about what's actually going on.

@Steve161st
Copy link
Author

Steve161st commented Sep 6, 2018

Here's a text file containing some diag_captureFrame info before, during and after the smoke throw as well as after about 10 shots are fired after the smoke has cleared:
diag_acptureFrame data.txt

For info, it seems that around 8 shots fired regains about 30% of the lost frame rate, 10 shots re-gains almost all the rest. Frame rate never recovers full through.

@dedmen
Copy link
Contributor

dedmen commented Sep 6, 2018

gsEva; 0.90535; 33.67471;"call cba_common_fnc_onFrame"

Oh boi. Can you try ArmaScriptProfiler for that too?

*****************Smoke Cleared******************************
gsEva; 0.91677; 134.78447;"call cba_common_fnc_onFrame"

What? Your "Smoke Cleared" capture ran at 6fps. Your Smoke thrown was at 20 fps. Maybe you've hit a bad frame by accident

@Steve161st
Copy link
Author

So it seems that if you throw smoke and just hit escape to bring up the console / options menu, frame rate continues to drop even while the game is paused. The frame rate steadily fell lower and lower so the 8fps was also when smoke was present as well.

@Steve161st
Copy link
Author

Arma Script Profiler results attached
SmokeIssue.zip

@dedmen
Copy link
Contributor

dedmen commented Sep 6, 2018

cba_diagnostic_fnc_projectileTracking_drawProjectilePaths 🤔
That might be caused by Arsenal's projectile tracking though.

@bux
Copy link
Member

bux commented Sep 6, 2018

Could be because of the increased lifespan of a smoke grenade which leads to an increased amount of data points that need to be drawn by the projectile tracking function. Which on the other hand would explain why shooting multiple time increases your fps again.

There's a limit on the amount of projectile lines that are drawn (usually 20) after that the projectile tracking removes the data point for older projectiles (the smoke grenades in this case).

That's just a theory though

https://github.com/CBATeam/CBA_A3/blob/master/addons/diagnostic/fnc_projectileTracking_trackProjectile.sqf#L30 (maybe check for projectile velocity here)

@Steve161st
Copy link
Author

Confirmed as being Arsenal specific. Frame rate behaves much more as you'd expect when doing exactly the same actions on Stratis.
So
a.) it appears to be CBA related not ACE3 related and
b.) as it's only an Arsenal issue, I'd think this was extremely low priority for any dev group!

@commy2
Copy link
Contributor

commy2 commented Sep 6, 2018

cba_diagnostic_fnc_projectileTracking_drawProjectilePaths is a CBA function, but it is used by the ACE Arsenal only, afaik. So actually it is ACE specific, and more precisely the ACE Arsenal.
Would have to be fixed in CBA though.

@PabstMirror
Copy link
Contributor

Will be fixed in CBA 3.9

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants