vlc | branch: master | Steve Lhomme <[email protected]> | Mon Oct 15 09:42:25 2018 +0200| [04d48fefd78e0e170c9937677abc24d7cb43ff33] | committer: Steve Lhomme
direct3d11_shaders: fix negative pixel colours artefacts It can happens when tone mapping on "LG NASA HDR Demo". > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=04d48fefd78e0e170c9937677abc24d7cb43ff33 --- modules/video_output/win32/d3d11_shaders.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/modules/video_output/win32/d3d11_shaders.c b/modules/video_output/win32/d3d11_shaders.c index 9ad845eb41..9fea7806d6 100644 --- a/modules/video_output/win32/d3d11_shaders.c +++ b/modules/video_output/win32/d3d11_shaders.c @@ -98,7 +98,6 @@ static const char* globPixelShaderDefault = "\ }\n\ \n\ inline float3 linearToDisplay(float3 rgb) {\n\ - rgb = clamp(rgb, 0, 1);\n\ %s;\n\ }\n\ \n\ @@ -438,7 +437,7 @@ HRESULT D3D11_CompilePixelShader(vlc_object_t *o, d3d11_handle_t *hd3d, bool leg /* ST2084 to Linear */ psz_src_transform = ST2084_PQ_CONSTANTS - "rgb = pow(rgb, 1.0/ST2084_m2);\n" + "rgb = pow(max(rgb, 0), 1.0/ST2084_m2);\n" "rgb = max(rgb - ST2084_c1, 0.0) / (ST2084_c2 - ST2084_c3 * rgb);\n" "rgb = pow(rgb, 1.0/ST2084_m1);\n" "return rgb"; @@ -514,7 +513,7 @@ HRESULT D3D11_CompilePixelShader(vlc_object_t *o, d3d11_handle_t *hd3d, bool leg } if (display->colorspace->primaries != primaries) - psz_primaries_transform = "return mul(rgb, Primaries)"; + psz_primaries_transform = "return max(mul(rgb, Primaries), 0)"; int range_adjust = 0; if (display->colorspace->b_full_range) { _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
