I dunno if it's a bug, but in D3D scaling seems to be filtered while not in OGL for me. So I made this simple shader to get filtered scaling in OGL.
Example:
native x1 - D3D, OGL, OGL + Shader
native x3 - D3D, OGL, OGL + Shader
Example:
native x1 - D3D, OGL, OGL + Shader
native x3 - D3D, OGL, OGL + Shader
Code:
void main()
{
float2 factor = uv0 * resolution.xy - float2(0.5);
const int2 coord = int2(factor);
const int2 dx = int2(1, 0);
const int2 dy = int2(0, 1);
float4 color = texelFetch(samp9, int3(coord, 0), 0);
float4 color1 = texelFetch(samp9, int3(coord + dx, 0), 0);
float4 color2 = texelFetch(samp9, int3(coord + dy, 0), 0);
float4 color3 = texelFetch(samp9, int3(coord + dx + dy, 0), 0);
factor = fract(factor);
color = mix(mix(color, color1, factor.x), mix(color2, color3, factor.x), factor.y);
SetOutput(color);
}