yuzu-emu
/
yuzu-mainline
Archived
1
0
Fork 0

gl_texture_cache/rescaling_pass: minor cleanup

This commit is contained in:
ameerj 2021-09-18 00:43:41 -04:00 committed by Fernando Sahmkow
parent c8a971be91
commit b027fac794
3 changed files with 10 additions and 16 deletions

View File

@ -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,
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) {

View File

@ -474,8 +474,7 @@ TextureCacheRuntime::TextureCacheRuntime(const Device& device_, ProgramManager&
set_view(Shader::TextureType::ColorArrayCube, null_image_cube_array.handle);
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_read_fbo.Create();
@ -957,7 +956,7 @@ bool Image::ScaleUp() {
if (True(flags & ImageFlagBits::Rescaled)) {
return false;
}
if (!runtime->is_rescaling_on) {
if (!runtime->resolution.active) {
return false;
}
if (gl_format == 0 && gl_type == 0) {

View File

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