1. 01 Jul, 2020 1 commit
    • Thomas Debesse's avatar
      q3map2/light_bounce: prevent infinite loop on obscure bias compute · c5ecfe71
      Thomas Debesse authored
      New code produces same result without loop at all, so
      it cannot fall in infinite loop, and it is faster in
      use cases requiring more than one loop in previous code.
      
      The Unvanquished vega map is known to trigger the bug:
      https://github.com/UnvanquishedAssets/map-vega_src.dpkdir
      I reproduced it multiple time on various hardware (8 core FX-9590,
      12 core/24 thread Ryzen 9 3900X) with commit af40508 and using
      final compilation profile edited to use -fastbounce instead
      of -fast option.
      
      The symptom is simple, q3map2 stucks there:
      
      --- Radiosity (bounce 1 of 8) ---
      --- RadCreateDiffuseLights ---
      0...1...2...3..
      
      Or somewhere else in that progression bar given your hardware
      and the amount of core your CPU has.
      
      When stuck, all the CPU cores are running 100% but the thread
      never returns (a strace can reveals it, a gdb backtrace too).
      
      Thanks to @slipher for the precious advices and improving my first
      attempt to fix it.
      
      For more information on the issue, I asked:
      
      > which negative value never can become positive
      > when incremented infinitely?
      
      slipher said:
      
      > for a double, any value less than -2^53 would have this property
      > don't know for float off the top of my head
      
      But then, it means that's theorically verified this loop was able
      to run forever in some case.
      
      I don't know what this code is doing anyway, but at least we can
      keep the behaviour without requiring to understand it.
      c5ecfe71
  2. 25 May, 2020 3 commits
  3. 22 May, 2020 7 commits
  4. 21 May, 2020 2 commits
  5. 17 May, 2020 2 commits
  6. 15 May, 2020 8 commits
  7. 24 Apr, 2020 1 commit
  8. 19 Apr, 2020 3 commits
  9. 18 Apr, 2020 1 commit
    • Rudolf Polzer's avatar
      Fix ioq3 compatibility bug with lightgrid and only one light. · 22b786a4
      Rudolf Polzer authored
      Correct math requires the ambient component of the lightgrid to be zero
      in that case. However, ioq3 ignores lightgrid cells with all zero ambient
      value, EVEN if the directed value is nonzero.
      
      This change sets the ambient value to #010101 if it'd be pitch black. This
      should be a minimal change without affecting light hue that fixes
      lightgrid rendering. In engines like DarkPlaces, almost no map should
      look different from this.
      
      Fixes #137.
      22b786a4
  10. 06 Apr, 2020 1 commit
  11. 05 Apr, 2020 7 commits
  12. 04 Apr, 2020 4 commits