early-access version 3836
This commit is contained in:
@@ -83,6 +83,14 @@ bool DmaPusher::Step() {
|
||||
dma_state.dma_get, command_list_header.size * sizeof(u32));
|
||||
}
|
||||
}
|
||||
if (Settings::IsGPULevelHigh() && dma_state.method < MacroRegistersStart) {
|
||||
Core::Memory::GpuGuestMemory<Tegra::CommandHeader,
|
||||
Core::Memory::GuestMemoryFlags::SafeRead>
|
||||
headers(memory_manager, dma_state.dma_get, command_list_header.size,
|
||||
&command_headers);
|
||||
ProcessCommands(headers);
|
||||
return true;
|
||||
}
|
||||
Core::Memory::GpuGuestMemory<Tegra::CommandHeader,
|
||||
Core::Memory::GuestMemoryFlags::UnsafeRead>
|
||||
headers(memory_manager, dma_state.dma_get, command_list_header.size, &command_headers);
|
||||
|
||||
@@ -1193,6 +1193,12 @@ void TextureCacheRuntime::CopyImage(Image& dst, Image& src,
|
||||
const VkImageAspectFlags aspect_mask = dst.AspectMask();
|
||||
ASSERT(aspect_mask == src.AspectMask());
|
||||
|
||||
if (VideoCore::Surface::BytesPerBlock(src.info.format) !=
|
||||
VideoCore::Surface::BytesPerBlock(dst.info.format)) {
|
||||
ReinterpretImage(dst, src, copies);
|
||||
return;
|
||||
}
|
||||
|
||||
std::ranges::transform(copies, vk_copies.begin(), [aspect_mask](const auto& copy) {
|
||||
return MakeImageCopy(copy, aspect_mask);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user