gl_texture_cache/rescaling_pass: minor cleanup
This commit is contained in:
parent
c8a971be91
commit
b027fac794
|
@ -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 opt1{ir.Imm32(Settings::values.resolution_info.up_factor)};
|
const IR::F32 base{ir.FPMul(ir.ConvertUToF(32, 32, value), opt1)};
|
||||||
const IR::F32 base{ir.FPMul(ir.ConvertUToF(32, 32, value), opt1)};
|
const IR::F32 frag_coord{ir.GetAttribute(attrib)};
|
||||||
const IR::F32 frag_coord{ir.GetAttribute(attrib)};
|
const IR::F32 opt2{ir.Imm32(Settings::values.resolution_info.down_factor)};
|
||||||
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::F32 floor{ir.FPMul(opt1, ir.FPFloor(ir.FPMul(frag_coord, opt2)))};
|
const IR::U32 deviation{
|
||||||
const IR::U32 deviation{
|
ir.ConvertFToU(32, ir.FPAdd(base, ir.FPAdd(frag_coord, ir.FPNeg(floor))))};
|
||||||
ir.ConvertFToU(32, ir.FPAdd(base, ir.FPAdd(frag_coord, ir.FPNeg(floor))))};
|
return IR::U32{ir.Select(is_scaled, deviation, value)};
|
||||||
return IR::U32{ir.Select(is_scaled, deviation, value)};
|
|
||||||
} else {
|
|
||||||
return 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) {
|
||||||
|
|
|
@ -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 (resolution.active) {
|
||||||
if (is_rescaling_on) {
|
|
||||||
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) {
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
Reference in New Issue