Main

Forums

Wiki

Downloads

Tutorials

Walkthrough

Unreal-netiquette

Links

Submit-News

Oldunreal's hosted:
UnrealReference

Usermaps

Real-CTF

Donate for Oldunreal:

Oldunreal Donation
Oldunreallogo
  Welcome, Guest. Please Login or Register
 
  HomeHelpSearchLoginRegister  
 
 
Screen tearing with opengl and framerate drops in direct3d (Read 1380 times)
xenphor
YaBB Newbies
*
Offline


Oldunreal member

Posts: 8
Screen tearing with opengl and framerate drops in direct3d
09/24/11 at 21:03:51
 
I've tried both opengl and direct3d 8/9 and have had some problems with each. Using direct3d, there is an issue with slowdown, where the game will be running fine at 60fps, but if I move my camera to look at something (such as the reflective surfaces in the first area), then the framerate will drop. Once I look away from whatever causes the framerate to drop, it will then go back to 60fps. There doesn't seem to be a particular thing that is causing the slowdown, although I guess it could correlate to things that are slightly more graphically intensive. This is without any special effects enabled such as detailed shadows. I think I should be able to expect a constant 60fps on a modern machine without any extra effects.

The framerate problem doesn't happen in OpenGL (that I notice). In fact everything runs pretty well in OpenGL except for one annoying issue. When I first switch to the opengl driver, I can go back and play the game fine. However, once I exit the game and start it up again, I get consistent screen tearing. The framerate is still solid, except now the screen tears very heavily. I have no idea why there would be such a dramatic change in the image quality by just quitting and restarting the game. I tried looking in the Advance Options for some sort of V-sync in OpenGL but couldn't find anything. The framerate is supposed to be limited at 60fps and my monitor's refresh rate is 60hz so it doesn't seem like screen tearing should even be possible.
Back to top
 
 
IP Logged
 
GreatEmerald
Oldunreal MasterPoster
******
Offline


The Great Emerald

Posts: 5200
Vilnius, Lithuania
Gender: male
Re: Screen tearing with opengl and framerate drops in direct3d
Reply #1 - 09/24/11 at 21:40:58
 
The VSync option is called SwapInterval. Use '1' to enable it.
Also, do you have dynamic shadows enabled?
Back to top
 

