From d389f9a6e9bc0e06dec1b299a330be0640b75652 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Thu, 27 Jun 2024 19:46:27 -0500 Subject: [PATCH] Use a Texture2DArray in HLSL to match the SRVs --- app/shaders/build_hlsl.bat | 10 +++++----- app/shaders/d3d11_bt2020lim_pixel.fxc | Bin 1548 -> 1184 bytes app/shaders/d3d11_bt601lim_pixel.fxc | Bin 1548 -> 1184 bytes app/shaders/d3d11_genyuv_pixel.fxc | Bin 1632 -> 1336 bytes app/shaders/d3d11_overlay_pixel.fxc | Bin 756 -> 644 bytes app/shaders/d3d11_vertex.fxc | Bin 716 -> 568 bytes app/shaders/d3d11_vertex.hlsl | 4 ++-- app/shaders/d3d11_video_pixel_end.hlsli | 2 +- app/shaders/d3d11_video_pixel_start.hlsli | 6 +++--- .../video/ffmpeg-renderers/d3d11va.cpp | 18 +++++++++--------- 10 files changed, 20 insertions(+), 20 deletions(-) diff --git a/app/shaders/build_hlsl.bat b/app/shaders/build_hlsl.bat index 4a8389ab..0fd15d53 100644 --- a/app/shaders/build_hlsl.bat +++ b/app/shaders/build_hlsl.bat @@ -1,6 +1,6 @@ -fxc /T vs_4_0_level_9_3 /Fo d3d11_vertex.fxc d3d11_vertex.hlsl +fxc /T vs_4_0 /Fo d3d11_vertex.fxc d3d11_vertex.hlsl -fxc /T ps_4_0_level_9_3 /Fo d3d11_overlay_pixel.fxc d3d11_overlay_pixel.hlsl -fxc /T ps_4_0_level_9_3 /Fo d3d11_genyuv_pixel.fxc d3d11_genyuv_pixel.hlsl -fxc /T ps_4_0_level_9_3 /Fo d3d11_bt601lim_pixel.fxc d3d11_bt601lim_pixel.hlsl -fxc /T ps_4_0_level_9_3 /Fo d3d11_bt2020lim_pixel.fxc d3d11_bt2020lim_pixel.hlsl \ No newline at end of file +fxc /T ps_4_0 /Fo d3d11_overlay_pixel.fxc d3d11_overlay_pixel.hlsl +fxc /T ps_4_0 /Fo d3d11_genyuv_pixel.fxc d3d11_genyuv_pixel.hlsl +fxc /T ps_4_0 /Fo d3d11_bt601lim_pixel.fxc d3d11_bt601lim_pixel.hlsl +fxc /T ps_4_0 /Fo d3d11_bt2020lim_pixel.fxc d3d11_bt2020lim_pixel.hlsl \ No newline at end of file diff --git a/app/shaders/d3d11_bt2020lim_pixel.fxc b/app/shaders/d3d11_bt2020lim_pixel.fxc index b015bbebb85ddb1f9bc696672ee1558510da44ad..920433cb549d4176343c8c540c77a9b7ad039e0e 100644 GIT binary patch delta 184 zcmeC-S-@%L65-^$r%>um-W%(C2W=vLKYZ90&d9*Puz-bufelDo0PzH%zz-lcVPaqq z0g9`zOy*+=Vq~41$Rf|ky19`>pOJ~3eex#OsL4wh4OJW%SQrWffch91LPHrCBA|Sb zsUUum00VQ;Y5Ph?E#;CzNw6Tj|`~U?%5RD?_j1sie7!WJ5vht(0$O?i87KTHxyuwDS zh_zaaO%SmVu{yy&U?q6I&7I55&U&1oV-|w~k+xO|~i%joqd9oq^ zGAW>yd5&>O;m9Je0hh7e0yG%&yE`+RteJp{q9NuypG=#QU;`{CmO_QZZW(Y@|A&uHdkxf+uO zta^gakamI?S8*mJ?X2?C@WKEH>qQdr95#h@q{F~)#9RwG|3HbCqQ9Xzo!(Y0UdVU} zHq1MDLj0u_=P6tV>1MxbdMs+O$JR2)CYypylNkyxO;duGxB%->1o)F`JlDg)doIkW zRDkt_o98rq%Y`-JpQygB3B<0F>oy;|r2Tu975E=&P~6*;<%r*JA9R*W%VS(Eao46+ T#jc%X#lE>36=hlen{506;0F+!FflNQ z0L4{UCiAfbF|tlhWRYiN-Q38c&&b5iK6w*s)Z`_MhAIvWEDQw#Kz$4hp`i>65l}wJ zR1iN&fPuMa@=r!(p&|x|DmNhk29T^<(_}p+c}AwmeoX3&LYvE&_!;@#JPkO2QV@j< J43k@!YXDZzAd~D_w`V}tos z0g%lAt<1BGD+(tTfemw1nBU)<*=EfIR2&a6PZJ7;c^fnhh5i&9-55Ko_JgBI?u5l!;qUSXqyQqUll@kPCDlgt`#&RVXu#Y-7ip!&1Ep?wy Uu8VzM$%%b)JtE4of)CmH0|$y~EC2ui diff --git a/app/shaders/d3d11_genyuv_pixel.fxc b/app/shaders/d3d11_genyuv_pixel.fxc index 7aa73c5e548e7e156e477b37ea34c46e8b9d062e..33dcc91ac07d12b1106ee0480b56f98d72ae5d6f 100644 GIT binary patch delta 183 zcmaFBvxCdbCBn&BR%Bs8Lxgx9|7w$qi(~mX85tNDELa&B*g!N8YcMe|OaS6DK)i;9 zfng8Jzd6H`}rtXJle$pUlPgmG?alM0?G%O z3gRaTFfbQQKFX*pRKx&Lch&l#_ I$qvjl0M&0GqyPW_ delta 479 zcmX|-ze~eF6vw}pOWIJx1}6uhgM~T>Y6n3Oyw*~5a8M}}C+XnmuhpS932v4H5nSRZ zh}6wNXO|Yl$` z;{s4*+_ahrC4qO2k&OXRWxa8By0O5T9q`ihhoNO9mUGpjuI3sLeC?CXF81M1lQh@| zf&k?h&|9uEpDNaqNk9&BeT%RhPqm;fvB*zDB{7f;n*^cCT$2nDCb4B?tOc2y@Pz6W zxZq3Eoy|opRHA*AJch1WIA$)+*mLatv+r1vtr=9P1BFcQ@W=E@Q^1V8Ms=R&Jdbz= zpwj`mIoq4C+>0RVW=$^6)sc0zqsU!MTbmPE5ir-XCL;49Q}f|p%^tRQSGlRYd9Z#U S{J~8{_^(f&!jsZmdPjd?s#!4r diff --git a/app/shaders/d3d11_overlay_pixel.fxc b/app/shaders/d3d11_overlay_pixel.fxc index b3978ba75416d5a913b2da764adba3b28eb21dca..60fa1e48ea0b2dafef896cf42091e35bbbfe5449 100644 GIT binary patch delta 87 zcmeyu+QMq)65-_RR(#-Q<>DZ5yS2HeW>rn%XJlYtXklVtU<1+?Kzs*?U4ViOK>P!U eIhZ!DV)SC1xT2EZ&C`GbC@TQOATU{hu?7GKFB4+` delta 201 zcmZo+{lZ%B65-@5)@EwdT=P(M=NGrr+tqyX7#SECzA!N`umfouAYK8)3P8a*K)eQs z1AuZnfY>oV&oTul2f_?Y|Nn#3YJk{a62#JAU}R8%@);NyfokM|DuDtG3=GU0fNV_= zX95EU{{knV2!jJZP~yo32975Sfc7vkcmVkhPa6LJXJDAzz*sq%lc}07*v->`1E@;? Mh#43*nt3q-01QSZ#{d8T diff --git a/app/shaders/d3d11_vertex.fxc b/app/shaders/d3d11_vertex.fxc index d0867c9acf91a93d8f5644ae10b9989ecfa5afe1..10c0a6b0ad4f3498357453b6a29c78882ccef65d 100644 GIT binary patch delta 109 zcmX@Zx`V~YCBn(M`iaiThdW$j64(;voqNi$iIIVU!Gei_ffY!b0C58lUjbqrpu`@= z$(IPGAyYTs`rG0%Os{m(q+ylUW(bnk0tm_ilbH z@e&|*%+Isz0E&Y!1Jl3%2|!8%#AZ-I!Hi%&0|O&aO&|jUDOh6Z~e;R$BS z1C3w>iZC$nPk^u)8-NNY0PSH0q5}*JPbL8I0-*gsA)W(_3@%VM^8-ep-2eX!43l*j z6&Q^s`!Y%c$xKFjE+Yj229QtO1SW4{Y@2A(!NklwabFNSGY luminancePlane : register(t0); -Texture2D chrominancePlane : register(t1); +Texture2DArray luminancePlane : register(t0); +Texture2DArray chrominancePlane : register(t1); SamplerState theSampler : register(s0); struct ShaderInput { float4 pos : SV_POSITION; - float2 tex : TEXCOORD0; + float3 tex : TEXCOORD0; }; cbuffer ChromaLimitBuf : register(b0) diff --git a/app/streaming/video/ffmpeg-renderers/d3d11va.cpp b/app/streaming/video/ffmpeg-renderers/d3d11va.cpp index 2fd792e5..1d9501e2 100644 --- a/app/streaming/video/ffmpeg-renderers/d3d11va.cpp +++ b/app/streaming/video/ffmpeg-renderers/d3d11va.cpp @@ -18,7 +18,7 @@ typedef struct _VERTEX { float x, y; - float tu, tv; + float tu, tv, tw; } VERTEX, *PVERTEX; #define CSC_MATRIX_RAW_ELEMENT_COUNT 9 @@ -872,10 +872,10 @@ void D3D11VARenderer::notifyOverlayUpdated(Overlay::OverlayType type) VERTEX verts[] = { - {renderRect.x, renderRect.y, 0, 1}, - {renderRect.x, renderRect.y+renderRect.h, 0, 0}, - {renderRect.x+renderRect.w, renderRect.y, 1, 1}, - {renderRect.x+renderRect.w, renderRect.y+renderRect.h, 1, 0}, + {renderRect.x, renderRect.y, 0, 1, 0}, + {renderRect.x, renderRect.y+renderRect.h, 0, 0, 0}, + {renderRect.x+renderRect.w, renderRect.y, 1, 1, 0}, + {renderRect.x+renderRect.w, renderRect.y+renderRect.h, 1, 0, 0}, }; D3D11_BUFFER_DESC vbDesc = {}; @@ -1287,10 +1287,10 @@ bool D3D11VARenderer::setupRenderingResources() VERTEX verts[] = { - {renderRect.x, renderRect.y, 0, vMax}, - {renderRect.x, renderRect.y+renderRect.h, 0, 0}, - {renderRect.x+renderRect.w, renderRect.y, uMax, vMax}, - {renderRect.x+renderRect.w, renderRect.y+renderRect.h, uMax, 0}, + {renderRect.x, renderRect.y, 0, vMax, 0}, + {renderRect.x, renderRect.y+renderRect.h, 0, 0, 0}, + {renderRect.x+renderRect.w, renderRect.y, uMax, vMax, 0}, + {renderRect.x+renderRect.w, renderRect.y+renderRect.h, uMax, 0, 0}, }; D3D11_BUFFER_DESC vbDesc = {};