The online racing simulator
LFS Test Patch 0.7E15
(164 posts, started )
LFS Test Patch 0.7E15
WARNING: THIS IS A TEST

THIS DOES NOT CONTAIN NEW TYRE PHYSICS OR THE NEW GRAPHICS SYSTEM

PLEASE TEST BEFORE YOU POST

PLEASE... NO OFF TOPIC FEATURE REQUESTS!


Hello Racers,

Here is a new test patch: 0.7E15

Please read the list of changes below.

0.7E15 is COMPATIBLE with 0.7E

- You CAN connect online with 0.7E
- You CAN play single player replays from 0.7E

You should back up or rename your LFS.exe from version E so you can revert to it if necessary.


Changes in E15:

Improved auto updater and available hosting locations
- New update available is shown on entry screen
- Auto updater page is clearer and simpler to use
- Hosting locations are downloaded instead of hard coded


Changes in E14:

Mark host as favourite and sort by favourites in list of hosts
Sort by server location (two-letter country code) column


Changes in E13:

Improved handling of UDP packets not reaching the host
- List of Hosts comes direct from master server (no pinging)
- You can connect even if host does not receive your UDP packets


Changes in E12:

Cameras:

Small change in calculation of free view camera smoothing
- only intended as preparation for a future change
- slightly more efficient calculation
- should provide identical motion

Multiplayer:

Support for new command to set number of stops completed

Commands:

FIX: Multiple commands now allow more than 1 space between commands

Translations:

More updated translations - Thank you translators!


Changes in E11:

Cameras:

Layout Square cameras now have 40m height instead of 4m
Reduced jiggling of names above cars at extreme zoom
Improved accuracy of camera rotation at extreme zoom

Commands:

/vlock=car/filter/horizon
/lookf=joystick/axis/steer/mouse_x/mouse_xy
/control=mouse_kb/wheel_js


Changes in E10:

FIX: Invert mouse axis did not work in E9


Changes in E9:

Input range improvements:

The full resolution reported by the controller is now supported
- previously drivers were instructed to report -1000 to 1000
- controllers we tested report values 0 to 65535
- so steering wheel moves in smaller steps
The range adjusters in controller options now use percentage values
- the range defaults replicate previously default in-game behaviour
- previously brake/throttle/handbrake/clutch axes had a dead zone
- the dead zones were not adjustable by the user but now are
- the axes visible in game now match the options screen

Support for mod approval:

WIP filter is available on the mod selection screen

Translations:

More translations updated! Thanks to the translators Thumbs up


Changes in E8:

Support for approved mods:

Tick (aka check mark) is shown in mods screen for approved mods
- also TW is shown for tweak mods and padlock for private mods
An 'external link icon' is visible when two columns are displayed
Rating stars pulsate in garage if you have not yet rated the mod

InSim:

NLP/MCI packets are no longer sent after clicking replay slider
- also not sent after IS_RIP unless RIPOPT_FULL_PHYS is set


Changes in E7:

Tightened main model and wheel limits for mod reports
Unlock screen requires "unlock" to keep any changes
(if already unlocked the unlock count is unaffected)
More translation updates. Thank you translators!


Changes in E6:

Optimisations:

Combine rim and spoke object into a single subobject
- saves 4 extra subobject switches for most cars
- update also applies to development version
An optimisation specially for external views
- avoid begin/end scene when drawing env maps/shadows
Tiny opt when drawing driver (avoid some integer maths)
Tiny opt (set projection matrix only once per frame)

Icon:

Fixed icon (old one was copied by mistake in E5 patch)

Translations:

More translation updates, thanks to translators!


Changes in E5:

Mods screen:

New button to show your own mods
Ability to switch on multiple vehicle type filters
New filters for drive type (none/RWD/FWD/AWD)
New sort options power/mass/power-weight ratio
X button beside text filters stops text entry
Updated translations - thanks to translators

Optimisations:

