Browse Source

relax memory and draws dispatchs

temporary-branch
CamilleLaVey 2 days ago
parent
commit
1682b532da
  1. 4
      src/video_core/renderer_vulkan/vk_rasterizer.cpp
  2. 2
      src/video_core/renderer_vulkan/vk_scheduler.h
  3. 5
      src/video_core/texture_cache/texture_cache.h
  4. 9
      src/video_core/texture_cache/texture_cache_base.h

4
src/video_core/renderer_vulkan/vk_rasterizer.cpp

@ -1001,8 +1001,8 @@ void RasterizerVulkan::LoadDiskResources(u64 title_id, std::stop_token stop_load
void RasterizerVulkan::FlushWork() {
#ifdef __ANDROID__
static constexpr u32 DRAWS_TO_DISPATCH = 512;
static constexpr u32 CHECK_MASK = 31;
static constexpr u32 DRAWS_TO_DISPATCH = 1024;
static constexpr u32 CHECK_MASK = 63;
#else
static constexpr u32 DRAWS_TO_DISPATCH = 4096;
static constexpr u32 CHECK_MASK = 31;

2
src/video_core/renderer_vulkan/vk_scheduler.h

@ -266,7 +266,7 @@ private:
size_t command_offset = 0;
bool submit = false;
alignas(std::max_align_t) std::array<u8, 0x8000> data{};
alignas(std::max_align_t) std::array<u8, 0x10000> data{};
};
struct State {

5
src/video_core/texture_cache/texture_cache.h

@ -207,7 +207,10 @@ u64 TextureCache<P>::ReclaimMemory(u64 target_bytes, bool allow_download) {
frame_tick > RECLAIM_GUARD_FRAMES ? frame_tick - RECLAIM_GUARD_FRAMES : 0;
lru_cache.ForEachItemBelow(cold_tick, evict);
if (freed == 0) {
lru_cache.ForEachItemBelow(frame_tick > 0 ? frame_tick - 1 : 0, evict);
const u64 urgent_tick = frame_tick > RECLAIM_URGENT_GUARD_FRAMES
? frame_tick - RECLAIM_URGENT_GUARD_FRAMES
: 0;
lru_cache.ForEachItemBelow(urgent_tick, evict);
}
in_reclaim = false;
usage_refresh_countdown = 0;

9
src/video_core/texture_cache/texture_cache_base.h

@ -113,15 +113,16 @@ class TextureCache : public VideoCommon::ChannelSetupCaches<TextureCacheChannelI
static constexpr size_t UNSET_CHANNEL{(std::numeric_limits<size_t>::max)()};
#ifdef YUZU_LEGACY
static constexpr u64 RECLAIM_HEADROOM = 384_MiB;
static constexpr u64 RECLAIM_HEADROOM = 192_MiB;
#else
static constexpr u64 RECLAIM_HEADROOM = 512_MiB;
static constexpr u64 RECLAIM_HEADROOM = 256_MiB;
#endif
static constexpr u64 FALLBACK_MEMORY_BUDGET = 2_GiB;
static constexpr u32 USAGE_REFRESH_INTERVAL = 16;
static constexpr u64 RECLAIM_GUARD_FRAMES = 8;
static constexpr u64 RECLAIM_TARGET_PERCENT = 95;
static constexpr u64 RECLAIM_GUARD_FRAMES = 16;
static constexpr u64 RECLAIM_URGENT_GUARD_FRAMES = 4;
static constexpr u64 RECLAIM_TARGET_PERCENT = 90;
using Runtime = typename P::Runtime;
using Image = typename P::Image;

Loading…
Cancel
Save