diff options
| -rw-r--r-- | src/video_core/buffer_cache/buffer_cache.h | 3 | ||||
| -rw-r--r-- | src/video_core/engines/engine_upload.cpp | 2 | ||||
| -rw-r--r-- | src/video_core/engines/maxwell_3d.h | 2 | ||||
| -rw-r--r-- | src/video_core/gpu.cpp | 6 | ||||
| -rw-r--r-- | src/video_core/rasterizer_interface.h | 4 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer.cpp | 4 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer.h | 3 | ||||
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_rasterizer.cpp | 4 | ||||
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_rasterizer.h | 3 |
9 files changed, 16 insertions, 15 deletions
diff --git a/src/video_core/buffer_cache/buffer_cache.h b/src/video_core/buffer_cache/buffer_cache.h index 792c3820a..fa26eb8b0 100644 --- a/src/video_core/buffer_cache/buffer_cache.h +++ b/src/video_core/buffer_cache/buffer_cache.h | |||
| @@ -1661,6 +1661,7 @@ bool BufferCache<P>::InlineMemory(VAddr dest_address, size_t copy_size, | |||
| 1661 | 1661 | ||
| 1662 | const IntervalType subtract_interval{dest_address, dest_address + copy_size}; | 1662 | const IntervalType subtract_interval{dest_address, dest_address + copy_size}; |
| 1663 | ClearDownload(subtract_interval); | 1663 | ClearDownload(subtract_interval); |
| 1664 | common_ranges.subtract(subtract_interval); | ||
| 1664 | 1665 | ||
| 1665 | BufferId buffer_id = FindBuffer(dest_address, static_cast<u32>(copy_size)); | 1666 | BufferId buffer_id = FindBuffer(dest_address, static_cast<u32>(copy_size)); |
| 1666 | auto& buffer = slot_buffers[buffer_id]; | 1667 | auto& buffer = slot_buffers[buffer_id]; |
| @@ -1677,7 +1678,7 @@ bool BufferCache<P>::InlineMemory(VAddr dest_address, size_t copy_size, | |||
| 1677 | std::memcpy(src_pointer, inlined_buffer.data(), copy_size); | 1678 | std::memcpy(src_pointer, inlined_buffer.data(), copy_size); |
| 1678 | runtime.CopyBuffer(buffer, upload_staging.buffer, copies); | 1679 | runtime.CopyBuffer(buffer, upload_staging.buffer, copies); |
| 1679 | } else { | 1680 | } else { |
| 1680 | buffer.ImmediateUpload(buffer.Offset(dest_address), inlined_buffer); | 1681 | buffer.ImmediateUpload(buffer.Offset(dest_address), inlined_buffer.first(copy_size)); |
| 1681 | } | 1682 | } |
| 1682 | 1683 | ||
| 1683 | return true; | 1684 | return true; |
diff --git a/src/video_core/engines/engine_upload.cpp b/src/video_core/engines/engine_upload.cpp index 4eb9a094d..351b110fe 100644 --- a/src/video_core/engines/engine_upload.cpp +++ b/src/video_core/engines/engine_upload.cpp | |||
| @@ -37,7 +37,7 @@ void State::ProcessData(const u32 data, const bool is_last_call) { | |||
| 37 | } | 37 | } |
| 38 | const GPUVAddr address{regs.dest.Address()}; | 38 | const GPUVAddr address{regs.dest.Address()}; |
| 39 | if (is_linear) { | 39 | if (is_linear) { |
| 40 | rasterizer->AccelerateInline2Memory(address, copy_size, inner_buffer); | 40 | rasterizer->AccelerateInlineToMemory(address, copy_size, inner_buffer); |
| 41 | } else { | 41 | } else { |
| 42 | UNIMPLEMENTED_IF(regs.dest.z != 0); | 42 | UNIMPLEMENTED_IF(regs.dest.z != 0); |
| 43 | UNIMPLEMENTED_IF(regs.dest.depth != 1); | 43 | UNIMPLEMENTED_IF(regs.dest.depth != 1); |
diff --git a/src/video_core/engines/maxwell_3d.h b/src/video_core/engines/maxwell_3d.h index e0a435c45..dc9df6c8b 100644 --- a/src/video_core/engines/maxwell_3d.h +++ b/src/video_core/engines/maxwell_3d.h | |||
| @@ -1557,7 +1557,7 @@ private: | |||
| 1557 | 1557 | ||
| 1558 | static constexpr u32 null_cb_data = 0xFFFFFFFF; | 1558 | static constexpr u32 null_cb_data = 0xFFFFFFFF; |
| 1559 | struct CBDataState { | 1559 | struct CBDataState { |
| 1560 | static constexpr size_t inline_size = 0x8000; | 1560 | static constexpr size_t inline_size = 0x4000; |
| 1561 | std::array<std::array<u32, inline_size>, 16> buffer; | 1561 | std::array<std::array<u32, inline_size>, 16> buffer; |
| 1562 | u32 current{null_cb_data}; | 1562 | u32 current{null_cb_data}; |
| 1563 | u32 id{null_cb_data}; | 1563 | u32 id{null_cb_data}; |
diff --git a/src/video_core/gpu.cpp b/src/video_core/gpu.cpp index 191b97dbf..ba9ba082f 100644 --- a/src/video_core/gpu.cpp +++ b/src/video_core/gpu.cpp | |||
| @@ -504,14 +504,12 @@ struct GPU::Impl { | |||
| 504 | case BufferMethods::SemaphoreAddressLow: | 504 | case BufferMethods::SemaphoreAddressLow: |
| 505 | case BufferMethods::SemaphoreSequence: | 505 | case BufferMethods::SemaphoreSequence: |
| 506 | break; | 506 | break; |
| 507 | case BufferMethods::UnkCacheFlush: { | 507 | case BufferMethods::UnkCacheFlush: |
| 508 | rasterizer->SyncGuestHost(); | 508 | rasterizer->SyncGuestHost(); |
| 509 | break; | 509 | break; |
| 510 | } | 510 | case BufferMethods::WrcacheFlush: |
| 511 | case BufferMethods::WrcacheFlush: { | ||
| 512 | rasterizer->SignalReference(); | 511 | rasterizer->SignalReference(); |
| 513 | break; | 512 | break; |
| 514 | } | ||
| 515 | case BufferMethods::FenceValue: | 513 | case BufferMethods::FenceValue: |
| 516 | break; | 514 | break; |
| 517 | case BufferMethods::RefCnt: | 515 | case BufferMethods::RefCnt: |
diff --git a/src/video_core/rasterizer_interface.h b/src/video_core/rasterizer_interface.h index 78e6e566f..1f1f12291 100644 --- a/src/video_core/rasterizer_interface.h +++ b/src/video_core/rasterizer_interface.h | |||
| @@ -123,8 +123,8 @@ public: | |||
| 123 | 123 | ||
| 124 | [[nodiscard]] virtual Tegra::Engines::AccelerateDMAInterface& AccessAccelerateDMA() = 0; | 124 | [[nodiscard]] virtual Tegra::Engines::AccelerateDMAInterface& AccessAccelerateDMA() = 0; |
| 125 | 125 | ||
| 126 | virtual void AccelerateInline2Memory(GPUVAddr address, size_t copy_size, | 126 | virtual void AccelerateInlineToMemory(GPUVAddr address, size_t copy_size, |
| 127 | std::span<u8> memory) = 0; | 127 | std::span<u8> memory) = 0; |
| 128 | 128 | ||
| 129 | /// Attempt to use a faster method to display the framebuffer to screen | 129 | /// Attempt to use a faster method to display the framebuffer to screen |
| 130 | [[nodiscard]] virtual bool AccelerateDisplay(const Tegra::FramebufferConfig& config, | 130 | [[nodiscard]] virtual bool AccelerateDisplay(const Tegra::FramebufferConfig& config, |
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp index 57a6ff752..142412a8e 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp | |||
| @@ -484,8 +484,8 @@ Tegra::Engines::AccelerateDMAInterface& RasterizerOpenGL::AccessAccelerateDMA() | |||
| 484 | return accelerate_dma; | 484 | return accelerate_dma; |
| 485 | } | 485 | } |
| 486 | 486 | ||
| 487 | void RasterizerOpenGL::AccelerateInline2Memory(GPUVAddr address, size_t copy_size, | 487 | void RasterizerOpenGL::AccelerateInlineToMemory(GPUVAddr address, size_t copy_size, |
| 488 | std::span<u8> memory) { | 488 | std::span<u8> memory) { |
| 489 | auto cpu_addr = gpu_memory.GpuToCpuAddress(address); | 489 | auto cpu_addr = gpu_memory.GpuToCpuAddress(address); |
| 490 | if (!cpu_addr) [[unlikely]] { | 490 | if (!cpu_addr) [[unlikely]] { |
| 491 | gpu_memory.WriteBlock(address, memory.data(), copy_size); | 491 | gpu_memory.WriteBlock(address, memory.data(), copy_size); |
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.h b/src/video_core/renderer_opengl/gl_rasterizer.h index dd97c279b..98f6fd342 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.h +++ b/src/video_core/renderer_opengl/gl_rasterizer.h | |||
| @@ -106,7 +106,8 @@ public: | |||
| 106 | const Tegra::Engines::Fermi2D::Surface& dst, | 106 | const Tegra::Engines::Fermi2D::Surface& dst, |
| 107 | const Tegra::Engines::Fermi2D::Config& copy_config) override; | 107 | const Tegra::Engines::Fermi2D::Config& copy_config) override; |
| 108 | Tegra::Engines::AccelerateDMAInterface& AccessAccelerateDMA() override; | 108 | Tegra::Engines::AccelerateDMAInterface& AccessAccelerateDMA() override; |
| 109 | void AccelerateInline2Memory(GPUVAddr address, size_t copy_size, std::span<u8> memory) override; | 109 | void AccelerateInlineToMemory(GPUVAddr address, size_t copy_size, |
| 110 | std::span<u8> memory) override; | ||
| 110 | bool AccelerateDisplay(const Tegra::FramebufferConfig& config, VAddr framebuffer_addr, | 111 | bool AccelerateDisplay(const Tegra::FramebufferConfig& config, VAddr framebuffer_addr, |
| 111 | u32 pixel_stride) override; | 112 | u32 pixel_stride) override; |
| 112 | void LoadDiskResources(u64 title_id, std::stop_token stop_loading, | 113 | void LoadDiskResources(u64 title_id, std::stop_token stop_loading, |
diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.cpp b/src/video_core/renderer_vulkan/vk_rasterizer.cpp index 65c5fd63f..2227d9197 100644 --- a/src/video_core/renderer_vulkan/vk_rasterizer.cpp +++ b/src/video_core/renderer_vulkan/vk_rasterizer.cpp | |||
| @@ -548,8 +548,8 @@ Tegra::Engines::AccelerateDMAInterface& RasterizerVulkan::AccessAccelerateDMA() | |||
| 548 | return accelerate_dma; | 548 | return accelerate_dma; |
| 549 | } | 549 | } |
| 550 | 550 | ||
| 551 | void RasterizerVulkan::AccelerateInline2Memory(GPUVAddr address, size_t copy_size, | 551 | void RasterizerVulkan::AccelerateInlineToMemory(GPUVAddr address, size_t copy_size, |
| 552 | std::span<u8> memory) { | 552 | std::span<u8> memory) { |
| 553 | auto cpu_addr = gpu_memory.GpuToCpuAddress(address); | 553 | auto cpu_addr = gpu_memory.GpuToCpuAddress(address); |
| 554 | if (!cpu_addr) [[unlikely]] { | 554 | if (!cpu_addr) [[unlikely]] { |
| 555 | gpu_memory.WriteBlock(address, memory.data(), copy_size); | 555 | gpu_memory.WriteBlock(address, memory.data(), copy_size); |
diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.h b/src/video_core/renderer_vulkan/vk_rasterizer.h index bbd79aae4..5af2e275b 100644 --- a/src/video_core/renderer_vulkan/vk_rasterizer.h +++ b/src/video_core/renderer_vulkan/vk_rasterizer.h | |||
| @@ -99,7 +99,8 @@ public: | |||
| 99 | const Tegra::Engines::Fermi2D::Surface& dst, | 99 | const Tegra::Engines::Fermi2D::Surface& dst, |
| 100 | const Tegra::Engines::Fermi2D::Config& copy_config) override; | 100 | const Tegra::Engines::Fermi2D::Config& copy_config) override; |
| 101 | Tegra::Engines::AccelerateDMAInterface& AccessAccelerateDMA() override; | 101 | Tegra::Engines::AccelerateDMAInterface& AccessAccelerateDMA() override; |
| 102 | void AccelerateInline2Memory(GPUVAddr address, size_t copy_size, std::span<u8> memory) override; | 102 | void AccelerateInlineToMemory(GPUVAddr address, size_t copy_size, |
| 103 | std::span<u8> memory) override; | ||
| 103 | bool AccelerateDisplay(const Tegra::FramebufferConfig& config, VAddr framebuffer_addr, | 104 | bool AccelerateDisplay(const Tegra::FramebufferConfig& config, VAddr framebuffer_addr, |
| 104 | u32 pixel_stride) override; | 105 | u32 pixel_stride) override; |
| 105 | void LoadDiskResources(u64 title_id, std::stop_token stop_loading, | 106 | void LoadDiskResources(u64 title_id, std::stop_token stop_loading, |