Dolphin, the GameCube and Wii emulator - Forums

Full Version: Performance gains with new video card?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3
Quote:4X or 9X SSAA --> You need a powerful video card for this option. Or disable SSAA and set internal resolution to 2x or something. You won't see any major differences. Basically:

1) SSAA: Relies on video card power.
2) Internal Resolution: Relies on CPU power.

WHAT!?!?!?

No, that is completely wrong. Both increase GPU load and only GPU load. When you use SSAA you are increasing the internal resolution whether you realize it or not, the only difference is the SSAA setting uses a box filter to downscale and internal resolution setting doesn't. 4xSSAA scales the x and y dimensions of the framebuffer by 2x each (2 x 2 = 4 times the resolution), 4xSSAA + 1x internal resolution provides the exact same internal resolution as no ssaa + 2x internal resolution. Unfortunately the 4xSSAA shader is still broken. It still renders at the correct resolution but it does not downscale correctly at the moment. Both settings increase the number of pixels your gpu has to render to produce each frame which increases gpu load significantly since pixel shaders need to run over and over to fill every pixel in the buffer. However the same number of draw calls are needed because the same objects are being rendered in the exact same way, just at a higher resolution. Therefore cpu load does not change at all.

A higher internal resolution also increases the amount of memory bandwidth/video memory bandwidth needed depending on which efb copy method you're using. Since the framebuffer contents constantly need to be copied obviously a larger framebuffer will require more bandwidth.

Quote:Well I don't think changing your videocard will change anything. The internal resolution has much to do with CPU.

*facepalm*

Please people if you don't know what you're talking about don't give advice. Incorrect answers are worse than no answers.

I'm guessing the OP is using some insane level of SSAA which is causing a gpu bottleneck since that cpu is way more than sufficient for this game. Also OP what efb copy method are you using?

Edit: Already I just noticed you already posted your settings. Yeah, I was right, 9xSSAA is way too high for that video card. Turn off SSAA and you'll have no problem using a high internal resolution.

