mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-08-26 07:25:14 +02:00
Fix Star Ocean with MSAA enabled: don't use the blit optimization, can't blit to multisampled images.
This commit is contained in:
@@ -1525,6 +1525,10 @@ void VulkanQueueRunner::PerformBlit(const VKRStep &step, VkCommandBuffer cmd) {
|
||||
int layerCount = std::min(step.blit.src->numLayers, step.blit.dst->numLayers);
|
||||
_dbg_assert_(step.blit.src->numLayers >= step.blit.dst->numLayers);
|
||||
|
||||
// Blitting is not allowed for multisample images. You're suppose to use vkCmdResolveImage but it only goes in one direction (multi to single).
|
||||
_dbg_assert_(step.blit.src->sampleCount == VkSampleCountFlagBits::VK_SAMPLE_COUNT_1_BIT);
|
||||
_dbg_assert_(step.blit.dst->sampleCount == VkSampleCountFlagBits::VK_SAMPLE_COUNT_1_BIT);
|
||||
|
||||
VKRFramebuffer *src = step.blit.src;
|
||||
VKRFramebuffer *dst = step.blit.dst;
|
||||
|
||||
|
||||
@@ -290,6 +290,11 @@ bool FramebufferManagerCommon::PerformWriteStencilFromMemory(u32 addr, int size,
|
||||
useBlit = false;
|
||||
}
|
||||
|
||||
// Blitting to (or from) multisampled images is not allowed.
|
||||
if (dstBuffer->fbo && dstBuffer->fbo->MultiSampleLevel() != 0) {
|
||||
useBlit = false;
|
||||
}
|
||||
|
||||
u16 w = useBlit ? dstBuffer->width : dstBuffer->renderWidth;
|
||||
u16 h = useBlit ? dstBuffer->height : dstBuffer->renderHeight;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user