|
|
@@ -229,6 +229,8 @@ FramebufferTextureInfo RendererOpenGL::LoadFBToScreenInfo(
|
|
|
info.display_texture = framebuffer_texture.resource.handle;
|
|
|
info.width = framebuffer.width;
|
|
|
info.height = framebuffer.height;
|
|
|
+ info.scaled_width = framebuffer.width;
|
|
|
+ info.scaled_height = framebuffer.height;
|
|
|
|
|
|
// TODO(Rodrigo): Read this from HLE
|
|
|
constexpr u32 block_height_log2 = 4;
|
|
|
@@ -476,25 +478,13 @@ void RendererOpenGL::DrawScreen(const Tegra::FramebufferConfig& framebuffer,
|
|
|
|
|
|
if (anti_aliasing != Settings::AntiAliasing::None) {
|
|
|
glEnablei(GL_SCISSOR_TEST, 0);
|
|
|
- auto viewport_width = info.width;
|
|
|
- auto scissor_width = static_cast<u32>(crop.GetWidth());
|
|
|
- if (scissor_width <= 0) {
|
|
|
- scissor_width = viewport_width;
|
|
|
- }
|
|
|
- auto viewport_height = info.height;
|
|
|
- auto scissor_height = static_cast<u32>(crop.GetHeight());
|
|
|
- if (scissor_height <= 0) {
|
|
|
- scissor_height = viewport_height;
|
|
|
- }
|
|
|
-
|
|
|
- viewport_width = Settings::values.resolution_info.ScaleUp(viewport_width);
|
|
|
- scissor_width = Settings::values.resolution_info.ScaleUp(scissor_width);
|
|
|
- viewport_height = Settings::values.resolution_info.ScaleUp(viewport_height);
|
|
|
- scissor_height = Settings::values.resolution_info.ScaleUp(scissor_height);
|
|
|
+ auto scissor_width = Settings::values.resolution_info.ScaleUp(framebuffer_texture.width);
|
|
|
+ auto viewport_width = static_cast<GLfloat>(scissor_width);
|
|
|
+ auto scissor_height = Settings::values.resolution_info.ScaleUp(framebuffer_texture.height);
|
|
|
+ auto viewport_height = static_cast<GLfloat>(scissor_height);
|
|
|
|
|
|
glScissorIndexed(0, 0, 0, scissor_width, scissor_height);
|
|
|
- glViewportIndexedf(0, 0.0f, 0.0f, static_cast<GLfloat>(viewport_width),
|
|
|
- static_cast<GLfloat>(viewport_height));
|
|
|
+ glViewportIndexedf(0, 0.0f, 0.0f, viewport_width, viewport_height);
|
|
|
|
|
|
glBindSampler(0, present_sampler.handle);
|
|
|
GLint old_read_fb;
|
|
|
@@ -557,10 +547,8 @@ void RendererOpenGL::DrawScreen(const Tegra::FramebufferConfig& framebuffer,
|
|
|
fsr->InitBuffers();
|
|
|
}
|
|
|
|
|
|
- const auto fsr_input_width = Settings::values.resolution_info.ScaleUp(info.width);
|
|
|
- const auto fsr_input_height = Settings::values.resolution_info.ScaleUp(info.height);
|
|
|
glBindSampler(0, present_sampler.handle);
|
|
|
- fsr->Draw(program_manager, layout.screen, fsr_input_width, fsr_input_height, crop);
|
|
|
+ fsr->Draw(program_manager, layout.screen, info.scaled_width, info.scaled_height, crop);
|
|
|
} else {
|
|
|
if (fsr->AreBuffersInitialized()) {
|
|
|
fsr->ReleaseBuffers();
|