What is causing the fps drop in projects between 4.14-4.15?

We should try to clear some things up. Are you still having framerate issues in the Third Person template as you were mentioning in your original post, IcemanX or is it only occurring in your project? You mention that, in ProfileGPU, setupmips is causing most of the frametime but could you provide a screenshot of the ProfileGPU output? The main thing we need to focus on first is the cause as far as the editor is concerned.

The regression that we were looking into was related to something that ONLY occurs in the 4.15.2 hotfix. It also was related to high frametimes coming from the GPU, specifically on the Lighting side of things. That is likely not related to this issue, based off what has been mentioned thus far.

I’m still having the issues in the third person template. Just for sanity, I create a new blank project for each test, and I perform the steps from the original post. I’m currently up to 250-300fps (with new computer) in 4.15.2. This is step down from the 600 I would get in in 4.14. I will download 4.15.0 to see if it runs smoother. I will also update you with a profile gpu as soon as possible, but it honestly looks like a normal profile, except with a large setup mips. This is all in standalone game. I’ll also include a stat unit breakdown for 4.15.2.

Okay, another update. Here is the profile gpu and stat unit:

Almost exactly the same of what you experience. I’ve uploaded one new with a GPU stat. That HZB mips take up a lot.

Thank you for the additional information. I think I’ve narrowed down the problem, thanks to the information from your ProfileGPU outputs. There is a console variable called HZBOcclusion that is likely turned off in your editor. To turn this on, type “r.HZBOcclusion 1” (without the quotes) into the console. When I disabled this, I got the same results as you, with my HZB mips taking 3 ms or more. With it enabled, it was down to 0.02. I’m not sure if you disabled this at some point as it should not be off by default.

Thanks for the tip! I have done what you said and it seems that the ‘HZB SetupMips’ stuff was a false positive.

Now the time taken moved where it really is used, that is the ‘PrePass’ for me. :slight_smile:

I’ve tried your suggestion. While it does change the profile GPU, it does not change the FPS. Are you getting lower/higher numbers with r.hzbocclusion on?

I haven’t had any of the framerate issues you’re experiencing, which is why I’m having to get you guys to test it. Its making this hardest to diagnose when I’m not having the issue locally.

As you’re still having this issue in 4.15.1, the fix that was made for the regression that I mentioned wouldn’t help, as the fix simply rolls back a change that was made in 4.15.2. I’ll continue looking into this and get back to you when I can.

Edit: Since you mentioned that enabling that setting only moved the frametime to the PrePass, AssemblerJohn, could you please provide another ProfileGPU screenshot with the prepass section expanded?

You mentioned this in a previous comment: “I created two new projects to do the FPS testing in, and no luck, still stuff at 200FPS in 4.15.1.”, was that not the case?

I haven’t tested in 4.15.1 yet, all my testing is on 4.15.2. I’ll have my pc ready for building from source tonight, and I’ll check back to update this. Sorry if I’m not being clear enough in my posts. I updated to 4.15.2 the day it came out, so honestly I don’t know how 4.15.1 performed.

Oh, I’m sorry. I made two typos in that. I meant “still stuck at 200fps at 4.15.2”

I apologize for the error. I’m usually at work during our chatting hours, and sometimes I don’t check my replies for consistency.

Also, is building from source the only way for me to get back to 4.15.1?

That is correct. If this does end up not happening for you on 4.15.1, I would suggest either staying on 4.15.1 or getting a source version of 4.15.2 and adding this commit (it’s only a one line change at least) to it. This change will be included in 4.16 as well.

The change itself is just rolling back a change made in 4.15.2, so being on 4.15.1 would be effectively the same.

Wow! That fixed it! Thanks a million! I have some questions about it though, just out of curiosity.

1.Since that is problem is caused by what I assume to be the Nvidia aftermath crash detection, does this mean it would only affect Nvidia cards?

2.I assume the frame loss is the overhead of the error detection? If that’s so, then in an actual stressed game load, It would not have as much of a real world impact, correct? If that’s the case, then I was worried about the frame drop for nothing.

If it’s not the case, then does the Nvidia aftermath library just have a larger than expected performance hit?

Once again, thanks a bunch for your time! I repeat: The issue WAS 4.15.2 and that commit has fixed it. 4.15.1 is working as intended. It was that regression all along.

So, if we wait for 4.16 this issue will be solved? Thanks a bunch!

It is weird since I’ve tested on a 970 GTX (gainward).

And thanks for the info, there would be no problem for me waiting for 4.16.

For your first question, I believe we can safely assume that it only affects Nvidia cards, but it’s not all cards, as I wasn’t having the issue on a 970.

As for the other two questions, we’re not exactly sure at the moment and that’s part of what we’re trying to determine to get this fixed.

@AssemblerJohn, there may be a hotfix for 4.15 prior to 4.16’s release to fix this problem, but otherwise you’re correct.