View Issue Details

IDProjectCategoryView StatusLast Update
0005854Multi Theft Auto : San AndreasGeneralpublic2013-12-19 10:12
ReporterccwAssigned Toccw 
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Product Version1.0.4 
Target Version1.3.5Fixed in Version1.3.5 
Summary0005854: Client runs with reduced mathematical precision compared to the server.
Description

The server runs with a floating-point precision of 56-bits and the client runs with a floating-point precision of 24-bits. Therefore floating-point operations will be performed with greater accuracy on the server when compared to the client.

Additional Information

It seems DirectX and possibly GTA quite like it that way, and forcing the client to 56-bits could produce unpredictable results, and will probably decrease client performance.

It might be possible to switch into 56-bits during Lua execution only, but considering the network layer forces 24-bit floats for communications, would it be worth it?

Another solution is to document this 'feature', with detail of the side effects and work-a-rounds and what not.

TagsNo tags attached.

Relationships

related to 0004298 resolvedccw Multi Theft Auto : San Andreas triggerClientEvent() doesn't pass large numbers or floats accurately 
parent of 0006829 closed Source patches Floating-point double precision fix 
has duplicate 0007694 closed New issues Client can't operate with numbers bigger than 16777216 
has duplicate 0007502 closed New issues Precision loss (or something) when using rotation from processLineOfSight in createObject 
related to 0006802 closed New issues Sync Problem with setElementData 

Activities

Dragon

2011-01-24 17:41

reporter   ~~0012721

probably worth the extra effort

TheGTA

2012-01-26 14:07

updater   ~~0015825

IMO double-precision calculations should not be considered a bottleneck, like you should not argument that it causes huge FPS loss. MTA requires more precise calculations.

As for GTA, let it run in single-precision for now, but then again what about callbacks? multiplayer_sa is deeply nested with 'em.

Increasing accuracy would actually help; remember that issue where things go weird if too far from main-land? :)

PhatLooser

2012-02-17 09:07

reporter   ~~0016095

I just wonder what the issue about that is. If you force the client to use doubles, 32 bit computers would have the disadvantage.
Normally it doesn't matter due to pipeing, but if the hardware is a bit old or a bit weird using doubles definitely decreases the FPS.

Dutchman101

2013-12-18 12:19

updater   ~~0019802

Fixed in: https://code.google.com/p/mtasa-blue/source/detail?r=6001

Issue History

Date Modified Username Field Change