Significant differences between SVN builds and automatic builds?
#1
Posted 10 April 2014 - 02:41 AM
#2
Posted 10 April 2014 - 03:54 AM
Dennis
#3
Posted 10 April 2014 - 04:13 AM
#4
Posted 10 April 2014 - 09:57 AM
#5
Posted 12 April 2014 - 01:41 AM
Here is a working patch

Number of downloads: 432
As can be seen, I had to remove the sorting adjustment based on the sorting index.
On the Internet I also found this post http://www.pcreview....u-t2605541.html about the exception, where it is written that a report was sent to MS about it (by the way, maybe casually, the non-working study case created there has also 4 objects...)
So, if it is necessary to differentiate primitives with almost same or same location, I would ask to find another way to do it. If I am completely wrong, excuse me.
#6
Posted 12 April 2014 - 12:37 PM
Csantucci, on 12 April 2014 - 01:41 AM, said:
This is not acceptable because we must sort similarly positioned objects correctly. If they do not have reasonable sort indexes, that should be fixed, but their use is not to be removed.
#7
Posted 12 April 2014 - 01:07 PM
I don't understand what is not acceptable. Have you read the discussion I have linked? Why things work when in debug mode? Why should the sort indexes be unreasonable?
#8
Posted 12 April 2014 - 01:17 PM
Csantucci, on 12 April 2014 - 01:07 PM, said:
If the sort indexes are reasonable, there will be no problem. So you must be experiencing unreasonable sort indexes - fix that, not that fact that they are used to influence the sort, which is required for models to render correctly.
#9
Posted 12 April 2014 - 01:21 PM
#10
Posted 12 April 2014 - 01:28 PM
Csantucci, on 12 April 2014 - 01:21 PM, said:
If you'd read the discussion you linked, you'd see that someone identified a possible cause being a threading issues. That, among other possible reasons, is why different environments experience different results.
I am literally out of care for this now; either you work out what the problem with the sort indexes is or you work on something else. I am sick and tired of people thinking that e.g. linking to a strange and unclear thread on another forum somehow validates their theory instead of actually providing facts and evidence.
The sort cannot fail unless the data provided to it is wrong. Figure out why the data provided is wrong.
#11
Posted 12 April 2014 - 01:36 PM
I think if
var xd = (x.XNAMatrix.Translation - XNAViewerPos).Length() - x.RenderPrimitive.SortIndex;
fails, then the most possible cause is that x.RenderPrimitive is null, or something similar.
#12
Posted 12 April 2014 - 02:13 PM
arning: Exception message = IComparer (o i metodi IComparable su cui questo si basa) non ha restituito zero quando Array.Sort ha chiamato x.CompareTo(x). x: ''. Tipo di x: 'RenderItem'. IComparer: 'ORTS.Viewer3D.RenderItem+Comparer'. Warning: sequenceMaterial.Key = EmptyMaterial, sequenceMaterial.Value.Count = 4, renderItemComparer.XNAViewerPos = {X:-566,4696 Y:562,159 Z:46,89798} Warning: sequenceMaterial.Value[0].Material = SceneryMaterial(c:\saveroutes\train simulator bernina\trains\trainset\rhb_ew_iv\\pass_glas.ace:00000005:0) , sequenceMaterial.Value[0].RenderPrimitive.SortIndex = 21, sequenceMaterial.Value[0].XNAMatrix.Translation = {X:-565,4244 Y:562,8322 Z:50,28863} Warning: sequenceMaterial.Value[1].Material = SceneryMaterial(c:\saveroutes\train simulator bernina\trains\trainset\rhb_ew_iv\\pass_glas.ace:00000005:0) , sequenceMaterial.Value[1].RenderPrimitive.SortIndex = 19, sequenceMaterial.Value[1].XNAMatrix.Translation = {X:-567,3919 Y:562,8322 Z:47,30493} Warning: sequenceMaterial.Value[2].Material = SceneryMaterial(c:\saveroutes\train simulator bernina\trains\trainset\rhb_ew_iv\\pass_glas.ace:00000005:0) , sequenceMaterial.Value[2].RenderPrimitive.SortIndex = 20, sequenceMaterial.Value[2].XNAMatrix.Translation = {X:-566,4082 Y:562,8322 Z:48,79678} Warning: sequenceMaterial.Value[3].Material = SceneryMaterial(c:\saveroutes\train simulator bernina\trains\trainset\rhb_ew_iv\\pass_glas.ace:00000005:0) , sequenceMaterial.Value[3].RenderPrimitive.SortIndex = 22, sequenceMaterial.Value[3].XNAMatrix.Translation = {X:-565,4244 Y:562,8322 Z:50,28863}
I don't see strange things, apart from the fact that the position of the first and the last object is the same.
This is the full log

Number of downloads: 383
I have made a basic and working proposal for solution. I don't have other ones and give up.
PS: Peter, I have seen now your hint, thank you very much. However, looking at the data I have collected, that does not seem the case.
#13
Posted 13 April 2014 - 01:01 AM
#14
Posted 13 April 2014 - 01:09 AM

Number of downloads: 373
#15
Posted 13 April 2014 - 02:20 AM
(I'm just wondering if the Math.Sign() is necessary there. I think it can be removed to save a couple of CPU instructions, since for compare it doesn't matter if the result is e.g. 1 or 8526. No need to normalize.)