Core: Eliminate core/memory dependancies.
This commit is contained in:
		@@ -15,6 +15,10 @@
 | 
			
		||||
 | 
			
		||||
namespace Core {
 | 
			
		||||
 | 
			
		||||
constexpr size_t DEVICE_PAGEBITS = 12ULL;
 | 
			
		||||
constexpr size_t DEVICE_PAGESIZE = 1ULL << DEVICE_PAGEBITS;
 | 
			
		||||
constexpr size_t DEVICE_PAGEMASK = DEVICE_PAGESIZE - 1ULL;
 | 
			
		||||
 | 
			
		||||
class DeviceMemory;
 | 
			
		||||
 | 
			
		||||
namespace Memory {
 | 
			
		||||
 
 | 
			
		||||
@@ -10,7 +10,7 @@
 | 
			
		||||
#include <utility>
 | 
			
		||||
#include <vector>
 | 
			
		||||
 | 
			
		||||
#include "core/memory.h"
 | 
			
		||||
#include "core/device_memory_manager.h"
 | 
			
		||||
 | 
			
		||||
namespace Core {
 | 
			
		||||
 | 
			
		||||
@@ -80,7 +80,7 @@ private:
 | 
			
		||||
        u32 mask;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    constexpr static size_t page_bits = Memory::YUZU_PAGEBITS - 1;
 | 
			
		||||
    constexpr static size_t page_bits = DEVICE_PAGEBITS - 1;
 | 
			
		||||
    constexpr static size_t page_size = 1ULL << page_bits;
 | 
			
		||||
    constexpr static size_t page_mask = page_size - 1;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -24,9 +24,8 @@ constexpr VAddr c = 16 * HIGH_PAGE_SIZE;
 | 
			
		||||
class RasterizerInterface {
 | 
			
		||||
public:
 | 
			
