diff --git a/bgfx/shaders/dx11/chains/hlsl/fs_post.bin b/bgfx/shaders/dx11/chains/hlsl/fs_post.bin index 927c16d8057..b22fb024fb8 100644 Binary files a/bgfx/shaders/dx11/chains/hlsl/fs_post.bin and b/bgfx/shaders/dx11/chains/hlsl/fs_post.bin differ diff --git a/bgfx/shaders/dx9/chains/hlsl/fs_post.bin b/bgfx/shaders/dx9/chains/hlsl/fs_post.bin index df24551cb4e..8cc13a336da 100644 Binary files a/bgfx/shaders/dx9/chains/hlsl/fs_post.bin and b/bgfx/shaders/dx9/chains/hlsl/fs_post.bin differ diff --git a/bgfx/shaders/gles/chains/hlsl/fs_post.bin b/bgfx/shaders/gles/chains/hlsl/fs_post.bin index f7039993aac..a48adbecf4f 100644 Binary files a/bgfx/shaders/gles/chains/hlsl/fs_post.bin and b/bgfx/shaders/gles/chains/hlsl/fs_post.bin differ diff --git a/bgfx/shaders/glsl/chains/hlsl/fs_post.bin b/bgfx/shaders/glsl/chains/hlsl/fs_post.bin index 49f23896de7..2bfa4c7145f 100644 Binary files a/bgfx/shaders/glsl/chains/hlsl/fs_post.bin and b/bgfx/shaders/glsl/chains/hlsl/fs_post.bin differ diff --git a/bgfx/shaders/metal/chains/hlsl/fs_post.bin b/bgfx/shaders/metal/chains/hlsl/fs_post.bin index ad8382250a9..ab0fc156fd5 100644 Binary files a/bgfx/shaders/metal/chains/hlsl/fs_post.bin and b/bgfx/shaders/metal/chains/hlsl/fs_post.bin differ diff --git a/hlsl/bloom.fx b/hlsl/bloom.fx index db23995d55b..42c65e6a45b 100644 --- a/hlsl/bloom.fx +++ b/hlsl/bloom.fx @@ -273,14 +273,11 @@ VS_OUTPUT vs_main(VS_INPUT Input) Output.Color = Input.Color; - float2 TexCoord = Input.TexCoord; - TexCoord += 0.5f / TargetDims; // half texel offset correction (DX9) + Output.TexCoord = Input.TexCoord; + Output.TexCoord += 0.5f / TargetDims; // half texel offset correction (DX9) - Output.TexCoord = TexCoord.xy; - - TexCoord += 0.5f / SourceDims; - - Output.BloomCoord = TexCoord.xy; + Output.BloomCoord = Output.TexCoord; + Output.BloomCoord += 0.5f / SourceDims; return Output; } diff --git a/hlsl/post.fx b/hlsl/post.fx index 6d8077e2037..717c919d8a7 100644 --- a/hlsl/post.fx +++ b/hlsl/post.fx @@ -253,9 +253,13 @@ float4 ps_main(PS_INPUT Input) : COLOR float ColorBrightness = 0.299f * BaseColor.r + 0.587f * BaseColor.g + 0.114 * BaseColor.b; float ScanlineCoord = SourceCoord.y; - ScanlineCoord += QuadDims.y <= SourceDims.y * 2.0f - ? 0.5f / QuadDims.y // uncenter scanlines if the quad is less than twice the size of the source - : 0.0f; + ScanlineCoord += SwapXY + ? QuadDims.x <= SourceDims.x * 2.0f + ? 0.5f / QuadDims.x // uncenter scanlines if the quad is less than twice the size of the source + : 0.0f + : QuadDims.y <= SourceDims.y * 2.0f + ? 0.5f / QuadDims.y // uncenter scanlines if the quad is less than twice the size of the source + : 0.0f; ScanlineCoord *= SourceDims.y * ScanlineScale * PI; diff --git a/src/osd/modules/render/bgfx/shaders/chains/hlsl/fs_post.sc b/src/osd/modules/render/bgfx/shaders/chains/hlsl/fs_post.sc index a0d6f56772a..63800bb61d3 100644 --- a/src/osd/modules/render/bgfx/shaders/chains/hlsl/fs_post.sc +++ b/src/osd/modules/render/bgfx/shaders/chains/hlsl/fs_post.sc @@ -149,9 +149,13 @@ void main() float ColorBrightness = 0.299 * BaseColor.r + 0.587 * BaseColor.g + 0.114 * BaseColor.b; float ScanCoord = BaseCoord.y; - ScanCoord += u_quad_dims.y <= u_source_dims.y * 2.0f - ? 0.5f / u_quad_dims.y // uncenter scanlines if the quad is less than twice the size of the source - : 0.0f; + ScanCoord += u_swap_xy.x > 0.0 + ? u_quad_dims.x <= u_source_dims.x * 2.0 + ? 0.5 / u_quad_dims.x // uncenter scanlines if the quad is less than twice the size of the source + : 0.0 + : u_quad_dims.y <= u_source_dims.y * 2.0 + ? 0.5 / u_quad_dims.y // uncenter scanlines if the quad is less than twice the size of the source + : 0.0; ScanCoord *= u_source_dims.y * u_scanline_scale.x * 3.1415927; // PI