   Fill rate limited?
  After I have implemented a few new methods to speed up my engine, I now have faster FPS when I drop my screen sizes. So I am assuming this means I am fillrate limited? If so or not what can I do to boost my FPS even more at each resolution? Thanks   
Quote:Original post by MARS_999After I have implemented a few new methods to speed up my engine, I now have faster FPS when I drop my screen sizes. So I am assuming this means I am fillrate limited? If so or not what can I do to boost my FPS even more at each resolution? ThanksOne trick that I know of is doing an early depth pass. If you have heavy fragment programs, this will potentially cut out the fragment operations on occluded fragments (which will fail the depth test and be rejected) and reduce the rendering time.Otherwise I don't think there is very much you can do about a fill rate limited scenario (except get a faster video card [smile]).If it is any consolation, all apps/demos I have ever written have been fill rate limited - you have to in the end give in to it.   ;  When your dropping your screen size are you dropping your backbuffer size as well? if so, then you're fill rate limited, if not, then there's something else that slows you down :) Anyways, you might want to try to optimizing your fragment shader so there are couple of things that should help:- use the lowest fragment profile possible- choose lowest data precision formats(for example use half instead of float, or even fixed) possible- offload linearizable calculation from you fragment shader to the vertex shader(and pass the values down to the fragment shader viac tex coords/color interpolators)- if you're using really complex equations in your fragment shader try to encode them in a texture.   ;  deavik the faster videcard option isn't going to help much, I am on a 7800GT. :) I get around 30-40 fps at 1600x1200x32. Right now my water FS is killing my fps I know that, and isn't much more I can do about that... Mephst0, I am assuming I am dropping the backbuffer size as well. Don't know where I would even set that at. Guess I never knew you could. I have tried moving some of my vec4 to float in some of my shaders and doesn't seem to help. The screen size does and shutting down my water FS does. So I am guessing I am fill rate limited. I am using texture compression.   ;Quote:Original post by MARS_999I have tried moving some of my vec4 to float in some of my shaders and doesn't seem to help. errm, do what now? [wow]Quote:The screen size does and shutting down my water FS does. So I am guessing I am fill rate limited.Do you make those changes independantly?So, small screen with water FS and large screen without water FS?The performance stuff in the Forum FAQ might give you some more hints... ;  The vec4 to float was for constants that were all the sameconst vec4 foo = vec4(.25, .25, .25, .25);const float foo = .25;as for the rest1600x1200 I get around 35-40fps with water shadersame resolution I get around 80fps without water shader1024x768 I get around 60-65fps with water shadersame resolution I get around 135fps without water shaderSo I am guessing fill rate limited...   ;  Ah, that 'optimisation' might not help, infact it could make things worse as GPUs are vectored so working on a vector at once might be better for it. Leaving it as a vec4 also gives the compiler more context to work with.Anyways, I suspect you are infact shader limited, not fillrate limited. Test this by replacing your complex water shader with a simple one and retesting at the two screen sizes.   ;Quote:Original post by phantomAh, that 'optimisation' might not help, infact it could make things worse as GPUs are vectored so working on a vector at once might be better for it. Leaving it as a vec4 also gives the compiler more context to work with.Anyways, I suspect you are infact shader limited, not fillrate limited. Test this by replacing your complex water shader with a simple one and retesting at the two screen sizes.Humus pointed out to me that I shouldn't be using vecs for everthing and in fact I should move them to floats if possible due to the way hardware is designed...   ;  fair enuff *chuckles*, I stand corrected then [smile][Edited by - phantom on June 19, 2006 11:08:50 AM];Quote:Original post by phantomfair enuff *chuckles*, I stand corrected then [smiles]If it makes you feel any better, I thought the same thing that you did. Vecs in parallel would be faster like MMX, Alvec, SSMD ect... :) So we are on the same wavelength...   