Quote:Not all revisions (I'm currently using r7553). Regardless, it's just a case of shoddy programming.

SSAA was broken in 6549. 4xSSAA should not work properly in 7553. Also it is not a case of shoddy programming, it's a case of accurate efb emulation screwing with the outdated shader. The shader needs to be remade and nobody wants to do it. But the shader was perfectly designed for the old efb emulation.
You will get zero performance increase out of a new video card, if the emulator's settings are the same. I upgraded from a paltry 8500 GT to a GTS 250 and got absolutely nothing for my money. Then again, I'm CPU constrained with a C2D 3.0GHz.

That being said, I can run the few games I like to emulate for my cab at close to full speed and I'm loving it.
That depends on your video backend settings. The difference in gpu throughput requirements needed for the minimum and maximum settings is over 2 orders of magnitude.

If you didn't see any difference that means your internal resolution was set pretty low and/or you weren't using SSAA. It also varies a lot from game to game and based on which plugin you're using, the openGL backend for example is more likely to produce a cpu bottleneck.
(07-21-2011, 02:44 PM)NaturalViolence Wrote: [ -> ]That depends on your video backend settings. The difference in gpu throughput requirements needed for the minimum and maximum settings is over 2 orders of magnitude.

If you didn't see any difference that means your internal resolution was set pretty low and/or you weren't using SSAA. It also varies a lot from game to game and based on which plugin you're using, the openGL backend for example is more likely to produce a cpu bottleneck.

Thanks for the clarification. I was indeed running at native internal resolution and no AA. I'll play with that to see if I can now do a bit better.
Let me do a little math here real quick so I can make a prediction....

Your GTS 250 should be able to handle about an 8 megapixel internal resolution with most games using the d3d9 plugin without bottlenecking that cpu.

That's roughly equal to:

-3x (~3MP) or 4x (~5.33MP) internal resolution with no SSAA

-2x internal resolution + 4xSSAA (~5.33MP)

-1.5x internal resolution + 9xSSAA (~6.75MP)

If a GPU bottleneck is achieved you will almost always see a linear relationship between framerate and internal resolution (double the internal resolution = half the framerate, which makes the calculations much easier).

What output resolution are you running at (so that I can advise the best combination of settings)?

If you need to calculate the true internal resolution yourself the formula would be: (0.33792 x n^2) * S = Y
Where n is the internal resolution setting (so 1x would be 1 for example), S is the number of SSAA samples, and Y is the total resolution of the framebuffer in megapixels.

I am dully impressed. I am now able to jack up the internal resolution to twice the native and 4x SSA with no ill effects on performance. I don't recall if I tried this with the old card but I'm sure it would not have taken well to it. I settled for 1024x768 for display res and auto on the internal resolution, since I don't plan to run any higher than that. After all, most of my added resolution goes to waste, since I run on a CRT TV through component output (480i) on my cab.
However, the added resolution does make things look a bit better, even with setup.

Thank you for bringing me into the light.

I do have one additional problem. I can't seem to force vsync with the nVidia CP. I can through Dolphin but my performance degrades. I want to do this for other non-Dolphin applications but I use Dolphin as my testbed since I can immediately tell if vsync is active or not. I have tried setting it globally as well as creating profiles for individual applications but it never takes.
I'm on Windows XP and DX9.0c.

Any ideas on this?
Quote:I am dully impressed. I am now able to jack up the internal resolution to twice the native and 4x SSA with no ill effects on performance.

Keep in mind the 2x setting is actually 4 times the internal resolution, and 4xSSAA quadruples it again. So 2x setting + 4xSSAA = 16x the native resolution.

Quote:I don't recall if I tried this with the old card but I'm sure it would not have taken well to it.

No. An 8500GT would not have been able to handle anything higher than native.

Quote:After all, most of my added resolution goes to waste, since I run on a CRT TV through component output (480i) on my cab.

Ouch. In that case you'll probably want to do 1.5x internal resolution + 9xSSAA.

Quote:I do have one additional problem. I can't seem to force vsync with the nVidia CP.

Lol. Well of course not. Nvidia's drivers have no idea how dolphin works. Their v-sync implementation is designed for how PC games normally use the framebuffer, it will not work with dolphin's complex efb emulation.

Either use dolphin's v-sync or go without it.

I really wish they hadn't changed the name of the setting from efb scale to internal resolution because SSAA also effects the internal resolution and it confuses the noobs.

Then again people were confused when they called in efb scale and a lot of people thought it had something to do with upscaling....you just can't win.
(07-23-2011, 07:53 AM)NaturalViolence Wrote: [ -> ]Lol. Well of course not. Nvidia's drivers have no idea how dolphin works. Their v-sync implementation is designed for how PC games normally use the framebuffer, it will not work with dolphin's complex efb emulation.

Either use dolphin's v-sync or go without it.

At least I provided you with some entertainment Wink

At any rate, the reason I was trying to force it through the CP is because I'm running some Windows based arcade games in my machine and rotating them using iRotate because they are vertical shooters. However, when rotated, the games still run at full speed but seem to be losing about half the frames and don't run as smooth as when running horizontally (they are vertical games designed to run on vertically mounted monitors). Somebody suggested that forcing vsync makes them run well, but it does not make a difference in my case. I was wondering if vsync was even working, so I was testing it on Dolphin (obviously a bad idea).

Is there a generic way to tell if vsync is active?

Lensflare

Before upgrading the card, I'd suggest OC'ing that 2500K a good bit further.

I'm running my 2500K at 4.8 GHz paired with a NVIDIA GTX 460, and I'm able to run everything at full res and AA and maintain over 60 FPS in just about everything. The overclock works wonders in Dolphin. I even noticed a difference going from 4.6 GHz to 4.8 GHz (mainly in Wii games).

However, you will need a good heatsink to OC that high (4.8 GHz might still be too hot for daily use though).
Quote:Is there a generic way to tell if vsync is active?

I'm going to assume you're talking about dolphin here and not nvidia CP. In that case take a 30fps game, run it with use fps for limiting set to auto and turn on v-sync. V-sync should force it to 60fps.
Pages: 1 2 3