Skip to content
Snippets Groups Projects
  1. Jul 06, 2023
  2. May 04, 2023
  3. May 03, 2023
  4. Apr 28, 2023
  5. Apr 19, 2023
  6. Apr 10, 2023
  7. Apr 05, 2023
  8. Mar 22, 2023
  9. Feb 10, 2023
  10. Jan 31, 2023
    • Andrey Kleshchev's avatar
    • Henri Beauchamp's avatar
      SL-19110 Fast hashing classes for use in place of the slow LLMD5, where speed matters. (#64) · 473ade26
      Henri Beauchamp authored
      This commit adds the HBXX64 and HBXX128 classes for use as a drop-in
      replacement for the slow LLMD5 hashing class, where speed matters and
      backward compatibility (with standard hashing algorithms) and/or
      cryptographic hashing qualities are not required.
      It also replaces LLMD5 with HBXX* in a few existing hot (well, ok, just
      "warm" for some) paths meeting the above requirements, while paving the way for
      future use cases, such as in the DRTVWR-559 and sibling branches where the slow
      LLMD5 is used (e.g. to hash materials and vertex buffer cache entries), and
      could be use such a (way) faster algorithm with very significant benefits and
      no negative impact.
      
      Here is the comment I added in indra/llcommon/hbxx.h:
      
      // HBXXH* classes are to be used where speed matters and cryptographic quality
      // is not required (no "one-way" guarantee, though they are likely not worst in
      // this respect than MD5 which got busted and is now considered too weak). The
      // xxHash code they are built upon is vectorized and about 50 times faster than
      // MD5. A 64 bits hash class is also provided for when 128 bits of entropy are
      // not needed. The hashes collision rate is similar to MD5's.
      // See https://github.com/Cyan4973/xxHash#readme for details.
      473ade26
    • Andrey Kleshchev's avatar
    • Henri Beauchamp's avatar
      SL-19110 Fast hashing classes for use in place of the slow LLMD5, where speed matters. (#64) · 9438ef5f
      Henri Beauchamp authored
      This commit adds the HBXX64 and HBXX128 classes for use as a drop-in
      replacement for the slow LLMD5 hashing class, where speed matters and
      backward compatibility (with standard hashing algorithms) and/or
      cryptographic hashing qualities are not required.
      It also replaces LLMD5 with HBXX* in a few existing hot (well, ok, just
      "warm" for some) paths meeting the above requirements, while paving the way for
      future use cases, such as in the DRTVWR-559 and sibling branches where the slow
      LLMD5 is used (e.g. to hash materials and vertex buffer cache entries), and
      could be use such a (way) faster algorithm with very significant benefits and
      no negative impact.
      
      Here is the comment I added in indra/llcommon/hbxx.h:
      
      // HBXXH* classes are to be used where speed matters and cryptographic quality
      // is not required (no "one-way" guarantee, though they are likely not worst in
      // this respect than MD5 which got busted and is now considered too weak). The
      // xxHash code they are built upon is vectorized and about 50 times faster than
      // MD5. A 64 bits hash class is also provided for when 128 bits of entropy are
      // not needed. The hashes collision rate is similar to MD5's.
      // See https://github.com/Cyan4973/xxHash#readme for details.
      Unverified
      9438ef5f
  11. Dec 14, 2022
  12. Nov 21, 2022
  13. Nov 19, 2022
  14. Nov 18, 2022
  15. Nov 14, 2022
  16. Nov 11, 2022
  17. Oct 17, 2022
  18. Oct 14, 2022
  19. Oct 04, 2022
  20. Oct 03, 2022
  21. Oct 01, 2022
  22. Sep 21, 2022
  23. Sep 17, 2022
  24. Sep 16, 2022
  25. Sep 14, 2022
  26. Sep 08, 2022
  27. Aug 30, 2022
  28. Aug 25, 2022
  29. Jun 24, 2022
  30. Jun 21, 2022
  31. Jun 09, 2022
Loading