Decreased CPU used when drawing tyres
- reduces CPU used by official GTR cars by around 7%
- smaller optimisation for suspension parts


Changes in E4:

Prevents frequent excess reports for the same mod


Changes in E3:

LOD2 limit detections:

Use true limit of 8192 (which is excessive even if legal)
- LOD2 should really be nearer 1000 triangles (see official cars)
- The check in E2 was extra lenient (as it still is for wheels)
Added check for invisible LOD2 (there is no need for bad LOD2)
- Thread about LOD2: https://www.lfs.net/forum/thread/106736


Changes in E2:

Automatic reporting system for mods with excessive triangles
New command /rtex does a full texture reload from any screen
Some updated translations - thank you translators!

FIX: New steer animation for BF1 stops driver toes protruding
FIX: Minor documentation errors in InSim.txt


INSTALLATION:

Live for Speed LFS 0.7E must already be installed!


To install the patch, download and run the patch installer.

NOTE: You can see if the patch is correctly installed when you run
LFS. Check the version number at the bottom of the entry screen.


DOWNLOAD:

IF YOU ALREADY HAVE 0.7E:
PATCH 0.7E TO 0.7E15 (INSTALLER)
https://www.lfs.net/file_lfs.p ... ATCH_7E_TO_7E15_setup.exe (1.8 MB)
The key thing is that new reporting system.

I'm on the case getting rid of excessive mods, to prevent pit-out glitches and keep the frame rate high.

It's actually very lenient at the moment. You will see a red message when it activates (when someone on the server you are on joins with a vehicle that significantly exceeds the limits).
#3 - Ped7g
JFYI: I think the INSTALLATION mentions version 0.7D by accident and it was meant to point to https://www.lfs.net/patch-7e and version 0.7E.
Thanks! Fixed that wrong info and link!
It's going well and I think there should be some improvements online

- reduced stutter when people leave pits (wheel and model limits)
- better frame rate (no wheels with enough triangles for a whole vehicle)
- shadows under all cars (invisible LOD2 is now detected)

Test Patch E3 includes improved detections for LOD2
Test Patch E4 avoids frequent reports about the same mod
I applaud the effort! I've not been playing for quite a while, partially because on a laptop with 3D accelerator, some mods made races unbearable -- FPS dropped down to around 1, effectively turning LFS into PowerPoint. Wish you have enough energy, Scawen!
I hope the reduction in stutter will be noticeable. Always had this issue when drivers would join from the pits and the drops would be sometimes kind of significant.
I hope so too. Some of the mods were seriously beyond any reason, I found one that had 65536 triangles per wheel and several with 32000 triangles per wheel.

For reference, the entire Raceabout model (excluding wheels) is 7288 triangles. So 4.5 times that for a single wheel is just silly.

Also quite a few people have abused the LOD system, for example by making LOD2 a straight copy of LOD1 which is really not the spirit, and makes the car take twice as long to generate.

It's pointless, as LOD2 is not actually a requirement. It's possible (and fine for WIP mods) to have only a main LOD and a physics LOD.

Another part of the pitout glitch that will not be fixed at this point, is texture loading. I've worked on that in thew new development version which I want to work on and release. Textures are loaded gradually over the coming frames instead of all at once. So I hope that mod creators will cooperate and do the right thing, so that I have more time available to work on actual development.
Hello Scawen,
I don't know if my concern belongs here but seeing "triangles", "stutter", etc. (otherwise I'd move it!). Yesterday we had a race with this mod (by the way very nice and very pleasant to drive!) : https://www.lfs.net/files/vehmods/2670D3.
I'm having major performance problems with it even though I have a very powerful computer (I don't master LFS Editor so I can't check what could be causing this problem).
In case it's on topic and can be optimized...
Thank you, that is on topic, as I am trying to help get mods more optimal.
I'll have a look in the editor tomorrow and see if I can spot any issues.
I didn't specify that I play in VR (I don't know if that makes any difference).
I had a first look and couldn't spot any obvious problems, except that the setting for "Concealed driver" is wrong (currently NO, should be YES). This wrong setting can increase CPU usage by around 4% for no benefit at all (when a lot of cars are on the grid).

