mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2026-08-27 01:17:40 +00:00
[TEST] debug MSAA texture missing handling
This commit is contained in:
@@ -1670,7 +1670,14 @@ void TextureCacheRuntime::CopyImageMSAA(Image& dst, Image& src,
|
|||||||
const u32 num_samples = msaa_to_non_msaa ? src.info.num_samples : dst.info.num_samples;
|
const u32 num_samples = msaa_to_non_msaa ? src.info.num_samples : dst.info.num_samples;
|
||||||
if (dst.AspectMask() != VK_IMAGE_ASPECT_COLOR_BIT ||
|
if (dst.AspectMask() != VK_IMAGE_ASPECT_COLOR_BIT ||
|
||||||
VideoCore::Surface::IsPixelFormatInteger(dst.info.format)) {
|
VideoCore::Surface::IsPixelFormatInteger(dst.info.format)) {
|
||||||
UNIMPLEMENTED_MSG("Copying images with different samples is not supported.");
|
const u64 key{(static_cast<u64>(dst.AspectMask()) << 32) |
|
||||||
|
static_cast<u64>(dst.info.format)};
|
||||||
|
if (unsupported_msaa_resolves.insert(key).second) {
|
||||||
|
LOG_WARNING(Render_Vulkan,
|
||||||
|
"MSAA resolve unsupported: format={}, aspect={:#x}, samples {}->{}",
|
||||||
|
dst.info.format, dst.AspectMask(), src.info.num_samples,
|
||||||
|
dst.info.num_samples);
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (ENABLE_MSAA_RESOLVE_CONSUME && msaa_to_non_msaa && copies.size() == 1 &&
|
if (ENABLE_MSAA_RESOLVE_CONSUME && msaa_to_non_msaa && copies.size() == 1 &&
|
||||||
|
|||||||
@@ -168,6 +168,7 @@ public:
|
|||||||
std::array<vk::Buffer, indexing_slots> buffers{};
|
std::array<vk::Buffer, indexing_slots> buffers{};
|
||||||
std::vector<std::pair<u64, vk::Image>> pending_msaa_images;
|
std::vector<std::pair<u64, vk::Image>> pending_msaa_images;
|
||||||
ankerl::unordered_dense::map<VkImage, ResolveShadow> resolve_shadows;
|
ankerl::unordered_dense::map<VkImage, ResolveShadow> resolve_shadows;
|
||||||
|
ankerl::unordered_dense::set<u64> unsupported_msaa_resolves;
|
||||||
};
|
};
|
||||||
|
|
||||||
class Framebuffer {
|
class Framebuffer {
|
||||||
|
|||||||
@@ -745,6 +745,25 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
|
|||||||
|
|
||||||
vk::Check(vmaCreateAllocator(&allocator_info, &allocator));
|
vk::Check(vmaCreateAllocator(&allocator_info, &allocator));
|
||||||
|
|
||||||
|
{
|
||||||
|
const auto& limits = properties.properties.limits;
|
||||||
|
LOG_INFO(Render_Vulkan, "MSAA sample count support:");
|
||||||
|
LOG_INFO(Render_Vulkan, " framebufferColorSampleCounts: {:#x}",
|
||||||
|
limits.framebufferColorSampleCounts);
|
||||||
|
LOG_INFO(Render_Vulkan, " framebufferDepthSampleCounts: {:#x}",
|
||||||
|
limits.framebufferDepthSampleCounts);
|
||||||
|
LOG_INFO(Render_Vulkan, " framebufferStencilSampleCounts: {:#x}",
|
||||||
|
limits.framebufferStencilSampleCounts);
|
||||||
|
LOG_INFO(Render_Vulkan, " sampledImageColorSampleCounts: {:#x}",
|
||||||
|
limits.sampledImageColorSampleCounts);
|
||||||
|
LOG_INFO(Render_Vulkan, " sampledImageDepthSampleCounts: {:#x}",
|
||||||
|
limits.sampledImageDepthSampleCounts);
|
||||||
|
LOG_INFO(Render_Vulkan, " sampledImageIntegerSampleCounts:{:#x}",
|
||||||
|
limits.sampledImageIntegerSampleCounts);
|
||||||
|
LOG_INFO(Render_Vulkan, " storageImageSampleCounts: {:#x}",
|
||||||
|
limits.storageImageSampleCounts);
|
||||||
|
}
|
||||||
|
|
||||||
// Initialize GPU logging if enabled
|
// Initialize GPU logging if enabled
|
||||||
InitializeGPULogging();
|
InitializeGPULogging();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user