Out of memory exception
#31
Posted 07 July 2015 - 04:25 AM
James,
This direction had to be made. If this is something you object to, then let me know since the only option left would be to reverse the fix.
Edward K.
#32
Posted 07 July 2015 - 04:34 AM
edwardk, on 05 July 2015 - 08:19 PM, said:
Edward K.
Now it seems it doesn't use much gpu, i don't see fps drop.
#33
Posted 07 July 2015 - 11:05 AM
#34
Posted 07 July 2015 - 12:55 PM
Precipitation box height default value is 100 meters and the max is 300 meters. There is no reason to go above the max value.
Precipitation box width default value is 500 meters and the max is 1000 meters.
Precipitation box length default value is 500 meters and the max is 2000 meters.
The reason the last 2 items have such a high value is to allow weather options for those who do not necessarily drive the train from the cab. Since there are now options, depending upon how you use OR, there should be no more out of memory messages. I do have to add that since there is no distinction between non-LAA and LAA, it is up to you to know what settings are in use and what mode you are using. The default settings are very much the same to the 16bit settings with the exception of the height which was raised to 100 meters which means the memory being used is not that much different. Test this and let me know how it is working out. The executables are based on X3190.
Edward K.
Attached File(s)
-
X3190_Test.zip (1.35MB)
Number of downloads: 153
#35
Posted 07 July 2015 - 01:38 PM
James Ross, on 07 July 2015 - 11:05 AM, said:
Thanks for the reply. What I have learned is that the particle system is known to take up resources. With this in mind, changes for efficiency would require a bit more intimate knowledge. Besides, if you look at the simulators on the market, my personal favorite being Euro Truck Simulator 2. There are many options given when it comes to graphics. If its not a menu option, its a change involving the ini file that would require the person to understand what he is changing.
Edward K.
#36
Posted 08 July 2015 - 09:07 AM
New zip file downloaded and tested OK
GPU load is back to X3181 levels. :bigboss:
Thank You for making the improved precipitation selectable.
This way everyboby is happy. :pleasantry:
A question for the people in the know.
I know OR is kept at 32 bit for now, but is it possible to port part of it, f.eks. the weather engine, to 64 bits?
This way I can offer You at least 12 extra Gigs for improved Weather. :D Just a thought.
My programming skils dates back to CP/M so I do not know enough about the subject, but if OR can run several threads spreading along several cores, why not three 32 Bit threads and one 64 bit?
ChrisD
#37
Posted 08 July 2015 - 11:35 AM
ChrisD, on 08 July 2015 - 09:07 AM, said:
This way I can offer You at least 12 extra Gigs for improved Weather. :bigboss: Just a thought.
No, that is a process level thing, but more importantly, it is not the bitness of Open Rails which is the problem right now - the problem now is that even modest increases in number of particles and the use of 32bit (rather than 16bit) indexes seems to cause big problems on some, but not all, systems. The most intense option is only using 50-60MB of system RAM plus the same in GPU RAM. It's not clear whether it is the type of index buffer or number of particles which is the problem.
#38
Posted 08 July 2015 - 12:30 PM
James Ross, on 08 July 2015 - 11:35 AM, said:
James,
As of DirectX 10, there were changes made that made certain processes between the cpu and the video card more efficient. What we are experiencing under DirectX 9 is the result of the way it works. It puts the burden on the drivers to do the job and this could very well be why this issue is taking place.
Edward K.
#39
Posted 08 July 2015 - 01:21 PM
edwardk, on 08 July 2015 - 12:30 PM, said:
No, this is completely incorrect. GPU load is how much work the graphics is having to do after all the data is transferred.
#40
Posted 09 July 2015 - 02:20 AM
Having dealt with the Improved Precipitation feature, I was still left with the occational CTD.
Having run X3181 and X3191-Test several times, I have found the culprit.
It seems that I/O Exception Errors like this one:
System.IO.FileLoadException: c:\msts-cz-321t\routes\trat 321\textures\aviap.ace ---> System.OutOfMemoryException: Insufficient memory to continue the execution of the program.
are there in both versions, and OR is dealing with these errors without crashing.
Studying all these logfiles I ended up finding a different Error:
Error: System.Runtime.InteropServices.SEHException: External component has thrown an exception.
This error is only there occational in X3191-Test, but never in X3181.
Here is the complete text:
Error: System.Runtime.InteropServices.SEHException: External component has thrown an exception.
at new[](UInt32 )
at Microsoft.Xna.Framework.Graphics.VertexBuffer.CreateBuffer(UInt32 dwSize, UInt32 usage, _D3DPOOL pool)
at Microsoft.Xna.Framework.Graphics.VertexBuffer..ctor(GraphicsDevice graphicsDevice, Type vertexType, Int32 elementCount, BufferUsage usage)
at ORTS.Viewer3D.TerrainPrimitive.GetVertexBuffer(Single& averageElevation)
at ORTS.Viewer3D.TerrainPrimitive..ctor(Viewer viewer, TileManager tileManager, Tile tile, Int32 x, Int32 z)
at ORTS.Viewer3D.TerrainTile..ctor(Viewer viewer, TileManager tileManager, Tile tile)
at ORTS.Viewer3D.TerrainViewer.<>c__DisplayClass8.<Load>b__1(Tile tile)
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at System.Linq.Enumerable.<UnionIterator>d__81`1.MoveNext()
at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
at ORTS.Viewer3D.TerrainViewer.Load()
at ORTS.Viewer3D.World.Load()
at ORTS.Viewer3D.Viewer.Load()
at ORTS.Processes.GameStateViewer3D.Load()
at ORTS.Processes.LoaderProcess.Load()
at ORTS.Processes.LoaderProcess.DoLoad()
at ORTS.Processes.LoaderProcess.LoaderThread()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
OR does not survive this Error.
JR, can You make something out of this?
ChrisD