Jump to content

PhM

Members
  • Posts

    106
  • Joined

  • Last visited

Everything posted by PhM

  1. I have seen this a number of times, it seems that there is some possibility of a deadlock in X-Plane's multi-threaded loading. Every time I checked the status of all of X-Plane's threads (I use ProcessExplorer) they were all waiting for something that obviously never happens. Not much we can do but restart it and cross our fingers. PhM
  2. Hi Simon, Indeed it is. Well not that I know of, I downloaded the two 7z files, un7zipped them in my custom scenery folder and went flying. The ortho-photo file is quite big, make sure the download did not stop somewhere in the middle of it, mine is 624 798 146 bytes big. PhM
  3. My good old H500 in Malta PhM
  4. Helicopters that fly the way they are supposed to, and nice playgrounds like this one. PhM
  5. Default world detail distance is, in fact, the maximum value, try getting it down a couple of notches. PhM
  6. I'll believe it when I see it, been waiting for sooooo long. PhM
  7. Hi, I would say poor, except when loading some stuff only an average of 1 CPU is used (ie 25% out of a quad core). But anyway go for the quad core, if X-Plane gets better in this domain you will be happy, and so many other things will benefit from this CPU that you won't regret it. PhM
  8. Hi, Freeware planes and sceneries : http://www.xpfr.org/ PhM
  9. The H500D around Paris at night, ending my trip at LFPO. PhM
  10. Hi, I don't get the reason why rev_byte_order4 is done this way, the following code compiles in 8 instructions instead of 19 and is about four times faster. PhM void rev_byte_order4(char* retval) { char Temp; Temp = retval[0]; retval[0] = retval[3]; retval[3] = Temp; Temp = retval[1]; retval[1] = retval[2]; retval[2] = Temp; } Edit : If you have a bunch of them to swap (multiple of 4), and you define some platform specific vector implementation of rev_byte_order4, then this one on PC compiles in 6 instructions and is even faster : void rev_byte_order4_4(char* retval) { static const long Shuffler = _MM_SHUFFLE(0,1,2,3); __m128 vFour32a,vFour32b; vFour32a = _mm_loadu_ps((float*)retval); // vFour32a = a3 a2 a1 a0 vFour32b = _mm_movehl_ps(vFour32a,vFour32a); // vFour32b = a3 a2 a3 a2 vFour32a = _mm_movelh_ps(vFour32a,vFour32a); // vFour32a = a1 a0 a1 a0 vFour32a = _mm_shuffle_ps(vFour32b,vFour32a,Shuffler); // vFour32a = a0 a1 a2 a3 _mm_storeu_ps((float*)retval,vFour32a); }
×
×
  • Create New...