From b21131a4668782b9061737cfc79d80a06f47d65b Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Tue, 8 Feb 2022 21:43:25 -0600 Subject: [PATCH] Use FP16 in the D3D11 shaders --- app/shaders/d3d11_overlay_pixel.fxc | Bin 700 -> 764 bytes app/shaders/d3d11_overlay_pixel.hlsl | 8 ++++---- app/shaders/d3d11_vertex.fxc | Bin 716 -> 820 bytes app/shaders/d3d11_vertex.hlsl | 10 +++++----- app/shaders/d3d11_video_pixel.fxc | Bin 1408 -> 1456 bytes app/shaders/d3d11_video_pixel.hlsl | 19 +++++++++---------- 6 files changed, 18 insertions(+), 19 deletions(-) diff --git a/app/shaders/d3d11_overlay_pixel.fxc b/app/shaders/d3d11_overlay_pixel.fxc index 1f2bb61cee67dc6f493488cd896d221b6d058d89..5ae3e7236e88106e62dd9af2766a85787ec93f52 100644 GIT binary patch delta 354 zcmdnP`iIrhCBn&hTa@=6lWk`oC^0mwQoon_hLM4R;SUo713Qqm0pb-vtN|2U0>oQ@ zI07hlV4|r*y#w2mb;m1_ovZ2mS^IhbJ2tIG!v3DrI8u0P`FE|7Tzb z_Hd1;04jC>VmTnr;$UQq0_jN*0P=w5N-(f66hPRap$rU30t_rh0s;+;4h#%Hvlvnt z7+5|jK=>f_;;sw~+{glM5XBR}Pvs1D^EBW9su7sn%D7I*FagK}xf3J=0v?kcnZ%Vq zhJru{gaVVyKoTU*3}i4eOwMDHwKOz=iotYifK@^Wka`f{2V#)E;IQ}*#~^pt5Qf#O E0q)s0ng9R* delta 275 zcmeyvx`)-&CBn)1hGxQC-{lIHM{@- diff --git a/app/shaders/d3d11_overlay_pixel.hlsl b/app/shaders/d3d11_overlay_pixel.hlsl index 84f00d9e..4a6c2742 100644 --- a/app/shaders/d3d11_overlay_pixel.hlsl +++ b/app/shaders/d3d11_overlay_pixel.hlsl @@ -1,13 +1,13 @@ -Texture2D theTexture : register(t0); +Texture2D theTexture : register(t0); SamplerState theSampler : register(s0); struct ShaderInput { - float4 pos : SV_POSITION; - float2 tex : TEXCOORD0; + min16float4 pos : SV_POSITION; + min16float2 tex : TEXCOORD0; }; -float4 main(ShaderInput input) : SV_TARGET +min16float4 main(ShaderInput input) : SV_TARGET { return theTexture.Sample(theSampler, input.tex); } \ No newline at end of file diff --git a/app/shaders/d3d11_vertex.fxc b/app/shaders/d3d11_vertex.fxc index d0867c9acf91a93d8f5644ae10b9989ecfa5afe1..ccd99a97663dec5343720dfa20c8738be082fc39 100644 GIT binary patch literal 820 zcmb7C%}N4c6g{6mWFY7R1P#=pAR;3IA#&8w6sjp_2p2&`*&mi+K7gC{_VWPk-Lz{P zE~{cai*x##|V-;7aArQ7AJm$8fYr&Qwl{;?ImQ~>7uz!2>M z^_AKn8TJ7q)I;hsHCZ{0-!LW$U#DB9nGlTeAF6sjpqR4`1QjB;k_FTgjs-^9AxHvx zq~TyySHv8{P5k8F8o=8v*YH92KM>a)9DY!`;qq<8ylxk;a+%^Co9j@RqCE~NwFLxb zqfz!HLGk)>=L7Ecp?$}ND@jeC6Mvr1;`(%v_4H$GxaFz$>5}1T{oH!Ni+m!> zPTDo%fTzrhg_hj^2p{lIVrBC)A!bJV*##q$HGWl&h#%;5WeLG6N4wR^d1b$*O%x`z z+_JT-S%*7&rK*;$oSYq%31TzTG32eK*e3J&Js~qha*pYp?v8!}_kR3WzC_}}yYV&C v%G-H!6?UeWHqC;8X4B-1ZRQM`(W_-lBtms(*geKMzGj4-xV5o0XiW1H50GBU literal 716 zcmb7CJx{_=6g}m`Fp$7x987EsiMSYXFuDjxL7E^%+88!8ic0*bK@wL+R z7-L={9*7dfCqkuOCzAHb@&$DPJY8ptDJmS1A5eNVpwP1c_!Wd&;sP4+eg>vE!A}7Q zHTzs?(AVTPUOpY*y-BpVJ*8krfi~dYH-&4C1DIK@C}&AP!8CK3jSJy0**BMa?E}6K zwXaKE5g%*ei#(rjiOisvTHtP=c@nbXjz)agBmL4Nd4<d6S#-IZ=mo>nE#1h&N|#cGQPj|G8=P6-`smDF4|RzU;l9Jy N%pkw@X8E_V?N1}GQBVK? diff --git a/app/shaders/d3d11_vertex.hlsl b/app/shaders/d3d11_vertex.hlsl index fb643c8c..a70fa1bc 100644 --- a/app/shaders/d3d11_vertex.hlsl +++ b/app/shaders/d3d11_vertex.hlsl @@ -1,19 +1,19 @@ struct ShaderInput { - float2 pos : POSITION; - float2 tex : TEXCOORD0; + min16float2 pos : POSITION; + min16float2 tex : TEXCOORD0; }; struct ShaderOutput { - float4 pos : SV_POSITION; - float2 tex : TEXCOORD0; + min16float4 pos : SV_POSITION; + min16float2 tex : TEXCOORD0; }; ShaderOutput main(ShaderInput input) { ShaderOutput output; - output.pos = float4(input.pos, 0.0f, 1.0f); + output.pos = min16float4(input.pos, 0.0, 1.0); output.tex = input.tex; return output; } \ No newline at end of file diff --git a/app/shaders/d3d11_video_pixel.fxc b/app/shaders/d3d11_video_pixel.fxc index fcede8bf230ee860d338e849438f94f9744bb928..126e947417b14d8bd3206a3c542ea6d97e0284ff 100644 GIT binary patch delta 617 zcma))u}i~16vn^1OWKqaT1%yi(BL9&>QE>+oV6_hCvmW&)kUa76$cmXAr5XTx2Z#& zoP?|nuDZJTA7pb<9EJMs(w5T6z{|bweZPD6azy!&U#+)l>w6coubGY?W=`9mo%@$V z1|V{QG_9)?bt?RF;6wnI6j}0)Z>sw}DWWn!4zA(l`lFmtUIPSVPC>>I^J1&nP=hqJ zc>e^=Ci*tB9YRzk)P9%&|L%w7}yL>H_kW~hs5*#MjhNi$D55;jMev&{wrU@L62 zA_62$d7w90({onxd9tDJSkUvoVFkHBGciConrC@i!%ng`fH7p#HcaX zPke!8^atP2Sy9wW6rt!crk_RGrT+kL`iqzJkGN$OedUzs{phrH*L8H(og;41-Tnh$ CC2BkX delta 541 zcmZ`#yGjE=6g_umH`y3M)*!?#Q3MMuqJe&ElR07E08ex7on}u^7pfaz4cqC!$uuL(C8R-d9oURUC3h2W8pqKzk;Or9GBu?nG0~Ul&w{*Z;8j`g*km4l z8lp170yQq^SL1lwEWi8@Z#|Z;JARF?{1d?6hb luminancePlane : register(t0); +Texture2D chrominancePlane : register(t1); SamplerState theSampler : register(s0); cbuffer CSC_CONST_BUF : register(b0) { - float3x3 cscMatrix; - float3 offsets; + min16float3x3 cscMatrix; + min16float3 offsets; }; struct ShaderInput { - float4 pos : SV_POSITION; - float2 tex : TEXCOORD0; + min16float4 pos : SV_POSITION; + min16float2 tex : TEXCOORD0; }; min16float4 main(ShaderInput input) : SV_TARGET { - float y = luminancePlane.Sample(theSampler, input.tex); - float2 uv = chrominancePlane.Sample(theSampler, input.tex); - float3 yuv = float3(y, uv); + min16float3 yuv = min16float3(luminancePlane.Sample(theSampler, input.tex), + chrominancePlane.Sample(theSampler, input.tex)); // Subtract the YUV offset for limited vs full range yuv -= offsets; @@ -26,5 +25,5 @@ min16float4 main(ShaderInput input) : SV_TARGET // Multiply by the conversion matrix for this colorspace yuv = mul(yuv, cscMatrix); - return min16float4(saturate(yuv), 1.0f); + return min16float4(saturate(yuv), 1.0); } \ No newline at end of file