Просмотр исходного кода

gl_texture_cache/rescaling_pass: minor cleanup

ameerj 4 лет назад
Родитель
Сommit
b027fac794

+ 8 - 12
src/shader_recompiler/ir_opt/rescaling_pass.cpp

@@ -82,18 +82,14 @@ void PatchFragCoord(IR::Block& block, IR::Inst& inst) {
 
 
 [[nodiscard]] IR::U32 SubScale(IR::IREmitter& ir, const IR::U1& is_scaled, const IR::U32& value,
 [[nodiscard]] IR::U32 SubScale(IR::IREmitter& ir, const IR::U1& is_scaled, const IR::U32& value,
                                const IR::Attribute attrib) {
                                const IR::Attribute attrib) {
-    if (Settings::values.resolution_info.active) {
-        const IR::F32 opt1{ir.Imm32(Settings::values.resolution_info.up_factor)};
-        const IR::F32 base{ir.FPMul(ir.ConvertUToF(32, 32, value), opt1)};
-        const IR::F32 frag_coord{ir.GetAttribute(attrib)};
-        const IR::F32 opt2{ir.Imm32(Settings::values.resolution_info.down_factor)};
-        const IR::F32 floor{ir.FPMul(opt1, ir.FPFloor(ir.FPMul(frag_coord, opt2)))};
-        const IR::U32 deviation{
-            ir.ConvertFToU(32, ir.FPAdd(base, ir.FPAdd(frag_coord, ir.FPNeg(floor))))};
-        return IR::U32{ir.Select(is_scaled, deviation, value)};
-    } else {
-        return value;
-    }
+    const IR::F32 opt1{ir.Imm32(Settings::values.resolution_info.up_factor)};
+    const IR::F32 base{ir.FPMul(ir.ConvertUToF(32, 32, value), opt1)};
+    const IR::F32 frag_coord{ir.GetAttribute(attrib)};
+    const IR::F32 opt2{ir.Imm32(Settings::values.resolution_info.down_factor)};
+    const IR::F32 floor{ir.FPMul(opt1, ir.FPFloor(ir.FPMul(frag_coord, opt2)))};
+    const IR::U32 deviation{
+        ir.ConvertFToU(32, ir.FPAdd(base, ir.FPAdd(frag_coord, ir.FPNeg(floor))))};
+    return IR::U32{ir.Select(is_scaled, deviation, value)};
 }
 }
 
 
 [[nodiscard]] IR::U32 DownScale(IR::IREmitter& ir, const IR::U1& is_scaled, IR::U32 value) {
 [[nodiscard]] IR::U32 DownScale(IR::IREmitter& ir, const IR::U1& is_scaled, IR::U32 value) {

+ 2 - 3
src/video_core/renderer_opengl/gl_texture_cache.cpp

@@ -474,8 +474,7 @@ TextureCacheRuntime::TextureCacheRuntime(const Device& device_, ProgramManager&
     set_view(Shader::TextureType::ColorArrayCube, null_image_cube_array.handle);
     set_view(Shader::TextureType::ColorArrayCube, null_image_cube_array.handle);
 
 
     resolution = Settings::values.resolution_info;
     resolution = Settings::values.resolution_info;
-    is_rescaling_on = resolution.up_scale != 1 || resolution.down_shift != 0;
-    if (is_rescaling_on) {
+    if (resolution.active) {
         rescale_draw_fbo.Create();
         rescale_draw_fbo.Create();
         rescale_read_fbo.Create();
         rescale_read_fbo.Create();
 
 
@@ -957,7 +956,7 @@ bool Image::ScaleUp() {
     if (True(flags & ImageFlagBits::Rescaled)) {
     if (True(flags & ImageFlagBits::Rescaled)) {
         return false;
         return false;
     }
     }
-    if (!runtime->is_rescaling_on) {
+    if (!runtime->resolution.active) {
         return false;
         return false;
     }
     }
     if (gl_format == 0 && gl_type == 0) {
     if (gl_format == 0 && gl_type == 0) {

+ 0 - 1
src/video_core/renderer_opengl/gl_texture_cache.h

@@ -156,7 +156,6 @@ private:
     OGLFramebuffer rescale_draw_fbo;
     OGLFramebuffer rescale_draw_fbo;
     OGLFramebuffer rescale_read_fbo;
     OGLFramebuffer rescale_read_fbo;
     Settings::ResolutionScalingInfo resolution;
     Settings::ResolutionScalingInfo resolution;
-    bool is_rescaling_on{};
 };
 };
 
 
 class Image : public VideoCommon::ImageBase {
 class Image : public VideoCommon::ImageBase {