|
|
|
@ -1782,17 +1782,17 @@ void Framebuffer::CreateFramebuffer(TextureCacheRuntime& runtime,
|
|
|
|
|
|
|
|
|
|
const auto& resolution = runtime.resolution;
|
|
|
|
|
|
|
|
|
|
u32 width = 0;
|
|
|
|
|
u32 height = 0;
|
|
|
|
|
u32 width = std::numeric_limits<u32>::max();
|
|
|
|
|
u32 height = std::numeric_limits<u32>::max();
|
|
|
|
|
for (size_t index = 0; index < NUM_RT; ++index) {
|
|
|
|
|
const ImageView* const color_buffer = color_buffers[index];
|
|
|
|
|
if (!color_buffer) {
|
|
|
|
|
renderpass_key.color_formats[index] = PixelFormat::Invalid;
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
width = std::max(width, is_rescaled ? resolution.ScaleUp(color_buffer->size.width)
|
|
|
|
|
width = std::min(width, is_rescaled ? resolution.ScaleUp(color_buffer->size.width)
|
|
|
|
|
: color_buffer->size.width);
|
|
|
|
|
height = std::max(height, is_rescaled ? resolution.ScaleUp(color_buffer->size.height)
|
|
|
|
|
height = std::min(height, is_rescaled ? resolution.ScaleUp(color_buffer->size.height)
|
|
|
|
|
: color_buffer->size.height);
|
|
|
|
|
attachments.push_back(color_buffer->RenderTarget());
|
|
|
|
|
renderpass_key.color_formats[index] = color_buffer->format;
|
|
|
|
@ -1804,9 +1804,9 @@ void Framebuffer::CreateFramebuffer(TextureCacheRuntime& runtime,
|
|
|
|
|
}
|
|
|
|
|
const size_t num_colors = attachments.size();
|
|
|
|
|
if (depth_buffer) {
|
|
|
|
|
width = std::max(width, is_rescaled ? resolution.ScaleUp(depth_buffer->size.width)
|
|
|
|
|
width = std::min(width, is_rescaled ? resolution.ScaleUp(depth_buffer->size.width)
|
|
|
|
|
: depth_buffer->size.width);
|
|
|
|
|
height = std::max(height, is_rescaled ? resolution.ScaleUp(depth_buffer->size.height)
|
|
|
|
|
height = std::min(height, is_rescaled ? resolution.ScaleUp(depth_buffer->size.height)
|
|
|
|
|
: depth_buffer->size.height);
|
|
|
|
|
attachments.push_back(depth_buffer->RenderTarget());
|
|
|
|
|
renderpass_key.depth_format = depth_buffer->format;
|
|
|
|
|