diff --git a/src/xenia/gpu/vulkan/render_cache.cc b/src/xenia/gpu/vulkan/render_cache.cc index a961ef7c4..311a64fd0 100644 --- a/src/xenia/gpu/vulkan/render_cache.cc +++ b/src/xenia/gpu/vulkan/render_cache.cc @@ -35,12 +35,9 @@ VkFormat ColorRenderTargetFormatToVkFormat(ColorRenderTargetFormat format) { return VK_FORMAT_R8G8B8A8_UNORM; case ColorRenderTargetFormat::k_2_10_10_10: case ColorRenderTargetFormat::k_2_10_10_10_unknown: - return VK_FORMAT_A2R10G10B10_UNORM_PACK32; case ColorRenderTargetFormat::k_2_10_10_10_FLOAT: case ColorRenderTargetFormat::k_2_10_10_10_FLOAT_unknown: - // WARNING: this is wrong, most likely - no float form in vulkan? - XELOGW("Unsupported EDRAM format k_2_10_10_10_FLOAT used"); - return VK_FORMAT_A2R10G10B10_UNORM_PACK32; + return VK_FORMAT_R16G16B16A16_SFLOAT; case ColorRenderTargetFormat::k_16_16: return VK_FORMAT_R16G16_UNORM; case ColorRenderTargetFormat::k_16_16_16_16: @@ -810,11 +807,12 @@ bool RenderCache::ParseConfiguration(RenderConfiguration* config) { case ColorRenderTargetFormat::k_8_8_8_8_GAMMA: config->color[i].format = ColorRenderTargetFormat::k_8_8_8_8; break; + case ColorRenderTargetFormat::k_2_10_10_10: + case ColorRenderTargetFormat::k_2_10_10_10_FLOAT: case ColorRenderTargetFormat::k_2_10_10_10_unknown: - config->color[i].format = ColorRenderTargetFormat::k_2_10_10_10; - break; case ColorRenderTargetFormat::k_2_10_10_10_FLOAT_unknown: - config->color[i].format = ColorRenderTargetFormat::k_2_10_10_10_FLOAT; + config->color[i].format = + ColorRenderTargetFormat::k_16_16_16_16_FLOAT; break; default: // The rest are good @@ -972,11 +970,11 @@ CachedTileView* RenderCache::FindTileView(uint32_t base, uint32_t pitch, case ColorRenderTargetFormat::k_8_8_8_8_GAMMA: format = uint32_t(ColorRenderTargetFormat::k_8_8_8_8); break; + case ColorRenderTargetFormat::k_2_10_10_10: + case ColorRenderTargetFormat::k_2_10_10_10_FLOAT: case ColorRenderTargetFormat::k_2_10_10_10_unknown: - format = uint32_t(ColorRenderTargetFormat::k_2_10_10_10); - break; case ColorRenderTargetFormat::k_2_10_10_10_FLOAT_unknown: - format = uint32_t(ColorRenderTargetFormat::k_2_10_10_10_FLOAT); + format = uint32_t(ColorRenderTargetFormat::k_16_16_16_16_FLOAT); break; default: // Other types as-is.