		||||
    void UpdatePagesCachedCount(VAddr addr, u64 size, int delta) {
 | 
			
		||||
        const u64 page_start{addr >> Core::Memory::YUZU_PAGEBITS};
 | 
			
		||||
        const u64 page_end{(addr + size + Core::Memory::YUZU_PAGESIZE - 1) >>
 | 
			
		||||
                           Core::Memory::YUZU_PAGEBITS};
 | 
			
		||||
        const u64 page_start{addr >> Core::DEVICE_PAGEBITS};
 | 
			
		||||
        const u64 page_end{(addr + size + Core::DEVICE_PAGESIZE - 1) >> Core::DEVICE_PAGEBITS};
 | 
			
		||||
        for (u64 page = page_start; page < page_end; ++page) {
 | 
			
		||||
            int& value = page_table[page];
 | 
			
		||||
            value += delta;
 | 
			
		||||
@@ -40,7 +39,7 @@ public:
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    [[nodiscard]] int Count(VAddr addr) const noexcept {
 | 
			
		||||
        const auto it = page_table.find(addr >> Core::Memory::YUZU_PAGEBITS);
 | 
			
		||||
        const auto it = page_table.find(addr >> Core::DEVICE_PAGEBITS);
 | 
			
		||||
        return it == page_table.end() ? 0 : it->second;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -13,7 +13,7 @@
 | 
			
		||||
 | 
			
		||||
namespace VideoCommon {
 | 
			
		||||
 | 
			
		||||
using Core::Memory::YUZU_PAGESIZE;
 | 
			
		||||
using Core::DEVICE_PAGESIZE;
 | 
			
		||||
 | 
			
		||||
template <class P>
 | 
			
		||||
BufferCache<P>::BufferCache(Tegra::MaxwellDeviceMemoryManager& device_memory_, Runtime& runtime_)
 | 
			
		||||
@@ -120,8 +120,8 @@ void BufferCache<P>::CachedWriteMemory(DAddr device_addr, u64 size) {
 | 
			
		||||
    if (!is_dirty) {
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
    DAddr aligned_start = Common::AlignDown(device_addr, YUZU_PAGESIZE);
 | 
			
		||||
    DAddr aligned_end = Common::AlignUp(device_addr + size, YUZU_PAGESIZE);
 | 
			
		||||
    DAddr aligned_start = Common::AlignDown(device_addr, DEVICE_PAGESIZE);
 | 
			
		||||
    DAddr aligned_end = Common::AlignUp(device_addr + size, DEVICE_PAGESIZE);
 | 
			
		||||
    if (!IsRegionGpuModified(aligned_start, aligned_end - aligned_start)) {
 | 
			
		||||
        WriteMemory(device_addr, size);
 | 
			
		||||
        return;
 | 
			
		||||
@@ -151,9 +151,8 @@ std::optional<VideoCore::RasterizerDownloadArea> BufferCache<P>::GetFlushArea(DA
 | 
			
		||||
                                                                              u64 size) {
 | 
			
		||||
    std::optional<VideoCore::RasterizerDownloadArea> area{};
 | 
			
		||||
    area.emplace();
 | 
			
		||||
    DAddr device_addr_start_aligned = Common::AlignDown(device_addr, Core::Memory::YUZU_PAGESIZE);
 | 
			
		||||
    DAddr device_addr_end_aligned =
 | 
			
		||||
        Common::AlignUp(device_addr + size, Core::Memory::YUZU_PAGESIZE);
 | 
			
		||||
    DAddr device_addr_start_aligned = Common::AlignDown(device_addr, Core::DEVICE_PAGESIZE);
 | 
			
		||||
    DAddr device_addr_end_aligned = Common::AlignUp(device_addr + size, Core::DEVICE_PAGESIZE);
 | 
			
		||||
    area->start_address = device_addr_start_aligned;
 | 
			
		||||
    area->end_address = device_addr_end_aligned;
 | 
			
		||||
    if (memory_tracker.IsRegionPreflushable(device_addr, size)) {
 | 
			
		||||
@@ -1354,10 +1353,10 @@ typename BufferCache<P>::OverlapResult BufferCache<P>::ResolveOverlaps(DAddr dev
 | 
			
		||||
    int stream_score = 0;
 | 
			
		||||
    bool has_stream_leap = false;
 | 
			
		||||
    auto expand_begin = [&](DAddr add_value) {
 | 
			
		||||
        static constexpr DAddr min_page = CACHING_PAGESIZE + Core::Memory::YUZU_PAGESIZE;
 | 
			
		||||
        static constexpr DAddr min_page = CACHING_PAGESIZE + Core::DEVICE_PAGESIZE;
 | 
			
		||||
        if (add_value > begin - min_page) {
 | 
			
		||||
            begin = min_page;
 | 
			
		||||
            device_addr = Core::Memory::YUZU_PAGESIZE;
 | 
			
		||||
            device_addr = Core::DEVICE_PAGESIZE;
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
        begin -= add_value;
 | 
			
		||||
@@ -1587,8 +1586,8 @@ bool BufferCache<P>::InlineMemory(DAddr dest_address, size_t copy_size,
 | 
			
		||||
    if (!is_dirty) {
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
    DAddr aligned_start = Common::AlignDown(dest_address, YUZU_PAGESIZE);
 | 
			
		||||
    DAddr aligned_end = Common::AlignUp(dest_address + copy_size, YUZU_PAGESIZE);
 | 
			
		||||
    DAddr aligned_start = Common::AlignDown(dest_address, DEVICE_PAGESIZE);
 | 
			
		||||
    DAddr aligned_end = Common::AlignUp(dest_address + copy_size, DEVICE_PAGESIZE);
 | 
			
		||||
    if (!IsRegionGpuModified(aligned_start, aligned_end - aligned_start)) {
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
@@ -1786,7 +1785,7 @@ Binding BufferCache<P>::StorageBufferBinding(GPUVAddr ssbo_addr, u32 cbuf_index,
 | 
			
		||||
    ASSERT_MSG(device_addr, "Unaligned storage buffer address not found for cbuf index {}",
 | 
			
		||||
               cbuf_index);
 | 
			
		||||
    // The end address used for size calculation does not need to be aligned
 | 
			
		||||
    const DAddr cpu_end = Common::AlignUp(*device_addr + size, Core::Memory::YUZU_PAGESIZE);
 | 
			
		||||
    const DAddr cpu_end = Common::AlignUp(*device_addr + size, Core::DEVICE_PAGESIZE);
 | 
			
		||||
 | 
			
		||||
    const Binding binding{
 | 
			
		||||
        .device_addr = *aligned_device_addr,
 | 
			
		||||
 
 | 
			
		||||
@@ -449,8 +449,8 @@ private:
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    static bool IsRangeGranular(DAddr device_addr, size_t size) {
 | 
			
		||||
        return (device_addr & ~Core::Memory::YUZU_PAGEMASK) ==
 | 
			
		||||
               ((device_addr + size) & ~Core::Memory::YUZU_PAGEMASK);
 | 
			
		||||
        return (device_addr & ~Core::DEVICE_PAGEMASK) ==
 | 
			
		||||
               ((device_addr + size) & ~Core::DEVICE_PAGEMASK);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void RunGarbageCollector();
 | 
			
		||||
 
 | 
			
		||||
@@ -13,12 +13,12 @@
 | 
			
		||||
#include "common/common_funcs.h"
 | 
			
		||||
#include "common/common_types.h"
 | 
			
		||||
#include "common/div_ceil.h"
 | 
			
		||||
#include "core/memory.h"
 | 
			
		||||
#include "video_core/host1x/gpu_device_memory_manager.h"
 | 
			
		||||
 | 
			
		||||
namespace VideoCommon {
 | 
			
		||||
 | 
			
		||||
constexpr u64 PAGES_PER_WORD = 64;
 | 
			
		||||
constexpr u64 BYTES_PER_PAGE = Core::Memory::YUZU_PAGESIZE;
 | 
			
		||||
constexpr u64 BYTES_PER_PAGE = Core::DEVICE_PAGESIZE;
 | 
			
		||||
constexpr u64 BYTES_PER_WORD = PAGES_PER_WORD * BYTES_PER_PAGE;
 | 
			
		||||
 | 
			
		||||
enum class Type {
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,6 @@
 | 
			
		||||
#include "common/settings.h"
 | 
			
		||||
#include "core/core.h"
 | 
			
		||||
#include "core/core_timing.h"
 | 
			
		||||
#include "core/memory.h"
 | 
			
		||||
#include "video_core/dirty_flags.h"
 | 
			
		||||
#include "video_core/engines/draw_manager.h"
 | 
			
		||||
#include "video_core/engines/maxwell_3d.h"
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,6 @@
 | 
			
		||||
#include "common/polyfill_ranges.h"
 | 
			
		||||
#include "common/settings.h"
 | 
			
		||||
#include "core/core.h"
 | 
			
		||||
#include "core/memory.h"
 | 
			
		||||
#include "video_core/engines/maxwell_3d.h"
 | 
			
		||||
#include "video_core/engines/maxwell_dma.h"
 | 
			
		||||
#include "video_core/guest_memory.h"
 | 
			
		||||
 
 | 
			
		||||
@@ -606,14 +606,14 @@ bool MemoryManager::IsGranularRange(GPUVAddr gpu_addr, std::size_t size) const {
 | 
			
		||||
            const std::size_t page{(page_index & big_page_mask) + size};
 | 
			
		||||
            return page <= big_page_size;
 | 
			
		||||
        }
 | 
			
		||||
        const std::size_t page{(gpu_addr & Core::Memory::YUZU_PAGEMASK) + size};
 | 
			
		||||
        return page <= Core::Memory::YUZU_PAGESIZE;
 | 
			
		||||
        const std::size_t page{(gpu_addr & Core::DEVICE_PAGEMASK) + size};
 | 
			
		||||
        return page <= Core::DEVICE_PAGESIZE;
 | 
			
		||||
    }
 | 
			
		||||
    if (GetEntry<false>(gpu_addr) != EntryType::Mapped) {
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
    const std::size_t page{(gpu_addr & Core::Memory::YUZU_PAGEMASK) + size};
 | 
			
		||||
    return page <= Core::Memory::YUZU_PAGESIZE;
 | 
			
		||||
    const std::size_t page{(gpu_addr & Core::DEVICE_PAGEMASK) + size};
 | 
			
		||||
    return page <= Core::DEVICE_PAGESIZE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool MemoryManager::IsContinuousRange(GPUVAddr gpu_addr, std::size_t size) const {
 | 
			
		||||
 
 | 
			
		||||
@@ -15,7 +15,6 @@
 | 
			
		||||
#include "common/range_map.h"
 | 
			
		||||
#include "common/scratch_buffer.h"
 | 
			
		||||
#include "common/virtual_buffer.h"
 | 
			
		||||
#include "core/memory.h"
 | 
			
		||||
#include "video_core/cache_types.h"
 | 
			
		||||
#include "video_core/host1x/gpu_device_memory_manager.h"
 | 
			
		||||
#include "video_core/pte_kind.h"
 | 
			
		||||
 
 | 
			
		||||
@@ -18,7 +18,6 @@
 | 
			
		||||
 | 
			
		||||
#include "common/assert.h"
 | 
			
		||||
#include "common/settings.h"
 | 
			
		||||
#include "core/memory.h"
 | 
			
		||||
#include "video_core/control/channel_state_cache.h"
 | 
			
		||||
#include "video_core/engines/maxwell_3d.h"
 | 
			
		||||
#include "video_core/host1x/gpu_device_memory_manager.h"
 | 
			
		||||
 
 | 
			
		||||
@@ -15,7 +15,6 @@
 | 
			
		||||
#include "common/logging/log.h"
 | 
			
		||||
#include "common/scope_exit.h"
 | 
			
		||||
#include "common/settings.h"
 | 
			
		||||
#include "core/memory.h"
 | 
			
		||||
#include "video_core/engines/maxwell_3d.h"
 | 
			
		||||
#include "video_core/gpu.h"
 | 
			
		||||
#include "video_core/host1x/gpu_device_memory_manager.h"
 | 
			
		||||
@@ -253,8 +252,8 @@ void QueryCacheBase<Traits>::CounterReport(GPUVAddr addr, QueryType counter_type
 | 
			
		||||
    query_location.stream_id.Assign(static_cast<u32>(streamer_id));
 | 
			
		||||
    query_location.query_id.Assign(static_cast<u32>(new_query_id));
 | 
			
		||||
    const auto gen_caching_indexing = [](VAddr cur_addr) {
 | 
			
		||||
        return std::make_pair<u64, u32>(cur_addr >> Core::Memory::YUZU_PAGEBITS,
 | 
			
		||||
                                        static_cast<u32>(cur_addr & Core::Memory::YUZU_PAGEMASK));
 | 
			
		||||
        return std::make_pair<u64, u32>(cur_addr >> Core::DEVICE_PAGEBITS,
 | 
			
		||||
                                        static_cast<u32>(cur_addr & Core::DEVICE_PAGEMASK));
 | 
			
		||||
    };
 | 
			
		||||
    u8* pointer = impl->device_memory.template GetPointer<u8>(cpu_addr);
 | 
			
		||||
    u8* pointer_timestamp = impl->device_memory.template GetPointer<u8>(cpu_addr + 8);
 | 
			
		||||
@@ -325,8 +324,8 @@ void QueryCacheBase<Traits>::CounterReport(GPUVAddr addr, QueryType counter_type
 | 
			
		||||
template <typename Traits>
 | 
			
		||||
void QueryCacheBase<Traits>::UnregisterPending() {
 | 
			
		||||
    const auto gen_caching_indexing = [](VAddr cur_addr) {
 | 
			
		||||
        return std::make_pair<u64, u32>(cur_addr >> Core::Memory::YUZU_PAGEBITS,
 | 
			
		||||
                                        static_cast<u32>(cur_addr & Core::Memory::YUZU_PAGEMASK));
 | 
			
		||||
        return std::make_pair<u64, u32>(cur_addr >> Core::DEVICE_PAGEBITS,
 | 
			
		||||
                                        static_cast<u32>(cur_addr & Core::DEVICE_PAGEMASK));
 | 
			
		||||
    };
 | 
			
		||||
    std::scoped_lock lock(cache_mutex);
 | 
			
		||||
    for (QueryLocation loc : impl->pending_unregister) {
 | 
			
		||||
@@ -390,7 +389,7 @@ bool QueryCacheBase<Traits>::AccelerateHostConditionalRendering() {
 | 
			
		||||
        }
 | 
			
		||||
        VAddr cpu_addr = *cpu_addr_opt;
 | 
			
		||||
        std::scoped_lock lock(cache_mutex);
 | 
			
		||||
        auto it1 = cached_queries.find(cpu_addr >> Core::Memory::YUZU_PAGEBITS);
 | 
			
		||||
        auto it1 = cached_queries.find(cpu_addr >> Core::DEVICE_PAGEBITS);
 | 
			
		||||
        if (it1 == cached_queries.end()) {
 | 
			
		||||
            return VideoCommon::LookupData{
 | 
			
		||||
                .address = cpu_addr,
 | 
			
		||||
@@ -398,10 +397,10 @@ bool QueryCacheBase<Traits>::AccelerateHostConditionalRendering() {
 | 
			
		||||
            };
 | 
			
		||||
        }
 | 
			
		||||
        auto& sub_container = it1->second;
 | 
			
		||||
        auto it_current = sub_container.find(cpu_addr & Core::Memory::YUZU_PAGEMASK);
 | 
			
		||||
        auto it_current = sub_container.find(cpu_addr & Core::DEVICE_PAGEMASK);
 | 
			
		||||
 | 
			
		||||
        if (it_current == sub_container.end()) {
 | 
			
		||||
            auto it_current_2 = sub_container.find((cpu_addr & Core::Memory::YUZU_PAGEMASK) + 4);
 | 
			
		||||
            auto it_current_2 = sub_container.find((cpu_addr & Core::DEVICE_PAGEMASK) + 4);
 | 
			
		||||
            if (it_current_2 == sub_container.end()) {
 | 
			
		||||
                return VideoCommon::LookupData{
 | 
			
		||||
                    .address = cpu_addr,
 | 
			
		||||
 
 | 
			
		||||
@@ -13,7 +13,6 @@
 | 
			
		||||
#include "common/assert.h"
 | 
			
		||||
#include "common/bit_field.h"
 | 
			
		||||
#include "common/common_types.h"
 | 
			
		||||
#include "core/memory.h"
 | 
			
		||||
#include "video_core/control/channel_state_cache.h"
 | 
			
		||||
#include "video_core/host1x/gpu_device_memory_manager.h"
 | 
			
		||||
#include "video_core/query_cache/query_base.h"
 | 
			
		||||
@@ -123,10 +122,10 @@ protected:
 | 
			
		||||
        const u64 addr_begin = addr;
 | 
			
		||||
        const u64 addr_end = addr_begin + size;
 | 
			
		||||
 | 
			
		||||
        const u64 page_end = addr_end >> Core::Memory::YUZU_PAGEBITS;
 | 
			
		||||
        const u64 page_end = addr_end >> Core::DEVICE_PAGEBITS;
 | 
			
		||||
        std::scoped_lock lock(cache_mutex);
 | 
			
		||||
        for (u64 page = addr_begin >> Core::Memory::YUZU_PAGEBITS; page <= page_end; ++page) {
 | 
			
		||||
            const u64 page_start = page << Core::Memory::YUZU_PAGEBITS;
 | 
			
		||||
        for (u64 page = addr_begin >> Core::DEVICE_PAGEBITS; page <= page_end; ++page) {
 | 
			
		||||
            const u64 page_start = page << Core::DEVICE_PAGEBITS;
 | 
			
		||||
            const auto in_range = [page_start, addr_begin, addr_end](const u32 query_location) {
 | 
			
		||||
                const u64 cache_begin = page_start + query_location;
 | 
			
		||||
                const u64 cache_end = cache_begin + sizeof(u32);
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,6 @@
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
 | 
			
		||||
#include "common/alignment.h"
 | 
			
		||||
#include "core/memory.h"
 | 
			
		||||
#include "video_core/control/channel_state.h"
 | 
			
		||||
#include "video_core/host1x/host1x.h"
 | 
			
		||||
#include "video_core/memory_manager.h"
 | 
			
		||||
@@ -55,8 +54,8 @@ bool RasterizerNull::OnCPUWrite(PAddr addr, u64 size) {
 | 
			
		||||
void RasterizerNull::OnCacheInvalidation(PAddr addr, u64 size) {}
 | 
			
		||||
VideoCore::RasterizerDownloadArea RasterizerNull::GetFlushArea(PAddr addr, u64 size) {
 | 
			
		||||
    VideoCore::RasterizerDownloadArea new_area{
 | 
			
		||||
        .start_address = Common::AlignDown(addr, Core::Memory::YUZU_PAGESIZE),
 | 
			
		||||
        .end_address = Common::AlignUp(addr + size, Core::Memory::YUZU_PAGESIZE),
 | 
			
		||||
        .start_address = Common::AlignDown(addr, Core::DEVICE_PAGESIZE),
 | 
			
		||||
        .end_address = Common::AlignUp(addr + size, Core::DEVICE_PAGESIZE),
 | 
			
		||||
        .preemtive = true,
 | 
			
		||||
    };
 | 
			
		||||
    return new_area;
 | 
			
		||||
 
 | 
			
		||||
@@ -526,8 +526,8 @@ VideoCore::RasterizerDownloadArea RasterizerOpenGL::GetFlushArea(DAddr addr, u64
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    VideoCore::RasterizerDownloadArea new_area{
 | 
			
		||||
        .start_address = Common::AlignDown(addr, Core::Memory::YUZU_PAGESIZE),
 | 
			
		||||
        .end_address = Common::AlignUp(addr + size, Core::Memory::YUZU_PAGESIZE),
 | 
			
		||||
        .start_address = Common::AlignDown(addr, Core::DEVICE_PAGESIZE),
 | 
			
		||||
        .end_address = Common::AlignUp(addr + size, Core::DEVICE_PAGESIZE),
 | 
			
		||||
        .preemtive = true,
 | 
			
		||||
    };
 | 
			
		||||
    return new_area;
 | 
			
		||||
 
 | 
			
		||||
@@ -15,7 +15,6 @@
 | 
			
		||||
#include "common/telemetry.h"
 | 
			
		||||
#include "core/core_timing.h"
 | 
			
		||||
#include "core/frontend/emu_window.h"
 | 
			
		||||
#include "core/memory.h"
 | 
			
		||||
#include "core/telemetry_session.h"
 | 
			
		||||
#include "video_core/host_shaders/ffx_a_h.h"
 | 
			
		||||
#include "video_core/host_shaders/ffx_fsr1_h.h"
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,6 @@
 | 
			
		||||
#include "shader_recompiler/shader_info.h"
 | 
			
		||||
#include "video_core/renderer_vulkan/vk_texture_cache.h"
 | 
			
		||||
#include "video_core/renderer_vulkan/vk_update_descriptor.h"
 | 
			
		||||
#include "video_core/texture_cache/texture_cache.h"
 | 
			
		||||
#include "video_core/texture_cache/types.h"
 | 
			
		||||
#include "video_core/vulkan_common/vulkan_device.h"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -19,6 +19,7 @@
 | 
			
		||||
#include "video_core/renderer_vulkan/vk_texture_cache.h"
 | 
			
		||||
#include "video_core/renderer_vulkan/vk_update_descriptor.h"
 | 
			
		||||
#include "video_core/shader_notify.h"
 | 
			
		||||
#include "video_core/texture_cache/texture_cache.h"
 | 
			
		||||
#include "video_core/vulkan_common/vulkan_device.h"
 | 
			
		||||
 | 
			
		||||
#if defined(_MSC_VER) && defined(NDEBUG)
 | 
			
		||||
 
 | 
			
		||||
@@ -13,7 +13,6 @@
 | 
			
		||||
 | 
			
		||||
#include "common/bit_util.h"
 | 
			
		||||
#include "common/common_types.h"
 | 
			
		||||
#include "core/memory.h"
 | 
			
		||||
#include "video_core/engines/draw_manager.h"
 | 
			
		||||
#include "video_core/host1x/gpu_device_memory_manager.h"
 | 
			
		||||
#include "video_core/query_cache/query_cache.h"
 | 
			
		||||
@@ -1482,8 +1481,8 @@ void QueryCacheRuntime::SyncValues(std::span<SyncValuesType> values, VkBuffer ba
 | 
			
		||||
    for (auto& sync_val : values) {
 | 
			
		||||
        total_size += sync_val.size;
 | 
			
		||||
        bool found = false;
 | 
			
		||||
        DAddr base = Common::AlignDown(sync_val.address, Core::Memory::YUZU_PAGESIZE);
 | 
			
		||||
        DAddr base_end = base + Core::Memory::YUZU_PAGESIZE;
 | 
			
		||||
        DAddr base = Common::AlignDown(sync_val.address, Core::DEVICE_PAGESIZE);
 | 
			
		||||
        DAddr base_end = base + Core::DEVICE_PAGESIZE;
 | 
			
		||||
        for (size_t i = 0; i < impl->little_cache.size(); i++) {
 | 
			
		||||
            const auto set_found = [&] {
 | 
			
		||||
                impl->redirect_cache.push_back(i);
 | 
			
		||||
 
 | 
			
		||||
@@ -553,8 +553,8 @@ VideoCore::RasterizerDownloadArea RasterizerVulkan::GetFlushArea(DAddr addr, u64
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    VideoCore::RasterizerDownloadArea new_area{
 | 
			
		||||
        .start_address = Common::AlignDown(addr, Core::Memory::YUZU_PAGESIZE),
 | 
			
		||||
        .end_address = Common::AlignUp(addr + size, Core::Memory::YUZU_PAGESIZE),
 | 
			
		||||
        .start_address = Common::AlignDown(addr, Core::DEVICE_PAGESIZE),
 | 
			
		||||
        .end_address = Common::AlignUp(addr + size, Core::DEVICE_PAGESIZE),
 | 
			
		||||
        .preemtive = true,
 | 
			
		||||
    };
 | 
			
		||||
    return new_area;
 | 
			
		||||
 
 | 
			
		||||
@@ -20,7 +20,6 @@
 | 
			
		||||
#include "common/div_ceil.h"
 | 
			
		||||
#include "common/scratch_buffer.h"
 | 
			
		||||
#include "common/settings.h"
 | 
			
		||||
#include "core/memory.h"
 | 
			
		||||
#include "video_core/compatible_formats.h"
 | 
			
		||||
#include "video_core/engines/maxwell_3d.h"
 | 
			
		||||
#include "video_core/guest_memory.h"
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user