From 38e689c405d5cd942ec8fd7b3d7cd6e091694ace Mon Sep 17 00:00:00 2001 From: Pavel <68122101+red-prig@users.noreply.github.com> Date: Tue, 31 May 2022 10:18:54 +0300 Subject: [PATCH] Fix shaders --- shaders/FLIP_LINE_A8R8G8B8_SRGB.comp | 12 ++++++++---- shaders/FLIP_LINE_A8R8G8B8_SRGB.spv | Bin 1592 -> 1340 bytes shaders/FLIP_TILE_A8R8G8B8_SRGB.comp | 11 +++++++---- shaders/FLIP_TILE_A8R8G8B8_SRGB.spv | Bin 3720 -> 3580 bytes shaders/compile.cmd | 22 +++++++++++----------- 5 files changed, 26 insertions(+), 19 deletions(-) diff --git a/shaders/FLIP_LINE_A8R8G8B8_SRGB.comp b/shaders/FLIP_LINE_A8R8G8B8_SRGB.comp index 3c8f4b29..3a8bb2fd 100644 --- a/shaders/FLIP_LINE_A8R8G8B8_SRGB.comp +++ b/shaders/FLIP_LINE_A8R8G8B8_SRGB.comp @@ -25,10 +25,10 @@ void main() uint pack=host.data[offset]; - const uvec4 shift = uvec4(16,8,0,24); - const uvec4 mask4 = uvec4(255,255,255,255); + //const uvec4 shift = uvec4(16,8,0,24); + //const uvec4 mask4 = uvec4(255,255,255,255); - uvec4 pix_int=(uvec4(pack,pack,pack,pack) >> shift) & mask4; + //uvec4 pix_int=(uvec4(pack,pack,pack,pack) >> shift) & mask4; //0,8,16,24 //R,G, B,A @@ -36,7 +36,11 @@ void main() //16,8,0,24 //BGRA - vec4 pixel = vec4(pix_int) / mask4; + //vec4 pixel = vec4(pix_int) / mask4; + + vec4 pixel=unpackUnorm4x8(pack); + + pixel=pixel.bgra; pixel = pow(pixel, cfg.gamma); diff --git a/shaders/FLIP_LINE_A8R8G8B8_SRGB.spv b/shaders/FLIP_LINE_A8R8G8B8_SRGB.spv index da6c7c28c3236154a3b9782313a058513b882266..b161436b8a2fdec0b006bab0e0079d4e94c7a0cb 100644 GIT binary patch delta 352 zcmXYtOAY}+6h&X@_G>LMAkj>GhKPZPZ=;DAT7-pIgcVqVm>Afa#JR;wPU_wFxmDe- z_#IV)T)$}MEV7av9@UB)rDoOx#mPdG?t=3=@H+YT_RpicxkiVv8Kp8bAt77c?m<6W zqZBJoXwouN4A_b|GpNDP3RdCV|7)t(pWSfgt}!hcPeAY3!5Ge5r1})p6FJa~B7n^D z{&92iHVh!;YV9pR_1KDDFUhsr0(q*>?9{)1e7Yr0^VS7;R!g2VdKJ;8&BgA zjDD}vlT7U7gL<#3ySfWL;`d55EHsK{fyGv``?qR2*uFBeEzml($fP$Ra5{9l?sJp* zAeaSdjj~;=7$Ru$skj5nIo%~L<@6r$DzvQV_9w*JqdK)zK0B*N{0mv_0kJ$7W`QfN zVIG57+E=j}3_xC<4K8_xw*;!G6OCryg~r1rN^1lORnnS*R?8Nx%=ZLzRj~rPraIrk z%XFG#o$tIS-!Z=l+d(?^FK%P+{NvLW+%)#_mDg0hymv?}U$1|rr7qqF`LEPSpLkEL zkMQ)!b6AHa^elRGg+rgH_$ghW^((J|4pE+BH-~Ft%|MzzjEzB)dqOKGt^Gfo(1AZQ CS}XJb diff --git a/shaders/FLIP_TILE_A8R8G8B8_SRGB.comp b/shaders/FLIP_TILE_A8R8G8B8_SRGB.comp index 480d3739..1826c57f 100644 --- a/shaders/FLIP_TILE_A8R8G8B8_SRGB.comp +++ b/shaders/FLIP_TILE_A8R8G8B8_SRGB.comp @@ -62,11 +62,14 @@ void main() int pipe=getPipeIndex(pixelCoords); int bank=getBankIndex(pixelCoords); - const ivec4 shmt = ivec4(7,6,6,3); - const ivec2 bmod = ivec2(1,1); + //const ivec4 shmt = ivec4(7,6,6,3); + const ivec2 shmt = ivec2(7,6); + //const ivec2 bmod = ivec2(1,1); - ivec4 mt=(pixelCoords.xyxy >> shmt); - ivec2 total_offset=(mt.xy*cfg.pitch)+(mt.zw % bmod); + //ivec4 mt=(pixelCoords.xyxy >> shmt); + ivec2 mt=(pixelCoords.xy >> shmt); + ivec2 total_offset=(mt.xy*cfg.pitch); + //+(mt.zw % bmod); int offset = element_index | pipe | bank | ((total_offset.x+total_offset.y) << 13); diff --git a/shaders/FLIP_TILE_A8R8G8B8_SRGB.spv b/shaders/FLIP_TILE_A8R8G8B8_SRGB.spv index dbf9d28940f2f0dedb49532274613ce5d5446659..80133531c2562aed4d19d1abe2200462551ea18c 100644 GIT binary patch literal 3580 zcmZ9NNo%Bgp1%&4lSYF5=z zEo!P7Ykt)XQ&pW+dqa+nT{^b>y6Z1re*OjL8Zf77X~Y>bmzXwWE4Xsw6<6ul2Ij%b z&2Q-1?ow5wu=+beFIYqNeMr~9l=zP`Ue4T6_B5`!p|@7gAlrd^tl{rIq-zndX6)27 zU(U|$VL$Rr;ELTpWj5@i=%rs<|I`^;D(%I<++#@3qrHF*?XjPo+)KTi7<=sl<}bu% z=nYPPA9e>)PMlN6ccU9W#ChanwbpG4>$3_YwPSbl*m5Ekn14dB*B@HY<>Qz-6xX%7!&HoAb~;zkSC)jP7ha z)2iBMFV1o`(s=nHvXmpB+&BCfe9omz?`zSspK=^nGyZkx-dXCbM>oefed%)py7!U1 zjp#E$X0i#r%+nv==Gy0+27&#j&eiC%3i}##-(dXLqIZGR+JbIv^NiK+?6xAEcV>4J zdJ~Yp2*0-9tDNySBaQb=d1E`!J-6rRq0+s`K4APVq_*#3DS!Qj<(#E=bwAR1$h)8R z?wZrTr`F5a?}eKU&R{Qp2kd7l`aYz#dCwy4QO>&Be)Dqr57fH3+7n3ou(!o%lSun+ z0_8H_vzT+Fb{Oj(+Ws!Ma{n)*&jY@bt;l0QPWXn0`9e|?vvCh6VcO8G=^Oh8cz$ia z1)GZPTmKxy)_BEg&bd z>_<#c)0nq`as9x(<=z4E1HirI-Uaf@K=ykN-5xx^>y2F#OpAK!;u z;_pD0)92eL@9Ya~xp7|VD&&_yPL#`8>;DQEGXgThuhGjI-(brL=NF{Lw{XT-<8WQ~ zJ9KO7%h|t2w{AI~AF$=E<=KA(a)V$Uj6MDYER=k$q;vxtB5djhKTjU;akS z#g^YfZoct(*z&@qh;M%3oBsWuhRsd3(s29z{2|JojVR@`-u8jw#Rm1f2Yh^wW-f5|}6Nw=4G)klzc^!_(;Y zp>Kq!1IXvVe&8F?@0nL1p9lK7h}(sH0WiAi5}?oTM*c;hPk8UfxR`$93=_zMz?r&- m_02m3WwuItQWZi7_S?gQ2| zCS>@WU#uB2)>?$mJ%&Ai?su9daZf9f&t9D65Yl-0L9&#?AYV85QTW)GGJ0Qy9_uN`fHlKEj_#R7oz>{(7^g4# zT!Zd;MBZBTSs-Sz4n5D)AHMa;=bQ$B{YRZ^(3>)Q6S{XW{MVwlfT*<@-P-0EtKZpe zMLO@8-HqrKAb%--ZQoZpPR^Le}zoU|&7xzUSKJy@a$^IqPcs?#t=lpLBDz4G@GdXsO^KSA<$0WjsYkb_ zcdec#+`qQ(L_=l|VSf#B|2LU!{`;A2{*lbqe`}3>M~%Is#@?0eA^LGoHv#X;7+q{f z-kdmjA7^+yvG#Zi(0>^_bzN=i=sODJ4yEtjvBdfPdo^(%pv!jwYq&SLsBs+K8e^Pc zH}V9K6Y8IbhNIe;AU_B45%UGQG2XR^`4U~;bA@8vx@l_IMh|`}-+kjo;B-N5A*P*gt^0 zzbD=kxj%vYYT(R#KjosYztH9KzRqCFN6gCu*N~znbtFw~l}~^JeV4P7Ai2;NSlc zb!Ou*Zasd_q#HR0+xq%q26NG^ozJcnPCm}P4P9;(apSzX);bH@^VX*nvCcd=*D@x) z5oe>z=ii8SZ28UP#yj4DEiZf&;hUfNYTy3__{=rNv+#F7F80}pF1L(&adutU@)2`R zipgiu4JRM>VIjJC@~-3Wi(J&ai~4eL=67RzCxj2K@=?ZF-Ggr2P7r&&7hPWX7;m3@ zkPm_h&<^5`Je2rt#LPs07+6C-YCeJF)qHB*#Z@yO44*i^tLZ z-uVs$_XN7UbBMVz9sv7*_f)@gTZ()c8~`oE?M5C1&iZno&vTSN1oR1KXN-@(LGIx&@^vr)T*Lb2 ly#eG~I2G+Tfw^74n);3P|3&YBNpK~$x_8F-Gh|!>{sol!Gcf=F diff --git a/shaders/compile.cmd b/shaders/compile.cmd index fbcf0a61..01d89991 100644 --- a/shaders/compile.cmd +++ b/shaders/compile.cmd @@ -1,19 +1,19 @@ +@echo off + Set spirvgls=spirv\glslangValidator -g0 -V --target-env vulkan1.0 Set spirvopt=spirv\spirv-opt --eliminate-dead-branches --eliminate-local-multi-store --inline-entry-points-exhaustive --eliminate-dead-code-aggressive --scalar-replacement --simplify-instructions -%spirvgls% FLIP_CURSOR.comp -o FLIP_CURSOR.spv -%spirvopt% FLIP_CURSOR.spv -o FLIP_CURSOR.spv +For /F %%a in ('dir /B') do if "%%~xa"==".comp" (call :compil %%a %%~na) -%spirvgls% FLIP_TILE_A8R8G8B8_SRGB.comp -o FLIP_TILE_A8R8G8B8_SRGB.spv -%spirvopt% FLIP_TILE_A8R8G8B8_SRGB.spv -o FLIP_TILE_A8R8G8B8_SRGB.spv - -%spirvgls% FLIP_LINE_A8R8G8B8_SRGB.comp -o FLIP_LINE_A8R8G8B8_SRGB.spv -%spirvopt% FLIP_LINE_A8R8G8B8_SRGB.spv -o FLIP_LINE_A8R8G8B8_SRGB.spv - - -%spirvgls% FLIP_TILE_A8R8G8B8_SRGB_NEO.comp -o FLIP_TILE_A8R8G8B8_SRGB_NEO.spv -%spirvopt% FLIP_TILE_A8R8G8B8_SRGB_NEO.spv -o FLIP_TILE_A8R8G8B8_SRGB_NEO.spv +For /F %%a in ('dir /B') do if "%%~xa"==".vert" (call :compil %%a %%~na) pause +exit + +:compil + echo %2 + %spirvgls% %1 -o %2.spv + %spirvopt% %2.spv -o %2.spv +exit /b