EDuke32 Changelog Unofficial archive

Build 2424

7 March 2012 · 2 commits by 1 author · SVN

Builds by month 225 builds

  1. Jan

  2. Feb

  3. Mar

  4. Apr

  5. May

  6. Jun

  7. Jul

  8. Aug

  9. Sep

  10. Oct

  11. Nov

  12. Dec

Original log file · 20120307-2424.txt
------------------------------------------------------------------------
r2424 | helixhorned | 2012-03-07 11:42:37 -0800 (Wed, 07 Mar 2012) | 13 lines

Optimizations and tweaks for C replacements of mhline and thline.

Hlines for masked and translucent masked ceiling/floor (sprites).

- apply the --> 'do { ... } while (--cnt)' transformation, making these
  functions iterate cnt+1 times like the asm version.  This also fixes an
  off-by-one issue where sprites or masked ceilings/floors had a one-pixel
  non-drawn line to the right.
- This time, only declare-as-local two 'extern' globals (asm1 and asm2).
  It seems that I was too eager with "localing" all file-scoped vars earlier.
  GCC is able to remove the loads from memory inside the loop by itself, whereas
  clang is not. This is not trivial, since it has to prove that the 'screen'
  pointer passed to the functions will never alias these globals.
------------------------------------------------------------------------
r2423 | helixhorned | 2012-03-07 11:42:20 -0800 (Wed, 07 Mar 2012) | 1 line

Optimize 'rainbow' background drawing in the editor with 8-bit renderer.
------------------------------------------------------------------------
FixEngine

Optimizations and tweaks for C replacements of mhline and thline.

Philipp Kutin (Helixhorned) 7 Mar 2012, 11:42 UTC−8 r2424

Hlines for masked and translucent masked ceiling/floor (sprites). - apply the --> 'do { ... } while (--cnt)' transformation, making these functions iterate cnt+1 times like the asm version. This also fixes an off-by-one issue where sprites or masked ceilings/floors had a one-pixel non-drawn line to the right. - This time, only declare-as-local two 'extern' globals (asm1 and asm2). It seems that I was too eager with "localing" all file-scoped vars earlier. GCC is able to remove the loads from memory inside the loop by itself, whereas clang is not. This is not trivial, since it has to prove that the 'screen' pointer passed to the functions will never alias these globals.