The main LOD1 triangle count is high, but it has a good LOD2.

Can you remember which situations caused performance issues? For example was it when a lot of cars were on screen, in main view or mirror view, or was it when there were crashes, people leaving pits, or some other event? And the type of performance problem, was it glitches or low frame rates?
Hello Scawen,
Thank you for your reply. Our race with this car consisted of 25 cars. Performance problems were continuous throughout the race.
Nevertheless, I performed a clean uninstall of my graphics drivers then reinstalled everything and applied a series of "low latency" settings and it seems to be back to normal.
When I had the problems, I was also training on the UF1, which had no problems at all, so I think there was just a threshold to be reached with the swift.
(FPS constant at 90 with a resolution adjustment setting of 225% for the UF1, whereas FPS around 70 with a setting of 100% for the swift and lot of frame jumps. But well, solved, so sorry for the time spent on this).
I remembered a couple of suggestions I have for Steam VR:

[ In Steam VR Settings... Video... ]

Switch OFF: Motion Smoothing (causes a bad image warping effect if frame rate drops)
Set "Render Resolution" to Custom instead of Auto (set to 100% then use the in-game setting)

Not so sure about this one but I switched it off as a saving:

Switch OFF: Advanced Supersample Filtering (couldn't see visible difference)
Changes in E5:

Mods screen:

New button to show your own mods
Ability to switch on multiple vehicle type filters
New filters for drive type (none/RWD/FWD/AWD)
New sort options power/mass/power-weight ratio
X button beside text filters stops text entry
Updated translations - thanks to translators

Optimisations:

Decreased CPU used when drawing tyres
- reduces CPU used by official GTR cars by around 7%
- smaller optimisation for suspension parts

Download:

https://www.lfs.net/forum/thread/106967
great, mod sorting was very much needed
Thanks for the mod filtering & sorting improvements Smile

Quote from Scawen :- reduces CPU used by official GTR cars by around 7%

Sounds good, how did you achieve that?
OK, I'll describe that but first I will mention that saving is only in the graphical render code, not the physics.

The thing about tyres is as they are flexible objects, their vertices cannot simply reside on the graphics card memory. They must be calculated every frame and the vertices are sent from the CPU to the GPU each time. I had thought before the main cost was actually transferring the vertices to the graphics card, and calculating the normals of each vertex. But what I found was the worst part was calculating the colour of each vertex (according to its lighting condition and the sun highlight). This used a lot of integer maths and I found the CPU use was way less when I bypassed this function, returning a simple grey colour. So I set about converting it to floating point maths.

The general idea is that integer maths is good for adding and subtracting, but floating point is better when there is a lot of multiplying involved. There's some leftover integer maths in LFS left over from earlier times. Considering some of its code goes back around 30 years, when we had 486 processors, I worked at Digital Integration on the Hind Helicopter Simulator, Pentium was the latest super CPU and there were no 3D cards. Smile

By converting to floating point I found it was instantly faster, so I changed the code some more so that the normals were calculated in floating point, actually borrowing some code from the development version, where this was done already.

In the development version, the tyre lighting is actually done on the GPU, based on material properties, but the vertex normals are still sent to the graphics card each frame. You can see it in the LFS Editor.

The older code (before Friday) had a lot of complicated stuff to avoid sending vertices if they were not needed. This was done by checking if a triangle faced the user's view before drawing it, then calculating vertices as needed. But that is way complicated. It's better, if possible to just calculate all the vertices then send them all, without jumping around between triangle and vertex code. But for quite a while the "avoid sending unnecessary vertices" was still winning. But eventually I got the vertex normal and lighting calculations fast enough that it was better to do it the simpler way and I saw best results in the profiler that way.

Unfortunately that work, that took most of a day, doesn't benefit the development version because it was already done in that version. In the D3D11 version with shadow maps, all triangles must be sent every time as they may be seen in a shadow map (drawn from sun direction viewpoint). So it was impossible in that version to avoid drawing the away-facing triangles. But in the development version there is code to only send one object's triangles to the GPU once each frame, even if it will be used in multiple shadow maps, main view, mirrors and stereoscopic images in that single frame.

But although it doesn't help the development version, we still have the current public version for some months ongoing, so I'm happy if it helps people racing on full grids and the helps the quality of broadcasts by saving a few percent of CPU each frame.
By the way, calculating normals on the CPU for flexible object is also the reason why the LFS driver objects (the human in the car) use a lot of CPU time and mod creators should switch on "Concealed driver" for any normal car, where you can't see the driver's body from far away. The helmet is drawn anyway (it's not flexible) and this setting is really important for CPU saving. Just don't set it for bikes and karts or FSAE (when you can see the driver's body even as you move away from the car).


EDIT: Talking about polygon people, and going way OT, but as I mentioned Hind, you can see a few pictures of the polygon people that I coded for the Hind simulator: (I didn't make the objects, but did the code and editor to animate them. EDIT2: and I did the animations too Smile)
https://www.mobygames.com/game/620/hind/screenshots/dos/272951/
After installing the test patch, the size of the exe icon returned to its previous low resolution. I wonder if everyone is like this?
Attached images
logo.jpg
Thanks, well spotted. That's my mistake as I reverted to a previous version to compare frame rates but apparently I got the old icon by mistake. It'll be fixed in the next version.
While trying 7E5, I've noticed that a mod that is out of limits is being reported in chat once, but subsequent pit leaves won't show the message again, I'm wondering if that's correct.

I've also noticed some mods that are published this week, that have both LOD2 and wheel warnings.
Quote from kipieslim :While trying 7E5, I've noticed that a mod that is out of limits is being reported in chat once, but subsequent pit leaves won't show the message again, I'm wondering if that's correct.

See the note for E4:

"Prevents frequent excess reports for the same mod"

It soon becomes annoying and there is no reason to see the same message every time the same mod leaves the pits.

Quote from kipieslim :I've also noticed some mods that are published this week, that have both LOD2 and wheel warnings.

Maybe they were first submitted before Editor E5 was compulsory. Anyway, their creators (or should I say hackers) will soon receive a message that their mod (or should I say BMW) needs to be updated.
Test Patch E6 has more optimisations and a fix for the icon (I copied the old one by mistake when testing for E5).

As a rough guide, on my computer, the paused frame rate in a heavy external view (zoomed in on a full start grid) is up by around 10%.

EDIT: (I mean compared with version E). Considered another way, if you set an achievable limit to the frame rate, then the CPU usage for the Draw is around 10% less. Why I say "heavy external view" and e.g. start grid: Most of the optimisations are related to vehicles within LOD1/LOD2 distance. They will also help in driving views with a lot of cars around.

Some of the updates are applicable to the new graphical version in development too. So with these updates and the improved checks on mod limits, we should hopefully be running smoothly now and in future.

Optimisations:

Combine rim and spoke object into a single subobject
- saves 4 extra subobject switches for most cars
- update also applies to development version
An optimisation specially for external views
- avoid begin/end scene when drawing env maps/shadows
Tiny opt when drawing driver (avoid some integer maths)
Tiny opt (set projection matrix only once per frame)

Icon:

Fixed icon (old one was copied by mistake in E5 patch)

Translations:

More translation updates, thanks to translators!

Download:

https://www.lfs.net/forum/thread/106967
I think after typing /rtex, the texture of the Indicator Glass and headlight glass of some vehicles is not visible. But it comes back after typing /rtex. I know it can be fixed after writing this command, but I still wanted to report the error.
Attached images
fz5.jpg
fzr.jpg
int glass.jpg

LFS Test Patch 0.7E15
(164 posts, started )
FGED GREDG RDFGDR GSFDG