1. 28 Aug, 2018 7 commits
    • bunnei's avatar
      Merge pull request #1191 from lioncash/noexcept · d8ba2020
      bunnei authored
      hle/result: Make ResultVal's move constructor as noexcept
      d8ba2020
    • bunnei's avatar
      Merge pull request #1194 from lioncash/alloc · 72e4499a
      bunnei authored
      gl_shader_cache: Remove unused program_code vector in GetShaderAddress()
      72e4499a
    • Lioncash's avatar
      gl_shader_cache: Remove unused program_code vector in GetShaderAddress() · 2e7dc4ca
      Lioncash authored
      Given std::vector is a type with a non-trivial destructor, this
      variable cannot be optimized away by the compiler, even if unused.
      Because of that, something that was intended to be fairly lightweight,
      was actually allocating 32KB and deallocating it at the end of the
      function.
      2e7dc4ca
    • bunnei's avatar
      Merge pull request #1190 from FearlessTobi/im-so-retarded · 0d243534
      bunnei authored
      yuzu: Fix two stupid errors made in #1141
      0d243534
    • Lioncash's avatar
      hle/result: Make ResultVal's move constructor as noexcept · f1bc62bb
      Lioncash authored
      Many containers within the standard library provide different behaviors
      based on whether or not a move constructor/assignment operator can be
      guaranteed not to throw or not.
      
      Notably, implementations will generally use std::move_if_noexcept (or an
      internal implementation of it) to provide strong exception guarantees.
      If a move constructor potentially throws (in other words, is not
      noexcept), then certain behaviors will create copies, rather than moving
      the values.
      
      For example, consider std::vector. When a std::vector calls resize(),
      there are two ways the elements can be relocated to the new block of
      memory (if a reallocation happens), by copy, or by moving the existing
      elements into the new block of memory. If a type does not have a
      guarantee that it will not throw in the move constructor, a copy will
      happen. However, if it can be guaranteed that the move constructor won't
      throw, then the elements will be moved.
      
      This just allows ResultVal to be moved instead of copied all the time if
      ever used in conjunction with containers for whatever reason.
      f1bc62bb
    • fearlessTobi's avatar
      Fix two stupid errors made in #1141 · 4a569317
      fearlessTobi authored
      4a569317
    • bunnei's avatar
      Merge pull request #1165 from bunnei/shader-cache · ffe23361
      bunnei authored
      renderer_opengl: Implement a new shader cache.
      ffe23361
  2. 27 Aug, 2018 20 commits
  3. 26 Aug, 2018 1 commit
    • tech4me's avatar
      set: Fixed GetAvailableLanguageCodes() to follow the max_entries · d26a46fe
      tech4me authored
      Rightnow, in games use GetAvailableLanguageCodes(), there is a WriteBuffer() with size larger than the buffer_size. (Core Critical core\hle\kernel\hle_ipc.cpp:WriteBuffer:296: size (0000000000000088) is greater than buffer_size (0000000000000078))
      
      0x88 = 17(languages) * 8
      0x78 = 15(languages) * 8
      
      GetAvailableLanguageCodes() can only support 15 languages.
      After firmware 4.0.0 there are 17 supported language instead of 15, to enable this GetAvailableLanguageCodes2() need to be used.
      So GetAvailableLanguageCodes() will be caped at 15 languages.
      Reference:
      http://switchbrew.org/index.php/Settings_services
      d26a46fe
  4. 25 Aug, 2018 12 commits