... - Unreal II Combat Assault Rifle
My own website (GreatEmerald's Domain)!
...
WWW WWW  
IP Logged
 
xenphor
YaBB Newbies
*
Offline


Oldunreal member

Posts: 8
Re: Screen tearing with opengl and framerate drops in direct3d
Reply #2 - 09/24/11 at 22:41:11
 
Okay something really strange is going on. By default, when I enable either Direct3d or OpenGL, swapinterval is set to -1 but there is no tearing in either. However, like I said earlier, OpenGL will tear after I restart the game, but direct3d will not.

Now, setting swapinterval to 1 in OpenGL has an affect but not a very good one. It seems like runs at half the framerate (30fps?) and some of the tearing is still there. It is definitely not a smooth image. Then, if I restart the game, I get the same problem that I had prior to enabling swapinterval

And after all this, if I just go to "Change Driver" and select OpenGL (even if I was using it anyway), it will correct the tearing and give me a smooth framerate. But of course I will lose it once I exit.

As far as Dynamic Shadows go I don't see an option for it. All I see are pawn shadows and decoration shadows.
Back to top
« Last Edit: 09/24/11 at 22:43:17 by xenphor »  
 
IP Logged
 
[]KAOS[]Casey
Oldunreal MasterPoster
******
Offline


nedm

Posts: 2893
Gender: male
Re: Screen tearing with opengl and framerate drops in direct3d
Reply #3 - 09/24/11 at 23:05:18
 
It seems you may also need to set your RefreshRate to whatever your monitor is using, and if that still fails, I would set the FrameRateLimit to your refresh rate as well.

And yes, those are the dynamic shadow options that you found. Using high or ultra will most assuredly drop your framerate lower than you would want in some situations, if you so choose to enable them that is.
Back to top
 
 
IP Logged
 
xenphor
YaBB Newbies
*
Offline


Oldunreal member

Posts: 8
Re: Screen tearing with opengl and framerate drops in direct3d
Reply #4 - 09/25/11 at 00:21:56
 
I set both framelimit and refresh rate to 60 but still get tearing on subsequent restarts in opengl.

I tried  turning off the shadows in direct3d which seemed to help a little bit but there is still a noticeable hit to the framerate when I'm in the reflective floor room at the very beginning in the ship.

edit: Wow I just noticed that if all I do is open up Advance Settings and exit out, the framerate will be much worse under opengl.

edit: Well I tried just regular direct3d and that works well. There's no framedrops or tearing at all. However, once I enabled detailed textures, I got the same framerate problem in the reflection room that I did before. I tried turning off detailed textures in d3d9 and got better performance in the same room. However, the old d3d render still performs better so I guess it's just a matter of the extra stuff in the d3d9 renderer that's causing slowness. I still have no idea what's wrong with opengl.
Back to top
« Last Edit: 09/25/11 at 01:21:24 by xenphor »  
 
IP Logged
 
Smirftsch
YaBB Administrator
******
Offline



Posts: 5486
at home
Gender: male
Re: Screen tearing with opengl and framerate drops in direct3d
Reply #5 - 09/25/11 at 07:10:25
 
D3D9 and OpenGL are based on the UTGLR and very well tested, there are no real "extras" in it which should be able to cause any real performance drop on modern machines (except very high AA maybe, but even 16x AA runs fine on my box)...

Also I made over the time a lot of tests and D3D9 or GL performed always better than D3D. Its surprising me that old D3D can be faster on any system- except maybe, your system or driver would be really old. But somehow I have the feeling that this is not the case Smiley

That GL performs better, but is not accepting some settings leads again to the driver. I know that some ATI drivers can be really bitchy especially when it comes to OpenGL, also it is possible that some setting in the driver will override the settings in Unreal.

To track this all a bit down, system specs and maybe the D3D9 and OpenGL settings out of your Unreal.ini please Smiley
Also graphics card driver version could be useful...
Back to top
« Last Edit: 09/25/11 at 07:15:32 by Smirftsch »  

Sometimes you have to lose a fight to win the war.
WWW WWW Smirftsch 52832995  
IP Logged
 
xenphor
YaBB Newbies
*
Offline


Oldunreal member

Posts: 8
Re: Screen tearing with opengl and framerate drops in direct3d
Reply #6 - 09/25/11 at 23:47:31
 
Okay well here's my unreal.ini :

Code:
[D3D8Drv.D3D8RenderDevice]
ZRangeHack=True
NoAATiles=False
NumAASamples=0
UseAA=True
RequestHighResolutionZ=True
UseSoftwareVertexProcessing=False
UsePureDevice=False
UseTripleBuffering=True
MaskedTextureHack=False
SmoothMaskedTextures=False
FrameRateLimit=60
SwapInterval=-1
UseVertexProgram=False
TexDXT1ToDXT3=False
DynamicTexIdRecycleLevel=100
CacheStaticMaps=True
UseTexPool=True
UseTexIdPool=True
UseSSE2=True
UseSSE=True
BufferTileQuads=True
BufferClippedActorTris=True
SinglePassDetail=False
SinglePassFog=True
ColorizeDetailTextures=False
DetailClipping=False
UseDetailAlpha=True
DetailMax=1
RefreshRate=0
MaxTMUnits=0
NoFiltering=False
MaxAnisotropy=0
Use565Textures=False
Use16BitTextures=False
UseS3TC=True
UseAlphaPalette=False
UseTrilinear=False
UsePrecache=False
UsePalette=False
UseMultiTexture=True
MaxLogTextureSize=8
MinLogTextureSize=0
MaxLogVOverU=8
MaxLogUOverV=8
OneXBlending=False
GammaCorrectScreenshots=True
GammaOffsetBlue=0.000000
GammaOffsetGreen=0.000000
GammaOffsetRed=0.000000
GammaOffset=0.000000
LODBias=0.000000
DetailTextures=False
FullMeshRendering=True
DescFlags=0
Description=
HighDetailActors=True
Coronas=True
ShinySurfaces=True
VolumetricLighting=True
SceneNodeHack=True

[D3D9Drv.D3D9RenderDevice]
ZRangeHack=True
NoAATiles=False
NumAASamples=4
UseAA=True
RequestHighResolutionZ=True
UseSoftwareVertexProcessing=False
UsePureDevice=False
UseTripleBuffering=False
MaskedTextureHack=True
SmoothMaskedTextures=False
FrameRateLimit=60
SwapInterval=-1
UseFragmentProgram=True
TexDXT1ToDXT3=False
DynamicTexIdRecycleLevel=100
CacheStaticMaps=False
UseTexPool=True
UseTexIdPool=True
UseSSE2=True
UseSSE=True
BufferTileQuads=True
BufferClippedActorTris=True
SinglePassDetail=False
SinglePassFog=False
ColorizeDetailTextures=False
DetailClipping=False
UseDetailAlpha=True
DetailMax=2
RefreshRate=60
MaxTMUnits=0
NoFiltering=False
MaxAnisotropy=0
Use565Textures=False
Use16BitTextures=False
UseS3TC=True
UseAlphaPalette=False
UseTrilinear=True
UsePrecache=False
UsePalette=False
UseMultiTexture=True
MaxLogTextureSize=8
MinLogTextureSize=0
MaxLogVOverU=8
MaxLogUOverV=8
OneXBlending=False
GammaCorrectScreenshots=True
GammaOffsetBlue=0.000000
GammaOffsetGreen=0.000000
GammaOffsetRed=0.000000
GammaOffset=0.000000
LODBias=0.000000
DetailTextures=False
FullMeshRendering=False
DescFlags=0
Description=
HighDetailActors=True
Coronas=True
ShinySurfaces=True
VolumetricLighting=True
SceneNodeHack=True

[OpenGLDrv.OpenGLRenderDevice]
Translucency=True
VolumetricLighting=True
ShinySurfaces=True
Coronas=True
HighDetailActors=True
DetailTextures=True
FullMeshRendering=True
ZRangeHack=True
NoAATiles=False
NumAASamples=4
UseAA=True
RequestHighResolutionZ=True
MaskedTextureHack=True
SmoothMaskedTextures=False
FrameRateLimit=60
SwapInterval=-1
UseFragmentProgram=True
UseCVA=False
UseMultiDrawArrays=False
TexDXT1ToDXT3=False
DynamicTexIdRecycleLevel=100
CacheStaticMaps=False
UseTexPool=True
UseTexIdPool=True
UseSSE2=True
UseSSE=True
BufferTileQuads=False
BufferClippedActorTris=True
SinglePassDetail=False
SinglePassFog=False
ColorizeDetailTextures=False
DetailClipping=False
UseDetailAlpha=True
DetailMax=1
RefreshRate=60
MaxTMUnits=0
NoFiltering=False
NoMaskedS3TC=False
MaxAnisotropy=1
UseTNT=False
Use16BitTextures=False
UseS3TC=True
UseAlphaPalette=False
AutoGenerateMipmaps=False
UseTrilinear=True
UsePrecache=False
AlwaysMipmap=False
ShareLists=False
UsePalette=False
UseMultiTexture=True
UseBGRATextures=True
UseZTrick=False
MaxLogTextureSize=8
MinLogTextureSize=0
OneXBlending=False
GammaCorrectScreenshots=True
GammaOffsetBlue=0.000000
GammaOffsetGreen=0.000000
GammaOffsetRed=0.000000
GammaOffset=0.000000
LODBias=0.000000
DescFlags=0
Description=
SceneNodeHack=True 



Now my system specs:
Dell Lattitude 630 Laptop
Centrino 2.0 ghz Dual Core
Intel GM 965 Latest Driver: 6.14.10.5218
Sigmatel Audio Latest Driver: 5.10.0.5515
Intel® 6, 5, 4, 3, 900 Series Chipsets Latest Driver: 8.2.0
2 Gigs of Ram
Winxp 32bit

Now I think the Intel card could potentially be a problem. The actual graphics chip being used is the GMA X3100 I believe. Some info from wikipedia: http://en.wikipedia.org/wiki/GMA_X3000#GMA_X3000.2FX3100_on_Windows

Now that's mostly to do with direct3d performance. I'm not really understanding what's up with opengl. It is my understanding that Intel is very supportive of open source and is quite active in developing their drivers for operating systems such as Linux, which uses opengl. So why would performance in Windows be substandard?
Back to top
 
 
IP Logged
 
Smirftsch
YaBB Administrator
******
Offline



Posts: 5486
at home
Gender: male
Re: Screen tearing with opengl and framerate drops in direct3d
Reply #7 - 09/26/11 at 06:57:16
 
Well, to increase performance in D3D9/GL compared to D3D you could of course disable AA, DetailMax to 1. But all looks quite normal.
I only used this chipset on my old Laptop in Linux and there it worked fine with GL, except some minor brightness issue. But that's an entirely different driver.
I can't say much about the current state of this driver in Win, but those "Office" chipsets were never very famous for games. I could indeed imagine that one of the settings for filtering etc has an impact  maybe in performance, or explains the tearing.
Solutions? Except more messing around with different (even unrelated) functions...no real idea's at the moment.
Back to top
 

Sometimes you have to lose a fight to win the war.
WWW WWW Smirftsch 52832995  
IP Logged
 
(Moderator: Smirftsch)