├── .clang-format ├── .clang-tidy ├── .editorconfig ├── .github ├── FUNDING.yml └── workflows │ ├── clang.yml │ ├── nightly.yml │ ├── ninja.yml │ ├── snapshot.yml │ └── visual-studio.yml ├── .gitignore ├── .gitmodules ├── .vscode ├── extensions.json └── launch.json ├── CMakeLists.txt ├── CMakePresets.json ├── LICENSE ├── README.md ├── build.cmd ├── docs └── CONTRIBUTING.md ├── embedfile.cpp ├── external └── .clang-tidy ├── include └── crc32_hash.hpp ├── make-sln.cmd ├── notes.md └── src ├── decompiler └── cli.cpp ├── devkit └── addon.cpp ├── games ├── 1000xresist │ ├── DICE.hlsl │ ├── LUT3DBaker_0x47A1239F.cs_5_0.hlsl │ ├── UItext_0x55B0DCB7.ps_4_0.hlsl │ ├── addon.cpp │ ├── common.hlsl │ ├── lensflare_0x98ADAF37.ps_4_0.hlsl │ ├── shared.h │ ├── swap_chain_proxy_pixel_shader.ps_4_0.hlsl │ ├── swap_chain_proxy_vertex_shader.vs_4_0.hlsl │ ├── text_0x89BA88BC.ps_4_0.hlsl │ ├── tonemapper_0x9DBEB2FA.ps_4_0.hlsl │ ├── tonemapper_0xA5C1A485.ps_4_0.hlsl │ ├── tonemapper_0xAF565E99.ps_4_0.hlsl │ └── uidefault_0x5439FB55.ps_4_0.hlsl ├── acecombat7 │ ├── Lutbuilder_InGame0_0xCA80A1BE.ps_5_0.hlsl │ ├── Lutbuilder_MainMenu_0x2179DAD2.ps_5_0.hlsl │ ├── Output_InGame0_0x7A572E8F.ps_5_0.hlsl │ ├── Output_InGame1_0xE5CF5B91.ps_5_0.hlsl │ ├── Output_MainMenu_0xE227F502.ps_5_0.hlsl │ ├── UI_Compose_0x759F7DBB.ps_5_0.hlsl │ ├── UI_Compose_InGame_0xDC6E4B0E.ps_5_0.hlsl │ ├── UI_Draw_0xC9564C2A.ps_5_0.hlsl │ ├── UI_Final_0x53ED6C97.ps_5_0.hlsl │ ├── UI_Holograms_0x1E252703.ps_5_0.hlsl │ ├── UI_Hud_0x541EC7AA.ps_5_0.hlsl │ ├── UI_Icons02_0xF51185E9.ps_5_0.hlsl │ ├── UI_Icons_0x5E0455BC.ps_5_0.hlsl │ ├── UI_MainMenu01_0x79821615.ps_5_0.hlsl │ ├── UI_MainMenu02_0x41FB3106.ps_5_0.hlsl │ ├── UI_MainMenu_Blur_0x13F1D13B.ps_5_0.hlsl │ ├── UI_MenuBloom_0xA8735463.ps_5_0.hlsl │ ├── UI_PreRendered_Video_0x645484C3.ps_5_0.hlsl │ ├── UI_Unknown00_0x6165FC93.ps_5_0.hlsl │ ├── addon.cpp │ ├── shared.h │ └── xx_0x82BED845.ps_5_0.hlsl ├── angerfoot │ ├── LUT3DBaker_0x6EA48EC8.cs_5_0.hlsl │ ├── LUT3DBaker_0x995B320A.cs_5_0.hlsl │ ├── addon.cpp │ ├── colourcorrection_0x459D4153.ps_4_0.hlsl │ ├── common.hlsl │ ├── crosshair_0xBA4C6020.ps_4_0.hlsl │ ├── final_0x20133A8B.ps_4_0.hlsl │ ├── fxaa_0xCC8B6ACF.ps_5_0.hlsl │ ├── shared.h │ ├── smaa_0x366EE13E.ps_5_0.hlsl │ ├── uberpost10_0xAFBE175C.ps_4_0.hlsl │ ├── uberpost12_0x272EB112.ps_4_0.hlsl │ ├── uberpost13_0xAF565E99.ps_4_0.hlsl │ ├── uberpost14_0xB8308863.ps_4_0.hlsl │ ├── uberpost15_0x9BC48214.ps_4_0.hlsl │ ├── uberpost16_0x43621B25.ps_4_0.hlsl │ ├── uberpost2_0xD25C43B1.ps_4_0.hlsl │ ├── uberpost3_0x063470DC.ps_4_0.hlsl │ ├── uberpost4_0x41B1FF38.ps_4_0.hlsl │ ├── uberpost5_0x8135A20B.ps_4_0.hlsl │ ├── uberpost6_0xFF4E4EF2.ps_4_0.hlsl │ ├── uberpost7_0x86E67F52.ps_4_0.hlsl │ ├── uberpost8_0x46D3ECE8.ps_4_0.hlsl │ ├── uberpost9_0xDB814E6C.ps_4_0.hlsl │ ├── uberpostTM_0x2706BB7A.ps_4_0.hlsl │ ├── uberpost_0xA46C1ECB.ps_4_0.hlsl │ └── videos_0x8A6BCB4C.ps_4_0.hlsl ├── animalwell │ ├── 00_scanlines_0x0076212D.ps_5_0.hlsl │ ├── 03_render_to_composite_0x20C9EB92.ps_5_0.hlsl │ ├── 0x_composite_to_render_0x305E643E.ps_5_0.hlsl │ ├── 0x_copy_to_render_0xC2157826.ps_5_0.hlsl │ ├── 0x_fg_light_scale_0xCAC7BD52.ps_5_0.hlsl │ ├── 0x_render_to_fg_light_0x8FD21AD4.ps_5_0.hlsl │ ├── 0x_uv_light_to_render_0xF818E210.ps_5_0.hlsl │ ├── addon.cpp │ └── shared.h ├── aptinnocence │ ├── addon.cpp │ ├── common.hlsl │ ├── final_0x16D5DBDF.ps_5_0.hlsl │ ├── shared.h │ ├── tonemap100_0xDD331269.ps_5_0.hlsl │ ├── tonemap101_0x0CC2075D.ps_5_0.hlsl │ ├── tonemap102_0x9C37C1D9.ps_5_0.hlsl │ ├── tonemap103_0x68333490.ps_5_0.hlsl │ ├── tonemap104_0xA900199B.ps_5_0.hlsl │ ├── tonemap105_0xBE0A06A2.ps_5_0.hlsl │ ├── tonemap106_0x5E5602ED.ps_5_0.hlsl │ ├── tonemap107_0x9BBD5A1C.ps_5_0.hlsl │ ├── tonemap108_0x46EA6003.ps_5_0.hlsl │ ├── tonemap109_0x2935CA66.ps_5_0.hlsl │ ├── tonemap10_0xABA0921A.ps_5_0.hlsl │ ├── tonemap110_0x17943E7D.ps_5_0.hlsl │ ├── tonemap111_0x26130AF5.ps_5_0.hlsl │ ├── tonemap112_0x6C3C86DA.ps_5_0.hlsl │ ├── tonemap113_0x816D20DE.ps_5_0.hlsl │ ├── tonemap114_0x11ACF198.ps_5_0.hlsl │ ├── tonemap115_0x54C8FFE4.ps_5_0.hlsl │ ├── tonemap116_0x77EEDC99.ps_5_0.hlsl │ ├── tonemap117_0xD18F2C1B.ps_5_0.hlsl │ ├── tonemap118_0xEC579C44.ps_5_0.hlsl │ ├── tonemap119_0xFC92FC89.ps_5_0.hlsl │ ├── tonemap11_0x50C4614E.ps_5_0.hlsl │ ├── tonemap120_0x357951FE.ps_5_0.hlsl │ ├── tonemap121_0xC6178618.ps_5_0.hlsl │ ├── tonemap122_0x6AEA77DC.ps_5_0.hlsl │ ├── tonemap123_0x66135DC8.ps_5_0.hlsl │ ├── tonemap124_0x8A35C041.ps_5_0.hlsl │ ├── tonemap125_0xCD0E9660.ps_5_0.hlsl │ ├── tonemap126_0xD7F6CD5F.ps_5_0.hlsl │ ├── tonemap127_0xF1BA177B.ps_5_0.hlsl │ ├── tonemap128_0x32E1A18D.ps_5_0.hlsl │ ├── tonemap129_0xD93DEDCD.ps_5_0.hlsl │ ├── tonemap12_0x4D27EFE4.ps_5_0.hlsl │ ├── tonemap130_0x3200CCB7.ps_5_0.hlsl │ ├── tonemap131_0xD18FD7EC.ps_5_0.hlsl │ ├── tonemap132_0x0B3A9151.ps_5_0.hlsl │ ├── tonemap133_0x7A8541CB.ps_5_0.hlsl │ ├── tonemap134_0x25F05C9E.ps_5_0.hlsl │ ├── tonemap135_0x6842A427.ps_5_0.hlsl │ ├── tonemap13_0x02752086.ps_5_0.hlsl │ ├── tonemap14_0x1E95DFAA.ps_5_0.hlsl │ ├── tonemap15_0x1EAC2755.ps_5_0.hlsl │ ├── tonemap16_0xB08D4631.ps_5_0.hlsl │ ├── tonemap17_0x40D01156.ps_5_0.hlsl │ ├── tonemap18_0x16B3D4EA.ps_5_0.hlsl │ ├── tonemap19_0x467FA5E8.ps_5_0.hlsl │ ├── tonemap20_0x6BD6CCF2.ps_5_0.hlsl │ ├── tonemap21_0x35394394.ps_5_0.hlsl │ ├── tonemap22_0x861391DC.ps_5_0.hlsl │ ├── tonemap23_0x2AD07A02.ps_5_0.hlsl │ ├── tonemap24_0x9051A7A9.ps_5_0.hlsl │ ├── tonemap25_0xEFEDB0D0.ps_5_0.hlsl │ ├── tonemap26_0xBCC02A24.ps_5_0.hlsl │ ├── tonemap27_0x0502EF4A.ps_5_0.hlsl │ ├── tonemap28_0x261B3413.ps_5_0.hlsl │ ├── tonemap29_0x5A4546CF.ps_5_0.hlsl │ ├── tonemap2_0xD7192C56.ps_5_0.hlsl │ ├── tonemap30_0x516235E2.ps_5_0.hlsl │ ├── tonemap31_0xD4020FAA.ps_5_0.hlsl │ ├── tonemap32_0x43BB0F12.ps_5_0.hlsl │ ├── tonemap33_0xCFDE7F0C.ps_5_0.hlsl │ ├── tonemap34_0x0BE823E1.ps_5_0.hlsl │ ├── tonemap35_0xDB64B2BB.ps_5_0.hlsl │ ├── tonemap36_0xCE06587B.ps_5_0.hlsl │ ├── tonemap37_0x01DE0656.ps_5_0.hlsl │ ├── tonemap38_0x74C290ED.ps_5_0.hlsl │ ├── tonemap39_0x844E8541.ps_5_0.hlsl │ ├── tonemap3_0xF2243AFF.ps_5_0.hlsl │ ├── tonemap40_0x4029D69D.ps_5_0.hlsl │ ├── tonemap41_0xA8D32BBB.ps_5_0.hlsl │ ├── tonemap42_0xE4863DCF.ps_5_0.hlsl │ ├── tonemap43_0xDB93313F.ps_5_0.hlsl │ ├── tonemap44_0xEB551321.ps_5_0.hlsl │ ├── tonemap45_0xB11E80DD.ps_5_0.hlsl │ ├── tonemap46_0x0A6C1673.ps_5_0.hlsl │ ├── tonemap47_0x00D8F487.ps_5_0.hlsl │ ├── tonemap48_0xF35DA225.ps_5_0.hlsl │ ├── tonemap49_0x25B30D2A.ps_5_0.hlsl │ ├── tonemap4_0x5AF10FE1.ps_5_0.hlsl │ ├── tonemap50_0x909013F7.ps_5_0.hlsl │ ├── tonemap51_0x9EE29144.ps_5_0.hlsl │ ├── tonemap52_0xC4C8EDDD.ps_5_0.hlsl │ ├── tonemap53_0xA12D3746.ps_5_0.hlsl │ ├── tonemap54_0x5DBD59DA.ps_5_0.hlsl │ ├── tonemap55_0x85D588FD.ps_5_0.hlsl │ ├── tonemap56_0x8CAD268A.ps_5_0.hlsl │ ├── tonemap57_0xB32D7EBA.ps_5_0.hlsl │ ├── tonemap58_0x035059E4.ps_5_0.hlsl │ ├── tonemap59_0x597228FA.ps_5_0.hlsl │ ├── tonemap5_0x33AB5404.ps_5_0.hlsl │ ├── tonemap60_0x255A96DB.ps_5_0.hlsl │ ├── tonemap61_0x63E8AB08.ps_5_0.hlsl │ ├── tonemap62_0x959A3AF5.ps_5_0.hlsl │ ├── tonemap63_0x066605F5.ps_5_0.hlsl │ ├── tonemap64_0xCE610F96.ps_5_0.hlsl │ ├── tonemap65_0xA01B0251.ps_5_0.hlsl │ ├── tonemap66_0x56D076D5.ps_5_0.hlsl │ ├── tonemap67_0x653632FF.ps_5_0.hlsl │ ├── tonemap68_0xB005022A.ps_5_0.hlsl │ ├── tonemap69_0xCA4C7F6E.ps_5_0.hlsl │ ├── tonemap6_0xBEE9C40B.ps_5_0.hlsl │ ├── tonemap70_0xE3F00C37.ps_5_0.hlsl │ ├── tonemap71_0x2339F1B3.ps_5_0.hlsl │ ├── tonemap72_0xC2956128.ps_5_0.hlsl │ ├── tonemap73_0xAEBDF7AA.ps_5_0.hlsl │ ├── tonemap74_0x0326D4CA.ps_5_0.hlsl │ ├── tonemap75_0x8DDB9366.ps_5_0.hlsl │ ├── tonemap76_0xADCA1C5F.ps_5_0.hlsl │ ├── tonemap77_0x4DAFFF3D.ps_5_0.hlsl │ ├── tonemap78_0x66FAEF88.ps_5_0.hlsl │ ├── tonemap79_0xAFB77956.ps_5_0.hlsl │ ├── tonemap7_0x71C6DC6C.ps_5_0.hlsl │ ├── tonemap80_0x8482C5D3.ps_5_0.hlsl │ ├── tonemap81_0xEFC1F305.ps_5_0.hlsl │ ├── tonemap82_0xBC6EF18F.ps_5_0.hlsl │ ├── tonemap83_0x555A8762.ps_5_0.hlsl │ ├── tonemap84_0x1565A261.ps_5_0.hlsl │ ├── tonemap85_0xC4E27A54.ps_5_0.hlsl │ ├── tonemap86_0x5FEF8F53.ps_5_0.hlsl │ ├── tonemap87_0xA2273C02.ps_5_0.hlsl │ ├── tonemap88_0x2F905EC9.ps_5_0.hlsl │ ├── tonemap89_0xEDC2424D.ps_5_0.hlsl │ ├── tonemap8_0xBFDFDB81.ps_5_0.hlsl │ ├── tonemap90_0x1BB00117.ps_5_0.hlsl │ ├── tonemap91_0x1DFA514E.ps_5_0.hlsl │ ├── tonemap92_0x7D28E177.ps_5_0.hlsl │ ├── tonemap93_0x85FB39A3.ps_5_0.hlsl │ ├── tonemap94_0x16080FD2.ps_5_0.hlsl │ ├── tonemap95_0x04126082.ps_5_0.hlsl │ ├── tonemap96_0x0B316689.ps_5_0.hlsl │ ├── tonemap97_0x24C4FD62.ps_5_0.hlsl │ ├── tonemap98_0xB3914B14.ps_5_0.hlsl │ ├── tonemap99_0x1345B102.ps_5_0.hlsl │ ├── tonemap9_0xA57B2A6D.ps_5_0.hlsl │ ├── tonemap_0xE6BB6773.ps_5_0.hlsl │ └── videos_0xB5DC058C.ps_5_0.hlsl ├── artofrally │ ├── LUT3DBakerACES_0x6EA48EC8.cs_5_0.hlsl │ ├── LUT3DBakerNeutral_0xBE750C14.cs_5_0.hlsl │ ├── UIdefault_0x2B868B21.ps_4_0.hlsl │ ├── UIdefaultfeather_0xD0559BEE.ps_4_0.hlsl │ ├── addon.cpp │ ├── common.hlsl │ ├── final_0x20133A8B.ps_4_0.hlsl │ ├── ppfinalFXAA_0xCC8B6ACF.ps_5_0.hlsl │ ├── ppfinalSMAA_0x366EE13E.ps_5_0.hlsl │ ├── shared.h │ ├── uberpost2_0x6D14F22A.ps_4_0.hlsl │ ├── uberpost3_0x18DC6A24.ps_4_0.hlsl │ ├── uberpost4_0xC63B24BB.ps_4_0.hlsl │ ├── uberpost5_0x7E2A04D8.ps_4_0.hlsl │ ├── uberpost6_0x957EC72A.ps_4_0.hlsl │ ├── uberpost7_0x272EB112.ps_4_0.hlsl │ ├── uberpost8_0xDB814E6C.ps_4_0.hlsl │ ├── uberpostTM_0x728A5929.ps_4_0.hlsl │ └── uberpost_0x6BE60185.ps_4_0.hlsl ├── asscreedmirage │ ├── LUTSRGBTOHDR_0x0E048C6D.cs_6_0.hlsl │ ├── LUT_0xAA7F0DB7.cs_6_0.hlsl │ ├── PS_HDRLightingApply_0x5EEEC729.ps_6_0.hlsl │ ├── addon.cpp │ ├── common.hlsl │ ├── main_LUTRRTODT_0xFE07E3F3.cs_6_0.hlsl │ └── shared.h ├── asscreedorigins │ ├── ColorGradingGenerateLUT_Output_0x373CE24C.cs_5_0.hlsl │ ├── ColorGradingGenerateRRTODTLUT_0xE98D8E32.cs_5_0.hlsl │ ├── ColorGradingGenerateSRGBToHDRLUT_0xC2EBEA6D.cs_5_0.hlsl │ ├── addon.cpp │ ├── common.hlsl │ └── shared.h ├── asscreedshadows │ ├── CS_LUTRRTODT_0x551A03A4.cs_6_0.hlsl │ ├── CS_LUTSRGBTOHDR_0x2339C673.cs_6_0.hlsl │ ├── CS_LUTVIDEOSRGBTOHDR_0x315AE769.cs_6_0.hlsl │ ├── CS_LUT_0xF65A634F.cs_6_0.hlsl │ ├── DICE.hlsli │ ├── PS_HDRLightingApply_0x7F7E20A0.ps_6_0.hlsl │ ├── PS_LocalToneMappingApply_0xAE262C33.ps_6_0.hlsl │ ├── addon.cpp │ ├── common.hlsl │ └── shared.h ├── asscreedvalhalla │ ├── LUTSRGBTOHDR_0xA91FBC05.cs_5_1.hlsl │ ├── LUTVIDEOSRGBTOHDR_0x2BDC4DF4.cs_5_1.hlsl │ ├── addon.cpp │ ├── common.hlsl │ ├── main_LUTRRTODT_0xB054D3BA.cs_5_1.hlsl │ └── shared.h ├── avowed │ ├── addon.cpp │ ├── common.hlsl │ ├── lutbuilder_0xF890095A.cs_6_6.hlsl │ ├── output_0x0D5CC3D6.ps_6_6.hlsl │ ├── output_0x1C7099E6.ps_6_6.hlsl │ ├── output_0x2C8B0AF1.ps_6_6.hlsl │ ├── output_0x32D614BD.ps_6_6.hlsl │ ├── output_0x52743DD3.ps_6_6.hlsl │ ├── output_0x87C99513.ps_6_6.hlsl │ ├── output_0x99EEAAEE.cs_6_6.hlsl │ ├── output_0x9D0A7301.ps_6_6.hlsl │ ├── output_0x9DFC1E29.ps_6_6.hlsl │ ├── output_0xC3E6BD60.cs_6_6.hlsl │ ├── output_0xE67895B2.cs_6_6.hlsl │ ├── shared.h │ ├── swap_chain_proxy_pixel_shader.ps_5_1.hlsl │ └── swap_chain_proxy_vertex_shader.vs_5_1.hlsl ├── awakenastralblade │ ├── LUT3DBakerNoTonemap_0x995B320A.cs_5_0.hlsl │ ├── addon.cpp │ ├── common.hlsl │ ├── final_0x20133A8B.ps_4_0.hlsl │ ├── postfinal_0x366EE13E.ps_5_0.hlsl │ ├── shared.h │ ├── uberpost2_0x4757CDEB.ps_4_0.hlsl │ ├── uberpost3_0x41B1FF38.ps_4_0.hlsl │ ├── uberpost4_0xD25C43B1.ps_4_0.hlsl │ ├── uberpostTM_0xFF4E4EF2.ps_4_0.hlsl │ ├── uberpost_0xB8308863.ps_4_0.hlsl │ └── videos_0x8A6BCB4C.ps_4_0.hlsl ├── baldursgate3 │ ├── addon.cpp │ ├── color_grade_0xC6879C29.ps_5_0.hlsl │ ├── common.hlsli │ ├── shared.h │ ├── tonemap_lutbuilder_alternate_0x1B418D49.cs_5_0.hlsl │ ├── tonemap_lutbuilder_main_0x48E37C1E.cs_5_0.hlsl │ ├── tonemap_sample_lut_0x11C53BBA.ps_5_0.hlsl │ └── ui_0x36496C32.ps_5_0.hlsl ├── batmanak │ ├── addon.cpp │ ├── final00_0x2C2D0899.ps_5_0.hlsl │ ├── final01_0x5DAD9473.ps_5_0.hlsl │ ├── final13_0x8CBD2352.ps_5_0.hlsl │ ├── lensflare_0xB42A7F40.cs_5_0.hlsl │ ├── shared.h │ ├── swap_chain_proxy_pixel_shader.ps_4_0.hlsl │ ├── swap_chain_proxy_vertex_shader.vs_4_0.hlsl │ ├── tonemapper.hlsl │ ├── tonemapper00_0x978BFB09.cs_5_0.hlsl │ ├── tonemapper01_0xB6B56605.cs_5_0.hlsl │ ├── tonemapper02_0xF01CCC7E.cs_5_0.hlsl │ ├── tonemapper03_0x3A4E0B90.cs_5_0.hlsl │ ├── unknown01_0xD6A846C8.ps_5_0.hlsl │ ├── unknown02_0x0C142BB2.ps_5_0.hlsl │ ├── unknown04_0x931FF3DD.ps_5_0.hlsl │ ├── unknown05_0x93793FBB.ps_5_0.hlsl │ ├── video2_0xCD1E0E4C.ps_5_0.hlsl │ └── video_0x12200F17.ps_5_0.hlsl ├── betonbrutal │ ├── LUT3DBaker_0x47A1239F.cs_5_0.hlsl │ ├── LumaSharpen_0x0E55C1C1.ps_4_0.hlsl │ ├── UIR_0x84D86903.ps_4_0.hlsl │ ├── addon.cpp │ ├── common.hlsl │ ├── final_0x20133A8B.ps_4_0.hlsl │ ├── postfinal_0xCC8B6ACF.ps_5_0.hlsl │ ├── shared.h │ ├── uberpost2_0x9CC447BF.ps_4_0.hlsl │ ├── uberpost3_0xC63B24BB.ps_4_0.hlsl │ ├── uberpost4_0xCF7B19D4.ps_4_0.hlsl │ └── uberpost_0x440F1911.ps_4_0.hlsl ├── beyondblue │ ├── Lut3DBaker.KGenLut3D_NeutralTonemap_0xBE750C14.cs_5_0.hlsl │ ├── Lut3DBaker_AcesTonemap_0x47A1239F.cs_5_0.hlsl │ ├── PostProcessing_FinalPass_0xABF2B519.ps_5_0.hlsl │ ├── PostProcessing_Uber_0x7A37E8BA.ps_4_0.hlsl │ ├── PostProcessing_Uber_0xAF565E99.ps_4_0.hlsl │ ├── PostProcessing_Uber_0xAFBE175C.ps_4_0.hlsl │ ├── PostProcessing_Uber_0xD25C43B1.ps_4_0.hlsl │ ├── ScannerPost_0x62B04FA9.ps_4_0.hlsl │ ├── Swapchain_BackBuffer_0x20133A8B.ps_4_0.hlsl │ ├── addon.cpp │ ├── common.hlsli │ ├── shared.h │ ├── tonemap.hlsli │ └── uishaders │ │ ├── Midnight_Bread_Crumb_UI_0x9232F9CC.ps_4_0.hlsl │ │ ├── TextMeshPro__Distance_Field_0x4F036BB9.ps_4_0.hlsl │ │ ├── TextMeshPro__Distance_Field_0x55B0DCB7.ps_4_0.hlsl │ │ ├── TextMeshPro__Distance_Field_0x915C6643.ps_4_0.hlsl │ │ ├── TextMeshPro__Distance_Field_0xC1457489.ps_4_0.hlsl │ │ ├── TextMeshPro__Mobile__Distance_Field_0xC8B9F878.ps_4_0.hlsl │ │ ├── UI_0x04615C32.ps_4_0.hlsl │ │ ├── UI_0x066C98CB.ps_4_0.hlsl │ │ ├── UI_0x510352D9.ps_4_0.hlsl │ │ └── UI_0x8E2521B8.ps_4_0.hlsl ├── bge20 │ ├── 00_ui_0x0F50F420.ps_6_2.hlsl │ ├── 01_render_0x926870A7.ps_6_2.hlsl │ ├── 02_bloom_0xF5D62886.ps_6_2.hlsl │ ├── addon.cpp │ └── shared.h ├── bioshock │ ├── AntiAliasing_0xEC834D82.ps_4_0.hlsl │ ├── Bloom_Tonemap_0x6457104F.ps_4_0.hlsl │ ├── Fog2_0x0C454543.ps_4_0.hlsl │ ├── Fog3_0x3F8A5A79.ps_4_0.hlsl │ ├── Fog4_0x64B4F8D8.ps_4_0.hlsl │ ├── Fog5_0x21303C74.ps_4_0.hlsl │ ├── Fog6_0x63693A7F.ps_4_0.hlsl │ ├── Fog_0xDAA8E1E9.ps_4_0.hlsl │ ├── X_Final_0xFFFFFFFD.vs_5_0.hlsl │ ├── X_Final_0xFFFFFFFE.ps_5_0.hlsl │ ├── addon.cpp │ └── shared.h ├── bladesoffire │ ├── addon.cpp │ ├── final_0x1C9E27B4.ps_6_0.hlsl │ ├── shared.h │ └── tonemapper_0x686F735B.ps_6_0.hlsl ├── bmw │ ├── addon.cpp │ ├── common.hlsl │ ├── final_0xA6EBE600.ps_6_6.hlsl │ ├── lutbuilder_0x2136F151.ps_6_6.hlsl │ ├── lutbuilder_0x22FF7D28.ps_6_6.hlsl │ ├── lutbuilder_0xA43658B6.ps_6_6.hlsl │ ├── lutbuilder_0xBFA7B92F.ps_6_6.hlsl │ ├── lutbuilder_0xE1970A14.ps_6_6.hlsl │ └── shared.h ├── childrenofthesun │ ├── LutBuilderHdr_0x31B52561.ps_4_0.hlsl │ ├── addon.cpp │ ├── common.hlsl │ ├── final_0x20133A8B.ps_4_0.hlsl │ ├── shared.h │ ├── uberpost_0x4DD5AD48.ps_4_0.hlsl │ └── videos_0xF804335C.ps_4_0.hlsl ├── citizensleeper2 │ ├── addon.cpp │ ├── output_0xF89DA645.ps_4_0.hlsl │ ├── shared.h │ ├── swap_chain_proxy_pixel_shader.ps_4_0.hlsl │ └── swap_chain_proxy_vertex_shader.vs_4_0.hlsl ├── clairobscur_expedition33 │ ├── addon.cpp │ ├── common.hlsl │ ├── lilium_rcas.hlsl │ ├── lutbuilder_0x0649A5D1.ps_6_6.hlsl │ ├── lutbuilder_0x4A0DBF57.ps_6_6.hlsl │ ├── lutbuilder_0x50F22BD6.ps_6_6.hlsl │ ├── lutbuilder_0x773A9497.ps_6_6.hlsl │ ├── lutbuilder_0xF9332C83.ps_6_6.hlsl │ ├── output_0x0225BFCC.ps_6_6.hlsl │ ├── output_0x02F72AB9.ps_6_6.hlsl │ ├── output_0x105548CA.ps_6_6.hlsl │ ├── output_0x11FC90B8.ps_6_6.hlsl │ ├── output_0x3E1BB6C2.ps_6_6.hlsl │ ├── output_0x4857D989.ps_6_6.hlsl │ ├── output_0x53590DD2.ps_6_6.hlsl │ ├── output_0x588CCFE6.ps_6_6.hlsl │ ├── output_0x677CD5B1.ps_6_6.hlsl │ ├── output_0x70E516C2.ps_6_6.hlsl │ ├── output_0x9AAF5641.ps_6_6.hlsl │ ├── output_0xB75D8FEB.ps_6_6.hlsl │ ├── output_0xB8C42E1E.ps_6_6.hlsl │ ├── output_0xBF304D2A.ps_6_6.hlsl │ ├── output_0xCBEF36B5.ps_6_6.hlsl │ ├── output_0xE94170AC.ps_6_6.hlsl │ ├── output_0xF1C9DBC1.ps_6_6.hlsl │ ├── output_0xF9248AC8.ps_6_6.hlsl │ ├── postprocess_0x9FB83C96.ps_6_6.hlsl │ ├── pp_filmgrain_0x86695935.ps_6_6.hlsl │ ├── shared.h │ ├── swap_chain_proxy_pixel_shader.ps_5_x.hlsl │ └── swap_chain_proxy_vertex_shader.vs_5_x.hlsl ├── cp2077 │ ├── aces_cdpr.hlsl │ ├── addon.cpp │ ├── autoexposure_0x1F5B2B62_ps_6_0.hlsl │ ├── colormath.hlsl │ ├── composite.hlsl │ ├── composite2.hlsl │ ├── composite2_0x21C2AF18.ps_6_0.hlsl │ ├── composite2_array_multisample_0xA8520658.ps_6_0.hlsl │ ├── composite2_array_multisample_blend_rtv1_0x04D8EA44.ps_6_0.hlsl │ ├── composite2_array_multisample_blend_rtv1_lowbit_0xE090225C.ps_6_0.hlsl │ ├── composite2_array_multisample_lowbit_0x4F8F2E3E.ps_6_0.hlsl │ ├── composite2_blend_rtv1_0x4A2023A1.ps_6_0.hlsl │ ├── composite2_blend_rtv1_lowbit_0x9D54135F.ps_6_0.hlsl │ ├── composite2_lowbit_0x950FDF7E.ps_6_0.hlsl │ ├── composite2_multisample_0x4E63FBE2.ps_6_0.hlsl │ ├── composite2_multisample_blend_rtv1_0xED7139C7.ps_6_0.hlsl │ ├── composite2_multisample_blend_rtv1_lowbit_0x69A26CA5.ps_6_0.hlsl │ ├── composite2_multisample_lowbit_0x948170D4.ps_6_0.hlsl │ ├── composite_0x5DF649A9.ps_6_0.hlsl │ ├── composite_lowbit_0xA61F2FEE.ps_6_0.hlsl │ ├── composite_multisample_0x298A6BB0.ps_6_0.hlsl │ ├── composite_multisample_lowbit_0xBF8489D2.ps_6_0.hlsl │ ├── cp2077.h │ ├── film_grain_gen_0xD2BBEBD9.cs_6_0.hlsl │ ├── film_grain_overlay_0xC783FBA1.cs_6_0.hlsl │ ├── film_grain_overlay_221_0xE87F9B2E.cs_6_0.hlsl │ ├── film_grain_overlay_new_0x80CEFAE4.cs_6_0.hlsl │ ├── hud_0xC83E64DF.cs_6_0.hlsl │ ├── hud_221_0x11C9D257.cs_6_0.hlsl │ ├── hud_new_0xFBFF99B4.cs_6_0.hlsl │ ├── injectedBuffer.hlsl │ ├── menu2_0x55E00CA2.cs_6_0.hlsl │ ├── menu3_0xB489149F.cs_6_0.hlsl │ ├── menu4_0xE57907C4.ps_6_0.hlsl │ ├── menu_0xDE517511.cs_6_0.hlsl │ ├── menu_221_0xD46D9215.cs_6_0.hlsl │ ├── menu_221_norender_0xFDE6BBAC.cs_6_0.hlsl │ ├── menu_new2.0x18CFEFF4.cs_6_0.hlsl │ ├── menu_new_0x89C4A7A4.cs_6_0.hlsl │ ├── output_0xCBFFC2A3.ps_6_0.hlsl │ ├── render_composite_0x439442E3.ps_6_0.hlsl │ ├── skyexposure_0xF3F077EA_ps_6_0.hlsl │ ├── skymask_0x1C0F46FD_ps_6_0.hlsl │ ├── skymaskbuilder_0xAE939A0F_ps_6_0.hlsl │ ├── tonemapper.hlsl │ ├── tonemapper_0x71F27445.cs_6_0.hlsl │ ├── tonemapper_lowbit_0x97CA5A85.cs_6_0.hlsl │ ├── tonemapper_sdr_0x61DBBA5C.cs_6_0.hlsl │ ├── tonemapper_sdr_lowbit_0x745E34E1.cs_6_0.hlsl │ ├── unknown_0x0B908CCF.ps_6_0.hlsl │ └── upscaler_0x341CEB87.cs_6_0.hlsl ├── dai │ ├── ResScale2_0xE6C75B8E.ps_5_0.hlsl │ ├── UIalpha_0xE8AAA41F.ps_5_0.hlsl │ ├── addon.cpp │ ├── common.hlsl │ ├── shared.h │ ├── swap_chain_proxy_pixel_shader.ps_5_0.hlsl │ ├── swap_chain_proxy_vertex_shader.vs_5_0.hlsl │ ├── tonemap1_0x39C155AA.ps_5_0.hlsl │ ├── tonemap2_0x59D67072.ps_5_0.hlsl │ ├── tonemap3_0xA6483DBE.ps_5_0.hlsl │ ├── tonemap4_0x4A22EBE7.ps_5_0.hlsl │ ├── tonemap5ocular_0x83C78E9A.ps_5_0.hlsl │ ├── tonemap6ocular_0x74DD925C.ps_5_0.hlsl │ ├── tonemap7_0x848FA77D.ps_5_0.hlsl │ ├── tonemapC1_0xB3B5916C.ps_5_0.hlsl │ ├── tonemapC2_0x298147DD.ps_5_0.hlsl │ ├── tonemapC3_0xEE7DEA72.ps_5_0.hlsl │ ├── tonemapC4_0xE30CE1FB.ps_5_0.hlsl │ └── videos_0x5545BDF0.ps_5_0.hlsl ├── darksouls │ ├── DICE.hlsl │ ├── addon.cpp │ ├── bloom_0x6FDD08FC.ps_5_0.hlsl │ ├── dof_far_0xDFCB6E8B.ps_5_0.hlsl │ ├── gamma_0xAB7CF260.ps_5_0.hlsl │ ├── shared.h │ ├── tonemap_0xF87B3349.ps_5_0.hlsl │ ├── ui_0x64F62639.ps_5_0.hlsl │ ├── ui_0x809881A3.ps_5_0.hlsl │ ├── ui_0xB0850BF3.ps_5_0.hlsl │ └── ui_text_0x6024AB96.ps_5_0.hlsl ├── darktide │ ├── addon.cpp │ ├── common.hlsl │ ├── lilium_cas.hlsl │ ├── output_0x882D3C2F.ps_6_0.hlsl │ ├── shared.h │ ├── sharpness_0x3B79D402.cs_6_0.hlsl │ ├── swap_chain_proxy_pixel_shader.ps_5_1.hlsl │ ├── swap_chain_proxy_vertex_shader.vs_5_1.hlsl │ ├── tonemapper_0x0AF1BCE6.ps_6_0.hlsl │ ├── tonemapper_0x2DA6CA4B.ps_6_0.hlsl │ ├── tonemapper_0x9347F823.ps_6_0.hlsl │ ├── tonemapper_0xE0EF4D92.ps_6_0.hlsl │ ├── tonemapper_0xF155E283.ps_6_0.hlsl │ └── video_0x9715D453.ps_6_0.hlsl ├── dbzspark │ ├── DICE.hlsl │ ├── addon.cpp │ ├── colorcorrect_0x5975CAFA.ps_5_1.hlsl │ ├── colorcorrect_0x753DE2A9.ps_5_1.hlsl │ ├── colorcorrect_0xAB3F1A02.ps_5_1.hlsl │ ├── colorcorrect_0xD80F99B3.ps_5_1.hlsl │ ├── final00_0x4156562D.ps_5_1.hlsl │ ├── lutbuilder_0x2569985B.ps_5_1.hlsl │ ├── lutbuilder_0x31FE4421.ps_5_1.hlsl │ ├── lutbuilder_0x36E3A438.ps_5_1.hlsl │ ├── lutbuilder_0xC2A711CC.ps_5_1.hlsl │ ├── lutbuilder_0xE2C936EB.ps_5_1.hlsl │ ├── output01_0x4F06C1AD.ps_5_1.hlsl │ ├── output01_0x8C20620E.ps_5_1.hlsl │ ├── output01_0x9A3DADB2.ps_5_1.hlsl │ ├── output01_0xF554DE7A.ps_5_1.hlsl │ ├── shared.h │ └── tonemapper.hlsl ├── dmc5 │ ├── ConvertRec2020PS_0x6AB2B106.ps_5_0.hlsl │ ├── DICE.hlsl │ ├── LUTBlackCorrection.hlsl │ ├── addon.cpp │ ├── shared.h │ └── tonemap_0xA59B718D.ps_5_0.hlsl ├── duniaengine │ ├── Avatar │ │ ├── grading_0xDE02EA5F.ps_4_0.hlsl │ │ └── videos_0xDC7BCE83.ps_4_0.hlsl │ ├── FarCry2 │ │ ├── bloomsample_0x2DE809A9.ps_4_0.hlsl │ │ ├── grading_0x52A3DCD5.ps_4_0.hlsl │ │ ├── grading_0x8B2AB983.ps_4_0.hlsl │ │ └── videos_0x7399DA1F.ps_4_0.hlsl │ ├── FarCry3 │ │ ├── AA_0x06AC2C1D.ps_5_0.hlsl │ │ ├── UI_0xDEA4BACD.ps_5_0.hlsl │ │ ├── effect_0x0364C9A7.ps_5_0.hlsl │ │ ├── effect_0x12E98EAA.ps_5_0.hlsl │ │ ├── effect_0x172215B1.ps_5_0.hlsl │ │ ├── effect_0x1C7F67A4.ps_5_0.hlsl │ │ ├── effect_0x1F33196A.ps_5_0.hlsl │ │ ├── effect_0x29CD18B6.ps_5_0.hlsl │ │ ├── effect_0x36914D4C.ps_5_0.hlsl │ │ ├── effect_0x3E5B1161.ps_5_0.hlsl │ │ ├── effect_0x568F7B61.ps_5_0.hlsl │ │ ├── effect_0x6E2A0D6F.ps_5_0.hlsl │ │ ├── effect_0x6FF02A67.ps_5_0.hlsl │ │ ├── effect_0x8333D6F1.ps_5_0.hlsl │ │ ├── effect_0x86DBC4B9.ps_5_0.hlsl │ │ ├── effect_0x8D8A00F8.ps_5_0.hlsl │ │ ├── effect_0x8E890F88.ps_5_0.hlsl │ │ ├── effect_0xA3F537D2.ps_5_0.hlsl │ │ ├── effect_0xB5FBCC2B.ps_5_0.hlsl │ │ ├── effect_0xB9C79B5F.ps_5_0.hlsl │ │ ├── effect_0xC450C211.ps_5_0.hlsl │ │ ├── effect_0xC69EBB3D.ps_5_0.hlsl │ │ ├── effect_0xC7C99EFC.ps_5_0.hlsl │ │ ├── effect_0xD7500557.ps_5_0.hlsl │ │ ├── effect_0xEC102A39.ps_5_0.hlsl │ │ ├── effect_0xF18C2172.ps_5_0.hlsl │ │ ├── effect_0xF1F4D4DD.ps_5_0.hlsl │ │ ├── effect_0xF29207EF.ps_5_0.hlsl │ │ ├── filmgrain_0x85145482.ps_5_0.hlsl │ │ ├── lines_0xAC102B92.ps_5_0.hlsl │ │ ├── something_0x0BFBC3A9.ps_5_0.hlsl │ │ ├── something_0x1CA344D0.ps_5_0.hlsl │ │ ├── something_0x94CF318C.ps_5_0.hlsl │ │ ├── something_0xA6A9C3BD.ps_5_0.hlsl │ │ ├── tonemap_0x129E838C.ps_5_0.hlsl │ │ ├── tonemap_0x2D942350.ps_5_0.hlsl │ │ ├── tonemap_0x67E0BEC3.ps_5_0.hlsl │ │ ├── tonemap_0x9400448D.ps_5_0.hlsl │ │ ├── tonemap_0xD529C189.ps_5_0.hlsl │ │ ├── tonemap_0xDB4C6627.ps_5_0.hlsl │ │ ├── videos_0x1FF398C9.ps_5_0.hlsl │ │ └── videos_0x7905FD45.ps_5_0.hlsl │ ├── FarCryPrimal │ │ ├── AA_0xA1E8AD3F.ps_5_0.hlsl │ │ ├── exposure_0xE3D68DA2.cs_5_0.hlsl │ │ ├── tonemap_0x01F1B6F2.ps_5_0.hlsl │ │ ├── tonemap_0x02938160.ps_5_0.hlsl │ │ ├── tonemap_0x03306A38.ps_5_0.hlsl │ │ ├── tonemap_0x1458B56B.ps_5_0.hlsl │ │ ├── tonemap_0x28537390.ps_5_0.hlsl │ │ ├── tonemap_0x2D0E0227.ps_5_0.hlsl │ │ ├── tonemap_0x4671847D.ps_5_0.hlsl │ │ ├── tonemap_0x594E52B0.ps_5_0.hlsl │ │ ├── tonemap_0x5D90F346.ps_5_0.hlsl │ │ ├── tonemap_0x65A18F98.ps_5_0.hlsl │ │ ├── tonemap_0xA0717E6A.ps_5_0.hlsl │ │ ├── tonemap_0xA9B38DFF.ps_5_0.hlsl │ │ ├── tonemap_0xB7B2B52B.ps_5_0.hlsl │ │ ├── tonemap_0xD08DF143.ps_5_0.hlsl │ │ ├── tonemap_0xEE739C51.ps_5_0.hlsl │ │ ├── tonemap_0xEFB860C8.ps_5_0.hlsl │ │ ├── tonemap_0xF0A0145B.ps_5_0.hlsl │ │ └── videos_0x30F66CC7.ps_5_0.hlsl │ ├── addon.cpp │ ├── common.hlsl │ ├── shared.h │ ├── swap_chain_proxy_pixel_shader.ps_4_0.hlsl │ └── swap_chain_proxy_vertex_shader.vs_4_0.hlsl ├── dxmd │ ├── 01_final_0x7FF6EC9E.ps_5_0.hlsl │ ├── 02_ui_0xE3DF9B3A.ps_5_0.hlsl │ ├── 03_filmgrain_0x11044178.ps_5_0.hlsl │ ├── 04_chromatic_aberation_0x48A33894.ps_5_0.hlsl │ ├── 05_sharpen_0xDA65F8ED.ps_5_0.hlsl │ ├── 06_temporalaa_0x84EF14ED.cs_5_0.hlsl │ ├── 06_temporalaa_off_0x00E2BDB5.ps_5_0.hlsl │ ├── 07_dofblend_0xDE757555.cs_5_0.hlsl │ ├── 08_dofbuilder_0x2FBF8291.cs_5_0.hlsl │ ├── 09_lut_0xEDC9A10D.cs_5_0.hlsl │ ├── 09_lut_overlay_0x40CB7397.cs_5_0.hlsl │ ├── 10_lensflare_0x48BDD659.ps_5_0.hlsl │ ├── 11_bloomexp_0xAC144B8D.ps_5_0.hlsl │ ├── addon.cpp │ ├── finalxx_0x9B8BB508.ps_4_0.hlsl │ └── shared.h ├── dyinglight │ ├── DICE.hlsl │ ├── RenoDRTSmoothClamp.hlsl │ ├── X_Final_0xFFFFFFFD.vs_5_0.hlsl │ ├── X_Final_0xFFFFFFFE.ps_5_0.hlsl │ ├── addon.cpp │ ├── bloom_0x61D242D6.ps_5_0.hlsl │ ├── cap_0x8194877A.ps_5_0.hlsl │ ├── extendGamut.hlsl │ ├── gamma_0x558540C8.ps_5_0.hlsl │ ├── godrays_0xA6EC1DEC.ps_5_0.hlsl │ ├── lensflare_0x3F53E66E.ps_5_0.hlsl │ ├── load_0x548937E1.ps_5_0.hlsl │ ├── lut1_0x372BEBAB.ps_5_0.hlsl │ ├── lut2_grain_0xC20255E1.ps_5_0.hlsl │ ├── lut2_no_grain_0xD42BAD58.ps_5_0.hlsl │ ├── lut_bw_grain_0x45D95DCB.ps_5_0.hlsl │ ├── lut_bw_no_grain_0xBA423838.ps_5_0.hlsl │ ├── shared.h │ ├── tonemap_0xA67ABF78.ps_5_0.hlsl │ ├── ui_0x23EFA382.ps_5_0.hlsl │ ├── ui_0x379D46ED.ps_5_0.hlsl │ ├── ui_0x404A04C7.ps_5_0.hlsl │ ├── ui_0x4D09799F.ps_5_0.hlsl │ ├── ui_0x637A1F5C.ps_5_0.hlsl │ ├── ui_0x6562755C.ps_5_0.hlsl │ ├── ui_0x7D5191F6.ps_5_0.hlsl │ ├── ui_0x7E8358E3.ps_5_0.hlsl │ ├── ui_0x822D56FA.ps_5_0.hlsl │ ├── ui_0x929C8CA5.ps_5_0.hlsl │ ├── ui_0x9F9A6B19.ps_5_0.hlsl │ ├── ui_0xB917BF4E.ps_5_0.hlsl │ ├── ui_0xBCBEE1E5.ps_5_0.hlsl │ ├── ui_0xD292312D.ps_5_0.hlsl │ └── ui_0xDC15A986.ps_5_0.hlsl ├── dyinglight2 │ ├── addon.cpp │ ├── auto_exposure_0x2378686B.ps_5_x.hlsl │ ├── lens_flare_0x43BA757D.ps_5_x.hlsl │ ├── shared.h │ ├── swap_chain_proxy_pixel_shader.ps_5_x.hlsl │ ├── swap_chain_proxy_vertex_shader.vs_5_x.hlsl │ └── tonemapper_0xA7F77A42.ps_5_x.hlsl ├── elitedangerous │ ├── addon.cpp │ ├── bloom_0xDEAFF53A.ps_5_0.hlsl │ ├── common.hlsli │ ├── shared.h │ ├── swap_chain_proxy_pixel_shader.ps_5_0.hlsl │ ├── swap_chain_proxy_vertex_shader.vs_5_0.hlsl │ ├── tonemap_0xD7E646E3.ps_5_0.hlsl │ └── video_0x2F04633E.ps_5_0.hlsl ├── ereban │ ├── HDRPfinal6_0x38B55FCE.ps_5_0.hlsl │ ├── HDRPfinalDLSS_0xCF6A37F9.ps_5_0.hlsl │ ├── HDRPfinalFXAA_0x9A3E0141.ps_5_0.hlsl │ ├── HDRPfinalTM2_0x0FA783B7.ps_5_0.hlsl │ ├── HDRPfinalTM_0x02AB22C6.ps_5_0.hlsl │ ├── HDRPfinal_0x192EEB27.ps_5_0.hlsl │ ├── LutBuilder3D2_0x7F27D36D.cs_5_0.hlsl │ ├── addon.cpp │ ├── common.hlsl │ ├── final_0x20133A8B.ps_4_0.hlsl │ ├── fxaa_0x064D62B7.cs_5_0.hlsl │ ├── rcas_0x52B5985A.ps_5_0.hlsl │ ├── rcas_0xE0FE0468.ps_5_0.hlsl │ ├── screenLUT_0x0EBC87AB.ps_5_0.hlsl │ ├── shared.h │ ├── uberpostTM_0x3BD8B8FD.cs_5_0.hlsl │ ├── uberpostTM_0xB9857DFB.cs_5_0.hlsl │ ├── uberpost_0x59A9259E.cs_5_0.hlsl │ ├── uberpost_0xE363E5C8.cs_5_0.hlsl │ └── videos_0x8A6BCB4C.ps_4_0.hlsl ├── fallout4 │ ├── 00_cursor_0x72826F5B.ps_5_0.hlsl │ ├── 00_uiopaque_0x21C1F78D.ps_5_0.hlsl │ ├── 01_uialpha_0xB14DB0F4.ps_5_0.hlsl │ ├── 09_videos_0x0F2CC0D1.ps_5_0.hlsl │ ├── 10_dofblender_0x8F009507.ps_5_0.hlsl │ ├── 11_dof1_0x7543CFBC.hlsl │ ├── 11_dof2_0x5E75012A.hlsl │ ├── 11_dof3_0xC7AD6297.hlsl │ ├── 12_luts_0x80802E60.ps_5_0.hlsl │ ├── 13_gamedof_0x83660755.ps_5_0.hlsl │ ├── 14_vignette_0xB74B05F4.ps_5_0.hlsl │ ├── 15_tonemap_a_0x8024E8B5.ps_5_0.hlsl │ ├── 15_tonemap_b_0x676B8B5D.ps_5_0.hlsl │ ├── 15_tonemap_newa_0x67685D89.ps_5_0.hlsl │ ├── 15_tonemap_newb_0xFEBC673C.ps_5_0.hlsl │ ├── addon.cpp │ ├── fxaa_0x4FB4DA20.ps_5_0.hlsl │ ├── shared.h │ ├── taa2_0x61CC29E6.ps_5_0.hlsl │ ├── taa_0x8CAC3BD9.ps_5_0.hlsl │ ├── xx_0x13EEBAE5.ps_5_0.hlsl │ ├── xx_0x153BE4A2.ps_5_0.hlsl │ ├── xx_0x261AE7AB.ps_5_0.hlsl │ ├── xx_0x33F1B3F8.ps_5_0.hlsl │ ├── xx_0x34AEF9A7.ps_5_0.hlsl │ ├── xx_0x43E69DB9.ps_5_0.hlsl │ ├── xx_0x86EC0382.hlsl │ ├── xx_0x8E032125.ps_5_0.hlsl │ ├── xx_0xCC4CAE26.ps_5_0.hlsl │ └── xx_0xECFC10A2.ps_5_0.hlsl ├── fallout76 │ ├── 09_videos_0x0F2CC0D1.ps_5_0.hlsl │ ├── addon.cpp │ ├── bloom_0x6214D668.ps_5_0.hlsl │ ├── common.hlsl │ ├── images_0x69B52EA7.ps_5_0.hlsl │ ├── images_0x7AAE8C2B.ps_5_0.hlsl │ ├── load_0x46A6A1FE.ps_5_0.hlsl │ ├── load_0xD66588EF.ps_5_0.hlsl │ ├── load_0xFEA4E7DB.ps_5_0.hlsl │ ├── load_composite_0x3C8AF2C9.ps_5_0.hlsl │ ├── lut_gamma_in_0x160805BC.ps_5_0.hlsl │ ├── lut_linear_in_0x2C63040A.ps_5_0.hlsl │ ├── pipboy_0xA3C662FB.ps_5_0.hlsl │ ├── quickboy_0xB38E2BDA.ps_5_0.hlsl │ ├── shared.h │ ├── swap_chain_proxy_pixel_shader.ps_5_0.hlsl │ ├── swap_chain_proxy_vertex_shader.vs_5_0.hlsl │ ├── taa_0x3778E664.ps_5_0.hlsl │ ├── taa_0xAF2731D9.ps_5_0.hlsl │ ├── text_0x2CA9CD55.ps_5_0.hlsl │ ├── text_0xA6AB1C75.ps_5_0.hlsl │ ├── tonemap_0x1BDD7570.ps_5_0.hlsl │ ├── tonemap_0x2A868728.ps_5_0.hlsl │ ├── tonemap_0x5D002D1E.ps_5_0.hlsl │ ├── tonemap_0xBF6561E2.ps_5_0.hlsl │ ├── ui_0x21A11DE7.ps_5_0.hlsl │ ├── ui_0x28213F99.ps_5_0.hlsl │ ├── ui_0x4B3388FE.ps_5_0.hlsl │ ├── ui_0x4D248432.ps_5_0.hlsl │ ├── ui_0x6CF04AC0.ps_5_0.hlsl │ ├── ui_0xF2CCBA8C.ps_5_0.hlsl │ ├── ui_nav_0x19558629.ps_5_0.hlsl │ └── ui_popup_0x1CA86895.ps_5_0.hlsl ├── farcry5 │ ├── addon.cpp │ ├── antialiasing │ │ ├── TAA_1_0x902DA714.ps_5_0.hlsl │ │ └── TAA_2_0xF73CAD14.ps_5_0.hlsl │ ├── common.hlsli │ ├── include │ │ ├── CBuffer_CGlobalShaderParameterProvider.hlsl │ │ └── CBuffer_CPostFxHDRBloomEffectsParameterProvider.hlsl │ ├── shared.h │ ├── tonemapshaders │ │ └── tonemap_0x1571D57D.ps_5_0.hlsl │ ├── uishaders │ │ ├── ui_0x0B4E550B.ps_5_0.hlsl │ │ ├── ui_0x38354D7D.ps_5_0.hlsl │ │ ├── ui_0x45832831.ps_5_0.hlsl │ │ ├── ui_0x59C7A45E.ps_5_0.hlsl │ │ ├── ui_map_0xF6BE0A1D.ps_5_0.hlsl │ │ └── ui_probably_0x4EF04250.ps_5_0.hlsl │ ├── untestedtonemapshaders │ │ ├── 0x000D2BC4.ps_5_0.hlsl │ │ ├── 0x0038F29B.ps_5_0.hlsl │ │ ├── 0x0437E947.ps_5_0.hlsl │ │ ├── 0x0735605E.ps_5_0.hlsl │ │ ├── 0x07EF74A1.ps_5_0.hlsl │ │ ├── 0x08027BFC.ps_5_0.hlsl │ │ ├── 0x083D9A78.ps_5_0.hlsl │ │ ├── 0x0E38AAD2.ps_5_0.hlsl │ │ ├── 0x0F0B2CE5.ps_5_0.hlsl │ │ ├── 0x10231C66.ps_5_0.hlsl │ │ ├── 0x11D5A113.ps_5_0.hlsl │ │ ├── 0x122060F5.ps_5_0.hlsl │ │ ├── 0x12F1640C.ps_5_0.hlsl │ │ ├── 0x14EBF01E.ps_5_0.hlsl │ │ ├── 0x184DBA40.ps_5_0.hlsl │ │ ├── 0x217BD985.ps_5_0.hlsl │ │ ├── 0x2534C7F7.ps_5_0.hlsl │ │ ├── 0x290B7828.ps_5_0.hlsl │ │ ├── 0x2A6AED50.ps_5_0.hlsl │ │ ├── 0x2A6E527C.ps_5_0.hlsl │ │ ├── 0x2B85C639.ps_5_0.hlsl │ │ ├── 0x2EF0DED6.ps_5_0.hlsl │ │ ├── 0x300F7FF3.ps_5_0.hlsl │ │ ├── 0x3058755C.ps_5_0.hlsl │ │ ├── 0x309666EF.ps_5_0.hlsl │ │ ├── 0x32519F82.ps_5_0.hlsl │ │ ├── 0x32F16A90.ps_5_0.hlsl │ │ ├── 0x33FB65E7.ps_5_0.hlsl │ │ ├── 0x348CE1A5.ps_5_0.hlsl │ │ ├── 0x34A0E00B.ps_5_0.hlsl │ │ ├── 0x396FD824.ps_5_0.hlsl │ │ ├── 0x3BD30858.ps_5_0.hlsl │ │ ├── 0x3CAE4C8E.ps_5_0.hlsl │ │ ├── 0x3E43F999.ps_5_0.hlsl │ │ ├── 0x3E5F8369.ps_5_0.hlsl │ │ ├── 0x3F7783AE.ps_5_0.hlsl │ │ ├── 0x403ABC87.ps_5_0.hlsl │ │ ├── 0x45F2AF38.ps_5_0.hlsl │ │ ├── 0x4866CFD6.ps_5_0.hlsl │ │ ├── 0x4AA92092.ps_5_0.hlsl │ │ ├── 0x4C55BE75.ps_5_0.hlsl │ │ ├── 0x4EF3C78C.ps_5_0.hlsl │ │ ├── 0x504AC903.ps_5_0.hlsl │ │ ├── 0x5581BA78.ps_5_0.hlsl │ │ ├── 0x55DEA017.ps_5_0.hlsl │ │ ├── 0x5A2F2EDA.ps_5_0.hlsl │ │ ├── 0x5ACE773A.ps_5_0.hlsl │ │ ├── 0x5D2DF1FE.ps_5_0.hlsl │ │ ├── 0x5E4F88B5.ps_5_0.hlsl │ │ ├── 0x5F414BEE.ps_5_0.hlsl │ │ ├── 0x6227F75A.ps_5_0.hlsl │ │ ├── 0x64127F56.ps_5_0.hlsl │ │ ├── 0x6559857D.ps_5_0.hlsl │ │ ├── 0x674E5730.ps_5_0.hlsl │ │ ├── 0x722948E1.ps_5_0.hlsl │ │ ├── 0x76B76A16.ps_5_0.hlsl │ │ ├── 0x777F4A76.ps_5_0.hlsl │ │ ├── 0x78822AC6.ps_5_0.hlsl │ │ ├── 0x79CD42CF.ps_5_0.hlsl │ │ ├── 0x82FB264C.ps_5_0.hlsl │ │ ├── 0x834798F6.ps_5_0.hlsl │ │ ├── 0x84892D78.ps_5_0.hlsl │ │ ├── 0x858CE7BC.ps_5_0.hlsl │ │ ├── 0x85C59EFF.ps_5_0.hlsl │ │ ├── 0x86EEDA9F.ps_5_0.hlsl │ │ ├── 0x891EFB38.ps_5_0.hlsl │ │ ├── 0x8B299A3B.ps_5_0.hlsl │ │ ├── 0x8CACE71F.ps_5_0.hlsl │ │ ├── 0x8CB9138B.ps_5_0.hlsl │ │ ├── 0x8F4102F4.ps_5_0.hlsl │ │ ├── 0x8FF0D3D9.ps_5_0.hlsl │ │ ├── 0x90C1F98F.ps_5_0.hlsl │ │ ├── 0x90FC760C.ps_5_0.hlsl │ │ ├── 0x9186EC85.ps_5_0.hlsl │ │ ├── 0x931EA415.ps_5_0.hlsl │ │ ├── 0x952FA7A5.ps_5_0.hlsl │ │ ├── 0x9537D67F.ps_5_0.hlsl │ │ ├── 0x99614E51.ps_5_0.hlsl │ │ ├── 0x9EB859ED.ps_5_0.hlsl │ │ ├── 0xA198334F.ps_5_0.hlsl │ │ ├── 0xA23797DC.ps_5_0.hlsl │ │ ├── 0xA4AA5A07.ps_5_0.hlsl │ │ ├── 0xAFBE1171.ps_5_0.hlsl │ │ ├── 0xAFC011A5.ps_5_0.hlsl │ │ ├── 0xB02BE692.ps_5_0.hlsl │ │ ├── 0xB49C14B6.ps_5_0.hlsl │ │ ├── 0xB4F9EDC2.ps_5_0.hlsl │ │ ├── 0xB8087C39.ps_5_0.hlsl │ │ ├── 0xB81C1778.ps_5_0.hlsl │ │ ├── 0xB94C072D.ps_5_0.hlsl │ │ ├── 0xBAD2E26B.ps_5_0.hlsl │ │ ├── 0xBD09B3CD.ps_5_0.hlsl │ │ ├── 0xBD2F8147.ps_5_0.hlsl │ │ ├── 0xBDBE9D72.ps_5_0.hlsl │ │ ├── 0xBE67CC52.ps_5_0.hlsl │ │ ├── 0xC312F648.ps_5_0.hlsl │ │ ├── 0xC685010C.ps_5_0.hlsl │ │ ├── 0xC73B0A06.ps_5_0.hlsl │ │ ├── 0xC79DB810.ps_5_0.hlsl │ │ ├── 0xCA54FC50.ps_5_0.hlsl │ │ ├── 0xCA7CEF51.ps_5_0.hlsl │ │ ├── 0xCB49313D.ps_5_0.hlsl │ │ ├── 0xCC2A645C.ps_5_0.hlsl │ │ ├── 0xCD444BD6.ps_5_0.hlsl │ │ ├── 0xCF337746.ps_5_0.hlsl │ │ ├── 0xCFD3A026.ps_5_0.hlsl │ │ ├── 0xD205D5B7.ps_5_0.hlsl │ │ ├── 0xD4676DEE.ps_5_0.hlsl │ │ ├── 0xD4E20580.ps_5_0.hlsl │ │ ├── 0xD880111D.ps_5_0.hlsl │ │ ├── 0xDD41AEAE.ps_5_0.hlsl │ │ ├── 0xDE447D67.ps_5_0.hlsl │ │ ├── 0xDF18961D.ps_5_0.hlsl │ │ ├── 0xE0664F05.ps_5_0.hlsl │ │ ├── 0xE0E27CDE.ps_5_0.hlsl │ │ ├── 0xE1285FD8.ps_5_0.hlsl │ │ ├── 0xE485F395.ps_5_0.hlsl │ │ ├── 0xE5028E5E.ps_5_0.hlsl │ │ ├── 0xE6A5147B.ps_5_0.hlsl │ │ ├── 0xF077AC24.ps_5_0.hlsl │ │ ├── 0xF3614CB0.ps_5_0.hlsl │ │ ├── 0xF8118E2E.ps_5_0.hlsl │ │ ├── 0xFBAE2B78.ps_5_0.hlsl │ │ ├── 0xFC6FE980.ps_5_0.hlsl │ │ ├── 0xFD11208B.ps_5_0.hlsl │ │ ├── 0xFD835956.ps_5_0.hlsl │ │ └── 0xFFDC86C4.ps_5_0.hlsl │ └── video_0xBBBC0168.ps_5_0.hlsl ├── farcry6 │ ├── CAS_0x140B4D3B.ps_6_0.hlsl │ ├── addon.cpp │ ├── antialiasing │ │ ├── TAA_1_0xFF0AF25B.ps_6_0.hlsl │ │ └── TAA_1_Pause_0x4AD8172A.ps_6_0.hlsl │ ├── common.hlsli │ ├── final_HDR10_0x62A8D0C3.ps_6_0.hlsl │ ├── final_scRGB_0x6439E80A.ps_6_0.hlsl │ ├── shared.h │ ├── tonemapshaders │ │ ├── tested │ │ │ └── PostFxHDRCombineScene_0xA1868424.ps_6_0.hlsl │ │ └── untested │ │ │ ├── 0x05FD3154.ps_6_0.hlsl │ │ │ ├── 0x0657F4E8.ps_6_0.hlsl │ │ │ ├── 0x068C2573.ps_6_0.hlsl │ │ │ ├── 0x06C8FB52.ps_6_0.hlsl │ │ │ ├── 0x06DE5EA8.ps_6_0.hlsl │ │ │ ├── 0x0726AB34.ps_6_0.hlsl │ │ │ ├── 0x074312A7.ps_6_0.hlsl │ │ │ ├── 0x075B212E.ps_6_0.hlsl │ │ │ ├── 0x08F9D98D.ps_6_0.hlsl │ │ │ ├── 0x09681674.ps_6_0.hlsl │ │ │ ├── 0x0A955F86.ps_6_0.hlsl │ │ │ ├── 0x0C439465.ps_6_0.hlsl │ │ │ ├── 0x0EA00B77.ps_6_0.hlsl │ │ │ ├── 0x13EEA474.ps_6_0.hlsl │ │ │ ├── 0x16B8D224.ps_6_0.hlsl │ │ │ ├── 0x19080A4A.ps_6_0.hlsl │ │ │ ├── 0x1974E067.ps_6_0.hlsl │ │ │ ├── 0x1AAD642E.ps_6_0.hlsl │ │ │ ├── 0x1AAF772E.ps_6_0.hlsl │ │ │ ├── 0x1E09882F.ps_6_0.hlsl │ │ │ ├── 0x1EE19B5D.ps_6_0.hlsl │ │ │ ├── 0x1EE9426E.ps_6_0.hlsl │ │ │ ├── 0x1F979C9D.ps_6_0.hlsl │ │ │ ├── 0x2206E9E0.ps_6_0.hlsl │ │ │ ├── 0x23970608.ps_6_0.hlsl │ │ │ ├── 0x259F2333.ps_6_0.hlsl │ │ │ ├── 0x25D9C340.ps_6_0.hlsl │ │ │ ├── 0x26AF0D99.ps_6_0.hlsl │ │ │ ├── 0x27C8E69C.ps_6_0.hlsl │ │ │ ├── 0x29637342.ps_6_0.hlsl │ │ │ ├── 0x2A4BA270.ps_6_0.hlsl │ │ │ ├── 0x2C7413B8.ps_6_0.hlsl │ │ │ ├── 0x2C830F3A.ps_6_0.hlsl │ │ │ ├── 0x2CD6203D.ps_6_0.hlsl │ │ │ ├── 0x30672C95.ps_6_0.hlsl │ │ │ ├── 0x325C1A81.ps_6_0.hlsl │ │ │ ├── 0x33BB802E.ps_6_0.hlsl │ │ │ ├── 0x34B2D528.ps_6_0.hlsl │ │ │ ├── 0x34C19906.ps_6_0.hlsl │ │ │ ├── 0x3B4C1E86.ps_6_0.hlsl │ │ │ ├── 0x3BC5A2D0.ps_6_0.hlsl │ │ │ ├── 0x3C59F392.ps_6_0.hlsl │ │ │ ├── 0x3CB66659.ps_6_0.hlsl │ │ │ ├── 0x3ED38328.ps_6_0.hlsl │ │ │ ├── 0x3F4463CC.ps_6_0.hlsl │ │ │ ├── 0x41996126.ps_6_0.hlsl │ │ │ ├── 0x427958DD.ps_6_0.hlsl │ │ │ ├── 0x465E56DF.ps_6_0.hlsl │ │ │ ├── 0x4761F1A9.ps_6_0.hlsl │ │ │ ├── 0x485F7F43.ps_6_0.hlsl │ │ │ ├── 0x48BE2707.ps_6_0.hlsl │ │ │ ├── 0x4B619CDA.ps_6_0.hlsl │ │ │ ├── 0x4D53400C.ps_6_0.hlsl │ │ │ ├── 0x4DF8DE03.ps_6_0.hlsl │ │ │ ├── 0x4EA4B125.ps_6_0.hlsl │ │ │ ├── 0x50D36F56.ps_6_0.hlsl │ │ │ ├── 0x50E32B83.ps_6_0.hlsl │ │ │ ├── 0x50F62767.ps_6_0.hlsl │ │ │ ├── 0x51270322.ps_6_0.hlsl │ │ │ ├── 0x53A190E1.ps_6_0.hlsl │ │ │ ├── 0x55B3A7DA.ps_6_0.hlsl │ │ │ ├── 0x55CF1999.ps_6_0.hlsl │ │ │ ├── 0x57699DF0.ps_6_0.hlsl │ │ │ ├── 0x5908BF42.ps_6_0.hlsl │ │ │ ├── 0x59D2DAE2.ps_6_0.hlsl │ │ │ ├── 0x5E6CCDC1.ps_6_0.hlsl │ │ │ ├── 0x5F429243.ps_6_0.hlsl │ │ │ ├── 0x5F614AAD.ps_6_0.hlsl │ │ │ ├── 0x5FA58E47.ps_6_0.hlsl │ │ │ ├── 0x5FACB2CB.ps_6_0.hlsl │ │ │ ├── 0x5FE0F569.ps_6_0.hlsl │ │ │ ├── 0x61050728.ps_6_0.hlsl │ │ │ ├── 0x6243843C.ps_6_0.hlsl │ │ │ ├── 0x62A5758A.ps_6_0.hlsl │ │ │ ├── 0x62D9666B.ps_6_0.hlsl │ │ │ ├── 0x631285B9.ps_6_0.hlsl │ │ │ ├── 0x655E3FD9.ps_6_0.hlsl │ │ │ ├── 0x6572FD08.ps_6_0.hlsl │ │ │ ├── 0x661479DE.ps_6_0.hlsl │ │ │ ├── 0x6615AA73.ps_6_0.hlsl │ │ │ ├── 0x661912A8.ps_6_0.hlsl │ │ │ ├── 0x68369CCD.ps_6_0.hlsl │ │ │ ├── 0x6F3D811C.ps_6_0.hlsl │ │ │ ├── 0x6F4515A3.ps_6_0.hlsl │ │ │ ├── 0x713538D4.ps_6_0.hlsl │ │ │ ├── 0x71736AD8.ps_6_0.hlsl │ │ │ ├── 0x730C29CC.ps_6_0.hlsl │ │ │ ├── 0x73523AC4.ps_6_0.hlsl │ │ │ ├── 0x74A91FE3.ps_6_0.hlsl │ │ │ ├── 0x764734E0.ps_6_0.hlsl │ │ │ ├── 0x78F113F9.ps_6_0.hlsl │ │ │ ├── 0x7A8016D8.ps_6_0.hlsl │ │ │ ├── 0x7ACADA5A.ps_6_0.hlsl │ │ │ ├── 0x7C589E16.ps_6_0.hlsl │ │ │ ├── 0x7CF02919.ps_6_0.hlsl │ │ │ ├── 0x7D17F64B.ps_6_0.hlsl │ │ │ ├── 0x7E36B59E.ps_6_0.hlsl │ │ │ ├── 0x7FBF73FF.ps_6_0.hlsl │ │ │ ├── 0x807D4CD7.ps_6_0.hlsl │ │ │ ├── 0x80D29B74.ps_6_0.hlsl │ │ │ ├── 0x80EB781B.ps_6_0.hlsl │ │ │ ├── 0x8104D4CE.ps_6_0.hlsl │ │ │ ├── 0x81329A47.ps_6_0.hlsl │ │ │ ├── 0x8272021A.ps_6_0.hlsl │ │ │ ├── 0x84774E77.ps_6_0.hlsl │ │ │ ├── 0x894A04E2.ps_6_0.hlsl │ │ │ ├── 0x8A270AB7.ps_6_0.hlsl │ │ │ ├── 0x8D0264C3.ps_6_0.hlsl │ │ │ ├── 0x8E23D6E2.ps_6_0.hlsl │ │ │ ├── 0x8E6BE94C.ps_6_0.hlsl │ │ │ ├── 0x8EFB0AFE.ps_6_0.hlsl │ │ │ ├── 0x9005D00A.ps_6_0.hlsl │ │ │ ├── 0x90A26B26.ps_6_0.hlsl │ │ │ ├── 0x91714406.ps_6_0.hlsl │ │ │ ├── 0x922F7FC7.ps_6_0.hlsl │ │ │ ├── 0x940462CE.ps_6_0.hlsl │ │ │ ├── 0x963F6EE5.ps_6_0.hlsl │ │ │ ├── 0x968C0626.ps_6_0.hlsl │ │ │ ├── 0x9866AC5A.ps_6_0.hlsl │ │ │ ├── 0x99A2E70B.ps_6_0.hlsl │ │ │ ├── 0x9A4E0411.ps_6_0.hlsl │ │ │ ├── 0x9B1B16BB.ps_6_0.hlsl │ │ │ ├── 0xA2D9AEFF.ps_6_0.hlsl │ │ │ ├── 0xA5AEBE19.ps_6_0.hlsl │ │ │ ├── 0xA5E57932.ps_6_0.hlsl │ │ │ ├── 0xA843BD6B.ps_6_0.hlsl │ │ │ ├── 0xA8CF6E56.ps_6_0.hlsl │ │ │ ├── 0xAACDFCDC.ps_6_0.hlsl │ │ │ ├── 0xAB395F73.ps_6_0.hlsl │ │ │ ├── 0xACC42C27.ps_6_0.hlsl │ │ │ ├── 0xAD4FD417.ps_6_0.hlsl │ │ │ ├── 0xAD59A889.ps_6_0.hlsl │ │ │ ├── 0xAFF1DF53.ps_6_0.hlsl │ │ │ ├── 0xB03CDCA0.ps_6_0.hlsl │ │ │ ├── 0xB191BBDB.ps_6_0.hlsl │ │ │ ├── 0xB20A1250.ps_6_0.hlsl │ │ │ ├── 0xB3665494.ps_6_0.hlsl │ │ │ ├── 0xB6BC4695.ps_6_0.hlsl │ │ │ ├── 0xB9F105D6.ps_6_0.hlsl │ │ │ ├── 0xBA611E7A.ps_6_0.hlsl │ │ │ ├── 0xBB083C6A.ps_6_0.hlsl │ │ │ ├── 0xBCE65E05.ps_6_0.hlsl │ │ │ ├── 0xBD51C832.ps_6_0.hlsl │ │ │ ├── 0xBDB76926.ps_6_0.hlsl │ │ │ ├── 0xBDD5AAB8.ps_6_0.hlsl │ │ │ ├── 0xBF3E7AB8.ps_6_0.hlsl │ │ │ ├── 0xC0BC8CD1.ps_6_0.hlsl │ │ │ ├── 0xC464D5B6.ps_6_0.hlsl │ │ │ ├── 0xC58D1ED7.ps_6_0.hlsl │ │ │ ├── 0xC5ABF2EC.ps_6_0.hlsl │ │ │ ├── 0xC8A34BA5.ps_6_0.hlsl │ │ │ ├── 0xC9C7CDB7.ps_6_0.hlsl │ │ │ ├── 0xCA6E2CC0.ps_6_0.hlsl │ │ │ ├── 0xCCD08D34.ps_6_0.hlsl │ │ │ ├── 0xCDDBD798.ps_6_0.hlsl │ │ │ ├── 0xCE65AE19.ps_6_0.hlsl │ │ │ ├── 0xD00975D8.ps_6_0.hlsl │ │ │ ├── 0xD06969A2.ps_6_0.hlsl │ │ │ ├── 0xD354EA14.ps_6_0.hlsl │ │ │ ├── 0xD38323E1.ps_6_0.hlsl │ │ │ ├── 0xD559E140.ps_6_0.hlsl │ │ │ ├── 0xD6EE4E01.ps_6_0.hlsl │ │ │ ├── 0xD8EA6E82.ps_6_0.hlsl │ │ │ ├── 0xD975B98D.ps_6_0.hlsl │ │ │ ├── 0xDB3311E1.ps_6_0.hlsl │ │ │ ├── 0xDC5E5B75.ps_6_0.hlsl │ │ │ ├── 0xDC95B0EC.ps_6_0.hlsl │ │ │ ├── 0xE2823073.ps_6_0.hlsl │ │ │ ├── 0xE5521A1F.ps_6_0.hlsl │ │ │ ├── 0xE929B456.ps_6_0.hlsl │ │ │ ├── 0xEAC4C74D.ps_6_0.hlsl │ │ │ ├── 0xEC8E7533.ps_6_0.hlsl │ │ │ ├── 0xEFA8DD30.ps_6_0.hlsl │ │ │ ├── 0xEFB5A999.ps_6_0.hlsl │ │ │ ├── 0xF0213525.ps_6_0.hlsl │ │ │ ├── 0xF38EA914.ps_6_0.hlsl │ │ │ ├── 0xF3A7CAAE.ps_6_0.hlsl │ │ │ ├── 0xF3CFC448.ps_6_0.hlsl │ │ │ ├── 0xF4F136DF.ps_6_0.hlsl │ │ │ ├── 0xF5A2D016.ps_6_0.hlsl │ │ │ ├── 0xF5AD71BA.ps_6_0.hlsl │ │ │ ├── 0xF65E29AC.ps_6_0.hlsl │ │ │ ├── 0xF76707EF.ps_6_0.hlsl │ │ │ ├── 0xF8724E0E.ps_6_0.hlsl │ │ │ ├── 0xF947FD52.ps_6_0.hlsl │ │ │ ├── 0xFAB443D0.ps_6_0.hlsl │ │ │ ├── 0xFB794AEC.ps_6_0.hlsl │ │ │ ├── 0xFC4FCEE5.ps_6_0.hlsl │ │ │ ├── 0xFE6F35C4.ps_6_0.hlsl │ │ │ ├── 0xFEA6F8A7.ps_6_0.hlsl │ │ │ └── 0xFF7B563F.ps_6_0.hlsl │ └── uishaders │ │ ├── ui_0x63D84754.ps_6_0.hlsl │ │ ├── ui_0x7C01563D.ps_6_0.hlsl │ │ ├── ui_0x8967A0B3.ps_6_0.hlsl │ │ ├── ui_tonemap_0x3ED32776.ps_6_0.hlsl │ │ └── ui_tonemap_2_0xDC4619B1.ps_6_0.hlsl ├── fe │ ├── addon.cpp │ ├── bloom_0x50ADC1A6.ps_4_0.hlsl │ ├── bloom_0xE6F106CA.ps_4_0.hlsl │ ├── blur_0x88E852B9.ps_4_0.hlsl │ ├── common.hlsl │ ├── shared.h │ ├── swap_chain_proxy_pixel_shader.ps_4_0.hlsl │ ├── swap_chain_proxy_vertex_shader.vs_4_0.hlsl │ ├── temporalreprojection_0x9FF1DFF2.ps_4_0.hlsl │ ├── tonemap_0x9EFFF420.ps_4_0.hlsl │ └── vignette_0x1BA9B943.ps_4_0.hlsl ├── ff7rebirth │ ├── addon.cpp │ ├── common.hlsl │ ├── final_0xC67C6B5A.ps_6_6.hlsl │ ├── final_0xD0981514.ps_6_6.hlsl │ ├── final_damage_0x6E1106B8.ps_6_6.hlsl │ ├── final_damage_0xFF35CB65.ps_6_6.hlsl │ ├── final_damage_displaymapped_0x05833276.ps_6_6.hlsl │ ├── final_damage_displaymapped_0x090DB8BF.ps_6_6.hlsl │ ├── final_displaymapped_0xD092CC63.ps_6_6.hlsl │ ├── final_displaymapped_0xD7A19FB6.ps_6_6.hlsl │ ├── final_fmv_0x854B9174.ps_6_6.hlsl │ ├── final_fmv_0xC9686A2D.ps_6_6.hlsl │ ├── final_fmv_displaymapped_0x476D2C8F.ps_6_6.hlsl │ ├── final_fmv_displaymapped_0xEFDBD563.ps_6_6.hlsl │ ├── final_menu_0x15CB9307.ps_6_6.hlsl │ ├── final_menu_0xD31CF869.ps_6_6.hlsl │ ├── final_menu_displaymapped_0x288CF983.ps_6_6.hlsl │ ├── final_menu_displaymapped_0x97E882E3.ps_6_6.hlsl │ ├── final_static_0xA53093E1.ps_6_6.hlsl │ ├── final_static_0xBDD0F47E.ps_6_6.hlsl │ ├── final_static_displaymapped_0x22FDDF03.ps_6_6.hlsl │ ├── final_static_displaymapped_0x4041C8C4.ps_6_6.hlsl │ ├── hdrcomposite.hlsl │ ├── include │ │ ├── CBuffer_Globals.hlsl │ │ ├── CBuffer_View.hlsl │ │ └── Registers.hlsl │ └── shared.h ├── ff7remake │ ├── addon.cpp │ ├── bloom_vignette_0x4D6F937E.ps_5_x.hlsl │ ├── common.hlsl │ ├── output_0x922A71D1.ps_5_x.hlsl │ ├── output_0xD950DA01.ps_5_x.hlsl │ ├── output_0xE87D13A1.ps_5_x.hlsl │ └── shared.h ├── ffx │ ├── 00_ui_draw_0x04FDEDF9.ps_4_0.hlsl │ ├── 03_bright_0xB8F57CD5.ps_4_0.hlsl │ ├── 05_subtitles_0x4DC74060.ps_4_0.hlsl │ ├── 06_video_0xA3657554.ps_4_0.hlsl │ ├── addon.cpp │ ├── color_correction_0x77AB75A9.ps_4_0.hlsl │ ├── common.hlsl │ ├── shared.h │ ├── swap_chain_proxy_pixel_shader.ps_4_0.hlsl │ ├── swap_chain_proxy_vertex_shader.vs_4_0.hlsl │ ├── ui_0x2BBD74AD.ps_4_0.hlsl │ ├── ui_0xC605FBD5.ps_4_0.hlsl │ └── xx_screen_fade_0x90C53F9F.ps_4_0.hlsl ├── ffxiv │ ├── BloomPass1_0xBF06786C.ps_5_0.hlsl │ ├── BloomPass1_0xFE5B6B3E.vs_5_0.hlsl │ ├── BloomPass2_0x5E42F039.ps_5_0.hlsl │ ├── BloomPass2_0x9B242D09.vs_5_0.hlsl │ ├── Copy_0x6CFFD968.ps_5_0.hlsl │ ├── Copy_0xB0CE42B9.ps_5_0.hlsl │ ├── DICE.hlsl │ ├── FullscreenGammaCorrection_0xF6E81A1B.ps_5_0.hlsl │ ├── LUT_0x1F264D17.ps_5_0.hlsl │ ├── LUT_0x27EBC404.ps_5_0.hlsl │ ├── OnCopy.hlsl │ ├── PostTonemapPreLUT_0xF8F57F0A.ps_5_0.hlsl │ ├── Tonemap_0x85E777EF.ps_5_0.hlsl │ ├── Vignette_0xCDC56365.ps_5_0.hlsl │ ├── addon.cpp │ ├── final_pixel_shader.ps_5_0.hlsl │ ├── final_vertex_shader.vs_5_0.hlsl │ └── shared.h ├── generic │ ├── addon.cpp │ ├── shared.h │ ├── swap_chain_proxy_pixel_shader.ps_5_x.hlsl │ └── swap_chain_proxy_vertex_shader.vs_5_x.hlsl ├── gfl2 │ ├── 0x15EB4AF2.ps_4_0.hlsl │ ├── 0x20133A8B.ps_4_0.hlsl │ ├── 0x55396C7C.ps_4_0.hlsl │ ├── 0x82BAB1D5.ps_4_0.hlsl │ ├── 0xA1661D35.ps_4_0.hlsl │ ├── addon.cpp │ ├── shared.h │ ├── swap_chain_proxy_pixel_shader.ps_5_x.hlsl │ └── swap_chain_proxy_vertex_shader.vs_5_x.hlsl ├── gotsushima │ ├── PsCopyToBackBufferHdrPqFromSrgbx_0x53EBE0F3.ps_6_6.hlsl │ └── PsPostHdr_0x313ABA52.ps_6_6.hlsl ├── gow2018 │ ├── GammaAdjustPass_0xB59D6558.ps_5_0.hlsl │ ├── HDRCalibration_0x8A2543B3.ps_5_0.hlsl │ ├── PQEncode_0x279D11F6.ps_5_0.hlsl │ ├── PQEncode_TAA_0xF4EFA04D.ps_5_0.hlsl │ ├── SampleLUT_0x7818463E.ps_5_0.hlsl │ ├── SampleLUT_TAA_0x6FE3FEEA.ps_5_0.hlsl │ ├── addon.cpp │ └── shared.h ├── gowragnarok │ ├── addon.cpp │ ├── bloom_0xF1E4F5FE.cs_6_6.hlsl │ ├── calibration_0x4BB65477.ps_6_6.hlsl │ ├── compute_bloom_0xC66F9B98.cs_6_6.hlsl │ ├── final_0x903B49C1.ps_6_6.hlsl │ ├── shared.h │ └── tonemap_0x4D780747.cs_6_6.hlsl ├── greedfall │ ├── LUT_0x5EB8FCF2.ps_5_0.hlsl │ ├── addon.cpp │ ├── common.hlsl │ ├── last_0x457E22C2.ps_5_0.hlsl │ ├── shared.h │ ├── swap_chain_proxy_pixel_shader.ps_5_0.hlsl │ ├── swap_chain_proxy_vertex_shader.vs_5_0.hlsl │ ├── tonemap_0x2594436A.ps_5_0.hlsl │ ├── videos_0x99BBA5F9.ps_5_0.hlsl │ └── worldmap_0x94CFA97C.ps_5_0.hlsl ├── gtav-enhanced │ ├── PS_BinkNoAlpha_0x7EABC435.ps_6_0.hlsl │ ├── PS_BlitCalibration_0xC44FC390.ps_6_0.hlsl │ ├── PS_LensDistortion_0x9A3213A0.ps_6_0.hlsl │ ├── PS_Sharpen_0x3A668290.ps_6_0.hlsl │ ├── PS_corona_0x3025A695.ps_6_0.hlsl │ ├── PS_puddleMaskAndPassCombined_0x4BA8AA92.ps_6_0.hlsl │ ├── addon.cpp │ ├── composite │ │ ├── PS_CompositeExtraFX_0xED97A548.ps_6_0.hlsl │ │ ├── PS_CompositeHHExtraFX_0x561305D2.ps_6_0.hlsl │ │ ├── PS_CompositeHighDOFExtraFX_0xD0746A48.ps_6_0.hlsl │ │ ├── PS_CompositeHighDOFHHExtraFX_0xA695CEB0.ps_6_0.hlsl │ │ ├── PS_CompositeHighDOFNV_0x40497C42.ps_6_0.hlsl │ │ ├── PS_CompositeMBExtraFX_0x01C9FD7F.ps_6_0.hlsl │ │ ├── PS_CompositeMBHHExtraFX_0xA9CCF727.ps_6_0.hlsl │ │ ├── PS_CompositeMBHighDOFExtraFX_0xB3DDE381.ps_6_0.hlsl │ │ ├── PS_CompositeMBHighDOFHHExtraFX_0xE83B0B7E.ps_6_0.hlsl │ │ ├── PS_CompositeMBHighDOFNV_0x7DCEAC64.ps_6_0.hlsl │ │ ├── PS_CompositeMBShallowHighDOFExtraFX_0xA7D7E765.ps_6_0.hlsl │ │ ├── PS_CompositeMBShallowHighDOFHHExtraFX_0x88D3E3C8.ps_6_0.hlsl │ │ ├── PS_CompositeNV_0xDDB307E0.ps_6_0.hlsl │ │ ├── PS_CompositeSeeThrough_0x864A867F.ps_6_0.hlsl │ │ ├── PS_CompositeShallowHighDOFExtraFX_0xD0EB7F86.ps_6_0.hlsl │ │ ├── PS_CompositeShallowHighDOFHHExtraFX_0x2ACFAE90.ps_6_0.hlsl │ │ └── common.hlsli │ ├── light_streaks │ │ └── PS_LightStreaksBlurLow_0xefcf7ec3.ps_6_0.hlsl │ ├── shared.h │ ├── swap_chain_proxy_pixel_shader.ps_6_0.hlsl │ └── swap_chain_proxy_vertex_shader.vs_6_0.hlsl ├── hades │ ├── 00_output_0x7F6D6130.ps_4_0.hlsl │ ├── 07_overlay2d_0x09A523A4.ps_4_0.hlsl │ ├── addon.cpp │ └── shared.h ├── hades2 │ ├── 00_output_0xF84B8F91.ps_6_0.hlsl │ ├── addon.cpp │ └── shared.h ├── hatintime │ ├── 0xDBFD3C81.ps_3_0.hlsl │ ├── 0xE9ADC9F0.ps_3_0.hlsl │ ├── addon.cpp │ ├── shared.h │ ├── swap_chain_proxy_pixel_shader.ps_5_x.hlsl │ └── swap_chain_proxy_vertex_shader.vs_5_x.hlsl ├── hellblade2 │ ├── 00_final_0xF8FDC1FD.hlsl │ ├── xx_hdr_tonemap_0x189339AE.ps_6_6.hlsl │ ├── xx_postprocess.0x189339AE.hlsl │ └── xx_sdr_tonemap_0x04ADCFEC.ps_6_6.hlsl ├── hollowcocoon │ ├── HDRPfinal2_0xF507A307.ps_5_0.hlsl │ ├── HDRPfinal3_0x4C2AF525.ps_5_0.hlsl │ ├── HDRPfinal_0x20F00CF5.ps_5_0.hlsl │ ├── LutBuilder3D2_0x6811A33B.cs_5_0.hlsl │ ├── LutBuilder3D_0x5BD02347.cs_5_0.hlsl │ ├── addon.cpp │ ├── common.hlsl │ ├── final_0x20133A8B.ps_4_0.hlsl │ ├── richfxoverlay2_0x54DC7E29.ps_4_0.hlsl │ ├── richfxoverlay_0x51381740.ps_4_0.hlsl │ ├── shared.h │ ├── uberpost2_0xD6B5AD4A.cs_5_0.hlsl │ └── uberpost_0xFDF96092.cs_5_0.hlsl ├── hollowknight │ ├── addon.cpp │ ├── blend_linear_dodge_0x6521A6DC.ps_4_0.hlsl │ ├── blend_linear_light_0xC80BBEC9.ps_4_0.hlsl │ ├── blend_overlay_0xA3EC6888.ps_4_0.hlsl │ ├── blend_screen_0x85C89D5B.ps_4_0.hlsl │ ├── blend_vivid_light_0x9A477D11.ps_4_0.hlsl │ ├── bloom2_0x5D9A0B26.ps_4_0.hlsl │ ├── bloom3_0x814E8EBF.ps_4_0.hlsl │ ├── bloom_0x831FCA18.ps_4_0.hlsl │ ├── brightness_0x21F7FC48.ps_4_0.hlsl │ ├── color_correction_0x488FE86B.ps_4_0.hlsl │ ├── custom_blit_screen_space_0xE73F8180.ps_4_0.hlsl │ ├── custom_heat_effect_0x7BDC5643.ps_4_0.hlsl │ ├── hollow_knight_grass_diffuse_0xEAEDC29D.ps_4_0.hlsl │ ├── hollow_knight_light_blur_0x4E2F49B3.ps_4_0.hlsl │ ├── hollow_knight_light_blur_0xC7659A76.ps_4_0.hlsl │ ├── legacy_particles_alpha_blend_0x2EDC3804.ps_4_0.hlsl │ ├── legacy_particles_multiply_0xCCC102EE.ps_4_0.hlsl │ ├── noise_grain_0x0BF02D38.ps_4_0.hlsl │ ├── noise_grain_0xF1B9A141.ps_4_0.hlsl │ ├── particles_additive_0xC8BED5C6.ps_4_0.hlsl │ ├── shared.h │ ├── sprites_color_flash_0xFC27B617.ps_4_0.hlsl │ ├── sprites_default_0x55CC633B.ps_4_0.hlsl │ ├── sprites_default_0xBC821AE4.ps_4_0.hlsl │ ├── sprites_diffuse_0x4EF4BBC4.ps_4_0.hlsl │ ├── sprites_diffuse_0xFA816188.ps_4_0.hlsl │ ├── swap_chain_proxy_pixel_shader.ps_4_0.hlsl │ ├── swap_chain_proxy_vertex_shader.vs_4_0.hlsl │ ├── tk2d_blend_0x97452557.ps_4_0.hlsl │ ├── ui_blur_0x39BAA143.ps_4_0.hlsl │ ├── ui_blur_0x4D4340BE.ps_4_0.hlsl │ ├── ui_blur_0x65DA673D.ps_4_0.hlsl │ ├── ui_blur_0x8ADA14EE.ps_4_0.hlsl │ ├── ui_blur_0x99C781AD.ps_4_0.hlsl │ ├── video_composite_0x8A6BCB4C.ps_4_0.hlsl │ └── video_decode_0x41D51EB2.ps_4_0.hlsl ├── honkai-starrail │ ├── DICE.hlsl │ ├── addon.cpp │ ├── common.hlsl │ ├── lutbuilder_0x85C7A26F.ps_4_0.hlsl │ ├── shared.h │ ├── swap_chain_proxy_pixel_shader.ps_4_0.hlsl │ ├── swap_chain_proxy_vertex_shader.vs_4_0.hlsl │ ├── uberpost0_0x9667FE5E.ps_4_0.hlsl │ ├── uberpost1_0x58B6C388.ps_4_0.hlsl │ ├── uberpost2_0x5B35A377.ps_4_0.hlsl │ └── uberpost3_0x68459CE7.ps_4_0.hlsl ├── horizonfw │ ├── addon.cpp │ ├── shared.h │ └── tonemapper_0x81FF83CE.ps_6_6.hlsl ├── jedisurvivor │ ├── 00_composite_0xB29D20D3.ps_6_1.hlsl │ ├── 01_ui_lut_0x5BD1F90C.ps_6_1.hlsl │ ├── 02_ui_effect_0x6CAB7CCC.ps_6_1.hlsl │ ├── 03_vignette_0x0B7B2D74.ps_6_1.hlsl │ ├── 04_depth_0xF0DA2ECA.ps_6_1.hlsl │ ├── 05_lower_vignette_0xD023A69B.ps_6_1.hlsl │ ├── 06_copy_0xD14395A5.ps_6_1.hlsl │ ├── 07_tonemap_0x26968588.ps_6_1.hlsl │ ├── 08_lutbuilder_0x90BEE5D9.clean.hlsl │ ├── 08_lutbuilder_0x90BEE5D9.ps_6_1.hlsl │ ├── 09_lensflare_0xE494B6C3.ps_6_1.hlsl │ ├── common.hlsl │ └── shared.h ├── justcause4 │ ├── 00_ui_background_0x2A6705F5.ps_5_0.hlsl │ ├── 01_uianim_0xA293670C.ps_5_0.hlsl │ ├── 02_ui_icons_0x121F4325.ps_5_0.hlsl │ ├── 03_ui_background_0x0BD2C9BA.ps_5_0.hlsl │ ├── 04_subtitles_0x9BA33763.ps_5_0.hlsl │ ├── 05_ui_selection_0xE6453EB0.ps_5_0.hlsl │ ├── 06_ui_background_0x192E4012.ps_5_0.hlsl │ ├── 07_video_0x3C417D7D.ps_5_0.hlsl │ ├── 07_video_0x9D9CE449.ps_5_0.hlsl │ ├── 08_output_0x353A9EDA.ps_5_0.hlsl │ ├── 09_taa_0x528CB4B5.ps_5_0.hlsl │ ├── 10_motionblur_0xF95B4239.ps_5_0.hlsl │ ├── 13_overlay_0xD5E94F6D.ps_5_0.hlsl │ ├── 17_tonemapper_a_0xB3A6A785.ps_5_0.hlsl │ ├── 17_tonemapper_b_0xB2DE2A96.ps_5_0.hlsl │ ├── 17_tonemapper_c_0x897995AE.ps_5_0.hlsl │ ├── addon.cpp │ ├── shared.h │ └── xx_0x82BED845.ps_5_0.hlsl ├── karmathedarkworld │ ├── addon.cpp │ ├── common.hlsl │ ├── final_0x92D4B659.ps_6_6.hlsl │ ├── lutbuilder_0x08B5389E.ps_6_6.hlsl │ ├── lutbuilder_0x50F22BD6.ps_6_6.hlsl │ ├── lutbuilder_0x773A9497.ps_6_6.hlsl │ ├── lutbuilder_0x8119F75A.ps_6_6.hlsl │ └── shared.h ├── kingdomcome2 │ ├── addon.cpp │ ├── common.hlsl │ ├── dof_0x108F2069.ps_6_2.hlsl │ ├── dof_0xE3DB9813.ps_6_2.hlsl │ ├── filmgrain_0xC04583C6.ps_6_2.hlsl │ ├── filmgrain_0xDEA0F1F4.ps_6_2.hlsl │ ├── hdrcomposite.hlsl │ ├── include │ │ ├── CBuffer_PERBATCH.hlsl │ │ └── Registers.hlsl │ ├── intermediate_0xFF15F57D.ps_6_2.hlsl │ ├── intro_0x7D7F957B.ps_6_2.hlsl │ ├── lutbuilder_0x74524694.ps_6_2.hlsl │ ├── output_0x4038C56A.ps_6_2.hlsl │ ├── output_0xA18EAA6F.ps_6_2.hlsl │ ├── output_0xFC7BB86E.ps_6_2.hlsl │ ├── shared.h │ ├── sharpness00_0xD9D2ADB8.ps_6_2.hlsl │ ├── swap_chain_proxy_pixel_shader.ps_5_1.hlsl │ └── swap_chain_proxy_vertex_shader.vs_5_1.hlsl ├── koarr │ ├── addon.cpp │ ├── colorcorrectionmerge_0x1DA0D576.ps_4_0.hlsl │ ├── combineeffects2_0x70CEAF26.ps_4_0.hlsl │ ├── combineeffects_0xD11C77B6.ps_4_0.hlsl │ ├── common.hlsl │ ├── fxaa_0x8159D8EB.ps_4_0.hlsl │ ├── rsui1_0xE76323E6.ps_4_0.hlsl │ ├── shared.h │ ├── swap_chain_proxy_pixel_shader.ps_4_0.hlsl │ ├── swap_chain_proxy_vertex_shader.vs_4_0.hlsl │ └── videos_0x138CBA83.ps_4_0.hlsl ├── kunitsugami │ ├── FXAA_0x19FB065F.ps_6_6.hlsl │ ├── addon.cpp │ ├── common.hlsl │ ├── final_0x8DC04BF4.ps_6_6.hlsl │ ├── final_intro_0x38C3D37E.ps_6_6.hlsl │ ├── final_sdr_0xBD603220.ps_6_6.hlsl │ ├── postprocess00_0x10DD2F68.ps_6_6.hlsl │ ├── postprocess01_0xECC0C006.ps_6_6.hlsl │ ├── postprocess02_sdr_0x98F9A8BE.ps_6_6.hlsl │ ├── postprocess03_sdr_0xC003173B.ps_6_6.hlsl │ └── shared.h ├── lanoire │ ├── 00_colorvideo_0x77E6AD1C.ps_4_0.hlsl │ ├── 00_uiicons_0xA4621F49.ps_4_0.hlsl │ ├── 01_uialpha_0x231D2C5F.ps_4_0.hlsl │ ├── 02_bwvideo_0x10A3CFDD.ps_4_0.hlsl │ ├── 02_uitext_0x7C03A997.ps_4_0.hlsl │ ├── 03_letterbox_0xA558B81D.ps_4_0.hlsl │ ├── 04_uitextures_0x496A13D7.ps_4_0.hlsl │ ├── 05_fxaax3_0xB350D2FF.ps_4_0.hlsl │ ├── 06_composite_0xE45962D5.ps_4_0.hlsl │ ├── 07_color_0x5C27CB17.ps_4_0.hlsl │ ├── 99_clear_0x156045DD.ps_4_0.hlsl │ ├── addon.cpp │ └── shared.h ├── lastepoch │ ├── LUT3DBaker_0x6EA48EC8.cs_5_0.hlsl │ ├── SMAA2_0x4B83BA2B.ps_4_0.hlsl │ ├── TAA_0xB5EA3401.ps_4_0.hlsl │ ├── UIalpha_0xB11B9B50.ps_4_0.hlsl │ ├── UIeffectshiny_0xF18BD84B.ps_4_0.hlsl │ ├── UIgamepad_0x752CC6FA.ps_4_0.hlsl │ ├── addon.cpp │ ├── cameralight_0x900045BA.ps_4_0.hlsl │ ├── common.hlsl │ ├── final_0x20133A8B.ps_4_0.hlsl │ ├── outline_0x15096C7B.ps_4_0.hlsl │ ├── postfinal_0x366EE13E.ps_5_0.hlsl │ ├── postfinalfxaa_0xCC8B6ACF.ps_5_0.hlsl │ ├── shared.h │ ├── timetravel_0xD8EECF85.ps_4_0.hlsl │ ├── uberpostTM_0xFF4E4EF2.ps_4_0.hlsl │ ├── uberpost_0x43621B25.ps_4_0.hlsl │ └── worldmap_0x67B5C47D.ps_4_0.hlsl ├── lostinrandom │ ├── LutBuilderLdr_0xB3DF43CA.ps_4_0.hlsl │ ├── addon.cpp │ ├── common.hlsl │ ├── final_0x20133A8B.ps_4_0.hlsl │ ├── fxaa1_0x8EF2D0AE.ps_4_0.hlsl │ ├── postfinal_0x0D7738C5.ps_4_0.hlsl │ ├── shared.h │ ├── theeternaldie │ │ ├── LutBuilderLdr0x13EEF169.ps_4_0.hlsl │ │ ├── fsr1_fxaa_0xE102D2F9.ps_4_0.hlsl │ │ ├── fsr_0xC244242D.ps_4_0.hlsl │ │ ├── fxaa_0xD00B5B47.ps_5_0.hlsl │ │ ├── no_rcas_0xB1CE8C1C.ps_5_0.hlsl │ │ ├── rcas_0x7CEF5F47.ps_5_0.hlsl │ │ ├── uberpostUI_0x9862BA48.ps_4_0.hlsl │ │ └── uberpost_0xEF39E7C4.ps_4_0.hlsl │ ├── uberpost2_0x4B92CD8E.ps_4_0.hlsl │ ├── uberpost3_0x72D26F35.ps_4_0.hlsl │ └── uberpost_0xA9329B7F.ps_4_0.hlsl ├── lostplanet │ ├── addon.cpp │ ├── final00_0x7EC02107.ps_4_0.hlsl │ ├── final01_0xC1C7045A.ps_4_0.hlsl │ ├── finalac_0x7952DC10.ps_4_0.hlsl │ ├── finalfs_0xB2AD4F48.ps_4_0.hlsl │ ├── postprocess08_clamp_0x98F668B5.ps_4_0.hlsl │ └── shared.h ├── lysfanga │ ├── LutBuilderLdr_0xED457D04.ps_4_0.hlsl │ ├── UIshadow_0x36588C4F.ps_4_0.hlsl │ ├── UItext2_0xC1457489.ps_4_0.hlsl │ ├── UItext_0x55B0DCB7.ps_4_0.hlsl │ ├── UIuberpost_0xBB09D0B3.ps_4_0.hlsl │ ├── addon.cpp │ ├── bloom_0x5FDD841D.ps_4_0.hlsl │ ├── common.hlsl │ ├── final_0x20133A8B.ps_4_0.hlsl │ ├── shared.h │ ├── uberpost2_0x2C36979C.ps_4_0.hlsl │ ├── uberpost3_0x9A27FDCD.ps_4_0.hlsl │ ├── uberpost4_0x9D2A9AD7.ps_4_0.hlsl │ └── uberpost_0xE651D798.ps_4_0.hlsl ├── mafiade │ ├── addon.cpp │ ├── common.hlsl │ ├── dof7_0x3EB9D976.ps_5_0.hlsl │ ├── fireworks_0xACD34CE7.ps_5_0.hlsl │ ├── loading_0x747C6210.ps_5_0.hlsl │ ├── lowhealth_0xD980FA68.ps_5_0.hlsl │ ├── shared.h │ ├── something_0xD47322A6.ps_5_0.hlsl │ ├── swap_chain_proxy_pixel_shader.ps_5_0.hlsl │ ├── swap_chain_proxy_vertex_shader.vs_5_0.hlsl │ ├── tonemap_0x916B1D65.ps_5_0.hlsl │ ├── videos2_0x00D96EAE.ps_5_0.hlsl │ └── videos_0xA7799306.ps_5_0.hlsl ├── masseffect1le │ ├── addon.cpp │ ├── output_0x0765601C.ps_5_0.hlsl │ ├── shared.h │ ├── tonemap_0x109F3B6E.ps_5_0.hlsl │ ├── tonemap_0x151FE4CA.ps_5_0.hlsl │ └── tonemap_0xAAE8755A.ps_5_0.hlsl ├── maxpayne3 │ ├── addon.cpp │ ├── antialiasing │ │ ├── fxaa_high_0x3FA8CBC3.ps_5_0.hlsl │ │ └── fxaa_veryhigh_0xFBC327C8.ps_5_0.hlsl │ ├── bloom_0x57F6AAB4.ps_5_0.hlsl │ ├── common.hlsl │ ├── fmv_0x32629E1B.ps_5_0.hlsl │ ├── postfx │ │ ├── postfx_0x17ECFF74.ps_5_0.hlsl │ │ ├── postfx_0xD3F808EC.ps_5_0.hlsl │ │ ├── postfx_drug_0xCB1874B7.ps_5_0.hlsl │ │ ├── postfx_interlace_0x5770A95E.ps_5_0.hlsl │ │ ├── postfx_interlace_msaa4x_0x30842A90.ps_5_0.hlsl │ │ ├── postfx_interlace_msaa8x_0x1F296E17.ps_5_0.hlsl │ │ ├── postfx_interlace_msaa_off_0xC3EDCD63.ps_5_0.hlsl │ │ ├── postfx_msaa4x_0xB7822C98.ps_5_0.hlsl │ │ └── postfx_msaa8x_0xCC0D7856.ps_5_0.hlsl │ ├── shared.h │ ├── swap_chain_proxy_pixel_shader.ps_5_x.hlsl │ ├── swap_chain_proxy_vertex_shader.vs_5_x.hlsl │ └── tonemap │ │ ├── 0x01F5E795.ps_5_0.hlsl │ │ ├── 0x03A86F66.ps_5_0.hlsl │ │ ├── 0x0933B817.ps_5_0.hlsl │ │ ├── 0x0C569FD2.ps_5_0.hlsl │ │ ├── 0x0D3AF9C7.ps_5_0.hlsl │ │ ├── 0x114F4F53.ps_5_0.hlsl │ │ ├── 0x117628FE.ps_5_0.hlsl │ │ ├── 0x14AEA21C.ps_5_0.hlsl │ │ ├── 0x15B7734B.ps_5_0.hlsl │ │ ├── 0x15E1CBDD.ps_5_0.hlsl │ │ ├── 0x16CFDCB8.ps_5_0.hlsl │ │ ├── 0x17A1A6D3.ps_5_0.hlsl │ │ ├── 0x19F74577.ps_5_0.hlsl │ │ ├── 0x1AC127A1.ps_5_0.hlsl │ │ ├── 0x1E050193.ps_5_0.hlsl │ │ ├── 0x1E2ADE00.ps_5_0.hlsl │ │ ├── 0x1EA3AFF3.ps_5_0.hlsl │ │ ├── 0x1FC015A1.ps_5_0.hlsl │ │ ├── 0x23B18BD8.ps_5_0.hlsl │ │ ├── 0x25E34175.ps_5_0.hlsl │ │ ├── 0x2C22239B.ps_5_0.hlsl │ │ ├── 0x2D1B343D.ps_5_0.hlsl │ │ ├── 0x3037741F.ps_5_0.hlsl │ │ ├── 0x32FA784C.ps_5_0.hlsl │ │ ├── 0x3615A753.ps_5_0.hlsl │ │ ├── 0x3C11574E.ps_5_0.hlsl │ │ ├── 0x3E1C4800.ps_5_0.hlsl │ │ ├── 0x4E20C085.ps_5_0.hlsl │ │ ├── 0x5164E9B0.ps_5_0.hlsl │ │ ├── 0x51E829A0.ps_5_0.hlsl │ │ ├── 0x5591404A.ps_5_0.hlsl │ │ ├── 0x572E9E14.ps_5_0.hlsl │ │ ├── 0x57D8BE2F.ps_5_0.hlsl │ │ ├── 0x59F2397F.ps_5_0.hlsl │ │ ├── 0x5A714D9A.ps_5_0.hlsl │ │ ├── 0x5BDCF58B.ps_5_0.hlsl │ │ ├── 0x5D6CE5AA.ps_5_0.hlsl │ │ ├── 0x5DC18676.ps_5_0.hlsl │ │ ├── 0x5F7F2CF0.ps_5_0.hlsl │ │ ├── 0x5FEA60BA.ps_5_0.hlsl │ │ ├── 0x62FBFD42.ps_5_0.hlsl │ │ ├── 0x6577C52F.ps_5_0.hlsl │ │ ├── 0x669480A7.ps_5_0.hlsl │ │ ├── 0x69865D5B.ps_5_0.hlsl │ │ ├── 0x69A7604F.ps_5_0.hlsl │ │ ├── 0x6DCED770.ps_5_0.hlsl │ │ ├── 0x6F56C009.ps_5_0.hlsl │ │ ├── 0x76CE7813.ps_5_0.hlsl │ │ ├── 0x7A442117.ps_5_0.hlsl │ │ ├── 0x7CB0B3AA.ps_5_0.hlsl │ │ ├── 0x7FAFDA2A.ps_5_0.hlsl │ │ ├── 0x80A70632.ps_5_0.hlsl │ │ ├── 0x88668588.ps_5_0.hlsl │ │ ├── 0x8DE915B0.ps_5_0.hlsl │ │ ├── 0x8EE688FF.ps_5_0.hlsl │ │ ├── 0x90A1640C.ps_5_0.hlsl │ │ ├── 0x96C78726.ps_5_0.hlsl │ │ ├── 0x982D2E83.ps_5_0.hlsl │ │ ├── 0x985D8946.ps_5_0.hlsl │ │ ├── 0x988E0440.ps_5_0.hlsl │ │ ├── 0x9A761B73.ps_5_0.hlsl │ │ ├── 0x9ADA439F.ps_5_0.hlsl │ │ ├── 0x9D18D405.ps_5_0.hlsl │ │ ├── 0x9F31A4DD.ps_5_0.hlsl │ │ ├── 0xA20B8702.ps_5_0.hlsl │ │ ├── 0xA237779F.ps_5_0.hlsl │ │ ├── 0xA5CFC1D9.ps_5_0.hlsl │ │ ├── 0xB133932C.ps_5_0.hlsl │ │ ├── 0xB1A5D3BC.ps_5_0.hlsl │ │ ├── 0xB2AB7C39.ps_5_0.hlsl │ │ ├── 0xB3E0329B.ps_5_0.hlsl │ │ ├── 0xB481AC95.ps_5_0.hlsl │ │ ├── 0xB802E7CF.ps_5_0.hlsl │ │ ├── 0xC016166E.ps_5_0.hlsl │ │ ├── 0xC0603F3A.ps_5_0.hlsl │ │ ├── 0xC1CD0E29.ps_5_0.hlsl │ │ ├── 0xC35017A0.ps_5_0.hlsl │ │ ├── 0xC51143A4.ps_5_0.hlsl │ │ ├── 0xC92236C8.ps_5_0.hlsl │ │ ├── 0xCCD10E2A.ps_5_0.hlsl │ │ ├── 0xCD48C081.ps_5_0.hlsl │ │ ├── 0xCD5272DD.ps_5_0.hlsl │ │ ├── 0xD20F4621.ps_5_0.hlsl │ │ ├── 0xD29EAC60.ps_5_0.hlsl │ │ ├── 0xD5EC60BF.ps_5_0.hlsl │ │ ├── 0xD7538577.ps_5_0.hlsl │ │ ├── 0xDB7B34F8.ps_5_0.hlsl │ │ ├── 0xDCCD53B8.ps_5_0.hlsl │ │ ├── 0xE36C9160.ps_5_0.hlsl │ │ ├── 0xE4322A68.ps_5_0.hlsl │ │ ├── 0xE5A49BBB.ps_5_0.hlsl │ │ ├── 0xE9E20657.ps_5_0.hlsl │ │ ├── 0xEA3CC1E3.ps_5_0.hlsl │ │ ├── 0xEA3F39A4.ps_5_0.hlsl │ │ ├── 0xECCE1541.ps_5_0.hlsl │ │ ├── 0xF20EF8A7.ps_5_0.hlsl │ │ ├── 0xF225B2E1.ps_5_0.hlsl │ │ ├── 0xF803A073.ps_5_0.hlsl │ │ ├── 0xF895DAFE.ps_5_0.hlsl │ │ ├── 0xFC2389A4.ps_5_0.hlsl │ │ ├── 0xFE7B20B4.ps_5_0.hlsl │ │ ├── 0xFF318C23.ps_5_0.hlsl │ │ ├── tonemap2_0x10EE0B20.ps_5_0.hlsl │ │ ├── tonemap_0xA631D7F8.ps_5_0.hlsl │ │ └── tonemap_flash_0x4F343009.ps_5_0.hlsl ├── metaphorrefantazio │ ├── 00_final_0x1F993880.ps_5_0.hlsl │ ├── 01_overlays_0x7EB16138.ps_5_0.hlsl │ ├── 02_lut_0xD8196629.ps_5_0.hlsl │ ├── 03_output_0xAC103037.ps_5_0.hlsl │ ├── 04_tonemapper2_0xA7108284.ps_5_0.hlsl │ ├── 04_tonemapper_0xC1787BC6.ps_5_0.hlsl │ ├── addon.cpp │ ├── bloom_0xA3109C78.ps_5_0.hlsl │ ├── glow2_0xA5D96315.ps_5_0.hlsl │ ├── glow_0xA177E041.ps_5_0.hlsl │ ├── lightrays_0x70C6A8D7.ps_5_0.hlsl │ ├── shared.h │ └── tonemapper.hlsl ├── mhwilds │ ├── UI_0x8286B55C.cs_6_6.hlsl │ ├── addon.cpp │ ├── bloom_0x1AD0E9A5.ps_6_6.hlsl │ ├── bloom_0xB73F523E.ps_6_6.hlsl │ ├── common.hlsl │ ├── intermediate_0xC8169712.ps_6_6.hlsl │ ├── lilium_rcas.hlsl │ ├── localexposure_0x0BD0586C.cs_6_6.hlsl │ ├── localexposure_0xD207A699.cs_6_6.hlsl │ ├── localexposure_0xEFEED634.ps_6_6.hlsl │ ├── localexposure_gaussianblur_0x243CA65C.ps_6_6.hlsl │ ├── localexposure_rare_0x4905680A.cs_6_6.hlsl │ ├── lutbuilderSDR_0xC38C23F4.cs_6_6.hlsl │ ├── lutbuilder_0x7B84049A.cs_6_6.hlsl │ ├── output.hlsl │ ├── outputSDR_0x8F04163E.ps_6_6.hlsl │ ├── outputSDR_0xC584376B.ps_6_6.hlsl │ ├── output_0xBC05143A.ps_6_6.hlsl │ ├── output_0xE73DF341.ps_6_6.hlsl │ ├── postprocess.hlsl │ ├── postprocess_charSelect_0x8CAFE864.ps_6_6.hlsl │ ├── postprocess_disabledexposure_0x89476799.ps_6_6.hlsl │ ├── postprocess_flatexposure_0xEE56E73B.ps_6_6.hlsl │ ├── postprocess_localexposure_0xE188DA93.ps_6_6.hlsl │ ├── postprocess_sdr_0xF06499FE.ps_6_6.hlsl │ └── shared.h ├── nfs16 │ ├── UI_0x314165B5.ps_5_0.hlsl │ ├── addon.cpp │ ├── common.hlsl │ ├── shared.h │ ├── swap_chain_proxy_pixel_shader.ps_5_0.hlsl │ ├── swap_chain_proxy_vertex_shader.vs_5_0.hlsl │ ├── tonemap2_0x54D9B89F.ps_5_0.hlsl │ ├── tonemap3_0x9FEAFC96.ps_5_0.hlsl │ ├── tonemap4_0x31A59248.ps_5_0.hlsl │ ├── tonemap5_0x54B0FAE2.ps_5_0.hlsl │ ├── tonemap_0xD11C7B85.ps_5_0.hlsl │ ├── videos3_0xBADD2507.ps_5_0.hlsl │ └── videos_0x041FA975.ps_5_0.hlsl ├── oblivionremastered │ ├── addon.cpp │ ├── bink_videos_0x1FAA96A2.ps_6_6.hlsl │ ├── common.hlsl │ ├── eyeadaptation │ │ ├── 0x708B4D41.cs_6_6.hlslx │ │ └── eye_adaptation_0x41DCD632.cs_6_6.hlsl │ ├── lutbuilders │ │ ├── lutbuilder_0x00C34813.cs_6_6.hlsl │ │ ├── lutbuilder_0x35359B86.cs_6_6.hlsl │ │ ├── lutbuilder_0x47329E4A.cs_6_6.hlsl │ │ ├── lutbuilder_0x484B4E2B.cs_6_6.hlsl │ │ ├── lutbuilder_0x56299258.cs_6_6.hlsl │ │ ├── lutbuilder_0x57EE8201.cs_6_6.hlsl │ │ ├── lutbuilder_0x5D14010F.cs_6_6.hlsl │ │ ├── lutbuilder_0x704AB527.cs_6_6.hlsl │ │ ├── lutbuilder_0x7D28F020.cs_6_6.hlsl │ │ ├── lutbuilder_0x81243B91.cs_6_6.hlsl │ │ ├── lutbuilder_0x8AB5FB23.cs_6_6.hlsl │ │ ├── lutbuilder_0x92690156.cs_6_6.hlsl │ │ ├── lutbuilder_0x9ECC8B3C.cs_6_6.hlsl │ │ ├── lutbuilder_0xA8DA5452.cs_6_6.hlsl │ │ ├── lutbuilder_0xAF588657.cs_6_6.hlsl │ │ ├── lutbuilder_0xB439D7F0.cs_6_6.hlsl │ │ ├── lutbuilder_0xC3C5B8AD.cs_6_6.hlsl │ │ ├── lutbuilder_0xC51C976F.cs_6_6.hlsl │ │ ├── lutbuilder_0xF890095A.cs_6_6.hlsl │ │ ├── lutbuilder_0xFF16F46F.cs_6_6.hlsl │ │ └── lutbuilder_hdr_0xCBE6F466.ps_6_6.hlsl │ ├── output │ │ ├── composite_hdr_0xBF88A580.ps_6_6.hlsl │ │ ├── custom_gamma_0x70EB957B.ps_6_6.hlsl │ │ ├── output_ca_hdr_0xB7AF8D8D.ps_6_6.hlsl │ │ ├── output_ca_hdr_scale_0xEED8F029.cs_6_6.hlsl │ │ ├── output_ca_hdr_scale_sharpen_0x12E07ACC.cs_6_6.hlsl │ │ ├── output_ca_hdr_scale_sharpen_vignette_0x8E39B831.cs_6_6.hlsl │ │ ├── output_ca_hdr_scale_vignette_0x59C7FFCE.cs_6_6.hlsl │ │ ├── output_ca_hdr_sharpen_0x4B58AFCD.ps_6_6.hlsl │ │ ├── output_ca_hdr_sharpen_vignette_0xA4374A0A.ps_6_6.hlsl │ │ ├── output_ca_hdr_vignette_0x440BCDEB.ps_6_6.hlsl │ │ ├── output_ca_scale_sharpen_vignette_0x1BD60193.cs_6_6.hlsl │ │ ├── output_ca_scale_vignette_0x99B126EC.cs_6_6.hlsl │ │ ├── output_hdr_0xDBD0F5E7.ps_6_6.hlsl │ │ ├── output_hdr_scale_0xCF3ED7E2.cs_6_6.hlsl │ │ ├── output_hdr_scale_sharpen_0x15B02998.cs_6_6.hlsl │ │ ├── output_hdr_scale_sharpen_vignette_0xCC2B95BB.cs_6_6.hlsl │ │ ├── output_hdr_scale_vignette_0xB6EDB152.cs_6_6.hlsl │ │ ├── output_hdr_sharpen_0x683652C8.ps_6_6.hlsl │ │ ├── output_hdr_sharpen_vignette_0x2F45593A.ps_6_6.hlsl │ │ ├── output_hdr_vignette_0x9D0421B9.ps_6_6.hlsl │ │ ├── output_scale_sharpen_0x04C003FD.cs_6_6.hlsl │ │ ├── output_scale_vignette_0xD1CDE904.cs_6_6.hlsl │ │ └── output_vignette_0xD8972207.ps_6_6.hlsl │ ├── shared.h │ ├── swap_chain_proxy_pixel_shader.ps_5_x.hlsl │ ├── swap_chain_proxy_vertex_shader.vs_5_x.hlsl │ └── unknown │ │ ├── 0x0C203297.cs_6_6.hlslx │ │ └── user_gamma_0x56DD5820.ps_6_6.hlslx ├── opus-eos │ ├── Bloom2D_0x25268FD8.ps_4_0.hlsl │ ├── Bloom_0x43207502.ps_4_0.hlsl │ ├── FinalPass_0xEB23B0ED.ps_5_0.hlsl │ ├── GraphicCorrection_0xA11475B7.ps_4_0.hlsl │ ├── LetterBoxShader_0x461C59CD.ps_4_0.hlsl │ ├── LocInfoImage_0xF3B40AB2.ps_4_0.hlsl │ ├── MaskBloom_0x2C10C965.ps_4_0.hlsl │ ├── SpriteGlitch_0xD068349F.ps_4_0.hlsl │ ├── StylizedWater_0xA696BC7D.ps_4_0.hlsl │ ├── Uber10_0x6CEA644C.ps_4_0.hlsl │ ├── Uber11_0xFE221F8E.ps_4_0.hlsl │ ├── Uber1_0x05D7FD3F.ps_4_0.hlsl │ ├── Uber2_0x05004E3A.ps_4_0.hlsl │ ├── Uber3_0xE4952B04.ps_4_0.hlsl │ ├── Uber4_0xADB22B5E.ps_4_0.hlsl │ ├── Uber5_0x24D21B11.ps_4_0.hlsl │ ├── Uber6_0xA833F91D.ps_4_0.hlsl │ ├── Uber7_0x1237D610.ps_4_0.hlsl │ ├── Uber8_0xE832FE2B.ps_4_0.hlsl │ ├── Uber9_0xDF21D66E.ps_4_0.hlsl │ ├── addon.cpp │ ├── common.hlsl │ ├── shared.h │ ├── swap_chain_proxy_pixel_shader.ps_5_x.hlsl │ └── swap_chain_proxy_vertex_shader.vs_5_x.hlsl ├── ori1definitive │ ├── addon.cpp │ ├── artifacts │ │ ├── artifact_0x0422C69E.ps_4_0.hlsl │ │ ├── artifact_0x11507068.ps_4_0.hlsl │ │ ├── artifact_0x1612A2ED.ps_4_0.hlsl │ │ ├── artifact_0x3D449D34.ps_4_0.hlsl │ │ ├── artifact_0x61EDCA76.ps_4_0.hlsl │ │ ├── artifact_0x74F1A9BF.ps_4_0.hlsl │ │ ├── artifact_0x7EA3E0B2.ps_4_0.hlsl │ │ ├── artifact_0x89FC4143.ps_4_0.hlsl │ │ ├── artifact_0x92EF8684.ps_4_0.hlsl │ │ ├── artifact_0x95E462F3.ps_4_0.hlsl │ │ ├── artifact_0xA5B9F647.ps_4_0.hlsl │ │ ├── artifact_0xB8F1C5BC.ps_4_0.hlsl │ │ ├── artifact_0xB932F19B.ps_4_0.hlsl │ │ ├── artifact_0xBC4BB886.ps_4_0.hlsl │ │ ├── artifact_0xC997373E.ps_4_0.hlsl │ │ ├── artifact_0xCC3D6FF7.ps_4_0.hlsl │ │ ├── artifact_0xE311E5C3.ps_4_0.hlsl │ │ ├── artifact_0xEDD7A595.ps_4_0.hlsl │ │ ├── artifact_0xF2280F92.ps_4_0.hlsl │ │ ├── artifact_0xFD5E9187.ps_4_0.hlsl │ │ ├── artifact_map_0xD6DBC682.ps_4_0.hlsl │ │ ├── artifact_memory_prologue_0x9A326CB2.ps_4_0.hlsl │ │ ├── artifact_memory_prologue_0xA0679E6A.ps_4_0.hlsl │ │ ├── artifact_plant_0x69935E20.ps_4_0.hlsl │ │ ├── artifact_water_0xDBE2402A.ps_4_0.hlsl │ │ ├── background_tree_artifact_0x08EC9524.ps_4_0.hlsl │ │ ├── cloud_artifact_0x0F10CE07.ps_4_0.hlsl │ │ ├── flower_artifact_0x791C6897.ps_4_0.hlsl │ │ ├── fruit_artifact_0x1018F519.ps_4_0.hlsl │ │ ├── fruit_artifact_0x6743CB50.ps_4_0.hlsl │ │ ├── fruit_artifact_0xE020E0E3.ps_4_0.hlsl │ │ ├── tree_alpha_0xD327EDF9.ps_4_0.hlsl │ │ └── tree_artifact_0xEF83C032.ps_4_0.hlsl │ ├── common.hlsl │ ├── final_0x52BC2F1B.ps_4_0.hlsl │ ├── game_final_0x470BECFA.ps_4_0.hlsl │ ├── game_final_no_mb_0xB31E6B7C.ps_4_0.hlsl │ ├── shared.h │ ├── uishaders │ │ ├── 0x0BC8B7AD.ps_4_0.hlsl │ │ ├── 0x89FB32DC.ps_4_0.hlsl │ │ ├── 0xF1446A0F.ps_4_0.hlsl │ │ ├── ui_0x06E0FF55.ps_4_0.hlsl │ │ ├── ui_0x0B9EF709.ps_4_0.hlsl │ │ ├── ui_0x0CBCCA15.ps_4_0.hlsl │ │ ├── ui_0x110CBF45.ps_4_0.hlsl │ │ ├── ui_0x2776C84A.ps_4_0.hlsl │ │ ├── ui_0x32BBB6EC.ps_4_0.hlsl │ │ ├── ui_0x3610A504.ps_4_0.hlsl │ │ ├── ui_0x3EE35D33.ps_4_0.hlsl │ │ ├── ui_0x405A953B.ps_4_0.hlsl │ │ ├── ui_0x57172B6F.ps_4_0.hlsl │ │ ├── ui_0xA3665A61.ps_4_0.hlsl │ │ ├── ui_0xE534D964.ps_4_0.hlsl │ │ ├── ui_0xE63F1AA1.ps_4_0.hlsl │ │ ├── ui_0xEEDE4B16.ps_4_0.hlsl │ │ └── ui_0xF5017B78.ps_4_0.hlsl │ ├── untesteduishaders │ │ ├── 0x0BF7ABF5.ps_4_0.hlsl │ │ ├── 0x4185B9AB.ps_4_0.hlsl │ │ ├── 0x7E661BCB.ps_4_0.hlsl │ │ ├── 0x844C51B1.ps_4_0.hlsl │ │ ├── 0x93682B5C.ps_4_0.hlsl │ │ ├── 0x9EF7455E.ps_4_0.hlsl │ │ ├── 0xB39B9252.ps_4_0.hlsl │ │ ├── 0xB56D6357.ps_4_0.hlsl │ │ ├── 0xB68ED355.ps_4_0.hlsl │ │ ├── 0xCA28B653.ps_4_0.hlsl │ │ ├── 0xCCC2E9D3.ps_4_0.hlsl │ │ ├── 0xD6874AF6.ps_4_0.hlsl │ │ ├── 0xDDCCAB25.ps_4_0.hlsl │ │ ├── 0xE6C66A25.ps_4_0.hlsl │ │ ├── 0xF976A2A9.ps_4_0.hlsl │ │ └── 0xFE58A410.ps_4_0.hlsl │ └── video_final_0x591107A5.ps_4_0.hlsl ├── ori2 │ ├── DICE.hlsl │ ├── RenoDRTSmoothClamp.hlsl │ ├── addon.cpp │ ├── colorgrade00_0x24182048.ps_5_0.hlsl │ ├── colorgrade01_0xD7BC63A1.ps_5_0.hlsl │ ├── colorgrade02_0x73E7A34D.ps_5_0.hlsl │ ├── colorgrade_0x063548F6.ps_5_0.hlsl │ ├── colorgrade_0x0BE6093C.ps_5_0.hlsl │ ├── colorgrade_0x0E0EE842.ps_5_0.hlsl │ ├── colorgrade_0x1A46FADC.ps_5_0.hlsl │ ├── colorgrade_0x1E8FDB7D.ps_5_0.hlsl │ ├── colorgrade_0x211F3245.ps_5_0.hlsl │ ├── colorgrade_0x28B10677.ps_5_0.hlsl │ ├── colorgrade_0x2CEC407A.ps_5_0.hlsl │ ├── colorgrade_0x34F7E01C.ps_5_0.hlsl │ ├── colorgrade_0x350163E1.ps_5_0.hlsl │ ├── colorgrade_0x37E6CB72.ps_5_0.hlsl │ ├── colorgrade_0x3F118009.ps_5_0.hlsl │ ├── colorgrade_0x3FDCF7AA.ps_5_0.hlsl │ ├── colorgrade_0x48CDE62E.ps_5_0.hlsl │ ├── colorgrade_0x4A3D4181.ps_5_0.hlsl │ ├── colorgrade_0x596B9BD3.ps_5_0.hlsl │ ├── colorgrade_0x5B0965E4.ps_5_0.hlsl │ ├── colorgrade_0x5CDE4A30.ps_5_0.hlsl │ ├── colorgrade_0x613B5403.ps_5_0.hlsl │ ├── colorgrade_0x62C79AA3.ps_5_0.hlsl │ ├── colorgrade_0x649A0B90.ps_5_0.hlsl │ ├── colorgrade_0x7C14BB2C.ps_5_0.hlsl │ ├── colorgrade_0x841FAF0A.ps_5_0.hlsl │ ├── colorgrade_0x84C7D93E.ps_5_0.hlsl │ ├── colorgrade_0x8A303253.ps_5_0.hlsl │ ├── colorgrade_0x8B1DE268.ps_5_0.hlsl │ ├── colorgrade_0x8D6097D1.ps_5_0.hlsl │ ├── colorgrade_0x8D6C34A5.ps_5_0.hlsl │ ├── colorgrade_0x8EC5798A.ps_5_0.hlsl │ ├── colorgrade_0x9AC0DEEF.ps_5_0.hlsl │ ├── colorgrade_0x9B5CC768.ps_5_0.hlsl │ ├── colorgrade_0x9DA86DCE.ps_5_0.hlsl │ ├── colorgrade_0xA6488EB2.ps_5_0.hlsl │ ├── colorgrade_0xABD8D6B7.ps_5_0.hlsl │ ├── colorgrade_0xB24C1A54.ps_5_0.hlsl │ ├── colorgrade_0xB270CA5B.ps_5_0.hlsl │ ├── colorgrade_0xC4128983.ps_5_0.hlsl │ ├── colorgrade_0xD9B57ECB.ps_5_0.hlsl │ ├── colorgrade_0xDB90C883.ps_5_0.hlsl │ ├── colorgrade_0xDE975B11.ps_5_0.hlsl │ ├── colorgrade_0xE3F6E54F.ps_5_0.hlsl │ ├── colorgrade_0xF017475F.ps_5_0.hlsl │ ├── colorgrade_0xF3917C63.ps_5_0.hlsl │ ├── colorgrade_0xF7933F3F.ps_5_0.hlsl │ ├── colorgrade_0xFCF0717A.ps_5_0.hlsl │ ├── finalpq_0xF9C2BDE1.ps_4_0.hlsl │ ├── hueHelper.hlsl │ ├── itm_0x9D323EA3.ps_4_0.hlsl │ └── shared.h ├── osirisnewdawn │ ├── BlitCopyHDRTonemap_0xD02D3BF1.ps_4_0.hlsl │ ├── LUT3DBakerACES_0x47A1239F.cs_5_0.hlsl │ ├── LUT3DBakerNeutral_0xBE750C14.cs_5_0.hlsl │ ├── UIdefault2_0x8E2521B8.ps_4_0.hlsl │ ├── UIdefault_0x066C98CB.ps_4_0.hlsl │ ├── addon.cpp │ ├── common.hlsl │ ├── final_0x20133A8B.ps_4_0.hlsl │ ├── shared.h │ ├── uberpost2_0x1BF2161B.ps_4_0.hlsl │ ├── uberpost3_0x2706BB7A.ps_4_0.hlsl │ ├── uberpost4_0xA34705B5.ps_4_0.hlsl │ ├── uberpostCM_0x71A4E35E.ps_4_0.hlsl │ └── uberpost_0x808BC2A2.ps_4_0.hlsl ├── outerwilds │ ├── DICE.hlsl │ ├── UIdefault_0x2B868B21.ps_4_0.hlsl │ ├── addon.cpp │ ├── bloom_0xBC65EF6F.ps_4_0.hlsl │ ├── common.hlsl │ ├── helmHUD_0x0A902442.ps_4_0.hlsl │ ├── output_0x2AA95E6B.ps_4_0.hlsl │ ├── output_0x51459A11.ps_4_0.hlsl │ ├── output_0x60C9F3A1.ps_4_0.hlsl │ ├── output_0x7F1AF2FE.ps_4_0.hlsl │ ├── shared.h │ ├── swap_chain_proxy_pixel_shader.ps_4_0.hlsl │ └── swap_chain_proxy_vertex_shader.vs_4_0.hlsl ├── p4g │ ├── DrawFX_0x331C4ACF.ps_5_0.hlsl │ ├── DrawMesh_0x082180F8.ps_5_0.hlsl │ ├── DrawTexture_0x8954E12A.ps_5_0.hlsl │ ├── Output_0x73C09769.ps_5_0.hlsl │ ├── addon.cpp │ └── shared.h ├── p5r │ ├── 00_clear_0xCF70BF33.ps_5_0.hlsl │ ├── 01_final_0xDE5120BF.ps_5_0.hlsl │ ├── 02_precompose_0x3C2773E3.ps_5_0.hlsl │ ├── 04_copy_0xB6E26AC7.ps_5_0.hlsl │ ├── 09_hdr_0x0D85D1F6.ps_5_0.hlsl │ ├── 0x_color_0x960502CC.ps_5_0.hlsl │ ├── 0x_ui_0x060C3E22.ps_5_0.hlsl │ ├── 0x_ui_0x23A501DC.ps_5_0.hlsl │ ├── 0x_ui_0x2944B564.ps_5_0.hlsl │ ├── 0x_ui_0x4016ED43.ps_5_0.hlsl │ ├── 0x_ui_0x5C4DD977.ps_5_0.hlsl │ ├── 0x_ui_0x7C0751EF.ps_5_0.hlsl │ ├── 0x_ui_0xAB823647.ps_5_0.hlsl │ ├── 0x_ui_0xCC71BBE3.ps_5_0.hlsl │ ├── 0x_ui_0xD434C03A.ps_5_0.hlsl │ ├── 0x_ui_0xE126DD24.ps_5_0.hlsl │ ├── 0x_ui_0xEBBDB212.ps_5_0.hlsl │ ├── addon.cpp │ ├── shared.h │ └── video_0xC6D14699.ps_5_0.hlsl ├── p5r_archive │ ├── Copy_0xB6E26AC7.ps_5_0.hlsl │ ├── HDR_BloomStar_0xC7690164.ps_5_0.hlsl │ ├── HDR_TonemapParams_BloomStar_0xE75890F6.ps_5_0.hlsl │ ├── HDR_Tonemap_BloomStar_0x67991225.ps_5_0.hlsl │ ├── Output_0xDE5120BF.ps_5_0.hlsl │ ├── PostTonemap_BloomBright_0x0D85D1F6.ps_5_0.hlsl │ ├── PostTonemap_Bloom_0x2FC8F3F8.ps_5_0.hlsl │ ├── PreTonemap_0xCD84F54A.ps_5_0.hlsl │ ├── UIDrawColor_0xE126DD24.ps_5_0.hlsl │ ├── UIDrawTexture_0xCC71BBE3.ps_5_0.hlsl │ ├── UIMenu_0x3C2773E3.ps_5_0.hlsl │ ├── X_ClampAlpha_0xFFFFFFFF.cs_5_0.hlsl │ ├── addon.cpp │ └── p5r.h ├── poptlc │ ├── Color.hlsl │ ├── ColorGradingLUT.hlsl │ ├── DICE.hlsl │ ├── LUT.hlsl │ ├── LUTShared.hlsl │ ├── LUT_0xFA1EB89D.ps_5_0.hlsl │ ├── LUT_Bloom_0xA8D65F39.ps_5_0.hlsl │ ├── LUT_Bloom_Vignette_0xDB8E089A.ps_5_0.hlsl │ ├── Math.hlsl │ ├── Oklab.hlsl │ ├── Output_0x20133A8B.ps_4_0.hlsl │ ├── addon.cpp │ └── shared.h ├── rdr1 │ ├── PSApplyHDR10PQGammaCorrect.0x56F79BAD.ps_6_0.hlsl │ ├── PSMiniAdapt.0xE033AAAD.ps_6_0.hlsl │ ├── PSRDR2PostfxOptics_0xEEEE53C5.ps_6_0.hlsl │ ├── PSRDR2PostfxSoftCutsceneDof.0x9761FB07.ps_6_0.hlsl │ ├── PSRDR2PostfxSoftCutsceneDofOptics.0x632ABCB2.ps_6_0.hlsl │ ├── PSRDR2PostfxSoftDof.0xCCC43328.ps_6_0.hlsl │ ├── PSRDR2PostfxSoftDofOptics.0xE93AD74D.ps_6_0.hlsl │ ├── PSRDR2Postfx_0x4EAF2BC7.ps_6_0.hlsl │ ├── addon.cpp │ ├── hueHelper.hlsl │ ├── shared.h │ └── tonemaphelper.hlsl ├── re2remake │ ├── ConvertRec2020PS_0xAF0777E5.ps_6_5.hlsl │ ├── DICE.hlsl │ ├── HDRPostProcess_WithTonemap_0x314A98A7.ps_6_5.hlsl │ ├── LUTBlackCorrection.hlsl │ ├── NoVignette_HDRPostProcess_WithTonemap_0x30D8372F.ps_6_5.hlsl │ ├── addon.cpp │ └── shared.h ├── re3remake │ ├── ConvertRec2020PS_0x52248E59.ps_6_5.hlsl │ ├── DICE.hlsl │ ├── HDRCalibrationMenu_ConvertRec2020PS_0x664875D1.ps_6_5.hlsl │ ├── HDRPostProcess_WithTonemap_0x314A98A7.ps_6_5.hlsl │ ├── LUTBlackCorrection.hlsl │ ├── NoVignette_HDRPostProcess_WithTonemap_0x30D8372F.ps_6_5.hlsl │ ├── addon.cpp │ └── shared.h ├── re4remake │ ├── ConvertRec2020PS_0x6737588D.ps_6_6.hlsl │ ├── DICE.hlsl │ ├── LUTBlackCorrection.hlsl │ ├── addon.cpp │ ├── shared.h │ ├── tonemap_inside_0x1F9104F3.ps_6_6.hlsl │ └── tonemap_outside_HDRPostProcess_WithTonemap_0x973A39FC.ps_6_6.hlsl ├── re7 │ ├── ConvertRec2020PS_0x52248E59.ps_6_5.hlsl │ ├── DICE.hlsl │ ├── HDRCalibrationMenu_ConvertRec2020PS_0x664875D1.ps_6_5.hlsl │ ├── LUTBlackCorrection.hlsl │ ├── addon.cpp │ ├── shared.h │ └── tonemap_0xAD20915B.ps_6_5.hlsl ├── reka │ ├── LutBuilder3D_0x3B4291E8.cs_5_0.hlsl │ ├── addon.cpp │ ├── common.hlsl │ ├── final_0x20133A8B.ps_4_0.hlsl │ ├── postfinal2_0x3DA6127F.ps_5_0.hlsl │ ├── postfinal_0x02AB22C6.ps_5_0.hlsl │ ├── shared.h │ └── uberpost_0xE363E5C8.cs_5_0.hlsl ├── reveil │ ├── HDRPfinal10_0xAE5E9F10.ps_5_0.hlsl │ ├── HDRPfinal11_0xEDF2CCA5.ps_5_0.hlsl │ ├── HDRPfinal12_0x5AE952EB.ps_5_0.hlsl │ ├── HDRPfinal13_0xE222056C.ps_5_0.hlsl │ ├── HDRPfinal2_0x99DC845A.ps_5_0.hlsl │ ├── HDRPfinal3_0xD723C6F4.ps_5_0.hlsl │ ├── HDRPfinal4_0x228A2030.ps_5_0.hlsl │ ├── HDRPfinal5_0x214D1051.ps_5_0.hlsl │ ├── HDRPfinal6_0x9BDBCC02.ps_5_0.hlsl │ ├── HDRPfinal8_0x0736E454.ps_5_0.hlsl │ ├── HDRPfinal9_0x2CE4C824.ps_5_0.hlsl │ ├── HDRPfinal_0xBDEF4B88.ps_5_0.hlsl │ ├── LutBuilder3D2_0xB2C2262A.cs_5_0.hlsl │ ├── LutBuilder3D_0xF5AC76A9.cs_5_0.hlsl │ ├── addon.cpp │ ├── common.hlsl │ ├── final_0x20133A8B.ps_4_0.hlsl │ ├── shared.h │ ├── uberpost2_0xCF6E0603.cs_5_0.hlsl │ ├── uberpost3_0x9B5C1401.cs_5_0.hlsl │ ├── uberpost_0xF1A75575.cs_5_0.hlsl │ └── videos_0x8A6BCB4C.ps_4_0.hlsl ├── revillage │ ├── ConvertRec2020PS_0x1405D21D.ps_6_5.hlsl │ ├── DICE.hlsl │ ├── LUTBlackCorrection.hlsl │ ├── addon.cpp │ ├── shared.h │ ├── tonemap_0x2F362206.ps_6_5.hlsl │ └── tonemap_novignette_0x16906EB5.ps_6_5.hlsl ├── risetombraider │ ├── addon.cpp │ ├── bloom_0x0971078C.ps_5_x.hlsl │ ├── final_copy_0x2082055F.ps_5_x.hlsl │ ├── final_copy_0x3D0F897E.ps_5_x.hlsl │ ├── gamma_0x84DEB744.ps_5_x.hlsl │ ├── gamma_0xECE920AB.ps_5_x.hlsl │ ├── lens_flare_0x980DB0E0.ps_5_x.hlsl │ ├── motion_blur_0xEC7D28FE.ps_5_x.hlsl │ ├── reinhard_extended_0x4CC2B543.ps_5_x.hlsl │ ├── scanlines2_0xFCAB6FA9.ps_5_x.hlsl │ ├── scanlines_0xC0935428.ps_5_x.hlsl │ ├── shared.h │ ├── tonemap_0x6402D0CC.ps_5_x.hlsl │ ├── tonemap_0x7D540A59.ps_5_x.hlsl │ ├── tonemap_0xB74D6870.ps_5_x.hlsl │ └── tonemap_0xDCF3B2C0.ps_5_x.hlsl ├── roadhogengine │ ├── addon.cpp │ ├── common.hlsl │ ├── gamma_0xC567CE8A.ps_4_0.hlsl │ ├── hardresetredux │ │ ├── rip_0x23F2025E.ps_4_0.hlsl │ │ ├── tonemap_0x2FF3AD78.ps_4_0.hlsl │ │ ├── tonemap_0x38396D4E.ps_4_0.hlsl │ │ ├── tonemap_0x39A21265.ps_4_0.hlsl │ │ ├── tonemap_0x4338D617.ps_4_0.hlsl │ │ ├── tonemap_0x45405040.ps_4_0.hlsl │ │ ├── tonemap_0x5D1BC502.ps_4_0.hlsl │ │ ├── tonemap_0x6AEB4E45.ps_4_0.hlsl │ │ ├── tonemap_0x769FB187.ps_4_0.hlsl │ │ ├── tonemap_0x79D405C5.ps_4_0.hlsl │ │ ├── tonemap_0x852CCF05.ps_4_0.hlsl │ │ ├── tonemap_0xA6B01AE0.ps_4_0.hlsl │ │ ├── tonemap_0xA8F9150B.ps_4_0.hlsl │ │ ├── tonemap_0xAD092DF9.ps_4_0.hlsl │ │ ├── tonemap_0xBA01D096.ps_4_0.hlsl │ │ ├── tonemap_0xE29A7A29.ps_4_0.hlsl │ │ ├── tonemap_0xE56AC1BF.ps_4_0.hlsl │ │ ├── tonemap_0xEF480D6C.ps_4_0.hlsl │ │ └── videos_0x8FACEF64.ps_4_0.hlsl │ ├── shadowwarrior2 │ │ ├── UI_0x10CE0E36.ps_5_0.hlsl │ │ ├── UI_0x320A7BCC.ps_5_0.hlsl │ │ ├── UI_0x4D593A55.ps_5_0.hlsl │ │ ├── UI_0x57D8F01E.ps_5_0.hlsl │ │ ├── UI_0x5B0B9295.ps_5_0.hlsl │ │ ├── UI_0x7DC0A614.ps_5_0.hlsl │ │ ├── UI_0x7DE48FFA.ps_5_0.hlsl │ │ ├── UI_0x838B4310.ps_5_0.hlsl │ │ ├── UI_0xA3A17C66.ps_5_0.hlsl │ │ ├── UI_0xA505992D.ps_5_0.hlsl │ │ ├── UI_0xCACDD090.ps_5_0.hlsl │ │ ├── UI_0xDB333004.ps_5_0.hlsl │ │ ├── UI_0xE6D30E69.ps_5_0.hlsl │ │ ├── gamma_0xCBB34038.ps_5_0.hlsl │ │ ├── tonemap_0x037CC98B.ps_5_0.hlsl │ │ ├── tonemap_0x0664A14D.ps_5_0.hlsl │ │ ├── tonemap_0x075F0A3D.ps_5_0.hlsl │ │ ├── tonemap_0x0771DF62.ps_5_0.hlsl │ │ ├── tonemap_0x08BB0F87.ps_5_0.hlsl │ │ ├── tonemap_0x121503C6.ps_5_0.hlsl │ │ ├── tonemap_0x1541870E.ps_5_0.hlsl │ │ ├── tonemap_0x17C9E4CA.ps_5_0.hlsl │ │ ├── tonemap_0x19AFABC4.ps_5_0.hlsl │ │ ├── tonemap_0x1C67E14B.ps_5_0.hlsl │ │ ├── tonemap_0x207BE732.ps_5_0.hlsl │ │ ├── tonemap_0x230F6B5A.ps_5_0.hlsl │ │ ├── tonemap_0x231B3B55.ps_5_0.hlsl │ │ ├── tonemap_0x268326F2.ps_5_0.hlsl │ │ ├── tonemap_0x2744DD30.ps_5_0.hlsl │ │ ├── tonemap_0x275B517F.ps_5_0.hlsl │ │ ├── tonemap_0x27C1C43B.ps_5_0.hlsl │ │ ├── tonemap_0x291AE833.ps_5_0.hlsl │ │ ├── tonemap_0x2DAE9396.ps_5_0.hlsl │ │ ├── tonemap_0x2E26D10C.ps_5_0.hlsl │ │ ├── tonemap_0x304EBCD0.ps_5_0.hlsl │ │ ├── tonemap_0x306345AC.ps_5_0.hlsl │ │ ├── tonemap_0x31AE8CA6.ps_5_0.hlsl │ │ ├── tonemap_0x32F90855.ps_5_0.hlsl │ │ ├── tonemap_0x330C6A5B.ps_5_0.hlsl │ │ ├── tonemap_0x33D69819.ps_5_0.hlsl │ │ ├── tonemap_0x3776EC3D.ps_5_0.hlsl │ │ ├── tonemap_0x393CB504.ps_5_0.hlsl │ │ ├── tonemap_0x3A533147.ps_5_0.hlsl │ │ ├── tonemap_0x3B47B8DF.ps_5_0.hlsl │ │ ├── tonemap_0x3F4868D6.ps_5_0.hlsl │ │ ├── tonemap_0x40F026C4.ps_5_0.hlsl │ │ ├── tonemap_0x45995B20.ps_5_0.hlsl │ │ ├── tonemap_0x481CFC2F.ps_5_0.hlsl │ │ ├── tonemap_0x4B59870B.ps_5_0.hlsl │ │ ├── tonemap_0x4C3AFED2.ps_5_0.hlsl │ │ ├── tonemap_0x4C5412CF.ps_5_0.hlsl │ │ ├── tonemap_0x4D3E5269.ps_5_0.hlsl │ │ ├── tonemap_0x4F081694.ps_5_0.hlsl │ │ ├── tonemap_0x50BC4290.ps_5_0.hlsl │ │ ├── tonemap_0x518FA0B1.ps_5_0.hlsl │ │ ├── tonemap_0x52DC5990.ps_5_0.hlsl │ │ ├── tonemap_0x53421D31.ps_5_0.hlsl │ │ ├── tonemap_0x55B4E2D7.ps_5_0.hlsl │ │ ├── tonemap_0x55D4EA9A.ps_5_0.hlsl │ │ ├── tonemap_0x5B14FEDD.ps_5_0.hlsl │ │ ├── tonemap_0x5D4B2922.ps_5_0.hlsl │ │ ├── tonemap_0x5DB10347.ps_5_0.hlsl │ │ ├── tonemap_0x5DFBBB7C.ps_5_0.hlsl │ │ ├── tonemap_0x5F1C7813.ps_5_0.hlsl │ │ ├── tonemap_0x62E8D8A4.ps_5_0.hlsl │ │ ├── tonemap_0x64117C6A.ps_5_0.hlsl │ │ ├── tonemap_0x6697D0DC.ps_5_0.hlsl │ │ ├── tonemap_0x69D2640C.ps_5_0.hlsl │ │ ├── tonemap_0x6F206DC4.ps_5_0.hlsl │ │ ├── tonemap_0x724C6971.ps_5_0.hlsl │ │ ├── tonemap_0x72C9BB0F.ps_5_0.hlsl │ │ ├── tonemap_0x7A4B1159.ps_5_0.hlsl │ │ ├── tonemap_0x7AE71A38.ps_5_0.hlsl │ │ ├── tonemap_0x7CF50E75.ps_5_0.hlsl │ │ ├── tonemap_0x7F2DAD13.ps_5_0.hlsl │ │ ├── tonemap_0x83402A8B.ps_5_0.hlsl │ │ ├── tonemap_0x858AE537.ps_5_0.hlsl │ │ ├── tonemap_0x8667F96E.ps_5_0.hlsl │ │ ├── tonemap_0x88536DF4.ps_5_0.hlsl │ │ ├── tonemap_0x885495F4.ps_5_0.hlsl │ │ ├── tonemap_0x900E377D.ps_5_0.hlsl │ │ ├── tonemap_0x93FC2429.ps_5_0.hlsl │ │ ├── tonemap_0x946F6BD1.ps_5_0.hlsl │ │ ├── tonemap_0x99BB12A1.ps_5_0.hlsl │ │ ├── tonemap_0x9BB66660.ps_5_0.hlsl │ │ ├── tonemap_0x9CDD78C7.ps_5_0.hlsl │ │ ├── tonemap_0x9FBA649D.ps_5_0.hlsl │ │ ├── tonemap_0x9FE92A9D.ps_5_0.hlsl │ │ ├── tonemap_0xA351E23F.ps_5_0.hlsl │ │ ├── tonemap_0xA5A83291.ps_5_0.hlsl │ │ ├── tonemap_0xA81E83DB.ps_5_0.hlsl │ │ ├── tonemap_0xA8EC5856.ps_5_0.hlsl │ │ ├── tonemap_0xAB144A18.ps_5_0.hlsl │ │ ├── tonemap_0xB0BE7319.ps_5_0.hlsl │ │ ├── tonemap_0xB31BA649.ps_5_0.hlsl │ │ ├── tonemap_0xB568643C.ps_5_0.hlsl │ │ ├── tonemap_0xB7D0CEC3.ps_5_0.hlsl │ │ ├── tonemap_0xB7D80646.ps_5_0.hlsl │ │ ├── tonemap_0xBA1D4C3E.ps_5_0.hlsl │ │ ├── tonemap_0xBDF52042.ps_5_0.hlsl │ │ ├── tonemap_0xBE6C39BD.ps_5_0.hlsl │ │ ├── tonemap_0xBEE1E334.ps_5_0.hlsl │ │ ├── tonemap_0xC06D82E9.ps_5_0.hlsl │ │ ├── tonemap_0xC0B87AA2.ps_5_0.hlsl │ │ ├── tonemap_0xC1FF843E.ps_5_0.hlsl │ │ ├── tonemap_0xC4FE0520.ps_5_0.hlsl │ │ ├── tonemap_0xC570E91E.ps_5_0.hlsl │ │ ├── tonemap_0xC573DB4C.ps_5_0.hlsl │ │ ├── tonemap_0xCBBB1122.ps_5_0.hlsl │ │ ├── tonemap_0xCE924A58.ps_5_0.hlsl │ │ ├── tonemap_0xD093E1BF.ps_5_0.hlsl │ │ ├── tonemap_0xD76F33B7.ps_5_0.hlsl │ │ ├── tonemap_0xD8B52567.ps_5_0.hlsl │ │ ├── tonemap_0xDE6FB1B6.ps_5_0.hlsl │ │ ├── tonemap_0xE07F2B70.ps_5_0.hlsl │ │ ├── tonemap_0xE18B30E8.ps_5_0.hlsl │ │ ├── tonemap_0xE29265B1.ps_5_0.hlsl │ │ ├── tonemap_0xE6A0DEE7.ps_5_0.hlsl │ │ ├── tonemap_0xE797E530.ps_5_0.hlsl │ │ ├── tonemap_0xE82075EC.ps_5_0.hlsl │ │ ├── tonemap_0xEAC729D8.ps_5_0.hlsl │ │ ├── tonemap_0xEC673508.ps_5_0.hlsl │ │ ├── tonemap_0xED55AF5C.ps_5_0.hlsl │ │ ├── tonemap_0xF1B4BC09.ps_5_0.hlsl │ │ ├── tonemap_0xF3B1D674.ps_5_0.hlsl │ │ ├── tonemap_0xF47ECC50.ps_5_0.hlsl │ │ ├── tonemap_0xF4EA7010.ps_5_0.hlsl │ │ ├── tonemap_0xF69CD003.ps_5_0.hlsl │ │ ├── tonemap_0xF8AD6A63.ps_5_0.hlsl │ │ ├── tonemap_0xF8CE1E2A.ps_5_0.hlsl │ │ ├── tonemap_0xF99C69EC.ps_5_0.hlsl │ │ ├── tonemap_0xFB2559D5.ps_5_0.hlsl │ │ ├── tonemap_0xFD30895E.ps_5_0.hlsl │ │ └── videos_0x6756A138.ps_5_0.hlsl │ ├── shadowwarrior2013 │ │ ├── UIinteract_0x6720BADB.ps_4_0.hlsl │ │ ├── lensdirt_0xA36BCFE2.ps_4_0.hlsl │ │ ├── lensdirt_0xA4F44331.ps_4_0.hlsl │ │ ├── lensflare_0x3708D87A.ps_4_0.hlsl │ │ ├── something_0x4E5E174F.ps_4_0.hlsl │ │ ├── tonemap_0x023970B8.ps_4_0.hlsl │ │ ├── tonemap_0x09A94C41.ps_4_0.hlsl │ │ ├── tonemap_0x0A2E234C.ps_4_0.hlsl │ │ ├── tonemap_0x0DA22B92.ps_4_0.hlsl │ │ ├── tonemap_0x0F9652E8.ps_4_0.hlsl │ │ ├── tonemap_0x12AB1A81.ps_4_0.hlsl │ │ ├── tonemap_0x13DA4C6C.ps_4_0.hlsl │ │ ├── tonemap_0x16580EDF.ps_4_0.hlsl │ │ ├── tonemap_0x1716F0C8.ps_4_0.hlsl │ │ ├── tonemap_0x191D8275.ps_4_0.hlsl │ │ ├── tonemap_0x1CA8E9AB.ps_4_0.hlsl │ │ ├── tonemap_0x1CDD6909.ps_4_0.hlsl │ │ ├── tonemap_0x2E4DC470.ps_4_0.hlsl │ │ ├── tonemap_0x315506B7.ps_4_0.hlsl │ │ ├── tonemap_0x3381FB53.ps_4_0.hlsl │ │ ├── tonemap_0x3FBBDFB4.ps_4_0.hlsl │ │ ├── tonemap_0x4628A968.ps_4_0.hlsl │ │ ├── tonemap_0x46AC9E79.ps_4_0.hlsl │ │ ├── tonemap_0x4DEE3336.ps_4_0.hlsl │ │ ├── tonemap_0x52F84B72.ps_4_0.hlsl │ │ ├── tonemap_0x6211B8A7.ps_4_0.hlsl │ │ ├── tonemap_0x6D2ADAEE.ps_4_0.hlsl │ │ ├── tonemap_0x6E60A61D.ps_4_0.hlsl │ │ ├── tonemap_0x6F10C7B9.ps_4_0.hlsl │ │ ├── tonemap_0x7248153A.ps_4_0.hlsl │ │ ├── tonemap_0x72740BC1.ps_4_0.hlsl │ │ ├── tonemap_0x7353AA61.ps_4_0.hlsl │ │ ├── tonemap_0x8204D9A8.ps_4_0.hlsl │ │ ├── tonemap_0x856E9973.ps_4_0.hlsl │ │ ├── tonemap_0x879096E7.ps_4_0.hlsl │ │ ├── tonemap_0x9AB1D1C6.ps_4_0.hlsl │ │ ├── tonemap_0xA5638A17.ps_4_0.hlsl │ │ ├── tonemap_0xA63B5F1F.ps_4_0.hlsl │ │ ├── tonemap_0xA672A600.ps_4_0.hlsl │ │ ├── tonemap_0xAECCF67D.ps_4_0.hlsl │ │ ├── tonemap_0xB306DEC3.ps_4_0.hlsl │ │ ├── tonemap_0xC04679B1.ps_4_0.hlsl │ │ ├── tonemap_0xC9470745.ps_4_0.hlsl │ │ ├── tonemap_0xCC82A738.ps_4_0.hlsl │ │ ├── tonemap_0xCFE2B5D1.ps_4_0.hlsl │ │ ├── tonemap_0xD2F1B647.ps_4_0.hlsl │ │ ├── tonemap_0xEDF935AA.ps_4_0.hlsl │ │ ├── tonemap_0xF3FC4807.ps_4_0.hlsl │ │ ├── tonemap_0xF6CEE439.ps_4_0.hlsl │ │ ├── tonemap_0xF71CDD10.ps_4_0.hlsl │ │ └── videos_0x48B48F7B.ps_4_0.hlsl │ ├── shared.h │ ├── swap_chain_proxy_pixel_shader.ps_5_0.hlsl │ └── swap_chain_proxy_vertex_shader.vs_5_0.hlsl ├── scblacklist │ ├── addon.cpp │ ├── colorgrade_0x03DBB3FD.ps_5_0.hlsl │ ├── common.hlsl │ ├── final_0x1E767A42.ps_5_0.hlsl │ ├── lens_flare_0xB615F379.ps_5_0.hlsl │ ├── shared.h │ └── sonar_0x81A1C030.ps_5_0.hlsl ├── seaofstars │ ├── addon.cpp │ ├── final_0x72B31CDE.ps_4_0.hlsl │ ├── lutbuilder_0x67758842.ps_4_0.hlsl │ ├── lutbuilder_new_0x77850945.ps_4_0.hlsl │ ├── shared.h │ ├── tonemapper_0x552A4A60.ps_4_0.hlsl │ ├── tonemapper_new2_0xC1637E4E.ps_4_0.hlsl │ └── tonemapper_new_0xB646820B.ps_4_0.hlsl ├── seaofthieves │ ├── addon.cpp │ ├── final_0x84B99833.ps_5_0.hlsl │ ├── seaofthieves.h │ └── tonemapper_0xE41360A3.ps_5_0.hlsl ├── shadowofwar │ ├── DICE.hlsl │ ├── addon.cpp │ ├── bloom_0xA35C971A.ps_5_0.hlsl │ ├── final_0x68EABB8D.ps_5_0.hlsl │ ├── game_gamma_0xA4592384.ps_5_0.hlsl │ ├── photo_mode_0xC2665219.ps_5_0.hlsl │ └── shared.h ├── shadowsawakening │ ├── LutBuilder_0x6A8BFC0E.ps_5_0.hlsl │ ├── UIcamera_0xC47E2D5B.ps_4_0.hlsl │ ├── UIdefault2_0x31102333.ps_4_0.hlsl │ ├── UIdefault_0x85463CFA.ps_4_0.hlsl │ ├── UIminimap_0x4E43372C.ps_4_0.hlsl │ ├── addon.cpp │ ├── common.hlsl │ ├── light_0xE911C9D2.ps_4_0.hlsl │ ├── postfx2_0x0D4651C9.ps_5_0.hlsl │ ├── postfx3_0x0299214E.ps_5_0.hlsl │ ├── postfx_0x244A72BB.ps_5_0.hlsl │ ├── shared.h │ ├── something2_0xD4C8CCF7.ps_4_0.hlsl │ ├── something3_0x1E4FBFCE.ps_4_0.hlsl │ ├── something_0x9B5F961E.ps_4_0.hlsl │ ├── uberpostTM_0xFE41EA26.ps_4_0.hlsl │ ├── uberpost_0xF9B0D779.ps_4_0.hlsl │ ├── videosingame_0xF804335C.ps_4_0.hlsl │ └── videosopening_0x8A6BCB4C.ps_4_0.hlsl ├── shadowtombraider │ ├── ACESLUT_0x2F759B36.cs_5_x.hlsl │ ├── addon.cpp │ ├── bloom_0x02F23B46.cs_5_x.hlsl │ ├── common.hlsl │ ├── hdr_gamma_0x5D10D1A2.ps_5_x.hlsl │ ├── lensflare │ │ ├── lens_flare_0x828F116D.ps_5_x.hlsl │ │ └── lens_flare_0x8697E4DE.ps_5_x.hlsl │ ├── lutshaders │ │ ├── 0x36A04CB8.cs_5_x.hlsl │ │ ├── 0x725644C4.cs_5_x.hlsl │ │ ├── 0x72D58C75.cs_5_x.hlsl │ │ ├── 0x90C37605.cs_5_x.hlsl │ │ ├── 0xABDAFDB8.cs_5_x.hlsl │ │ └── 0xFF27B467.cs_5_x.hlsl │ ├── shared.h │ ├── tonemap_aces_hdr_0xDB8538C1.ps_5_x.hlsl │ ├── tonemap_lut_hdr_0x0FBDBDA4.ps_5_x.hlsl │ └── uishaders │ │ ├── 0x1AA4CCAC.ps_5_x.hlsl │ │ ├── 0x332A318B.ps_5_x.hlsl │ │ ├── 0x3AA14258.ps_5_x.hlsl │ │ ├── 0x48FA9C2B.ps_5_x.hlsl │ │ ├── 0x6F8605E5.ps_5_x.hlsl │ │ ├── 0x81B46BE8.ps_5_x.hlsl │ │ ├── 0x9BC94FD8.ps_5_x.hlsl │ │ ├── 0xA302A797.ps_5_x.hlsl │ │ ├── 0xA5AAFE7A.ps_5_x.hlsl │ │ ├── 0xD7AEE3C3.ps_5_x.hlsl │ │ ├── 0xD7BE7204.ps_5_x.hlsl │ │ └── 0xF374711E.ps_5_x.hlsl ├── silenthill2remake │ ├── 0x063CCF18.cso │ ├── 0x18A5ACE1.cso │ ├── 0x1BC9EFE2.cso │ ├── 0x1E7B589F.cso │ ├── 0x309584F8.cso │ ├── 0x39235257.cso │ ├── 0x394B5831.cso │ ├── 0x3CB03848.cso │ ├── 0x421733C7.cso │ ├── 0x43713652.cso │ ├── 0x4B7B660D.cso │ ├── 0x4CC68F73.cso │ ├── 0x507B8FB6.cso │ ├── 0x68E782E2.cso │ ├── 0x72A44486.cso │ ├── 0x77178C51.cso │ ├── 0x82F211C7.cso │ ├── 0x865E53FC.cso │ ├── 0x95CC270F.cso │ ├── 0x99145AE9.cso │ ├── 0x9DF2DDD4.cso │ ├── 0x9EB78561.cso │ ├── 0xA0A20D27.cso │ ├── 0xBBB5CA7B.cso │ ├── 0xBF32ABFA.cso │ ├── 0xC496B5C3.cso │ ├── 0xDA6D5332.cso │ ├── 0xFDFD3CB7.cso │ ├── README.md │ ├── addon.cpp │ └── shared.h ├── sleepingdogs │ ├── 00_final_0x7BD04F3D.ps_4_0.hlsl │ ├── addon.cpp │ └── shared.h ├── sleepingdogsde │ ├── 00_output_0x7DF69EF0.ps_4_0.hlsl │ ├── addon.cpp │ ├── shared.h │ └── tonemapper_0x67843125.ps_4_0.hlsl ├── sonicgenerations │ ├── 00_final_0xFE9E931E.ps_5_0.hlsl │ ├── 03_composite_0x4F86C994.ps_5_0.hlsl │ ├── 04_dof1_0xE3AA2186.ps_5_0.hlsl │ ├── 04_dof2_0x869D0801.ps_5_0.hlsl │ ├── addon.cpp │ ├── shared.h │ ├── xx_tonemap_game_0x93F8E2A0.ps_5_0.hlsl │ └── xx_tonemap_menu_0x42672A82.ps_5_0.hlsl ├── spacemarine2 │ ├── DOF │ │ ├── dof_0x0A4344AF.ps_6_0.hlsl │ │ ├── dof_0x1F60EC02.ps_6_0.hlsl │ │ ├── dof_0x1FA67B57.ps_6_0.hlsl │ │ ├── dof_0x5B62AA56.ps_6_0.hlsl │ │ └── dof_0xA18A5613.ps_6_0.hlsl │ ├── UI │ │ ├── 0x7056B504.ps_6_0.hlsl │ │ ├── 0x7A973CE4.ps_6_0.hlsl │ │ ├── 0x7EE72E6A.ps_6_0.hlsl │ │ └── 0x86ACEECC.ps_6_0.hlsl │ ├── addon.cpp │ ├── common.hlsl │ ├── deatheffect_0x171A62C9.ps_6_0.hlsl │ ├── experiment │ │ ├── 0x1A1149D0.cs_6_0.hlsl │ │ ├── 0x1FFCA23B.ps_6_0.hlsl │ │ ├── 0x38FFBF0A.ps_6_0.hlsl │ │ ├── 0xCF7BBECC.cs_6_0.hlsl │ │ └── bloom_0x38DF3709.ps_6_0.hlsl │ ├── filmgrain_0xB90F6101.ps_6_0.hlsl │ ├── lutbuilder_0xDABE398B.cs_6_0.hlsl │ ├── output_0x3B3FC437.ps_6_0.hlsl │ ├── output_0xAB7215D2.ps_6_0.hlsl │ ├── output_0xC6FBD9A4.ps_6_0.hlsl │ ├── output_0xD1C5DCB9.ps_6_0.hlsl │ ├── shared.h │ ├── swap_chain_proxy_pixel_shader.ps_6_0.hlsl │ └── swap_chain_proxy_vertex_shader.vs_6_0.hlsl ├── spiderman_2018_miles │ ├── 2018_tonemap_cAb_off_0x26B88F98.cs_6_6.hlsl │ ├── addon.cpp │ ├── common.hlsl │ ├── include │ │ └── ToneMapCB.hlsl │ ├── mm_tonemap_cAb_off_0xECBD5D23.cs_6_6.hlsl │ ├── shared.h │ └── shared_tonemap_0xB5DBD65C.cs_6_6.hlsl ├── stalker2 │ ├── addon.cpp │ ├── common.hlsl │ ├── crouch_vignette_0xFAD704A3.ps_6_6.hlsl │ ├── final00_0xA7EFB8C2.ps_6_6.hlsl │ ├── lutbuilder_0x6CFBD4C0.ps_6_6.hlsl │ ├── lutbuilder_0xB6CA5FD9.ps_6_6.hlsl │ ├── lutbuilder_0xBAA27141.ps_6_6.hlsl │ ├── output_0x20685247.ps_6_6.hlsl │ ├── output_0x2DAD4682.ps_6_6.hlsl │ ├── output_0x39EF727B.ps_6_6.hlsl │ ├── output_0x4D3C673E.ps_6_6.hlsl │ ├── output_0xECD0D71A.ps_6_6.hlsl │ ├── output_mainmenu_0xC3FA1951.ps_6_6.hlsl │ ├── postprocess02_0xED411D4E.ps_6_6.hlsl │ ├── radiation01_0x5590F787.ps_6_6.hlsl │ ├── shared.h │ └── vignette02_0x04532088.ps_6_6.hlsl ├── starfield │ ├── 03_film_grain_0xAC5319C5.ps_6_6.hlsl │ ├── 06_movie_0x32580F53.ps_6_6.hlsl │ ├── addon.cpp │ ├── common.hlsl │ ├── shared.h │ ├── swap_chain_proxy_pixel_shader.ps_6_6.hlsl │ ├── swap_chain_proxy_vertex_shader.vs_6_6.hlsl │ └── tonemapper_new_0xD546E059.ps_6_6.hlsl ├── streetfighter6 │ ├── CAS_0x1E6CCBAF.cs_6_6.hlsl │ ├── addon.cpp │ ├── common.hlsl │ ├── final_0xFD9D7A88.ps_6_6.hlsl │ ├── lilium_cas.hlsl │ ├── postprocess01_0x4E55C17E.ps_6_6.hlsl │ ├── postprocess02_0xC58C0B1E.ps_6_6.hlsl │ ├── postprocess03_0x53421BFF.ps_6_6.hlsl │ ├── postprocess04_0xD01C226D.ps_6_6.hlsl │ ├── postprocess05_0x063AE9EF.ps_6_6.hlsl │ └── shared.h ├── sunsetoverdrive │ ├── addon.cpp │ ├── common.hlsl │ ├── copy_0xF7085ACD.ps_5_0.hlsl │ ├── effect_0x2EB348CF.ps_5_0.hlsl │ ├── effect_0x6EB0D51C.ps_5_0.hlsl │ ├── effect_0x8EACA7B7.ps_5_0.hlsl │ ├── shared.h │ ├── swap_chain_proxy_pixel_shader.ps_5_0.hlsl │ ├── swap_chain_proxy_vertex_shader.vs_5_0.hlsl │ ├── tonemap_0x2A6A872A.ps_5_0.hlsl │ ├── tonemap_0x86EE37B6.ps_5_0.hlsl │ ├── tonemap_0x902D30F9.ps_5_0.hlsl │ ├── tonemap_0xB2BBC089.ps_5_0.hlsl │ ├── tonemap_0xC291251A.ps_5_0.hlsl │ ├── tonemap_0xD6B7231C.ps_5_0.hlsl │ ├── tonemap_0xE3E7DD84.ps_5_0.hlsl │ ├── tonemap_0xEE7FB6CC.ps_5_0.hlsl │ └── videos_0x80649033.ps_5_0.hlsl ├── tacticalbreachwizards │ ├── DICE.hlsl │ ├── LUT3DBakerNoTonemap_0x995B320A.cs_5_0.hlsl │ ├── addon.cpp │ ├── common.hlsl │ ├── glow_composite_0xD863ED6A.ps_4_0.hlsl │ ├── output_0xC8C2F1A0.ps_4_0.hlsl │ ├── output_0xEB23B0ED.ps_5_0.hlsl │ ├── shared.h │ ├── swap_chain_proxy_pixel_shader.ps_4_0.hlsl │ └── swap_chain_proxy_vertex_shader.vs_4_0.hlsl ├── talesofgracesf │ ├── addon.cpp │ ├── lutbuilder_0x13EEF169.ps_4_0.hlsl │ ├── output_0x1D4D40B0.ps_4_0.hlsl │ ├── shared.h │ ├── swap_chain_proxy_pixel_shader.ps_4_0.hlsl │ ├── swap_chain_proxy_vertex_shader.vs_4_0.hlsl │ └── ui_0xE7C15BA6.ps_4_0.hlsl ├── tekken8 │ ├── DICE.hlsl │ ├── addon.cpp │ ├── common.hlsl │ ├── final_0x3B9C44FB.ps_6_6.hlsl │ ├── herolight_0xE6193B1A.ps_6_6.hlsl │ ├── lutbuilder_0x3028EBE7.ps_6_6.hlsl │ ├── lutbuilder_0x4F3FCE76.ps_6_6.hlsl │ ├── lutbuilder_0x94D26E3A.ps_6_6.hlsl │ ├── lutbuilder_0xB530B36A.ps_6_6.hlsl │ ├── output_0x1FDABF1A.ps_6_6.hlsl │ ├── output_0x367F65B0.ps_6_6.hlsl │ ├── output_0x7ADE2194.ps_6_6.hlsl │ ├── output_0x8A5BB443.ps_6_6.hlsl │ ├── output_0x92D7DBA7.ps_6_6.hlsl │ └── shared.h ├── tempopo │ ├── addon.cpp │ ├── lutbuilder_0x13EEF169.ps_4_0.hlsl │ ├── output_0x4C2F0193.ps_4_0.hlsl │ ├── shared.h │ ├── swap_chain_proxy_pixel_shader.ps_5_x.hlsl │ └── swap_chain_proxy_vertex_shader.vs_5_x.hlsl ├── thesurge │ ├── UI_0x75061D6A.ps_5_0.hlsl │ ├── UI_0x9E859B1F.ps_5_0.hlsl │ ├── UI_0xB24F9988.ps_5_0.hlsl │ ├── UI_0xEC416938.ps_5_0.hlsl │ ├── addon.cpp │ ├── common.hlsl │ ├── filmgrain_0x67259E12.ps_5_0.hlsl │ ├── shared.h │ ├── swap_chain_proxy_pixel_shader.ps_5_0.hlsl │ ├── swap_chain_proxy_vertex_shader.vs_5_0.hlsl │ ├── tonemap_0xCBADAE82.ps_5_0.hlsl │ └── videos_0xDD4A2D9A.ps_5_0.hlsl ├── thetownoflight │ ├── X_Final_0xFFFFFFFD.vs_5_0.hlsl │ ├── X_Final_0xFFFFFFFE.ps_5_0.hlsl │ ├── addon.cpp │ ├── colorGradingAndFog_0x9D6291BC.ps_4_0.hlsl │ ├── common.hlsl │ ├── fade_0x08C91A0A.ps_4_0.hlsl │ ├── grungeFilter_0xE61B6A3B.ps_4_0.hlsl │ ├── postProcessAndGammaAdjustment_0xB103EAA6.ps_4_0.hlsl │ ├── sepia_0x3F4881E9.ps_4_0.hlsl │ ├── shared.h │ ├── ui_0x1FB08827.ps_4_0.hlsl │ └── vignette_0x7455FB8A.ps_4_0.hlsl ├── thewitness │ ├── addon.cpp │ ├── game_render_0x5F92E474.ps_4_0.hlsl │ ├── lut_0x415DFB3A.ps_4_0.hlsl │ └── shared.h ├── tombraider2013 │ ├── a0_0x100EC9DC.ps_4_0.hlsl │ ├── a10_0xEA376B10.ps_4_0.hlsl │ ├── a1_0x36C11C54.ps_4_0.hlsl │ ├── a2_0x4B8C2D9F.ps_4_0.hlsl │ ├── a3_0x55A5D3AF.ps_4_0.hlsl │ ├── a4_0xA5E5BCB4.ps_4_0.hlsl │ ├── a5_0xB4B7BCEB.ps_4_0.hlsl │ ├── a6_0xB6DD6E36.ps_4_0.hlsl │ ├── a7_0xCDD02564.ps_4_0.hlsl │ ├── a8_0xDA1F0E89.ps_4_0.hlsl │ ├── a9_0xE3C8625C.cs_5_0.hlsl │ ├── addon.cpp │ ├── bloom_0x36211827.ps_4_0.hlsl │ ├── dof_0x88472F82.cs_5_0.hlsl │ ├── downsample1_0xA8D8F5E7.ps_4_0.hlsl │ ├── downsample2_0x3B23A71A.ps_4_0.hlsl │ ├── downsample3_0x48180F61.ps_4_0.hlsl │ ├── fmv_0xD598975C.ps_4_0.hlsl │ ├── fog_0x4E5704D4.ps_4_0.hlsl │ ├── lens_flare_0x3F2C7CB9.ps_4_0.hlsl │ ├── object_dof_0xC8BBED05.ps_4_0.hlsl │ ├── reflection_0x19369325.ps_4_0.hlsl │ ├── reinhard_0xB5841644.ps_4_0.hlsl │ ├── sampling_0xF31E4052.ps_4_0.hlsl │ ├── scanlines2_0x0D982391.ps_4_0.hlsl │ ├── scanlines_0x72F0AA7C.ps_4_0.hlsl │ ├── shared.h │ ├── survival_0xBB85386D.ps_4_0.hlsl │ ├── upscale2_0x8B7F1649.ps_4_0.hlsl │ ├── upscale_0x17AC3D94.ps_4_0.hlsl │ ├── vignette_noise_0x48648857.ps_4_0.hlsl │ └── waterdrop_0x32CB17F7.ps_4_0.hlsl ├── tombraider2013de │ ├── a1_0x6F10C641.ps_4_1.hlsl │ ├── a2_0x74A84371.ps_4_1.hlsl │ ├── addon.cpp │ ├── bloom_0x52EFC25A.ps_4_1.hlsl │ ├── composite_0xA132B2FE.ps_4_1.hlsl │ ├── downsample1_0x03584A3B.ps_4_1.hlsl │ ├── downsample2_0x7ED6478E.ps_4_1.hlsl │ ├── downsample3_0x30E39CFC.ps_4_1.hlsl │ ├── downsample4_0xCEE6D90A.ps_4_1.hlsl │ ├── downsample5_0x61558F02.ps_4_1.hlsl │ ├── downsample6_0x7C0F5D9A.ps_4_1.hlsl │ ├── fmv_0x60597EF5.ps_4_0.hlsl │ ├── fog_0x0E8451C8.ps_4_1.hlsl │ ├── glow_0xBDA9CB2D.ps_4_1.hlsl │ ├── lens_flare_0x80816448.ps_4_1.hlsl │ ├── lut_0xA2AFAA0A.ps_4_1.hlsl │ ├── object_dof_0xBB7DAA23.ps_4_1.hlsl │ ├── reinhard_0xC7A14DDD.ps_4_1.hlsl │ ├── sampling2_0x9F11116A.cs_5_0.hlsl │ ├── sampling_0xB1B0D9F3.ps_4_0.hlsl │ ├── scanlines_0x8596D63B.ps_4_0.hlsl │ ├── shared.h │ ├── survival_0x73B32980.ps_4_1.hlsl │ ├── unknown_fog_0x95CBCA93.ps_4_1.hlsl │ ├── upscale2_0x9D59861E.ps_4_1.hlsl │ ├── upscale_0xD744BED8.ps_4_0.hlsl │ └── vignette_0x3132F3CF.ps_4_1.hlsl ├── tunic │ ├── addon.cpp │ ├── glow_0x4AC5CC39.ps_4_0.hlsl │ ├── lutsample2_0xAA66A0B6.ps_4_0.hlsl │ ├── lutsample_0xEEFE9737.ps_4_0.hlsl │ ├── shared.h │ ├── swap_chain_proxy_pixel_shader.ps_4_0.hlsl │ └── swap_chain_proxy_vertex_shader.vs_4_0.hlsl ├── unchartedlotc │ ├── addon.cpp │ ├── final_0x545B3706.ps_6_0.hlsl │ └── shared.h ├── unrealengine │ ├── addon.cpp │ ├── common.hlsl │ ├── games │ │ ├── asterigos │ │ │ ├── overlay_0x1564B757.ps_5_0.hlsl │ │ │ └── overlay_0x7170613F.ps_5_0.hlsl │ │ ├── chorus │ │ │ └── overlay_0x5011999C.ps_5_0.hlsl │ │ ├── crisiscoreff7reunion │ │ │ └── fmv_0xAC791084.ps_5_0.hlsl │ │ ├── gtasanandreas │ │ │ └── lutbuilder_0xB864B3B8.ps_5_x.hlsl │ │ ├── kh3 │ │ │ ├── lutbuilder_0x00E9C5FE.ps_5_x.hlsl │ │ │ └── lutbuilder_0xE9343033.ps_5_x.hlsl │ │ ├── marvelrivals │ │ │ └── postprocess_0x76E751B9.ps_6_6.hlsl │ │ ├── p3r │ │ │ ├── godray_0xCB9976C8.ps_6_0.hlsl │ │ │ └── mainmenu_text_0xBFE48347.ps_6_0.hlsl │ │ ├── raincode │ │ │ └── hatching_0x388FF776.ps_5_x.hlsl │ │ ├── talesofarise │ │ │ ├── output_0x8D5C5C52.ps_5_0.hlsl │ │ │ └── output_cutscene_0x7C1D6772.ps_5_0.hlsl │ │ ├── theoccupation │ │ │ └── overlay_0xD658638D.ps_5_0.hlsl │ │ └── wutheringwaves │ │ │ ├── output_0x271E2688.ps_5_x.hlsl │ │ │ └── output_0x7A453AD3.ps_5_x.hlsl │ ├── lutbuilders │ │ ├── sm5 │ │ │ ├── lutbuilder_0x03F2231B.ps_5_x.hlsl │ │ │ ├── lutbuilder_0x0C26F82E.ps_5_x.hlsl │ │ │ ├── lutbuilder_0x0F17B0B3.ps_5_x.hlsl │ │ │ ├── lutbuilder_0x11ACA4BD.ps_5_x.hlsl │ │ │ ├── lutbuilder_0x18639D8F.ps_5_x.hlsl │ │ │ ├── lutbuilder_0x1BA80C5E.ps_5_x.hlsl │ │ │ ├── lutbuilder_0x1DF6036B.ps_5_x.hlsl │ │ │ ├── lutbuilder_0x1F1D6E66.ps_5_x.hlsl │ │ │ ├── lutbuilder_0x20EAC9B6.ps_5_x.hlsl │ │ │ ├── lutbuilder_0x2179DAD2.ps_5_x.hlsl │ │ │ ├── lutbuilder_0x22A4BD4E.ps_5_x.hlsl │ │ │ ├── lutbuilder_0x2569985B.ps_5_x.hlsl │ │ │ ├── lutbuilder_0x2A94C68A.ps_5_x.hlsl │ │ │ ├── lutbuilder_0x2AFC7CD9.ps_5_x.hlsl │ │ │ ├── lutbuilder_0x2F460105.cs_5_x.hlsl │ │ │ ├── lutbuilder_0x3040FD90.ps_5_x.hlsl │ │ │ ├── lutbuilder_0x31FE4421.ps_5_x.hlsl │ │ │ ├── lutbuilder_0x36E3A438.ps_5_x.hlsl │ │ │ ├── lutbuilder_0x3904DD94.ps_5_x.hlsl │ │ │ ├── lutbuilder_0x40A581ED.ps_5_x.hlsl │ │ │ ├── lutbuilder_0x45C3C09C.ps_5_x.hlsl │ │ │ ├── lutbuilder_0x4C452753.ps_5_x.hlsl │ │ │ ├── lutbuilder_0x4E0CDC69.ps_5_x.hlsl │ │ │ ├── lutbuilder_0x4E6F963D.ps_5_x.hlsl │ │ │ ├── lutbuilder_0x4F43F0BB.ps_5_x.hlsl │ │ │ ├── lutbuilder_0x5BD6A5C2.cs_5_x.hlsl │ │ │ ├── lutbuilder_0x5CAE0013.ps_5_x.hlsl │ │ │ ├── lutbuilder_0x61C2EA30.ps_5_x.hlsl │ │ │ ├── lutbuilder_0x61F067B4.ps_5_x.hlsl │ │ │ ├── lutbuilder_0x6444285D.ps_5_x.hlsl │ │ │ ├── lutbuilder_0x6757E671.ps_5_x.hlsl │ │ │ ├── lutbuilder_0x6CA6068F.ps_5_x.hlsl │ │ │ ├── lutbuilder_0x6E6FC244.ps_5_x.hlsl │ │ │ ├── lutbuilder_0x73B2BA54.ps_5_x.hlsl │ │ │ ├── lutbuilder_0x7570E7B1.ps_5_x.hlsl │ │ │ ├── lutbuilder_0x80CD76B6.ps_5_x.hlsl │ │ │ ├── lutbuilder_0x85DEEF21.ps_5_x.hlsl │ │ │ ├── lutbuilder_0x86F9308B.ps_5_x.hlsl │ │ │ ├── lutbuilder_0x876F0F03.ps_5_x.hlsl │ │ │ ├── lutbuilder_0x8CD01256.ps_5_x.hlsl │ │ │ ├── lutbuilder_0x8D3D2FA0.ps_5_x.hlsl │ │ │ ├── lutbuilder_0x9081A2D8.ps_5_x.hlsl │ │ │ ├── lutbuilder_0x95A3F50E.cs_5_x.hlsl │ │ │ ├── lutbuilder_0x97BAC8AF.ps_5_x.hlsl │ │ │ ├── lutbuilder_0xA918F0C8.ps_5_x.hlsl │ │ │ ├── lutbuilder_0xB1614732.ps_5_x.hlsl │ │ │ ├── lutbuilder_0xB4F3140C.ps_5_x.hlsl │ │ │ ├── lutbuilder_0xB972BF8F.ps_5_x.hlsl │ │ │ ├── lutbuilder_0xBEB7EB31.ps_5_x.hlsl │ │ │ ├── lutbuilder_0xC130BE2D.ps_5_x.hlsl │ │ │ ├── lutbuilder_0xC1BCC6B5.ps_5_x.hlsl │ │ │ ├── lutbuilder_0xC2A711CC.ps_5_x.hlsl │ │ │ ├── lutbuilder_0xC32C8BEA.ps_5_x.hlsl │ │ │ ├── lutbuilder_0xCA383248.ps_5_x.hlsl │ │ │ ├── lutbuilder_0xCA80A1BE.ps_5_x.hlsl │ │ │ ├── lutbuilder_0xCC8FD0FF.ps_5_x.hlsl │ │ │ ├── lutbuilder_0xD2748E73.ps_5_x.hlsl │ │ │ ├── lutbuilder_0xD4A45A02.ps_5_x.hlsl │ │ │ ├── lutbuilder_0xDAEDC6EC.ps_5_x.hlsl │ │ │ ├── lutbuilder_0xE349C52A.ps_5_x.hlsl │ │ │ ├── lutbuilder_0xE4EA48DC.ps_5_x.hlsl │ │ │ ├── lutbuilder_0xE6B4B2E3.ps_5_x.hlsl │ │ │ ├── lutbuilder_0xE6EB2840.ps_5_x.hlsl │ │ │ ├── lutbuilder_0xEE3DEEBB.ps_5_x.hlsl │ │ │ ├── lutbuilder_0xF5AC79AB.ps_5_x.hlsl │ │ │ ├── lutbuilder_0xF6AA7756.ps_5_x.hlsl │ │ │ ├── lutbuilder_0xFBB78F9F.ps_5_x.hlsl │ │ │ └── lutbuilder_0xFE7649D3.ps_5_x.hlsl │ │ └── sm6 │ │ │ ├── lutbuilder_0x0649A5D1.ps_6_6.hlsl │ │ │ ├── lutbuilder_0x06F39D1E.cs_6_6.hlsl │ │ │ ├── lutbuilder_0x08B5389E.ps_6_6.hlsl │ │ │ ├── lutbuilder_0x13FBB787.ps_6_6.hlsl │ │ │ ├── lutbuilder_0x1CBC853A.ps_6_6.hlsl │ │ │ ├── lutbuilder_0x269E94C1.ps_6_6.hlsl │ │ │ ├── lutbuilder_0x3028EBE7.ps_6_6.hlsl │ │ │ ├── lutbuilder_0x31F9420F.ps_6_6.hlsl │ │ │ ├── lutbuilder_0x33247499.ps_6_6.hlsl │ │ │ ├── lutbuilder_0x3AD3CECF.ps_6_6.hlsl │ │ │ ├── lutbuilder_0x484B4E2B.cs_6_6.hlsl │ │ │ ├── lutbuilder_0x49D6D8F2.ps_6_6.hlsl │ │ │ ├── lutbuilder_0x4A0DBF57.ps_6_6.hlsl │ │ │ ├── lutbuilder_0x4CC68F73.ps_6_6.hlsl │ │ │ ├── lutbuilder_0x4F3FCE76.ps_6_6.hlsl │ │ │ ├── lutbuilder_0x507B8FB6.ps_6_6.hlsl │ │ │ ├── lutbuilder_0x50F22BD6.ps_6_6.hlsl │ │ │ ├── lutbuilder_0x5D760393.ps_6_6.hlsl │ │ │ ├── lutbuilder_0x670070BD.ps_6_6.hlsl │ │ │ ├── lutbuilder_0x68071FDD.ps_6_0.hlsl │ │ │ ├── lutbuilder_0x6CFBD4C0.ps_6_6.hlsl │ │ │ ├── lutbuilder_0x704E7934.ps_6_6.hlsl │ │ │ ├── lutbuilder_0x74185C15.ps_6_0.hlsl │ │ │ ├── lutbuilder_0x773A9497.ps_6_6.hlsl │ │ │ ├── lutbuilder_0x8119F75A.ps_6_6.hlsl │ │ │ ├── lutbuilder_0x8146D205.ps_6_6.hlsl │ │ │ ├── lutbuilder_0x8736B011.ps_6_6.hlsl │ │ │ ├── lutbuilder_0x8AE76612.ps_6_6.hlsl │ │ │ ├── lutbuilder_0x8B93346E.ps_6_6.hlsl │ │ │ ├── lutbuilder_0x90BBE81C.ps_6_6.hlsl │ │ │ ├── lutbuilder_0x93470AC3.ps_6_6.hlsl │ │ │ ├── lutbuilder_0x94D26E3A.ps_6_6.hlsl │ │ │ ├── lutbuilder_0x95B1E481.ps_6_6.hlsl │ │ │ ├── lutbuilder_0x96DE7098.ps_6_6.hlsl │ │ │ ├── lutbuilder_0x9C812EE8.ps_6_6.hlsl │ │ │ ├── lutbuilder_0x9DF2DDD4.ps_6_6.hlsl │ │ │ ├── lutbuilder_0xA7FC23A6.ps_6_6.hlsl │ │ │ ├── lutbuilder_0xAB6082E4.ps_6_6.hlsl │ │ │ ├── lutbuilder_0xAD0A58C0.ps_6_6.hlsl │ │ │ ├── lutbuilder_0xB530B36A.ps_6_6.hlsl │ │ │ ├── lutbuilder_0xB6CA5FD9.ps_6_6.hlsl │ │ │ ├── lutbuilder_0xBAA27141.ps_6_6.hlsl │ │ │ ├── lutbuilder_0xBBB5CA7B.ps_6_6.hlsl │ │ │ ├── lutbuilder_0xD07B008F.ps_6_6.hlsl │ │ │ ├── lutbuilder_0xDA10C03E.cs_6_6.hlsl │ │ │ ├── lutbuilder_0xE3BB0C03.ps_6_6.hlsl │ │ │ ├── lutbuilder_0xE7F2797E.ps_6_6.hlsl │ │ │ ├── lutbuilder_0xEBB3E98C.ps_6_0.hlsl │ │ │ ├── lutbuilder_0xEC174252.ps_6_6.hlsl │ │ │ ├── lutbuilder_0xF4962825.ps_6_6.hlsl │ │ │ ├── lutbuilder_0xF890095A.cs_6_6.hlsl │ │ │ ├── lutbuilder_0xF9332C83.ps_6_6.hlsl │ │ │ └── lutbuilder_0xFB547C2F.ps_6_6.hlsl │ ├── shared.h │ └── swapchainproxy │ │ ├── swap_chain_proxy_pixel_shader.ps_5_x.hlsl │ │ └── swap_chain_proxy_vertex_shader.vs_5_x.hlsl ├── vrising │ ├── HDRPfinal_0x6D3B4FF0.ps_5_0.hlsl │ ├── HDRPfinal_0xB0B50F1F.ps_5_0.hlsl │ ├── HDRPfxaa_0xBBC1FA0B.ps_5_0.hlsl │ ├── LutBuilder3D_0xF5AC76A9.cs_5_0.hlsl │ ├── UI_blurbackground_0x2C19A3F5.ps_4_0.hlsl │ ├── addon.cpp │ ├── common.hlsl │ ├── final_0x20133A8B.ps_4_0.hlsl │ ├── gamma_0xE52188B2.ps_4_0.hlsl │ ├── shared.h │ ├── uberpostTM_0x18151718.cs_5_0.hlsl │ ├── uberpostTM_0x8FEBA362.cs_5_0.hlsl │ ├── uberpost_0x3530AC89.cs_5_0.hlsl │ ├── uberpost_0xA7F94682.cs_5_0.hlsl │ ├── uberpost_0xE59F5A45.cs_5_0.hlsl │ ├── uberpost_0xE6B97032.cs_5_0.hlsl │ └── videos_0x8A6BCB4C.ps_4_0.hlsl ├── watchdogs │ ├── AOsomething_0xBB51F561.ps_5_0.hlsl │ ├── UI_0x18A98259.ps_5_0.hlsl │ ├── UI_0x1D9DE59D.ps_5_0.hlsl │ ├── UI_0x241150DC.ps_5_0.hlsl │ ├── UI_0x3536A197.ps_5_0.hlsl │ ├── UI_0x3E3D329A.ps_5_0.hlsl │ ├── UI_0x4F111C22.ps_5_0.hlsl │ ├── UI_0x5A4A5CCB.ps_5_0.hlsl │ ├── UI_0x5AE351F5.ps_5_0.hlsl │ ├── UI_0x5B7F3F53.ps_5_0.hlsl │ ├── UI_0x79B4C97A.ps_5_0.hlsl │ ├── UI_0xA56D9CF5.ps_5_0.hlsl │ ├── UI_0xAB1543DA.ps_5_0.hlsl │ ├── UI_0xABB9827E.ps_5_0.hlsl │ ├── UI_0xB3FD67FA.ps_5_0.hlsl │ ├── UI_0xBB3A8176.ps_5_0.hlsl │ ├── UI_0xCAAA3088.ps_5_0.hlsl │ ├── UI_0xDE7D3985.ps_5_0.hlsl │ ├── UI_0xE73ECAA8.ps_5_0.hlsl │ ├── UI_0xEA5EA4BD.ps_5_0.hlsl │ ├── UI_0xF2112ED9.ps_5_0.hlsl │ ├── UI_0xF267B0FD.ps_5_0.hlsl │ ├── UI_0xF66408FD.ps_5_0.hlsl │ ├── UI_0xFCF8A953.ps_5_0.hlsl │ ├── addon.cpp │ ├── bloomsomething_0x2A728B79.ps_5_0.hlsl │ ├── camera_0x9FA5703C.ps_5_0.hlsl │ ├── common.hlsl │ ├── exposure_0xB0F937B2.ps_5_0.hlsl │ ├── final_0x471BAF60.ps_5_0.hlsl │ ├── fxaa_0xAE725CAD.ps_5_0.hlsl │ ├── pills_0xB2F6A39B.ps_5_0.hlsl │ ├── profiler_0x8262D185.ps_5_0.hlsl │ ├── profiler_0xC4817D66.ps_5_0.hlsl │ ├── shared.h │ ├── tonemap2_0x281E8F72.ps_5_0.hlsl │ ├── tonemap_0x3FFE03C2.ps_5_0.hlsl │ ├── tonemap_0x6E94A097.ps_5_0.hlsl │ ├── tonemap_0xE7F1A4C4.ps_5_0.hlsl │ ├── videos2_0x783B7659.ps_5_0.hlsl │ ├── videos_0x7D710FC6.ps_5_0.hlsl │ └── worldmap_0x2168D571.ps_5_0.hlsl ├── windblown │ ├── LutBuilderLdr0x13EEF169.ps_4_0.hlsl │ ├── UIfastadditive_0xD63FB4E2.ps_4_0.hlsl │ ├── addon.cpp │ ├── common.hlsl │ ├── final_0x20133A8B.ps_4_0.hlsl │ ├── fsr1_0xC244242D.ps_4_0.hlsl │ ├── fxaa_fsr1_0xE102D2F9.ps_4_0.hlsl │ ├── postfinal_0x7CEF5F47.ps_5_0.hlsl │ ├── postfinal_0xD00B5B47.ps_5_0.hlsl │ ├── shared.h │ ├── uberpost_0xFDA8A0F6.ps_4_0.hlsl │ └── videos_0xF804335C.ps_4_0.hlsl └── zelda-eow │ ├── 0xA380E737.frag.glsl │ ├── 0xA380E737.frag.spv │ ├── 0xF3C7B934.frag.glsl │ ├── 0xF3C7B934.frag.spv │ └── addon.cpp ├── mods ├── shader.hpp └── swapchain.hpp ├── reshadefx ├── RenoDXHelper.addonfx ├── ShortFuse22ForSRGB.fx ├── ShortFuseACES.fx ├── ShortFuseBT1886For22.fx ├── ShortFuseBT1886ForSRGB.fx ├── ShortFuseFilmGrain.fx └── ShortFuseRenoDRT.fx ├── shaders ├── DICE.hlsl ├── aces.hlsl ├── color.hlsl ├── color_convert.hlsl ├── colorcorrect.hlsl ├── colorgrade.hlsl ├── cross.hlsl ├── debug.hlsl ├── deprecated.hlsl ├── draw.hlsl ├── effects.hlsl ├── frostbite.hlsl ├── inverse_tonemap.hlsl ├── lut.hlsl ├── math.hlsl ├── random.hlsl ├── reinhard.hlsl ├── reno_drt.hlsl ├── renodx.hlsl └── tonemap.hlsl ├── templates └── settings.hpp └── utils ├── bitwise.hpp ├── constants.hpp ├── data.hpp ├── date.hpp ├── descriptor.hpp ├── device.hpp ├── float16.hpp ├── format.hpp ├── hash.hpp ├── ini_file.hpp ├── mutex.hpp ├── path.hpp ├── pipeline.hpp ├── pipeline_layout.hpp ├── platform.hpp ├── random.hpp ├── resource.hpp ├── settings.hpp ├── shader.hpp ├── shader_compiler_directx.hpp ├── shader_compiler_watcher.hpp ├── shader_decompiler_dxc.hpp ├── shader_dump.hpp ├── state.hpp ├── string_view.hpp ├── swapchain.hpp └── trace.hpp /.clang-format: -------------------------------------------------------------------------------- 1 | # Google C/C++ Code Style settings 2 | # https://clang.llvm.org/docs/ClangFormatStyleOptions.html 3 | 4 | BasedOnStyle: Google 5 | 6 | AlignConsecutiveMacros: Consecutive 7 | AlignConsecutiveShortCaseStatements: # Custom 8 | Enabled: true 9 | AllowShortCaseLabelsOnASingleLine: true 10 | 11 | BreakBeforeBinaryOperators: NonAssignment # Optional 12 | 13 | ColumnLimit: 0 # Forcefully compresses valid spacing 14 | 15 | DerivePointerAlignment: false # Optional 16 | 17 | IncludeBlocks: Preserve 18 | 19 | MaxEmptyLinesToKeep: 1 # Custom 20 | 21 | QualifierAlignment: Custom 22 | QualifierOrder: [inline, static, volatile, const, type] 23 | 24 | SortIncludes: CaseInsensitive 25 | 26 | Standard: c++20 27 | 28 | # Needed for HLSL 29 | 30 | NamespaceIndentation: None 31 | AllowShortIfStatementsOnASingleLine: WithoutElse 32 | # AlignEscapedNewlines: LeftWithLastLine # clang 19 33 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig helps developers define and maintain consistent 2 | # coding styles between different editors and IDEs 3 | # editorconfig.org 4 | 5 | 6 | root = true 7 | 8 | 9 | [*.{c, c++,cc,cpp,cxx,h,h++,hh,hpp,hxx,inl,ipp,tlh,tli}] 10 | # should follow https://google.github.io/styleguide/cppguide.html 11 | indent_style = space 12 | indent_size = 2 13 | 14 | end_of_line = lf 15 | charset = utf-8 16 | trim_trailing_whitespace = true 17 | insert_final_newline = true 18 | 19 | cpp_indent_braces = false 20 | cpp_indent_case_contents_when_block = true 21 | cpp_new_line_before_open_brace_namespace = same_line 22 | cpp_new_line_before_open_brace_type = same_line 23 | cpp_new_line_before_open_brace_block = same_line 24 | cpp_new_line_before_else = false 25 | cpp_indent_case_labels = true 26 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | open_collective: # Replace with a single Open Collective username 5 | ko_fi: shortfuse 6 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 7 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 8 | liberapay: # Replace with a single Liberapay username 9 | issuehunt: # Replace with a single IssueHunt username 10 | lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry 11 | polar: # Replace with a single Polar username 12 | buy_me_a_coffee: # Replace with a single Buy Me a Coffee username 13 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 14 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Prerequisites 2 | *.d 3 | 4 | # Compiled Object files 5 | *.slo 6 | *.lo 7 | *.o 8 | *.obj 9 | 10 | # Precompiled Headers 11 | *.gch 12 | *.pch 13 | 14 | # Compiled Dynamic libraries 15 | *.so 16 | *.dylib 17 | *.dll 18 | 19 | # Fortran module files 20 | *.mod 21 | *.smod 22 | 23 | # Compiled Static libraries 24 | *.lai 25 | *.la 26 | *.a 27 | *.lib 28 | 29 | # Executables 30 | *.exe 31 | *.out 32 | *.app 33 | 34 | build/** 35 | build32/** 36 | build.ninja/** 37 | build32.ninja/** 38 | build.vs/** 39 | build32.vs/** 40 | 41 | 42 | **/.vshistory/ 43 | .cache/** 44 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "external/reshade"] 2 | path = external/reshade 3 | url = https://github.com/crosire/reshade 4 | 5 | [submodule "external/Streamline"] 6 | path = external/Streamline 7 | url = https://github.com/NVIDIAGameWorks/Streamline.git 8 | 9 | [submodule "external/gtl"] 10 | path = external/gtl 11 | url = https://github.com/greg7mdp/gtl.git 12 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "ms-vscode.cmake-tools", 4 | "ms-vscode.cpptools", 5 | "llvm-vs-code-extensions.vscode-clangd", 6 | "shader-slang.slang-language-extension" 7 | ] 8 | } -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "name": "(msvc) Attach", 6 | "type": "cppvsdbg", 7 | "request": "attach", 8 | "processId": "${command:pickProcess}" 9 | }, 10 | ], 11 | "inputs": [ 12 | { 13 | "type": "promptString", 14 | "id": "launchExecutable", 15 | "description": "Select executable to launch" 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /build.cmd: -------------------------------------------------------------------------------- 1 | cmake --build build --config Release --target ALL_BUILD -j 18 2 | -------------------------------------------------------------------------------- /external/.clang-tidy: -------------------------------------------------------------------------------- 1 | # File: project/external/.clang-tidy 2 | 3 | # Disable all checks in this folder. 4 | Checks: '-*' -------------------------------------------------------------------------------- /make-sln.cmd: -------------------------------------------------------------------------------- 1 | cmake -DCMAKE_SYSTEM_VERSION=10.0.22621.0 -B build -S . -G "Visual Studio 17 2022" -T host=x86 -A x64 2 | -------------------------------------------------------------------------------- /src/games/1000xresist/swap_chain_proxy_pixel_shader.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | #include "./shared.h" 3 | 4 | Texture2D t0 : register(t0); 5 | SamplerState s0 : register(s0); 6 | float4 main(float4 vpos: SV_POSITION, float2 uv: TEXCOORD0) 7 | : SV_TARGET { 8 | float4 color = t0.Sample(s0, uv); 9 | color.rgb = FinalizeOutput(color.rgb); 10 | color.a = 1.f; 11 | return color; 12 | } 13 | -------------------------------------------------------------------------------- /src/games/1000xresist/swap_chain_proxy_vertex_shader.vs_4_0.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id : SV_VERTEXID, out float4 pos : SV_POSITION, 2 | out float2 uv : TEXCOORD0) { 3 | uv.x = (id == 1) ? 2.0 : 0.0; 4 | uv.y = (id == 2) ? 2.0 : 0.0; 5 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 6 | } -------------------------------------------------------------------------------- /src/games/1000xresist/text_0x89BA88BC.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | // ---- Created with 3Dmigoto v1.3.16 on Fri Dec 13 18:10:58 2024 4 | Texture2D t0 : register(t0); 5 | 6 | SamplerState s0_s : register(s0); 7 | 8 | // 3Dmigoto declarations 9 | #define cmp - 10 | 11 | void main( 12 | float4 v0: SV_POSITION0, 13 | float4 v1: COLOR0, 14 | float4 v2: COLOR1, 15 | float4 v3: TEXCOORD0, 16 | float4 v4: TEXCOORD1, 17 | float4 v5: TEXCOORD2, 18 | out float4 o0: SV_Target0) { 19 | float4 r0; 20 | uint4 bitmask, uiDest; 21 | float4 fDest; 22 | 23 | r0.xyzw = t0.Sample(s0_s, v3.xy).xyzw; 24 | r0.x = saturate(r0.w * v4.x + -v4.w); 25 | o0.xyzw = v1.xyzw * r0.xxxx; 26 | o0.rgb = UIScale(o0.rgb); 27 | 28 | return; 29 | } 30 | -------------------------------------------------------------------------------- /src/games/1000xresist/uidefault_0x5439FB55.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | // ---- Created with 3Dmigoto v1.3.16 on Fri Dec 13 18:10:58 2024 4 | Texture2D t0 : register(t0); 5 | 6 | SamplerState s0_s : register(s0); 7 | 8 | cbuffer cb0 : register(b0) { 9 | float4 cb0[4]; 10 | } 11 | 12 | // 3Dmigoto declarations 13 | #define cmp - 14 | 15 | void main( 16 | float4 v0: SV_POSITION0, 17 | float4 v1: COLOR0, 18 | float4 v2: TEXCOORD0, 19 | float4 v3: TEXCOORD1, 20 | float4 v4: TEXCOORD2, 21 | out float4 o0: SV_Target0) { 22 | float4 r0; 23 | uint4 bitmask, uiDest; 24 | float4 fDest; 25 | 26 | r0.xyzw = t0.Sample(s0_s, v2.xy).xyzw; 27 | r0.xyzw = cb0[3].xyzw + r0.xyzw; 28 | r0.xyzw = v1.xyzw * r0.xyzw; 29 | o0.xyz = r0.xyz * r0.www; 30 | o0.rgb = UIScale(o0.rgb); 31 | o0.w = r0.w; 32 | return; 33 | } 34 | -------------------------------------------------------------------------------- /src/games/acecombat7/shared.h: -------------------------------------------------------------------------------- 1 | #ifndef SRC_ACECOMBAT7_SHARED_H_ 2 | #define SRC_ACECOMBAT7_SHARED_H_ 3 | 4 | #ifndef __cplusplus 5 | #include "../../shaders/renodx.hlsl" 6 | #endif 7 | 8 | // Must be 32bit aligned 9 | // Should be 4x32 10 | struct ShaderInjectData { 11 | float toneMapType; 12 | float toneMapPeakNits; 13 | float toneMapGameNits; 14 | float toneMapUINits; 15 | float toneMapGammaCorrection; 16 | float colorGradeExposure; 17 | float colorGradeHighlights; 18 | float colorGradeShadows; 19 | float colorGradeContrast; 20 | float colorGradeSaturation; 21 | float colorGradeBlowout; 22 | float colorGradeLUTStrength; 23 | float colorGradeLUTScaling; 24 | }; 25 | 26 | #ifndef __cplusplus 27 | cbuffer cb13 : register(b13) { 28 | ShaderInjectData injectedData : packoffset(c0); 29 | } 30 | #endif 31 | 32 | #endif // SRC_ACECOMBAT7_SHARED_H_ 33 | -------------------------------------------------------------------------------- /src/games/acecombat7/xx_0x82BED845.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | cbuffer cb0 : register(b0) { 4 | float4 cb0[1]; 5 | } 6 | 7 | // 3Dmigoto declarations 8 | #define cmp - 9 | 10 | void main(out float4 o0 : SV_Target0) { 11 | o0.xyzw = cb0[0].xyzw; 12 | 13 | //o0.rgb = saturate(o0.rgb); 14 | //o0.rgb = renodx::math::SafePow(o0.rgb, 2.2f); // 2.2 gamma correction 15 | // o0.a = sign(o0.a) * pow(abs(o0.a), 2.2f); // 2.2 gamma on Alpha 16 | //o0.rgb *= injectedData.toneMapUINits / 80.f; // Added ui slider 17 | 18 | return; 19 | } 20 | -------------------------------------------------------------------------------- /src/games/angerfoot/colourcorrection_0x459D4153.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0_s : register(s0); 5 | 6 | cbuffer cb0 : register(b0) { 7 | float4 cb0[3]; 8 | } 9 | 10 | void main( 11 | float2 v0: TEXCOORD0, 12 | float4 v1: SV_POSITION0, 13 | out float4 o0: SV_Target0) { 14 | float4 r0; 15 | uint4 bitmask, uiDest; 16 | float4 fDest; 17 | 18 | r0.xyzw = t0.Sample(s0_s, v0.xy).xyzw; 19 | o0.rgb = PostToneMapScale(r0.rgb); 20 | o0.w = 1; 21 | return; 22 | } 23 | -------------------------------------------------------------------------------- /src/games/angerfoot/final_0x20133A8B.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | SamplerState BlitSampler_s : register(s0); 4 | Texture2D BlitTexture : register(t0); 5 | 6 | #define cmp - 7 | 8 | void main( 9 | float2 v0: TEXCOORD0, 10 | float4 v1: SV_POSITION0, 11 | out float4 o0: SV_Target0) { 12 | o0.xyzw = BlitTexture.Sample(BlitSampler_s, v0.xy).xyzw; 13 | o0.rgb = FinalizeOutput(o0.rgb); 14 | return; 15 | } 16 | -------------------------------------------------------------------------------- /src/games/angerfoot/videos_0x8A6BCB4C.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0_s : register(s0); 5 | cbuffer cb0 : register(b0) { 6 | float4 cb0[3]; 7 | } 8 | 9 | void main( 10 | float4 v0: SV_POSITION0, 11 | float2 v1: TEXCOORD0, 12 | out float4 o0: SV_Target0) { 13 | float4 r0; 14 | uint4 bitmask, uiDest; 15 | float4 fDest; 16 | 17 | r0.xyzw = t0.Sample(s0_s, v1.xy).xyzw; 18 | o0.w = cb0[2].x * r0.w; 19 | o0.xyz = r0.xyz; 20 | o0 = saturate(o0); 21 | o0.rgb = PostToneMapScale(o0.rgb); 22 | return; 23 | } 24 | -------------------------------------------------------------------------------- /src/games/animalwell/0x_copy_to_render_0xC2157826.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | SamplerState PointSampler_s : register(s0); 4 | Texture2D tex : register(t0); 5 | 6 | 7 | // 3Dmigoto declarations 8 | #define cmp - 9 | 10 | 11 | void main( 12 | float4 v0 : SV_POSITION0, 13 | float4 v1 : COLOR0, 14 | float2 v2 : UV0, 15 | out float4 o0 : SV_TARGET0) 16 | { 17 | float4 r0; 18 | uint4 bitmask, uiDest; 19 | float4 fDest; 20 | 21 | r0.xyzw = tex.Sample(PointSampler_s, v2.xy).xyzw; 22 | o0.xyzw = v1.xyzw * r0.xyzw; 23 | if (injectedData.resourceTag == 36.f) { 24 | o0.rgb = 2.f; 25 | } 26 | if (injectedData.toneMapType == 0.f) { 27 | o0.rgb = saturate(o0.rgb); 28 | } 29 | o0.a = saturate(o0.a); 30 | return; 31 | } -------------------------------------------------------------------------------- /src/games/animalwell/0x_uv_light_to_render_0xF818E210.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | SamplerState PointSampler_s : register(s0); 4 | Texture2D tex : register(t0); 5 | 6 | 7 | // 3Dmigoto declarations 8 | #define cmp - 9 | 10 | 11 | void main( 12 | float4 v0 : SV_POSITION0, 13 | float4 v1 : COLOR0, 14 | float2 v2 : UV0, 15 | out float4 o0 : SV_TARGET0) 16 | { 17 | float4 r0,r1; 18 | uint4 bitmask, uiDest; 19 | float4 fDest; 20 | 21 | r0.xyzw = tex.Sample(PointSampler_s, v2.xy).xyzw; 22 | r1.xyz = cmp(r0.yzx == float3(1,1,0)); 23 | r1.x = r1.y ? r1.x : 0; 24 | r1.x = r1.z ? r1.x : 0; 25 | if (r1.x != 0) discard; 26 | o0.xyzw = v1.xyzw * r0.xyzw; 27 | if (injectedData.toneMapType == 0.f) { 28 | o0.rgb = saturate(o0.rgb); 29 | } 30 | o0.a = saturate(o0.a); 31 | return; 32 | } -------------------------------------------------------------------------------- /src/games/animalwell/shared.h: -------------------------------------------------------------------------------- 1 | #ifndef SRC_GAMES_ANIMALWELL_SHARED_H_ 2 | #define SRC_GAMES_ANIMALWELL_SHARED_H_ 3 | 4 | // Must be 32bit aligned 5 | // Should be 4x32 6 | struct ShaderInjectData { 7 | float toneMapType; 8 | float toneMapPeakNits; 9 | float toneMapGameNits; 10 | float toneMapUINits; 11 | float toneMapGammaCorrection; 12 | float colorGradeExposure; 13 | float colorGradeHighlights; 14 | float colorGradeShadows; 15 | float colorGradeContrast; 16 | float colorGradeSaturation; 17 | float colorGradeLUTStrength; 18 | float colorGradeLUTScaling; 19 | float fxScanlines; 20 | float resourceTag; 21 | }; 22 | 23 | #ifndef __cplusplus 24 | cbuffer cb4 : register(b4) { 25 | ShaderInjectData injectedData : packoffset(c0); 26 | } 27 | #endif 28 | 29 | #endif // SRC_GAMES_ANIMALWELL_SHARED_H_ 30 | -------------------------------------------------------------------------------- /src/games/aptinnocence/final_0x16D5DBDF.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | cbuffer CBufferUserConstant_Z : register(b0){ 4 | struct 5 | { 6 | float4 c[58]; 7 | } User : packoffset(c0); 8 | } 9 | 10 | SamplerState sColorSampler_s : register(s0); 11 | Texture2D sColor : register(t0); 12 | 13 | void main( 14 | float4 v0 : SV_Position0, 15 | float4 v1 : COLOR0, 16 | float4 v2 : TEXCOORD0, 17 | float v3 : INSTANCE_COLOR0, 18 | uint2 v4 : INSTANCE_INDEXES0, 19 | out float4 o0 : SV_Target0) 20 | { 21 | float4 r0; 22 | uint4 bitmask, uiDest; 23 | float4 fDest; 24 | 25 | r0.xyzw = sColor.Sample(sColorSampler_s, v2.xy).xyzw; 26 | o0.w = r0.w; 27 | o0.rgb = FinalizeOutput(r0.rgb); 28 | return; 29 | } -------------------------------------------------------------------------------- /src/games/aptinnocence/tonemap5_0x33AB5404.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | SamplerState s0Sampler_s : register(s0); 4 | Texture2D s0 : register(t0); 5 | 6 | void main( 7 | float4 v0 : SV_Position0, 8 | float4 v1 : TEXCOORD0, 9 | out float4 o0 : SV_Target0) 10 | { 11 | float4 r0,r1,r2; 12 | uint4 bitmask, uiDest; 13 | float4 fDest; 14 | 15 | r0.xyzw = s0.Sample(s0Sampler_s, v1.zw).xyzw; 16 | o0.w = r0.w; 17 | r0.rgb = applyUserTonemap(r0.rgb, false); 18 | r0.rgb = renodx::color::srgb::EncodeSafe(r0.rgb); 19 | o0.xyz = PostToneMapScale(r0.rgb); 20 | return; 21 | } -------------------------------------------------------------------------------- /src/games/artofrally/UIdefault_0x2B868B21.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0_s : register(s0); 5 | cbuffer cb0 : register(b0) { 6 | float4 cb0[4]; 7 | } 8 | 9 | void main( 10 | float4 v0: SV_POSITION0, 11 | float4 v1: COLOR0, 12 | float4 v2: TEXCOORD0, 13 | float4 v3: TEXCOORD1, 14 | float4 v4: TEXCOORD2, 15 | out float4 o0: SV_Target0) { 16 | float4 r0; 17 | uint4 bitmask, uiDest; 18 | float4 fDest; 19 | 20 | r0.xyzw = t0.Sample(s0_s, v2.xy).xyzw; 21 | r0.xyzw = cb0[3].xyzw + r0.xyzw; 22 | o0.xyzw = v1.xyzw * r0.xyzw; 23 | o0.rgb = UIScale(o0.rgb); 24 | return; 25 | } 26 | -------------------------------------------------------------------------------- /src/games/artofrally/final_0x20133A8B.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | SamplerState BlitSampler_s : register(s0); 4 | Texture2D BlitTexture : register(t0); 5 | 6 | void main( 7 | float2 v0: TEXCOORD0, 8 | float4 v1: SV_POSITION0, 9 | out float4 o0: SV_Target0) { 10 | o0.xyzw = BlitTexture.Sample(BlitSampler_s, v0.xy).xyzw; 11 | o0.rgb = FinalizeOutput(o0.rgb); 12 | return; 13 | } 14 | -------------------------------------------------------------------------------- /src/games/asscreedvalhalla/shared.h: -------------------------------------------------------------------------------- 1 | #ifndef SRC_ASSCREEDVALHALLA_SHARED_H_ 2 | #define SRC_ASSCREEDVALHALLA_SHARED_H_ 3 | 4 | #define RENODX_UI_MODE 0u // 1u = per pixel BT.2020 PQ Conversion 5 | #define RENODX_GRAPHICS_WHITE_NITS 203.f 6 | #define RENODX_TONE_MAP_TYPE 2u 7 | #define RENODX_GAME_GAMMA_CORRECTION 1u 8 | #define HUE_CORRECTION 1u 9 | 10 | #ifndef __cplusplus 11 | #include "../../shaders/renodx.hlsl" 12 | #endif 13 | 14 | #endif // SRC_ASSCREEDVALHALLA_SHARED_H_ 15 | -------------------------------------------------------------------------------- /src/games/avowed/swap_chain_proxy_pixel_shader.ps_5_1.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0 : register(s0); 5 | float4 main(float4 vpos: SV_POSITION, float2 uv: TEXCOORD0) 6 | : SV_TARGET { 7 | return renodx::draw::SwapChainPass(t0.Sample(s0, uv)); 8 | } 9 | -------------------------------------------------------------------------------- /src/games/avowed/swap_chain_proxy_vertex_shader.vs_5_1.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id : SV_VERTEXID, out float4 pos : SV_POSITION, 2 | out float2 uv : TEXCOORD0) { 3 | uv.x = (id == 1) ? 2.0 : 0.0; 4 | uv.y = (id == 2) ? 2.0 : 0.0; 5 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 6 | } -------------------------------------------------------------------------------- /src/games/awakenastralblade/final_0x20133A8B.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | SamplerState BlitSampler_s : register(s0); 4 | Texture2D BlitTexture : register(t0); 5 | 6 | void main( 7 | float2 v0: TEXCOORD0, 8 | float4 v1: SV_POSITION0, 9 | out float4 o0: SV_Target0) { 10 | o0.xyzw = BlitTexture.Sample(BlitSampler_s, v0.xy).xyzw; 11 | o0.rgb = FinalizeOutput(o0.rgb); 12 | return; 13 | } 14 | -------------------------------------------------------------------------------- /src/games/awakenastralblade/videos_0x8A6BCB4C.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0_s : register(s0); 5 | cbuffer cb0 : register(b0) { 6 | float4 cb0[3]; 7 | } 8 | 9 | void main( 10 | float4 v0: SV_POSITION0, 11 | float2 v1: TEXCOORD0, 12 | out float4 o0: SV_Target0) { 13 | float4 r0; 14 | uint4 bitmask, uiDest; 15 | float4 fDest; 16 | 17 | r0.xyzw = t0.Sample(s0_s, v1.xy).xyzw; 18 | o0.w = cb0[2].x * r0.w; 19 | o0.xyz = r0.xyz; 20 | o0 = saturate(o0); 21 | o0.rgb = PostToneMapScale(o0.rgb); 22 | return; 23 | } 24 | -------------------------------------------------------------------------------- /src/games/batmanak/final00_0x2C2D0899.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | // UI Back layer (With alpha) 2 | 3 | #include "./shared.h" 4 | 5 | Texture2D t0 : register(t0); 6 | 7 | SamplerState s0_s : register(s0); 8 | 9 | cbuffer cb0 : register(b0) { 10 | float4 cb0[8]; 11 | } 12 | 13 | // 3Dmigoto declarations 14 | #define cmp - 15 | 16 | void main(float2 v0 : TEXCOORD0, float4 v1 : COLOR0, out float4 o0 : SV_TARGET0) { 17 | float4 r0; 18 | uint4 bitmask, uiDest; 19 | float4 fDest; 20 | 21 | r0.xyz = saturate(v1.xyz); 22 | r0.xyz = log2(r0.xyz); 23 | r0.xyz = cb0[7].xxx * r0.xyz; 24 | o0.xyz = exp2(r0.xyz); 25 | r0.x = t0.Sample(s0_s, v0.xy).x; 26 | o0.w = v1.w * r0.x; 27 | 28 | o0.rgb = saturate(o0.rgb); 29 | return; 30 | } 31 | -------------------------------------------------------------------------------- /src/games/batmanak/final01_0x5DAD9473.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | // Some UI effects 2 | 3 | #include "./shared.h" 4 | 5 | cbuffer cb0 : register(b0) { 6 | float4 cb0[6]; 7 | } 8 | 9 | void main(float4 v0 : COLOR0, float4 v1 : COLOR1, out float4 o0 : SV_TARGET0) { 10 | float4 r0; 11 | uint4 bitmask, uiDest; 12 | float4 fDest; 13 | 14 | r0.xyz = saturate(v0.xyz); 15 | r0.xyz = log2(r0.xyz); 16 | r0.xyz = cb0[5].www * r0.xyz; 17 | o0.xyz = exp2(r0.xyz); 18 | o0.w = v1.w * v0.w; 19 | 20 | o0.rgb = saturate(o0.rgb); 21 | return; 22 | } 23 | -------------------------------------------------------------------------------- /src/games/batmanak/swap_chain_proxy_pixel_shader.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0 : register(s0); 5 | float4 main(float4 vpos: SV_POSITION, float2 uv: TEXCOORD0) : SV_TARGET { 6 | return renodx::draw::SwapChainPass(t0.Sample(s0, uv)); 7 | } -------------------------------------------------------------------------------- /src/games/batmanak/swap_chain_proxy_vertex_shader.vs_4_0.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id : SV_VERTEXID, out float4 pos : SV_POSITION, 2 | out float2 uv : TEXCOORD0) { 3 | uv.x = (id == 1) ? 2.0 : 0.0; 4 | uv.y = (id == 2) ? 2.0 : 0.0; 5 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 6 | } -------------------------------------------------------------------------------- /src/games/batmanak/unknown01_0xD6A846C8.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | Texture2D t0 : register(t0); 4 | 5 | SamplerState s0_s : register(s0); 6 | 7 | // 3Dmigoto declarations 8 | #define cmp - 9 | 10 | void main(float2 v0: TEXCOORD0, out float4 o0: SV_TARGET0) { 11 | o0.xyzw = t0.Sample(s0_s, v0.xy).xyzw; 12 | 13 | o0.rgb = saturate(o0.rgb); 14 | return; 15 | } 16 | -------------------------------------------------------------------------------- /src/games/betonbrutal/final_0x20133A8B.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | SamplerState BlitSampler_s : register(s0); 4 | Texture2D BlitTexture : register(t0); 5 | 6 | void main( 7 | float2 v0 : TEXCOORD0, 8 | float4 v1 : SV_POSITION0, 9 | out float4 o0 : SV_Target0) 10 | { 11 | o0.xyzw = BlitTexture.Sample(BlitSampler_s, v0.xy).xyzw; 12 | o0.rgb = FinalizeOutput(o0.rgb); 13 | return; 14 | } -------------------------------------------------------------------------------- /src/games/beyondblue/Swapchain_BackBuffer_0x20133A8B.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsli" 2 | 3 | SamplerState BlitSampler_s : register(s0); 4 | Texture2D BlitTexture : register(t0); 5 | 6 | void main( 7 | float2 v0: TEXCOORD0, 8 | float4 v1: SV_POSITION0, 9 | out float4 o0: SV_Target0) { 10 | o0.xyzw = BlitTexture.Sample(BlitSampler_s, v0.xy).xyzw; 11 | 12 | o0.rgb = FinalizeOutput(o0.rgb); 13 | 14 | return; 15 | } 16 | -------------------------------------------------------------------------------- /src/games/beyondblue/common.hlsli: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | float3 UIScale(float3 ui_texture) { 4 | if (RENODX_GAMMA_CORRECTION) { 5 | ui_texture = renodx::color::correct::GammaSafe(ui_texture); 6 | ui_texture *= RENODX_GRAPHICS_WHITE_NITS / RENODX_DIFFUSE_WHITE_NITS; 7 | ui_texture = renodx::color::correct::GammaSafe(ui_texture, true); 8 | } else { 9 | ui_texture *= RENODX_GRAPHICS_WHITE_NITS / RENODX_DIFFUSE_WHITE_NITS; 10 | } 11 | return ui_texture; 12 | } 13 | 14 | float3 FinalizeOutput(float3 color) { 15 | if (RENODX_GAMMA_CORRECTION) color = renodx::color::correct::GammaSafe(color); 16 | color = renodx::color::bt709::clamp::AP1(color); 17 | color *= RENODX_DIFFUSE_WHITE_NITS / 80.f; 18 | return color; 19 | } 20 | -------------------------------------------------------------------------------- /src/games/bge20/shared.h: -------------------------------------------------------------------------------- 1 | #ifndef SRC_TEMPLATE_SHARED_H_ 2 | #define SRC_TEMPLATE_SHARED_H_ 3 | 4 | #ifndef __cplusplus 5 | #include "../../shaders/renodx.hlsl" 6 | #endif 7 | 8 | // Must be 32bit aligned 9 | // Should be 4x32 10 | struct ShaderInjectData { 11 | float toneMapType; 12 | float toneMapPeakNits; 13 | float toneMapGameNits; 14 | float toneMapUINits; 15 | float toneMapGammaCorrection; 16 | float colorGradeExposure; 17 | float colorGradeHighlights; 18 | float colorGradeShadows; 19 | float colorGradeContrast; 20 | float colorGradeSaturation; 21 | float colorGradeLUTStrength; 22 | float colorGradeLUTScaling; 23 | }; 24 | 25 | #ifndef __cplusplus 26 | cbuffer injectedBuffer : register(b0,space9) { 27 | ShaderInjectData injectedData : packoffset(c0); 28 | } 29 | #endif 30 | 31 | #endif // SRC_TEMPLATE_SHARED_H_ 32 | -------------------------------------------------------------------------------- /src/games/bioshock/X_Final_0xFFFFFFFD.vs_5_0.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id: SV_VERTEXID, out float4 pos: SV_POSITION, out float2 uv: TEXCOORD0) { 2 | uv.x = (id == 1) ? 2.0 : 0.0; 3 | uv.y = (id == 2) ? 2.0 : 0.0; 4 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 5 | } 6 | -------------------------------------------------------------------------------- /src/games/bioshock/X_Final_0xFFFFFFFE.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | SamplerState sourceSampler_s : register(s0); 4 | Texture2D sourceTexture : register(t0); 5 | 6 | void main( 7 | float4 vpos: SV_Position, 8 | float2 texcoord: TEXCOORD, 9 | out float4 output: SV_Target0) { 10 | float4 color = sourceTexture.Sample(sourceSampler_s, texcoord.xy); 11 | 12 | // Linearize with 2.2 Gamma and scale paper white 13 | float3 linearizedColor = renodx::color::gamma::DecodeSafe(color.rgb, 2.2); 14 | linearizedColor *= injectedData.paperWhiteNits / renodx::color::srgb::REFERENCE_WHITE; 15 | 16 | output.rgba = float4(linearizedColor, color.a); 17 | } 18 | -------------------------------------------------------------------------------- /src/games/bioshock/shared.h: -------------------------------------------------------------------------------- 1 | #ifndef SRC_BIOSHOCK_SHARED_H_ 2 | #define SRC_BIOSHOCK_SHARED_H_ 3 | 4 | #ifndef __cplusplus 5 | #include "../../shaders/renodx.hlsl" 6 | #endif 7 | 8 | // Must be 32bit aligned 9 | struct ShaderInjectData { 10 | float peakWhiteNits; 11 | float paperWhiteNits; 12 | float BloomAmount; 13 | float FogAmount; 14 | }; 15 | 16 | #ifndef __cplusplus 17 | cbuffer cb13 : register(b13) { 18 | ShaderInjectData injectedData : packoffset(c0); 19 | } 20 | #endif 21 | 22 | #endif // SRC_BIOSHOCK_SHARED_H_ 23 | -------------------------------------------------------------------------------- /src/games/bmw/shared.h: -------------------------------------------------------------------------------- 1 | #ifndef SRC_GAMES_BMW_SHARED_H_ 2 | #define SRC_GAMES_BMW_SHARED_H_ 3 | 4 | #ifndef __cplusplus 5 | #include "../../shaders/renodx.hlsl" 6 | #endif 7 | 8 | // Must be 32bit aligned 9 | // Should be 4x32 10 | struct ShaderInjectData { 11 | float toneMapType; 12 | float toneMapPeakNits; 13 | float toneMapGameNits; 14 | float toneMapUINits; 15 | float toneMapGammaCorrection; 16 | float colorGradeExposure; 17 | float colorGradeHighlights; 18 | float colorGradeShadows; 19 | float colorGradeContrast; 20 | float colorGradeSaturation; 21 | float colorGradeBlowout; 22 | float colorGradeFlare; 23 | float colorGradeStrength; 24 | }; 25 | 26 | #ifndef __cplusplus 27 | cbuffer injectedBuffer : register(b0, space50) { 28 | ShaderInjectData injectedData : packoffset(c0); 29 | } 30 | #endif 31 | 32 | #endif // SRC_GAMES_BMW_SHARED_H_ 33 | -------------------------------------------------------------------------------- /src/games/childrenofthesun/final_0x20133A8B.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | SamplerState BlitSampler_s : register(s0); 4 | Texture2D BlitTexture : register(t0); 5 | 6 | void main( 7 | float2 v0 : TEXCOORD0, 8 | float4 v1 : SV_POSITION0, 9 | out float4 o0 : SV_Target0) 10 | { 11 | o0.xyzw = BlitTexture.Sample(BlitSampler_s, v0.xy).xyzw; 12 | o0.rgb = FinalizeOutput(o0.rgb); 13 | return; 14 | } -------------------------------------------------------------------------------- /src/games/citizensleeper2/swap_chain_proxy_pixel_shader.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0 : register(s0); 5 | float4 main(float4 vpos: SV_POSITION, float2 uv: TEXCOORD0) 6 | : SV_TARGET { 7 | return renodx::draw::SwapChainPass(t0.Sample(s0, uv)); 8 | } 9 | -------------------------------------------------------------------------------- /src/games/citizensleeper2/swap_chain_proxy_vertex_shader.vs_4_0.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id : SV_VERTEXID, out float4 pos : SV_POSITION, 2 | out float2 uv : TEXCOORD0) { 3 | uv.x = (id == 1) ? 2.0 : 0.0; 4 | uv.y = (id == 2) ? 2.0 : 0.0; 5 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 6 | } -------------------------------------------------------------------------------- /src/games/clairobscur_expedition33/swap_chain_proxy_pixel_shader.ps_5_x.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0 : register(s0); 5 | float4 main(float4 vpos: SV_POSITION, float2 uv: TEXCOORD0) 6 | : SV_TARGET { 7 | return renodx::draw::SwapChainPass(t0.Sample(s0, uv)); 8 | } 9 | -------------------------------------------------------------------------------- /src/games/clairobscur_expedition33/swap_chain_proxy_vertex_shader.vs_5_x.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id : SV_VERTEXID, out float4 pos : SV_POSITION, 2 | out float2 uv : TEXCOORD0) { 3 | uv.x = (id == 1) ? 2.0 : 0.0; 4 | uv.y = (id == 2) ? 2.0 : 0.0; 5 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 6 | } -------------------------------------------------------------------------------- /src/games/cp2077/composite_0x5DF649A9.ps_6_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./composite.hlsl" 2 | 3 | SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { 4 | gl_FragCoord = stage_input.gl_FragCoord; 5 | gl_FragCoord.w = 1.0 / gl_FragCoord.w; 6 | SYS_TEXCOORD = stage_input.SYS_TEXCOORD; 7 | SPIRV_Cross_Output stage_output; 8 | float4 outputColor = float4(composite().rgb, 1.f); 9 | stage_output.SV_Target = outputColor; 10 | return stage_output; 11 | } 12 | -------------------------------------------------------------------------------- /src/games/cp2077/composite_lowbit_0xA61F2FEE.ps_6_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./composite.hlsl" 2 | 3 | SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) 4 | { 5 | gl_FragCoord = stage_input.gl_FragCoord; 6 | gl_FragCoord.w = 1.0 / gl_FragCoord.w; 7 | SYS_TEXCOORD = stage_input.SYS_TEXCOORD; 8 | SPIRV_Cross_Output stage_output; 9 | float4 outputColor = float4(composite().rgb, 1.f); 10 | // R11G11B10_FLOAT LUT 11 | outputColor.r = asfloat(asuint(outputColor.r) + 65536u); 12 | outputColor.g = asfloat(asuint(outputColor.g) + 65536u); 13 | outputColor.b = asfloat(asuint(outputColor.b) + 131072u); 14 | 15 | stage_output.SV_Target = outputColor; 16 | return stage_output; 17 | } 18 | -------------------------------------------------------------------------------- /src/games/cp2077/composite_multisample_0x298A6BB0.ps_6_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./composite.hlsl" 2 | 3 | SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { 4 | gl_FragCoord = stage_input.gl_FragCoord; 5 | gl_FragCoord.w = 1.0 / gl_FragCoord.w; 6 | SYS_TEXCOORD = stage_input.SYS_TEXCOORD; 7 | SPIRV_Cross_Output stage_output; 8 | float4 outputColor = float4(composite(true).rgb, 1.f); 9 | stage_output.SV_Target = outputColor; 10 | return stage_output; 11 | } 12 | -------------------------------------------------------------------------------- /src/games/cp2077/composite_multisample_lowbit_0xBF8489D2.ps_6_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./composite.hlsl" 2 | 3 | SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) 4 | { 5 | gl_FragCoord = stage_input.gl_FragCoord; 6 | gl_FragCoord.w = 1.0 / gl_FragCoord.w; 7 | SYS_TEXCOORD = stage_input.SYS_TEXCOORD; 8 | SPIRV_Cross_Output stage_output; 9 | float4 outputColor = float4(composite(true).rgb, 1.f); 10 | // R11G11B10_FLOAT LUT 11 | outputColor.r = asfloat(asuint(outputColor.r) + 65536u); 12 | outputColor.g = asfloat(asuint(outputColor.g) + 65536u); 13 | outputColor.b = asfloat(asuint(outputColor.b) + 131072u); 14 | 15 | stage_output.SV_Target = outputColor; 16 | return stage_output; 17 | } 18 | -------------------------------------------------------------------------------- /src/games/cp2077/injectedBuffer.hlsl: -------------------------------------------------------------------------------- 1 | #ifndef SRC_CP2077_INJECTEDBUFFER_HLSL 2 | #define SRC_CP2077_INJECTEDBUFFER_HLSL 3 | 4 | #include "./cp2077.h" 5 | 6 | cbuffer injectedBuffer : register(b14, space0) { 7 | ShaderInjectData injectedData : packoffset(c0); 8 | } 9 | 10 | #endif -------------------------------------------------------------------------------- /src/games/cp2077/menu4_0xE57907C4.ps_6_0.hlsl: -------------------------------------------------------------------------------- 1 | // Game Render Transfer? 2 | 3 | Texture2D _8 : register(t0, space0); 4 | SamplerState _11 : register(s0, space0); 5 | 6 | static float2 TEXCOORD; 7 | static float4 SV_Target; 8 | 9 | struct SPIRV_Cross_Input { 10 | float4 gl_FragCoord : SV_Position; 11 | float2 TEXCOORD : TEXCOORD0; 12 | }; 13 | 14 | struct SPIRV_Cross_Output { 15 | float4 SV_Target : SV_Target0; 16 | }; 17 | 18 | void frag_main() { 19 | float4 _33 = _8.SampleLevel(_11, float2(TEXCOORD.x, TEXCOORD.y), 0.0f); 20 | SV_Target.x = _33.x; 21 | SV_Target.y = _33.y; 22 | SV_Target.z = _33.z; 23 | SV_Target.w = _33.w; 24 | } 25 | 26 | SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { 27 | TEXCOORD = stage_input.TEXCOORD; 28 | frag_main(); 29 | SPIRV_Cross_Output stage_output; 30 | stage_output.SV_Target = SV_Target; 31 | return stage_output; 32 | } 33 | -------------------------------------------------------------------------------- /src/games/cp2077/tonemapper_0x71F27445.cs_6_0.hlsl: -------------------------------------------------------------------------------- 1 | // LUT + TONEMAPPER 2 | 3 | #include "./tonemapper.hlsl" 4 | 5 | [numthreads(8, 8, 8)] void main(SPIRV_Cross_Input stage_input) { 6 | gl_GlobalInvocationID = stage_input.gl_GlobalInvocationID; 7 | uint3 outputCoords = uint3(gl_GlobalInvocationID.x, gl_GlobalInvocationID.y, gl_GlobalInvocationID.z); 8 | OUTPUT_TEXTURE[outputCoords] = tonemap(true); 9 | } 10 | -------------------------------------------------------------------------------- /src/games/cp2077/tonemapper_lowbit_0x97CA5A85.cs_6_0.hlsl: -------------------------------------------------------------------------------- 1 | // LUT + TONEMAPPER 2 | 3 | #include "./tonemapper.hlsl" 4 | 5 | [numthreads(8, 8, 8)] void main(SPIRV_Cross_Input stage_input) { 6 | gl_GlobalInvocationID = stage_input.gl_GlobalInvocationID; 7 | uint3 outputCoords = uint3(gl_GlobalInvocationID.x, gl_GlobalInvocationID.y, gl_GlobalInvocationID.z); 8 | float4 outputColor = tonemap(true); 9 | outputColor.r = asfloat(asuint(outputColor.r) + 65536u); 10 | outputColor.g = asfloat(asuint(outputColor.g) + 65536u); 11 | outputColor.b = asfloat(asuint(outputColor.b) + 131072u); 12 | OUTPUT_TEXTURE[outputCoords] = outputColor; 13 | } 14 | -------------------------------------------------------------------------------- /src/games/cp2077/tonemapper_sdr_0x61DBBA5C.cs_6_0.hlsl: -------------------------------------------------------------------------------- 1 | // LUT + TONEMAPPER 2 | 3 | #include "./tonemapper.hlsl" 4 | 5 | [numthreads(8, 8, 8)] void main(SPIRV_Cross_Input stage_input) { 6 | gl_GlobalInvocationID = stage_input.gl_GlobalInvocationID; 7 | uint3 outputCoords = uint3(gl_GlobalInvocationID.x, gl_GlobalInvocationID.y, gl_GlobalInvocationID.z); 8 | OUTPUT_TEXTURE[outputCoords] = tonemap(false); 9 | } 10 | -------------------------------------------------------------------------------- /src/games/cp2077/tonemapper_sdr_lowbit_0x745E34E1.cs_6_0.hlsl: -------------------------------------------------------------------------------- 1 | // LUT + TONEMAPPER 2 | 3 | #include "./tonemapper.hlsl" 4 | 5 | [numthreads(8, 8, 8)] void main(SPIRV_Cross_Input stage_input) { 6 | gl_GlobalInvocationID = stage_input.gl_GlobalInvocationID; 7 | uint3 outputCoords = uint3(gl_GlobalInvocationID.x, gl_GlobalInvocationID.y, gl_GlobalInvocationID.z); 8 | float4 outputColor = tonemap(false); 9 | outputColor.r = asfloat(asuint(outputColor.r) + 65536u); 10 | outputColor.g = asfloat(asuint(outputColor.g) + 65536u); 11 | outputColor.b = asfloat(asuint(outputColor.b) + 131072u); 12 | OUTPUT_TEXTURE[outputCoords] = outputColor; 13 | } 14 | -------------------------------------------------------------------------------- /src/games/dai/swap_chain_proxy_pixel_shader.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | SamplerState sourceSampler_s : register(s0); 4 | Texture2D sourceTexture : register(t0); 5 | 6 | void main( 7 | float4 vpos: SV_Position, 8 | float2 texcoord: TEXCOORD, 9 | out float4 output: SV_Target0) { 10 | float4 color = sourceTexture.Sample(sourceSampler_s, texcoord.xy); 11 | color.rgb = FinalizeOutput(color.rgb); 12 | output.rgba = color; 13 | } 14 | -------------------------------------------------------------------------------- /src/games/dai/swap_chain_proxy_vertex_shader.vs_5_0.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id: SV_VERTEXID, out float4 pos: SV_POSITION, out float2 uv: TEXCOORD0) { 2 | uv.x = (id == 1) ? 2.0 : 0.0; 3 | uv.y = (id == 2) ? 2.0 : 0.0; 4 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 5 | } 6 | -------------------------------------------------------------------------------- /src/games/darksouls/shared.h: -------------------------------------------------------------------------------- 1 | #ifndef SRC_DARKSOULS_SHARED_H_ 2 | #define SRC_DARKSOULS_SHARED_H_ 3 | 4 | #ifndef __cplusplus 5 | #include "../../shaders/renodx.hlsl" 6 | #endif 7 | 8 | // Must be 32bit aligned 9 | // Should be 4x32 10 | struct ShaderInjectData { 11 | float toneMapType; 12 | float toneMapPeakNits; 13 | float toneMapGameNits; 14 | float toneMapUINits; 15 | float toneMapHueCorrection; 16 | float colorGradeExposure; 17 | float colorGradeHighlights; 18 | float colorGradeShadows; 19 | float colorGradeContrast; 20 | float colorGradeSaturation; 21 | float colorGradeBlowout; 22 | float colorGradeLUTStrength; 23 | float fxBloom; 24 | float fxDoF; 25 | }; 26 | 27 | #ifndef __cplusplus 28 | cbuffer cb11 : register(b11) { 29 | ShaderInjectData injectedData : packoffset(c0); 30 | } 31 | #endif 32 | 33 | #endif // SRC_DARKSOULS_SHARED_H_ 34 | -------------------------------------------------------------------------------- /src/games/darksouls/ui_0x64F62639.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | // ---- Created with 3Dmigoto v1.3.16 on Tue Jun 04 23:18:21 2024 4 | 5 | // 3Dmigoto declarations 6 | #define cmp - 7 | 8 | void main(float4 v0 9 | : SV_Position0, float4 v1 10 | : COLOR0, float2 v2 11 | : TEXCOORD0, out float4 o0 12 | : SV_Target0) { 13 | o0.xyzw = v1.xyzw; 14 | 15 | o0.xyz = saturate(o0.xyz); 16 | return; 17 | } -------------------------------------------------------------------------------- /src/games/darksouls/ui_0x809881A3.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | // ---- Created with 3Dmigoto v1.3.16 on Tue Jun 04 23:18:24 2024 4 | 5 | SamplerState g_TextureSampler_s : register(s0); 6 | Texture2D g_Texture : register(t0); 7 | 8 | // 3Dmigoto declarations 9 | #define cmp - 10 | 11 | void main(float4 v0 12 | : SV_Position0, float4 v1 13 | : COLOR0, float2 v2 14 | : TEXCOORD0, out float4 o0 15 | : SV_Target0) { 16 | float4 r0; 17 | uint4 bitmask, uiDest; 18 | float4 fDest; 19 | 20 | r0.xyzw = g_Texture.Sample(g_TextureSampler_s, v2.xy).xyzw; 21 | o0.xyzw = v1.xyzw * r0.xyzw; 22 | 23 | o0.xyz = saturate(o0.xyz); 24 | return; 25 | } -------------------------------------------------------------------------------- /src/games/darksouls/ui_0xB0850BF3.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | // ---- Created with 3Dmigoto v1.3.16 on Tue Jun 04 23:18:28 2024 4 | 5 | // 3Dmigoto declarations 6 | #define cmp - 7 | 8 | void main(float4 v0 9 | : SV_Position0, float4 v1 10 | : COLOR0, float3 v2 11 | : TEXCOORD0, out float4 o0 12 | : SV_Target0) { 13 | o0.xyzw = v1.xyzw; 14 | 15 | o0.xyz = saturate(o0.xyz); 16 | 17 | // TODO: figure out what this shader does 18 | // o0.rgb = (1, 0, 1); 19 | 20 | return; 21 | } -------------------------------------------------------------------------------- /src/games/darktide/swap_chain_proxy_pixel_shader.ps_5_1.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0 : register(s0); 5 | float4 main(float4 vpos: SV_POSITION, float2 uv: TEXCOORD0) : SV_TARGET { 6 | float4 color = renodx::draw::SwapChainPass(t0.Sample(s0, uv)); 7 | return color; 8 | } -------------------------------------------------------------------------------- /src/games/darktide/swap_chain_proxy_vertex_shader.vs_5_1.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id : SV_VERTEXID, out float4 pos : SV_POSITION, 2 | out float2 uv : TEXCOORD0) { 3 | uv.x = (id == 1) ? 2.0 : 0.0; 4 | uv.y = (id == 2) ? 2.0 : 0.0; 5 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 6 | } -------------------------------------------------------------------------------- /src/games/dmc5/shared.h: -------------------------------------------------------------------------------- 1 | #ifndef SRC_DMCV_SHARED_H_ 2 | #define SRC_DMCV_SHARED_H_ 3 | 4 | #ifndef __cplusplus 5 | #include "../../shaders/renodx.hlsl" 6 | #endif 7 | 8 | #endif // SRC_DMCV_SHARED_H_ -------------------------------------------------------------------------------- /src/games/duniaengine/FarCry3/effect_0x1C7F67A4.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "../common.hlsl" 2 | 3 | Texture2D t1 : register(t1); 4 | Texture2D t0 : register(t0); 5 | SamplerState s1_s : register(s1); 6 | SamplerState s0_s : register(s0); 7 | cbuffer cb0 : register(b0){ 8 | float4 cb0[9]; 9 | } 10 | 11 | void main( 12 | float4 v0 : SV_Position0, 13 | float4 v1 : TEXCOORD0, 14 | uint v2 : SV_IsFrontFace0, 15 | out float4 o0 : SV_Target0) 16 | { 17 | float4 r0,r1,r2; 18 | uint4 bitmask, uiDest; 19 | float4 fDest; 20 | 21 | r0.xyzw = t0.Sample(s0_s, v1.xy).xyzw; 22 | r1.xyz = cb0[5].xyz * r0.xyz; 23 | r1.w = saturate(cb0[5].w * r0.w + cb0[8].x); 24 | r0.xyzw = t1.Sample(s1_s, v1.zw).xyzw; 25 | r0.rgb = renodx::math::SignPow(r0.rgb, 2.f); 26 | r0.rgba = lerp(r0.rgba, r1.rgba, r1.w); 27 | o0.xyz = renodx::math::SignSqrt(r0.rgb); 28 | o0.w = r0.w; 29 | return; 30 | } -------------------------------------------------------------------------------- /src/games/duniaengine/FarCry3/effect_0x568F7B61.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "../common.hlsl" 2 | 3 | Texture2D t1 : register(t1); 4 | Texture2D t0 : register(t0); 5 | SamplerState s1_s : register(s1); 6 | SamplerState s0_s : register(s0); 7 | cbuffer cb0 : register(b0){ 8 | float4 cb0[6]; 9 | } 10 | 11 | void main( 12 | float4 v0 : SV_Position0, 13 | float2 v1 : TEXCOORD0, 14 | uint v2 : SV_IsFrontFace0, 15 | out float4 o0 : SV_Target0) 16 | { 17 | float4 r0,r1,r2; 18 | uint4 bitmask, uiDest; 19 | float4 fDest; 20 | 21 | r0.xyzw = t0.Sample(s0_s, v1.xy).xyzw; 22 | r0.rgb = renodx::math::SignPow(r0.rgb, 2.f); 23 | r1.xyzw = t1.Sample(s1_s, v1.xy).xyzw; 24 | r1.rgb = renodx::math::SignPow(r1.rgb, 2.f); 25 | r2.x = saturate(cb0[5].x); 26 | r0.rgba = lerp(r1.rgba, r0.rgba, r2.x); 27 | o0.xyz = renodx::math::SignSqrt(r0.rgb); 28 | o0.w = r0.w; 29 | return; 30 | } -------------------------------------------------------------------------------- /src/games/duniaengine/FarCry3/effect_0x6FF02A67.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "../common.hlsl" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0_s : register(s0); 5 | cbuffer cb0 : register(b0){ 6 | float4 cb0[6]; 7 | } 8 | 9 | void main( 10 | float4 v0 : SV_Position0, 11 | float2 v1 : TEXCOORD0, 12 | uint v2 : SV_IsFrontFace0, 13 | out float4 o0 : SV_Target0) 14 | { 15 | float4 r0,r1; 16 | uint4 bitmask, uiDest; 17 | float4 fDest; 18 | 19 | r0.xyzw = t0.Sample(s0_s, v1.xy).xyzw; 20 | r0.rgb = renodx::math::SignPow(r0.rgb, 2.f); 21 | r0.rgba = lerp(r0.rgba, cb0[5].rgba, cb0[5].w); 22 | o0.xyz = renodx::math::SignSqrt(r0.rgb); 23 | o0.w = r0.w; 24 | return; 25 | } -------------------------------------------------------------------------------- /src/games/duniaengine/FarCry3/effect_0x86DBC4B9.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "../common.hlsl" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0_s : register(s0); 5 | 6 | void main( 7 | float4 v0 : SV_Position0, 8 | float2 v1 : TEXCOORD0, 9 | uint v2 : SV_IsFrontFace0, 10 | out float4 o0 : SV_Target0) 11 | { 12 | float4 r0; 13 | uint4 bitmask, uiDest; 14 | float4 fDest; 15 | 16 | r0.xyzw = t0.Sample(s0_s, v1.xy).xyzw; 17 | if (injectedData.toneMapType == 0.f) { 18 | r0.rgb = abs(r0.rgb); 19 | } 20 | o0.xyz = r0.xyz; 21 | o0.w = r0.w; 22 | return; 23 | } -------------------------------------------------------------------------------- /src/games/duniaengine/FarCry3/effect_0xC450C211.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "../common.hlsl" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0_s : register(s0); 5 | cbuffer cb0 : register(b0){ 6 | float4 cb0[6]; 7 | } 8 | 9 | void main( 10 | float4 v0 : SV_Position0, 11 | float2 v1 : TEXCOORD0, 12 | uint v2 : SV_IsFrontFace0, 13 | out float4 o0 : SV_Target0) 14 | { 15 | float4 r0,r1; 16 | uint4 bitmask, uiDest; 17 | float4 fDest; 18 | 19 | r0.xyzw = t0.Sample(s0_s, v1.xy).xyzw; 20 | r0.rgb = renodx::math::SignPow(r0.rgb, 2.f); 21 | o0.w = r0.w; 22 | r0.w = dot(float3(0.300000012,0.589999974,0.109999999), r0.xyz); 23 | r0.rgb = lerp(r0.rgb, cb0[5].rgb * r0.www, cb0[5].w); 24 | o0.xyz = renodx::math::SignSqrt(r0.rgb); 25 | return; 26 | } -------------------------------------------------------------------------------- /src/games/duniaengine/FarCry3/effect_0xD7500557.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "../common.hlsl" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0_s : register(s0); 5 | cbuffer cb0 : register(b0){ 6 | float4 cb0[7]; 7 | } 8 | 9 | void main( 10 | float4 v0 : SV_Position0, 11 | float2 v1 : TEXCOORD0, 12 | uint v2 : SV_IsFrontFace0, 13 | out float4 o0 : SV_Target0) 14 | { 15 | float4 r0; 16 | uint4 bitmask, uiDest; 17 | float4 fDest; 18 | 19 | r0.xy = t0.Sample(s0_s, v1.xy).xz; 20 | r0.xy = saturate(r0.xy); 21 | r0.y = 0.00999999978 * r0.y; 22 | o0.x = sqrt(r0.x); 23 | o0.z = sqrt(r0.y); 24 | o0.w = 0.00999999978 * cb0[6].y; 25 | o0.y = 0; 26 | return; 27 | } -------------------------------------------------------------------------------- /src/games/duniaengine/FarCry3/effect_0xF18C2172.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "../common.hlsl" 2 | 3 | Texture2D t1 : register(t1); 4 | Texture2D t0 : register(t0); 5 | SamplerState s1_s : register(s1); 6 | SamplerState s0_s : register(s0); 7 | cbuffer cb0 : register(b0){ 8 | float4 cb0[7]; 9 | } 10 | 11 | void main( 12 | float4 v0 : SV_Position0, 13 | float2 v1 : TEXCOORD0, 14 | uint v2 : SV_IsFrontFace0, 15 | out float4 o0 : SV_Target0) 16 | { 17 | float4 r0,r1,r2; 18 | uint4 bitmask, uiDest; 19 | float4 fDest; 20 | 21 | r0.xyzw = t0.Sample(s0_s, v1.xy).xyzw; 22 | r0.rgb = renodx::math::SignPow(r0.rgb, 2.f); 23 | r1.xyzw = t1.Sample(s1_s, v1.xy).xyzw; 24 | r1.rgb = renodx::math::SignPow(r1.rgb, 2.f); 25 | r2.x = saturate(cb0[6].x * r0.w); 26 | r0.rgba = lerp(r1.rgba, r0.rgba, r2.x); 27 | o0.xyz = renodx::math::SignSqrt(r0.rgb); 28 | o0.w = r0.w; 29 | return; 30 | } -------------------------------------------------------------------------------- /src/games/duniaengine/FarCry3/effect_0xF1F4D4DD.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "../common.hlsl" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0_s : register(s0); 5 | cbuffer cb0 : register(b0){ 6 | float4 cb0[6]; 7 | } 8 | 9 | void main( 10 | float4 v0 : SV_Position0, 11 | float2 v1 : TEXCOORD0, 12 | uint v2 : SV_IsFrontFace0, 13 | out float4 o0 : SV_Target0) 14 | { 15 | float4 r0,r1; 16 | uint4 bitmask, uiDest; 17 | float4 fDest; 18 | 19 | r0.xyzw = float4(-1,-1,-1,-1) + cb0[5].xyzw; 20 | r0.xyzw = cb0[5].wwww * r0.xyzw + float4(1,1,1,1); 21 | r1.xyzw = t0.Sample(s0_s, v1.xy).xyzw; 22 | r1.rgb = renodx::math::SignPow(r1.rgb, 2.f); 23 | r0.xyzw = r1.xyzw * r0.xyzw; 24 | o0.xyz = renodx::math::SignSqrt(r0.rgb); 25 | o0.w = r0.w; 26 | return; 27 | } -------------------------------------------------------------------------------- /src/games/duniaengine/swap_chain_proxy_pixel_shader.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | SamplerState sourceSampler_s : register(s0); 4 | Texture2D sourceTexture : register(t0); 5 | 6 | void main( 7 | float4 vpos: SV_Position, 8 | float2 texcoord: TEXCOORD, 9 | out float4 output: SV_Target0) { 10 | float4 color = sourceTexture.Sample(sourceSampler_s, texcoord.xy); 11 | color.rgb = FinalizeOutput(color.rgb); 12 | output.rgba = color; 13 | } 14 | -------------------------------------------------------------------------------- /src/games/duniaengine/swap_chain_proxy_vertex_shader.vs_4_0.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id: SV_VERTEXID, out float4 pos: SV_POSITION, out float2 uv: TEXCOORD0) { 2 | uv.x = (id == 1) ? 2.0 : 0.0; 3 | uv.y = (id == 2) ? 2.0 : 0.0; 4 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 5 | } 6 | -------------------------------------------------------------------------------- /src/games/dxmd/02_ui_0xE3DF9B3A.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | // UI? 2 | 3 | #include "./shared.h" 4 | 5 | 6 | 7 | // 3Dmigoto declarations 8 | #define cmp - 9 | 10 | 11 | void main( 12 | float4 v0 : COLOR0, 13 | float4 v1 : COLOR1, 14 | out float4 o0 : SV_Target0) 15 | { 16 | o0.w = v1.w * v0.w; 17 | o0.xyz = v0.xyz; 18 | // o0.rgb *= injectedData.toneMapGameNits / injectedData.toneMapUINits; 19 | return; 20 | } -------------------------------------------------------------------------------- /src/games/dxmd/06_temporalaa_off_0x00E2BDB5.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | Texture2D t0 : register(t0); 4 | 5 | SamplerState s0_s : register(s0); 6 | 7 | cbuffer cb11 : register(b11) { 8 | float4 cb11[88]; 9 | } 10 | 11 | // 3Dmigoto declarations 12 | #define cmp - 13 | 14 | float4 main(float4 v0 : SV_POSITION0, float2 v1 : TEXCOORD0) : SV_TARGET0 { 15 | float4 r0; 16 | uint4 bitmask, uiDest; 17 | float4 fDest; 18 | 19 | r0.xyzw = t0.Sample(s0_s, v1.xy).xyzw; 20 | 21 | float3 outputColor = max(0, r0.rgb); 22 | outputColor = pow(outputColor, cb11[87].x); 23 | 24 | if (injectedData.toneMapType == 0.f) { 25 | outputColor = saturate(outputColor); 26 | } 27 | 28 | return float4(outputColor.rgb, r0.w); 29 | } 30 | -------------------------------------------------------------------------------- /src/games/dxmd/11_bloomexp_0xAC144B8D.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | // Bloom + Exp 2 | 3 | #include "./shared.h" 4 | 5 | Texture2D t0 : register(t0); 6 | Texture2D t1 : register(t1); 7 | SamplerState s0_s : register(s0); 8 | SamplerState s1_s : register(s1); 9 | 10 | cbuffer cb11 : register(b11) { 11 | float4 cb11[18]; 12 | } 13 | 14 | // 3Dmigoto declarations 15 | #define cmp - 16 | 17 | void main( 18 | float4 v0 : SV_POSITION0, 19 | float2 v1 : TEXCOORD0, 20 | out float4 o0 : SV_TARGET0 21 | ) { 22 | float4 r0, r1; 23 | uint4 bitmask, uiDest; 24 | float4 fDest; 25 | 26 | r0.xyzw = t1.Sample(s1_s, v1.xy).xyzw; 27 | // r0.xyzw = cb11[17].xyzw * r0.xyzw; 28 | r0.xyzw = cb11[17].xyzw * r0.xyzw; 29 | r1.xyzw = t0.Sample(s0_s, v1.xy).xyzw; 30 | o0.xyzw = cb11[16].xyzw * r1.xyzw * injectedData.fxBloom + r0.xyzw; // Exposure 31 | 32 | return; 33 | } 34 | -------------------------------------------------------------------------------- /src/games/dyinglight/X_Final_0xFFFFFFFD.vs_5_0.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id : SV_VERTEXID, out float4 pos : SV_POSITION, out float2 uv : TEXCOORD0) 2 | { 3 | uv.x = (id == 1) ? 2.0 : 0.0; 4 | uv.y = (id == 2) ? 2.0 : 0.0; 5 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 6 | } -------------------------------------------------------------------------------- /src/games/dyinglight/X_Final_0xFFFFFFFE.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | SamplerState sourceSampler_s : register(s0); 4 | Texture2D sourceTexture : register(t0); 5 | 6 | void main( 7 | float4 vpos : SV_Position, 8 | float2 texcoord : TEXCOORD, 9 | out float4 output : SV_Target0) 10 | { 11 | float4 color = sourceTexture.Sample(sourceSampler_s, texcoord.xy); 12 | 13 | if (injectedData.toneMapGammaCorrection) { 14 | color.rgb = renodx::color::correct::GammaSafe(color.rgb); 15 | } 16 | color.rgb *= injectedData.toneMapUINits / 80.f; 17 | 18 | output.rgba = color; 19 | } -------------------------------------------------------------------------------- /src/games/dyinglight/ui_0xD292312D.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | // ---- Created with 3Dmigoto v1.3.16 on Sat May 25 22:39:40 2024 4 | Texture2D t0 : register(t0); 5 | 6 | SamplerState s0_s : register(s0); 7 | 8 | 9 | 10 | 11 | // 3Dmigoto declarations 12 | #define cmp - 13 | 14 | 15 | void main( 16 | float4 v0 : SV_POSITION0, 17 | float4 v1 : TEXCOORD0, 18 | float4 v2 : TEXCOORD1, 19 | out float4 o0 : SV_TARGET0) 20 | { 21 | float4 r0; 22 | uint4 bitmask, uiDest; 23 | float4 fDest; 24 | 25 | r0.xyzw = t0.Sample(s0_s, v2.zw).xyzw; 26 | o0.xyzw = v1.xyzw * r0.xyzw; 27 | 28 | o0.xyz = saturate(o0.xyz); 29 | if (injectedData.toneMapGammaCorrection) { // fix srgb 2.2 mismatch 30 | o0.xyz = renodx::color::srgb::Encode(o0.xyz); 31 | o0.xyz = pow(o0.xyz, 2.2f); 32 | } 33 | o0.xyz *= injectedData.toneMapUINits/80.f; 34 | return; 35 | } -------------------------------------------------------------------------------- /src/games/dyinglight2/swap_chain_proxy_pixel_shader.ps_5_x.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0 : register(s0); 5 | float4 main(float4 vpos: SV_POSITION, float2 uv: TEXCOORD0) 6 | : SV_TARGET { 7 | return renodx::draw::SwapChainPass(t0.Sample(s0, uv)); 8 | } 9 | -------------------------------------------------------------------------------- /src/games/dyinglight2/swap_chain_proxy_vertex_shader.vs_5_x.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id : SV_VERTEXID, out float4 pos : SV_POSITION, 2 | out float2 uv : TEXCOORD0) { 3 | uv.x = (id == 1) ? 2.0 : 0.0; 4 | uv.y = (id == 2) ? 2.0 : 0.0; 5 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 6 | } -------------------------------------------------------------------------------- /src/games/elitedangerous/swap_chain_proxy_pixel_shader.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsli" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0 : register(s0); 5 | float4 main(float4 vpos: SV_POSITION, float2 uv: TEXCOORD0) 6 | : SV_TARGET { 7 | float4 color = t0.Sample(s0, uv); 8 | color.rgb = FinalizeOutput(color.rgb); 9 | color.a = saturate(color.a); 10 | return color; 11 | } 12 | -------------------------------------------------------------------------------- /src/games/elitedangerous/swap_chain_proxy_vertex_shader.vs_5_0.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id : SV_VERTEXID, out float4 pos : SV_POSITION, 2 | out float2 uv : TEXCOORD0) { 3 | uv.x = (id == 1) ? 2.0 : 0.0; 4 | uv.y = (id == 2) ? 2.0 : 0.0; 5 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 6 | } -------------------------------------------------------------------------------- /src/games/ereban/final_0x20133A8B.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | SamplerState BlitSampler_s : register(s0); 4 | Texture2D BlitTexture : register(t0); 5 | 6 | void main( 7 | float2 v0: TEXCOORD0, 8 | float4 v1: SV_POSITION0, 9 | out float4 o0: SV_Target0) { 10 | o0.xyzw = BlitTexture.Sample(BlitSampler_s, v0.xy).xyzw; 11 | o0.rgb = FinalizeOutput(o0.rgb); 12 | return; 13 | } 14 | -------------------------------------------------------------------------------- /src/games/ereban/screenLUT_0x0EBC87AB.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | Texture2DArray t0 : register(t0); 2 | SamplerState s0_s : register(s0); 3 | 4 | cbuffer cb1 : register(b1) { 5 | float4 cb1[49]; 6 | } 7 | cbuffer cb0 : register(b0) { 8 | float4 cb0[1]; 9 | } 10 | 11 | void main( 12 | float4 v0: SV_POSITION0, 13 | out float4 o0: SV_Target0) { 14 | float4 r0, r1; 15 | uint4 bitmask, uiDest; 16 | float4 fDest; 17 | 18 | r0.xy = cb1[46].zw * v0.xy; 19 | r0.xy = cb1[48].xy * r0.xy; 20 | r0.z = 0; 21 | r0.xyzw = t0.SampleLevel(s0_s, r0.xyz, 0).xyzw; 22 | o0.xyzw = r0.xyzw; 23 | return; 24 | } 25 | -------------------------------------------------------------------------------- /src/games/ereban/videos_0x8A6BCB4C.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0_s : register(s0); 5 | cbuffer cb0 : register(b0) { 6 | float4 cb0[3]; 7 | } 8 | 9 | void main( 10 | float4 v0: SV_POSITION0, 11 | float2 v1: TEXCOORD0, 12 | out float4 o0: SV_Target0) { 13 | float4 r0; 14 | uint4 bitmask, uiDest; 15 | float4 fDest; 16 | 17 | r0.xyzw = t0.Sample(s0_s, v1.xy).xyzw; 18 | o0.w = cb0[2].x * r0.w; 19 | o0.xyz = r0.xyz; 20 | o0 = saturate(o0); 21 | o0.rgb = PostToneMapScale(o0.rgb); 22 | return; 23 | } 24 | -------------------------------------------------------------------------------- /src/games/fallout4/00_cursor_0x72826F5B.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | // 3Dmigoto declarations 4 | #define cmp - 5 | 6 | void main(float4 v0 : COLOR0, float4 v1 : COLOR1, float4 v2 : TEXCOORD0, float4 v3 : TEXCOORD1, out float4 o0 : SV_Target0) { 7 | float4 r0; 8 | uint4 bitmask, uiDest; 9 | float4 fDest; 10 | 11 | r0.xyzw = v0.xyzw * v3.xyzw + v2.xyzw; 12 | o0.w = v1.w * r0.w; 13 | o0.xyz = r0.xyz; 14 | 15 | o0.rgb = saturate(o0.rgb); 16 | o0.rgb = injectedData.toneMapGammaCorrection 17 | ? pow(o0.rgb, 2.2f) 18 | : renodx::color::srgb::Decode(o0.rgb); 19 | o0.rgb *= injectedData.toneMapUINits / 80.f; 20 | return; 21 | } 22 | -------------------------------------------------------------------------------- /src/games/fallout4/00_uiopaque_0x21C1F78D.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | Texture2D t0 : register(t0); 4 | 5 | SamplerState s0_s : register(s0); 6 | 7 | cbuffer cb2 : register(b2) { 8 | float4 cb2[1]; 9 | } 10 | 11 | // 3Dmigoto declarations 12 | #define cmp - 13 | 14 | void main(float4 v0 : SV_POSITION0, float3 v1 : TEXCOORD0, out float4 o0 : SV_Target0) { 15 | float4 r0; 16 | uint4 bitmask, uiDest; 17 | float4 fDest; 18 | 19 | r0.xyzw = t0.Sample(s0_s, v1.xy).xyzw; 20 | o0.xyzw = cb2[0].xyzw * r0.xyzw; 21 | 22 | o0.rgb = injectedData.toneMapGammaCorrection 23 | ? pow(o0.rgb, 2.2f) 24 | : renodx::color::srgb::Decode(o0.rgb); 25 | o0.rgb *= injectedData.toneMapUINits / 80.f; 26 | return; 27 | } 28 | -------------------------------------------------------------------------------- /src/games/fallout4/xx_0xECFC10A2.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | SamplerState sampler_tex_s : register(s0); 4 | Texture2D tex : register(t0); 5 | 6 | // 3Dmigoto declarations 7 | #define cmp - 8 | 9 | void main(float4 v0 : COLOR0, float4 v1 : TEXCOORD0, float4 v2 : TEXCOORD1, float2 v3 : TEXCOORD2, out float4 o0 : SV_Target0) { 10 | float4 r0; 11 | uint4 bitmask, uiDest; 12 | float4 fDest; 13 | 14 | r0.xyzw = tex.Sample(sampler_tex_s, v3.xy).xyzw; 15 | r0.xyzw = r0.xyzw * v2.xyzw + v1.xyzw; 16 | r0.w = v0.w * r0.w; 17 | o0.xyz = r0.xyz * r0.www; 18 | o0.w = r0.w; 19 | 20 | o0.rgb = saturate(o0.rgb); 21 | o0.rgb = injectedData.toneMapGammaCorrection 22 | ? pow(o0.rgb, 2.2f) 23 | : renodx::color::srgb::Decode(o0.rgb); 24 | o0.rgb *= injectedData.toneMapUINits / 80.f; 25 | return; 26 | } 27 | -------------------------------------------------------------------------------- /src/games/fallout76/images_0x7AAE8C2B.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | // ---- Created with 3Dmigoto v1.3.16 on Sun May 12 21:52:59 2024 4 | 5 | SamplerState sampler_tex_s : register(s0); 6 | Texture2D tex : register(t0); 7 | 8 | // 3Dmigoto declarations 9 | #define cmp - 10 | 11 | void main(float4 v0 : COLOR0, float2 v1 : TEXCOORD0, out float4 o0 : SV_Target0) { 12 | float4 r0; 13 | uint4 bitmask, uiDest; 14 | float4 fDest; 15 | 16 | r0.xyzw = tex.Sample(sampler_tex_s, v1.xy).xyzw; 17 | o0.w = v0.w * r0.w; 18 | o0.xyz = (r0.xyz); // o0.xyz = r0.xyz; 19 | 20 | o0 = saturate(o0); 21 | o0.rgb = injectedData.toneMapGammaCorrection 22 | ? pow(o0.rgb, 2.2f) 23 | : renodx::color::srgb::Decode(o0.rgb); 24 | o0.rgb *= injectedData.toneMapUINits / 80.f; 25 | 26 | return; 27 | } -------------------------------------------------------------------------------- /src/games/fallout76/load_0x46A6A1FE.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | // ---- Created with 3Dmigoto v1.3.16 on Sun May 12 21:52:53 2024 4 | Texture2D t0 : register(t0); 5 | 6 | SamplerState s0_s : register(s0); 7 | 8 | // 3Dmigoto declarations 9 | #define cmp - 10 | 11 | void main(float4 v0 : SV_POSITION0, float2 v1 : TEXCOORD0, out float4 o0 : SV_Target0) { 12 | o0.xyzw = t0.Sample(s0_s, v1.xy).xyzw; 13 | 14 | o0 = saturate(o0); 15 | o0.rgb = injectedData.toneMapGammaCorrection 16 | ? pow(o0.rgb, 2.2f) 17 | : renodx::color::srgb::Decode(o0.rgb); 18 | o0.rgb *= injectedData.toneMapUINits / 80.f; 19 | 20 | return; 21 | } -------------------------------------------------------------------------------- /src/games/fallout76/load_0xFEA4E7DB.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | // ---- Created with 3Dmigoto v1.3.16 on Sun May 12 21:53:20 2024 4 | 5 | SamplerState sampler_tex_s : register(s0); 6 | Texture2D tex : register(t0); 7 | 8 | // 3Dmigoto declarations 9 | #define cmp - 10 | 11 | void main(float4 v0 : COLOR0, float4 v1 : TEXCOORD0, float4 v2 : TEXCOORD1, float2 v3 : TEXCOORD2, out float4 o0 : SV_Target0) { 12 | float4 r0; 13 | uint4 bitmask, uiDest; 14 | float4 fDest; 15 | 16 | r0.xyzw = tex.Sample(sampler_tex_s, v3.xy).xyzw; 17 | r0.xyzw = saturate(r0.xyzw * v2.xyzw + v1.xyzw); 18 | o0.w = v0.w * r0.w; 19 | o0.xyz = r0.xyz; 20 | 21 | o0 = saturate(o0); 22 | o0.rgb = injectedData.toneMapGammaCorrection 23 | ? pow(o0.rgb, 2.2f) 24 | : renodx::color::srgb::Decode(o0.rgb); 25 | o0.rgb *= injectedData.toneMapUINits / 80.f; 26 | 27 | return; 28 | } -------------------------------------------------------------------------------- /src/games/fallout76/swap_chain_proxy_pixel_shader.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0 : register(s0); 5 | float4 main(float4 vpos: SV_POSITION, float2 uv: TEXCOORD0) 6 | : SV_TARGET { 7 | return FinalizeOutput(t0.Sample(s0, uv)); 8 | } 9 | -------------------------------------------------------------------------------- /src/games/fallout76/swap_chain_proxy_vertex_shader.vs_5_0.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id: SV_VERTEXID, out float4 pos: SV_POSITION, 2 | out float2 uv: TEXCOORD0) { 3 | uv.x = (id == 1) ? 2.0 : 0.0; 4 | uv.y = (id == 2) ? 2.0 : 0.0; 5 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 6 | } 7 | -------------------------------------------------------------------------------- /src/games/fallout76/text_0x2CA9CD55.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | // ---- Created with 3Dmigoto v1.3.16 on Sun May 12 21:52:50 2024 4 | 5 | // 3Dmigoto declarations 6 | #define cmp - 7 | 8 | void main(float4 v0 : COLOR0, float4 v1 : COLOR1, float4 v2 : TEXCOORD0, float4 v3 : TEXCOORD1, out float4 o0 : SV_Target0) { 9 | float4 r0; 10 | uint4 bitmask, uiDest; 11 | float4 fDest; 12 | 13 | r0.xyzw = saturate(v0.xyzw * v3.xyzw + v2.xyzw); 14 | o0.w = v1.w * r0.w; 15 | o0.xyz = r0.xyz; 16 | 17 | o0 = saturate(o0); 18 | o0.rgb = injectedData.toneMapGammaCorrection 19 | ? pow(o0.rgb, 2.2f) 20 | : renodx::color::srgb::Decode(o0.rgb); 21 | o0.rgb *= injectedData.toneMapUINits / 80.f; 22 | 23 | return; 24 | } -------------------------------------------------------------------------------- /src/games/fallout76/text_0xA6AB1C75.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | // ---- Created with 3Dmigoto v1.3.16 on Sun May 12 21:53:07 2024 4 | 5 | // 3Dmigoto declarations 6 | #define cmp - 7 | 8 | void main(float4 v0 : COLOR0, float4 v1 : COLOR1, float4 v2 : TEXCOORD0, float4 v3 : TEXCOORD1, out float4 o0 : SV_Target0) { 9 | float4 r0; 10 | uint4 bitmask, uiDest; 11 | float4 fDest; 12 | 13 | r0.xyzw = saturate(v0.xyzw * v3.xyzw + v2.xyzw); 14 | r0.w = v1.w * r0.w; 15 | o0.xyz = r0.xyz * r0.www; 16 | o0.w = r0.w; 17 | 18 | o0 = saturate(o0); 19 | o0.rgb = injectedData.toneMapGammaCorrection 20 | ? pow(o0.rgb, 2.2f) 21 | : renodx::color::srgb::Decode(o0.rgb); 22 | o0.rgb *= injectedData.toneMapUINits / 80.f; 23 | 24 | return; 25 | } -------------------------------------------------------------------------------- /src/games/fallout76/ui_0x28213F99.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | // ---- Created with 3Dmigoto v1.3.16 on Sun May 12 21:52:49 2024 4 | 5 | SamplerState sampler_tex_s : register(s0); 6 | Texture2D tex : register(t0); 7 | 8 | // 3Dmigoto declarations 9 | #define cmp - 10 | 11 | void main(float2 v0 : TEXCOORD0, float4 v1 : COLOR0, out float4 o0 : SV_Target0) { 12 | float4 r0; 13 | uint4 bitmask, uiDest; 14 | float4 fDest; 15 | 16 | r0.x = tex.Sample(sampler_tex_s, v0.xy).x; 17 | o0.w = v1.w * r0.x; 18 | o0.xyz = v1.xyz; // o0.xyz = v1.xyz; 19 | 20 | o0 = saturate(o0); 21 | o0.rgb = injectedData.toneMapGammaCorrection 22 | ? pow(o0.rgb, 2.2f) 23 | : renodx::color::srgb::Decode(o0.rgb); 24 | o0.rgb *= injectedData.toneMapUINits / 80.f; 25 | 26 | return; 27 | } -------------------------------------------------------------------------------- /src/games/fallout76/ui_0x6CF04AC0.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | // ---- Created with 3Dmigoto v1.3.16 on Sun May 12 21:52:57 2024 4 | 5 | cbuffer Constants : register(b0) { 6 | float4 cxmul : packoffset(c0); 7 | } 8 | 9 | // 3Dmigoto declarations 10 | #define cmp - 11 | 12 | void main(out float4 o0 : SV_Target0) { 13 | o0.xyzw = cxmul.xyzw; 14 | 15 | o0 = saturate(o0); 16 | o0.rgb = injectedData.toneMapGammaCorrection 17 | ? pow(o0.rgb, 2.2f) 18 | : renodx::color::srgb::Decode(o0.rgb); 19 | o0.rgb *= injectedData.toneMapUINits / 80.f; 20 | 21 | return; 22 | } -------------------------------------------------------------------------------- /src/games/fallout76/ui_0xF2CCBA8C.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | // ---- Created with 3Dmigoto v1.3.16 on Sun May 12 21:53:18 2024 4 | 5 | // 3Dmigoto declarations 6 | #define cmp - 7 | 8 | void main(float4 v0 : COLOR0, float4 v1 : COLOR1, out float4 o0 : SV_Target0) { 9 | o0.w = v1.w * v0.w; 10 | o0.xyz = v0.xyz; 11 | 12 | o0 = saturate(o0); 13 | o0.rgb = injectedData.toneMapGammaCorrection 14 | ? pow(o0.rgb, 2.2f) 15 | : renodx::color::srgb::Decode(o0.rgb); 16 | o0.rgb *= injectedData.toneMapUINits / 80.f; 17 | 18 | return; 19 | } -------------------------------------------------------------------------------- /src/games/fe/swap_chain_proxy_pixel_shader.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | SamplerState sourceSampler_s : register(s0); 4 | Texture2D sourceTexture : register(t0); 5 | 6 | void main( 7 | float4 vpos : SV_Position, 8 | float2 texcoord : TEXCOORD, 9 | out float4 output : SV_Target0) 10 | { 11 | float4 color = sourceTexture.Sample(sourceSampler_s, texcoord.xy); 12 | color.rgb = FinalizeOutput(color.rgb); 13 | output.rgba = color; 14 | } -------------------------------------------------------------------------------- /src/games/fe/swap_chain_proxy_vertex_shader.vs_4_0.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id : SV_VERTEXID, out float4 pos : SV_POSITION, out float2 uv : TEXCOORD0) 2 | { 3 | uv.x = (id == 1) ? 2.0 : 0.0; 4 | uv.y = (id == 2) ? 2.0 : 0.0; 5 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 6 | } -------------------------------------------------------------------------------- /src/games/ff7rebirth/final_0xC67C6B5A.ps_6_6.hlsl: -------------------------------------------------------------------------------- 1 | #define SHADER_HASH_0xC67C6B5A 2 | 3 | #include "./hdrcomposite.hlsl" 4 | 5 | float4 main( 6 | noperspective float2 TEXCOORD: TEXCOORD, 7 | noperspective float4 TEXCOORD_1: TEXCOORD1, 8 | noperspective float4 SV_Position: SV_Position) 9 | : SV_Target { 10 | return HDRComposite(TEXCOORD, TEXCOORD_1, SV_Position); 11 | } -------------------------------------------------------------------------------- /src/games/ff7rebirth/final_0xD0981514.ps_6_6.hlsl: -------------------------------------------------------------------------------- 1 | #define SHADER_HASH_0xD0981514 2 | 3 | #include "./hdrcomposite.hlsl" 4 | 5 | float4 main( 6 | noperspective float2 TEXCOORD: TEXCOORD, 7 | noperspective float4 TEXCOORD_1: TEXCOORD1, 8 | noperspective float4 SV_Position: SV_Position) 9 | : SV_Target { 10 | return HDRComposite(TEXCOORD, TEXCOORD_1, SV_Position); 11 | } -------------------------------------------------------------------------------- /src/games/ff7rebirth/final_displaymapped_0xD092CC63.ps_6_6.hlsl: -------------------------------------------------------------------------------- 1 | #define SHADER_HASH_0XD092CC63 2 | 3 | #include "./hdrcomposite.hlsl" 4 | 5 | float4 main( 6 | noperspective float2 TEXCOORD: TEXCOORD, 7 | noperspective float4 TEXCOORD_1: TEXCOORD1, 8 | noperspective float4 SV_Position: SV_Position) 9 | : SV_Target { 10 | return HDRComposite(TEXCOORD, TEXCOORD_1, SV_Position); 11 | } -------------------------------------------------------------------------------- /src/games/ff7rebirth/final_displaymapped_0xD7A19FB6.ps_6_6.hlsl: -------------------------------------------------------------------------------- 1 | #define SHADER_HASH_0xD7A19FB6 2 | 3 | #include "./hdrcomposite.hlsl" 4 | 5 | float4 main( 6 | noperspective float2 TEXCOORD: TEXCOORD, 7 | noperspective float4 TEXCOORD_1: TEXCOORD1, 8 | noperspective float4 SV_Position: SV_Position) 9 | : SV_Target { 10 | return HDRComposite(TEXCOORD, TEXCOORD_1, SV_Position); 11 | } -------------------------------------------------------------------------------- /src/games/ff7rebirth/final_menu_0x15CB9307.ps_6_6.hlsl: -------------------------------------------------------------------------------- 1 | #define SHADER_HASH_0x15CB9307 2 | 3 | #include "./hdrcomposite.hlsl" 4 | 5 | float4 main( 6 | noperspective float2 TEXCOORD: TEXCOORD, 7 | noperspective float4 TEXCOORD_1: TEXCOORD1, 8 | noperspective float4 SV_Position: SV_Position) 9 | : SV_Target { 10 | return HDRComposite(TEXCOORD, TEXCOORD_1, SV_Position); 11 | } -------------------------------------------------------------------------------- /src/games/ff7rebirth/final_menu_0xD31CF869.ps_6_6.hlsl: -------------------------------------------------------------------------------- 1 | #define SHADER_HASH_0xD31CF869 2 | 3 | #include "./hdrcomposite.hlsl" 4 | 5 | float4 main( 6 | noperspective float2 TEXCOORD: TEXCOORD, 7 | noperspective float4 TEXCOORD_1: TEXCOORD1, 8 | noperspective float4 SV_Position: SV_Position) 9 | : SV_Target { 10 | return HDRComposite(TEXCOORD, TEXCOORD_1, SV_Position); 11 | } -------------------------------------------------------------------------------- /src/games/ff7rebirth/final_menu_displaymapped_0x97E882E3.ps_6_6.hlsl: -------------------------------------------------------------------------------- 1 | #define SHADER_HASH_0x97E882E3 2 | 3 | #include "./hdrcomposite.hlsl" 4 | 5 | float4 main( 6 | noperspective float2 TEXCOORD: TEXCOORD, 7 | noperspective float4 TEXCOORD_1: TEXCOORD1, 8 | noperspective float4 SV_Position: SV_Position) 9 | : SV_Target { 10 | return HDRComposite(TEXCOORD, TEXCOORD_1, SV_Position); 11 | } -------------------------------------------------------------------------------- /src/games/ff7rebirth/include/CBuffer_View.hlsl: -------------------------------------------------------------------------------- 1 | cbuffer View : register(b1) { 2 | uint View_175x : packoffset(c175.x); 3 | }; 4 | -------------------------------------------------------------------------------- /src/games/ffx/shared.h: -------------------------------------------------------------------------------- 1 | #ifndef SRC_FFX_SHARED_H_ 2 | #define SRC_FFX_SHARED_H_ 3 | 4 | #ifndef __cplusplus 5 | #include "../../shaders/renodx.hlsl" 6 | #endif 7 | 8 | // Must be 32bit aligned 9 | // Should be 4x32 10 | struct ShaderInjectData { 11 | float toneMapType; 12 | float toneMapPeakNits; 13 | float toneMapGameNits; 14 | float toneMapUINits; 15 | float toneMapGammaCorrection; 16 | float toneMapHueCorrectionMethod; 17 | float toneMapHueCorrection; 18 | float colorGradeExposure; 19 | float colorGradeHighlights; 20 | float colorGradeShadows; 21 | float colorGradeContrast; 22 | float colorGradeSaturation; 23 | float colorGradeBlowout; 24 | float colorGradeColorSpace; 25 | }; 26 | 27 | #ifndef __cplusplus 28 | cbuffer cb13 : register(b13) { 29 | ShaderInjectData injectedData : packoffset(c0); 30 | } 31 | #endif 32 | 33 | #endif // SRC_FFX_SHARED_H_ 34 | -------------------------------------------------------------------------------- /src/games/ffx/swap_chain_proxy_pixel_shader.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | #include "./shared.h" 3 | 4 | Texture2D t0 : register(t0); 5 | SamplerState s0 : register(s0); 6 | float4 main(float4 vpos : SV_POSITION, float2 uv : TEXCOORD0) : SV_TARGET { 7 | float4 color = t0.Sample(s0, uv); 8 | color.rgb = FinalizeOutput(color.rgb); 9 | color.a = 1.f; 10 | return color; 11 | } -------------------------------------------------------------------------------- /src/games/ffx/swap_chain_proxy_vertex_shader.vs_4_0.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id : SV_VERTEXID, out float4 pos : SV_POSITION, 2 | out float2 uv : TEXCOORD0) { 3 | uv.x = (id == 1) ? 2.0 : 0.0; 4 | uv.y = (id == 2) ? 2.0 : 0.0; 5 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 6 | } -------------------------------------------------------------------------------- /src/games/ffx/ui_0x2BBD74AD.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | // ---- Created with 3Dmigoto v1.3.16 on Tue Dec 3 16:00:04 2024 2 | 3 | 4 | 5 | // 3Dmigoto declarations 6 | #define cmp - 7 | 8 | 9 | void main( 10 | float4 v0 : SV_POSITION0, 11 | float4 v1 : TEXCOORD1, 12 | float4 v2 : TEXCOORD0, 13 | float3 v3 : TEXCOORD2, 14 | out float4 o0 : SV_TARGET0) 15 | { 16 | o0.xyz = v1.xyz * v1.www; 17 | o0.w = v1.w; 18 | o0 = saturate(o0); 19 | return; 20 | } -------------------------------------------------------------------------------- /src/games/ffx/ui_0xC605FBD5.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | // ---- Created with 3Dmigoto v1.3.16 on Tue Dec 3 16:00:29 2024 2 | 3 | SamplerState TextureSamplerState_s : register(s0); 4 | Texture2D TextureSampler : register(t0); 5 | 6 | 7 | // 3Dmigoto declarations 8 | #define cmp - 9 | 10 | 11 | void main( 12 | float4 v0 : SV_POSITION0, 13 | float4 v1 : COLOR0, 14 | float4 v2 : TEXCOORD0, 15 | float3 v3 : TEXCOORD2, 16 | out float4 o0 : SV_TARGET0) 17 | { 18 | float4 r0; 19 | uint4 bitmask, uiDest; 20 | float4 fDest; 21 | 22 | r0.xyzw = TextureSampler.Sample(TextureSamplerState_s, v2.xy).xyzw; 23 | r0.xyzw = v1.xyzw * r0.xyzw; 24 | r0.xyzw = r0.xyzw + r0.xyzw; 25 | o0.xyz = r0.xyz * r0.www; 26 | o0.w = r0.w; 27 | o0 = saturate(o0); 28 | return; 29 | } -------------------------------------------------------------------------------- /src/games/ffx/xx_screen_fade_0x90C53F9F.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | #include "./shared.h" 3 | 4 | cbuffer _Globals : register(b0) 5 | { 6 | float4 globalColorMask : packoffset(c0) = {1,1,1,1}; 7 | float4 globalColorMaskN : packoffset(c1) = {0,0,0,0}; 8 | float4 ScreenFadeColor : packoffset(c2); 9 | } 10 | 11 | 12 | 13 | // 3Dmigoto declarations 14 | #define cmp - 15 | 16 | 17 | void main( 18 | out float4 o0 : SV_TARGET0) 19 | { 20 | o0.xyzw = ScreenFadeColor.xyzw; 21 | o0.xyz *= injectedData.toneMapGameNits / injectedData.toneMapPeakNits; 22 | return; 23 | } -------------------------------------------------------------------------------- /src/games/ffxiv/Copy_0x6CFFD968.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "OnCopy.hlsl" 2 | 3 | SamplerState sSamplerS_s : register(s0); 4 | Texture2D sSamplerT : register(t0); 5 | 6 | 7 | void main( 8 | float4 v0 : SV_POSITION0, 9 | float2 v1 : TEXCOORD0, 10 | out float4 o0 : SV_TARGET0) 11 | { 12 | o0.xyzw = sSamplerT.Sample(sSamplerS_s, v1.xy).xyzw; 13 | 14 | OnCopy(o0.rgb); 15 | 16 | return; 17 | } -------------------------------------------------------------------------------- /src/games/ffxiv/Copy_0xB0CE42B9.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "OnCopy.hlsl" 2 | 3 | SamplerState sInputS_s : register(s0); 4 | Texture2D sInputT : register(t0); 5 | 6 | 7 | void main( 8 | float4 v0 : SV_POSITION0, 9 | float2 v1 : TEXCOORD0, 10 | out float4 o0 : SV_TARGET0) 11 | { 12 | o0.xyzw = sInputT.Sample(sInputS_s, v1.xy).xyzw; 13 | 14 | OnCopy(o0.rgb); 15 | 16 | return; 17 | } -------------------------------------------------------------------------------- /src/games/ffxiv/PostTonemapPreLUT_0xF8F57F0A.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | SamplerState sInputS_s : register(s0); 4 | Texture2D sInputT : register(t0); 5 | 6 | 7 | void main( 8 | float4 v0 : SV_POSITION0, 9 | float2 v1 : TEXCOORD0, 10 | out float4 outColor : SV_TARGET0) 11 | { 12 | float4 r0; 13 | 14 | r0.xyzw = sInputT.Sample(sInputS_s, v1.xy).xyzw; 15 | outColor.xyzw = injectedData.toneMapType == 0 ? saturate(r0.xyzw) : max(r0.xyzw, 0); 16 | 17 | return; 18 | } -------------------------------------------------------------------------------- /src/games/ffxiv/Vignette_0xCDC56365.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | cbuffer cVignettingParam : register(b0) 4 | { 5 | float4 cVignettingParam[2] : packoffset(c0); 6 | } 7 | 8 | void main( 9 | float4 v0 : SV_POSITION0, 10 | float2 v1 : TEXCOORD0, 11 | out float4 o0 : SV_TARGET0) 12 | { 13 | float4 r0; 14 | 15 | r0.xy = cVignettingParam[0].xy * v1.xy; 16 | r0.x = dot(r0.xy, r0.xy); 17 | r0.x = -cVignettingParam[0].z + r0.x; 18 | r0.x = r0.x * injectedData.vignetteStrength; 19 | o0.w = saturate(cVignettingParam[0].w * r0.x); 20 | o0.xyz = cVignettingParam[1].xyz; // vignette color 21 | return; 22 | } -------------------------------------------------------------------------------- /src/games/ffxiv/final_pixel_shader.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | SamplerState sourceSampler_s : register(s0); 4 | Texture2D sourceTexture : register(t0); 5 | 6 | void main( 7 | float4 vpos : SV_Position, 8 | float2 texcoord : TEXCOORD, 9 | out float4 output : SV_Target0) 10 | { 11 | float4 color = sourceTexture.Sample(sourceSampler_s, texcoord.xy); 12 | 13 | if (injectedData.toneMapType == 0) { 14 | color = saturate(color); 15 | } 16 | 17 | // linearize 18 | color.rgb = sign(color.rgb) * pow(abs(color.rgb), 2.2f); 19 | color.a = saturate(color.a); 20 | 21 | // apply ui brightness 22 | color.rgb *= injectedData.toneMapUINits / 80.f; 23 | 24 | output.rgba = color; 25 | } 26 | -------------------------------------------------------------------------------- /src/games/ffxiv/final_vertex_shader.vs_5_0.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id : SV_VERTEXID, out float4 pos : SV_POSITION, out float2 uv : TEXCOORD0) 2 | { 3 | uv.x = (id == 1) ? 2.0 : 0.0; 4 | uv.y = (id == 2) ? 2.0 : 0.0; 5 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 6 | } -------------------------------------------------------------------------------- /src/games/generic/swap_chain_proxy_pixel_shader.ps_5_x.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0 : register(s0); 5 | float4 main(float4 vpos: SV_POSITION, float2 uv: TEXCOORD0) 6 | : SV_TARGET { 7 | return renodx::draw::SwapChainPass(t0.Sample(s0, uv)); 8 | } 9 | -------------------------------------------------------------------------------- /src/games/generic/swap_chain_proxy_vertex_shader.vs_5_x.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id : SV_VERTEXID, out float4 pos : SV_POSITION, 2 | out float2 uv : TEXCOORD0) { 3 | uv.x = (id == 1) ? 2.0 : 0.0; 4 | uv.y = (id == 2) ? 2.0 : 0.0; 5 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 6 | } -------------------------------------------------------------------------------- /src/games/gfl2/0x20133A8B.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | // ---- Created with 3Dmigoto v1.3.2 on Sun Mar 23 02:40:52 2025 3 | 4 | SamplerState BlitSampler_s : register(s0); 5 | Texture2D BlitTexture : register(t0); 6 | 7 | 8 | // 3Dmigoto declarations 9 | #define cmp - 10 | //Texture1D IniParams : register(t120); 11 | //Texture2D StereoParams : register(t125); 12 | 13 | 14 | void main( 15 | float2 v0 : TEXCOORD0, 16 | float4 v1 : SV_POSITION0, 17 | out float4 o0 : SV_Target0) 18 | { 19 | o0.xyzw = BlitTexture.Sample(BlitSampler_s, v0.xy).xyzw; 20 | o0.rgb = renodx::draw::SwapChainPass(o0.rgb); 21 | return; 22 | } -------------------------------------------------------------------------------- /src/games/gfl2/swap_chain_proxy_pixel_shader.ps_5_x.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0 : register(s0); 5 | float4 main(float4 vpos: SV_POSITION, float2 uv: TEXCOORD0) 6 | : SV_TARGET { 7 | return renodx::draw::SwapChainPass(t0.Sample(s0, uv)); 8 | } 9 | -------------------------------------------------------------------------------- /src/games/gfl2/swap_chain_proxy_vertex_shader.vs_5_x.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id : SV_VERTEXID, out float4 pos : SV_POSITION, 2 | out float2 uv : TEXCOORD0) { 3 | uv.x = (id == 1) ? 2.0 : 0.0; 4 | uv.y = (id == 2) ? 2.0 : 0.0; 5 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 6 | } -------------------------------------------------------------------------------- /src/games/greedfall/swap_chain_proxy_pixel_shader.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | SamplerState sourceSampler_s : register(s0); 4 | Texture2D sourceTexture : register(t0); 5 | 6 | void main( 7 | float4 vpos : SV_Position, 8 | float2 texcoord : TEXCOORD, 9 | out float4 output : SV_Target0) 10 | { 11 | float4 color = sourceTexture.Sample(sourceSampler_s, texcoord.xy); 12 | color.rgb = FinalizeOutput(color.rgb); 13 | output.rgba = color; 14 | } -------------------------------------------------------------------------------- /src/games/greedfall/swap_chain_proxy_vertex_shader.vs_5_0.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id : SV_VERTEXID, out float4 pos : SV_POSITION, out float2 uv : TEXCOORD0) 2 | { 3 | uv.x = (id == 1) ? 2.0 : 0.0; 4 | uv.y = (id == 2) ? 2.0 : 0.0; 5 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 6 | } -------------------------------------------------------------------------------- /src/games/greedfall/worldmap_0x94CFA97C.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | Texture2D t1 : register(t1); 4 | Texture2D t0 : register(t0); 5 | SamplerState s1_s : register(s1); 6 | SamplerState s0_s : register(s0); 7 | cbuffer cb1 : register(b1){ 8 | float4 cb1[3]; 9 | } 10 | 11 | #define cmp - 12 | 13 | void main( 14 | float4 v0 : SV_Position0, 15 | float4 v1 : TEXCOORD0, 16 | float4 v2 : TEXCOORD1, 17 | float4 v3 : TEXCOORD2, 18 | out float4 o0 : SV_Target0) 19 | { 20 | float4 r0; 21 | uint4 bitmask, uiDest; 22 | float4 fDest; 23 | 24 | r0.x = t1.Sample(s1_s, v1.xy).x; 25 | r0.y = cb1[2].x * r0.x + -0.00999999978; 26 | r0.y = cmp(r0.y < 0); 27 | if (r0.y != 0) discard; 28 | r0.yzw = t0.Sample(s0_s, v1.xy).xyz; 29 | o0.xyz = r0.yzw * r0.xxx; 30 | o0.w = 1 + -cb1[2].x; 31 | o0.rgb = PostToneMapScale(o0.rgb); 32 | return; 33 | } -------------------------------------------------------------------------------- /src/games/gtav-enhanced/swap_chain_proxy_pixel_shader.ps_6_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0 : register(s0); 5 | float4 main(float4 vpos: SV_POSITION, float2 uv: TEXCOORD0) 6 | : SV_TARGET { 7 | return renodx::draw::SwapChainPass(t0.Sample(s0, uv)); 8 | } 9 | -------------------------------------------------------------------------------- /src/games/gtav-enhanced/swap_chain_proxy_vertex_shader.vs_6_0.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id : SV_VERTEXID, out float4 pos : SV_POSITION, 2 | out float2 uv : TEXCOORD0) { 3 | uv.x = (id == 1) ? 2.0 : 0.0; 4 | uv.y = (id == 2) ? 2.0 : 0.0; 5 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 6 | } -------------------------------------------------------------------------------- /src/games/hades/00_output_0x7F6D6130.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | SamplerState Sampler_s : register(s0); 4 | Texture2D Texture : register(t0); 5 | 6 | // 3Dmigoto declarations 7 | #define cmp - 8 | 9 | void main(float4 v0 : SV_POSITION0, float4 v1 : COLOR0, float2 v2 : TEXCOORD0, out float4 o0 : SV_TARGET0) { 10 | o0.xyzw = Texture.Sample(Sampler_s, v2.xy).xyzw; 11 | float3 signs = sign(o0.rgb); 12 | o0.rgb = abs(o0.rgb); 13 | o0.rgb = injectedData.toneMapGammaCorrection 14 | ? pow(o0.rgb, 2.2f) 15 | : renodx::color::srgb::Decode(o0.rgb); 16 | o0.rgb *= injectedData.toneMapUINits / 80.f; 17 | 18 | return; 19 | } -------------------------------------------------------------------------------- /src/games/hades/shared.h: -------------------------------------------------------------------------------- 1 | #ifndef SRC_GAMES_HADES_SHARED_H_ 2 | #define SRC_GAMES_HADES_SHARED_H_ 3 | 4 | #ifndef __cplusplus 5 | #include "../../shaders/renodx.hlsl" 6 | #endif 7 | 8 | // Must be 32bit aligned 9 | // Should be 4x32 10 | struct ShaderInjectData { 11 | float toneMapType; 12 | float toneMapPeakNits; 13 | float toneMapGameNits; 14 | float toneMapUINits; 15 | float toneMapGammaCorrection; 16 | float colorGradeExposure; 17 | float colorGradeHighlights; 18 | float colorGradeShadows; 19 | float colorGradeContrast; 20 | float colorGradeSaturation; 21 | }; 22 | 23 | #ifndef __cplusplus 24 | cbuffer cb13 : register(b13) { 25 | ShaderInjectData injectedData : packoffset(c0); 26 | } 27 | #endif 28 | 29 | #endif // SRC_GAMES_HADES_SHARED_H_ 30 | -------------------------------------------------------------------------------- /src/games/hades2/shared.h: -------------------------------------------------------------------------------- 1 | #ifndef SRC_HADES2_SHARED_H_ 2 | #define SRC_HADES2_SHARED_H_ 3 | 4 | #ifndef __cplusplus 5 | #include "../../shaders/renodx.hlsl" 6 | #endif 7 | 8 | // Must be 32bit aligned 9 | // Should be 4x32 10 | struct ShaderInjectData { 11 | float toneMapType; 12 | float toneMapPeakNits; 13 | float toneMapGameNits; 14 | float toneMapUINits; 15 | float toneMapGammaCorrection; 16 | float colorGradeExposure; 17 | float colorGradeHighlights; 18 | float colorGradeShadows; 19 | float colorGradeContrast; 20 | float colorGradeSaturation; 21 | }; 22 | 23 | #endif // SRC_HADES2_SHARED_H_ 24 | -------------------------------------------------------------------------------- /src/games/hatintime/swap_chain_proxy_pixel_shader.ps_5_x.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0 : register(s0); 5 | float4 main(float4 vpos: SV_POSITION, float2 uv: TEXCOORD0) 6 | : SV_TARGET { 7 | return renodx::draw::SwapChainPass(t0.Sample(s0, uv)); 8 | } 9 | -------------------------------------------------------------------------------- /src/games/hatintime/swap_chain_proxy_vertex_shader.vs_5_x.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id: SV_VERTEXID, out float4 pos: SV_POSITION, 2 | out float2 uv: TEXCOORD0) { 3 | uv.x = (id == 1) ? 2.0 : 0.0; 4 | uv.y = (id == 2) ? 2.0 : 0.0; 5 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 6 | } 7 | -------------------------------------------------------------------------------- /src/games/hollowcocoon/final_0x20133A8B.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | SamplerState BlitSampler_s : register(s0); 4 | Texture2D BlitTexture : register(t0); 5 | 6 | void main( 7 | float2 v0: TEXCOORD0, 8 | float4 v1: SV_POSITION0, 9 | out float4 o0: SV_Target0) { 10 | o0.xyzw = BlitTexture.Sample(BlitSampler_s, v0.xy).xyzw; 11 | o0.rgb = FinalizeOutput(o0.rgb); 12 | return; 13 | } 14 | -------------------------------------------------------------------------------- /src/games/hollowknight/bloom2_0x5D9A0B26.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | // ---- Created with 3Dmigoto v1.4.1 on Thu Mar 20 19:55:35 2025 4 | Texture2D t1 : register(t1); 5 | 6 | Texture2D t0 : register(t0); 7 | 8 | SamplerState s1_s : register(s1); 9 | 10 | SamplerState s0_s : register(s0); 11 | 12 | 13 | 14 | 15 | // 3Dmigoto declarations 16 | #define cmp - 17 | 18 | 19 | void main( 20 | float4 v0 : SV_POSITION0, 21 | float2 v1 : TEXCOORD0, 22 | float2 w1 : TEXCOORD1, 23 | out float4 o0 : SV_Target0) 24 | { 25 | float4 r0,r1; 26 | uint4 bitmask, uiDest; 27 | float4 fDest; 28 | 29 | r0.xyzw = t0.Sample(s0_s, w1.xy).xyzw; 30 | r1.xyzw = t1.Sample(s1_s, v1.xy).xyzw; 31 | o0.xyzw = r1.xyzw * CUSTOM_BLOOM + r0.xyzw; 32 | 33 | if (RENODX_TONE_MAP_TYPE == 0) { 34 | o0 = saturate(o0); 35 | } else { 36 | o0 = max(0, o0); 37 | } 38 | return; 39 | } -------------------------------------------------------------------------------- /src/games/hollowknight/brightness_0x21F7FC48.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | // ---- Created with 3Dmigoto v1.4.1 on Thu Mar 20 19:55:35 2025 2 | Texture2D t0 : register(t0); 3 | 4 | SamplerState s0_s : register(s0); 5 | 6 | cbuffer cb0 : register(b0) 7 | { 8 | float4 cb0[3]; 9 | } 10 | 11 | 12 | 13 | 14 | // 3Dmigoto declarations 15 | #define cmp - 16 | 17 | 18 | void main( 19 | float4 v0 : SV_POSITION0, 20 | float2 v1 : TEXCOORD0, 21 | out float4 o0 : SV_Target0) 22 | { 23 | float4 r0; 24 | uint4 bitmask, uiDest; 25 | float4 fDest; 26 | 27 | r0.xyzw = t0.Sample(s0_s, v1.xy).xyzw; 28 | 29 | float3 input_color = r0.rgb; 30 | 31 | r0.xyzw = r0.xyzw * cb0[2].xxxx + float4(-0.5, -0.5, -0.5, -0.5); 32 | o0.xyzw = r0.xyzw * cb0[2].yyyy + float4(0.5, 0.5, 0.5, 0.5); 33 | 34 | o0.rgb = input_color; 35 | return; 36 | } -------------------------------------------------------------------------------- /src/games/hollowknight/custom_blit_screen_space_0xE73F8180.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | // ---- Created with 3Dmigoto v1.4.1 on Fri Mar 21 00:58:55 2025 4 | Texture2D t0 : register(t0); 5 | 6 | SamplerState s0_s : register(s0); 7 | 8 | cbuffer cb0 : register(b0) 9 | { 10 | float4 cb0[3]; 11 | } 12 | 13 | 14 | 15 | 16 | // 3Dmigoto declarations 17 | #define cmp - 18 | 19 | 20 | void main( 21 | float4 v0 : SV_POSITION0, 22 | float4 v1 : TEXCOORD0, 23 | out float4 o0 : SV_Target0) 24 | { 25 | float4 r0,r1; 26 | uint4 bitmask, uiDest; 27 | float4 fDest; 28 | 29 | r0.x = 1 + cb0[2].x; 30 | r0.yz = v1.xy / v1.ww; 31 | r1.xyzw = t0.Sample(s0_s, r0.yz).xyzw; 32 | o0.xyz = r1.xyz * r0.xxx; 33 | o0.w = r1.w; 34 | 35 | if (RENODX_TONE_MAP_TYPE == 0) { 36 | o0 = saturate(o0); 37 | } else { 38 | o0 = max(0, o0); 39 | } 40 | return; 41 | } -------------------------------------------------------------------------------- /src/games/hollowknight/legacy_particles_alpha_blend_0x2EDC3804.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | // ---- Created with 3Dmigoto v1.4.1 on Sat Mar 22 17:32:27 2025 4 | Texture2D t0 : register(t0); 5 | 6 | SamplerState s0_s : register(s0); 7 | 8 | // 3Dmigoto declarations 9 | #define cmp - 10 | 11 | void main( 12 | float4 v0: SV_POSITION0, 13 | float4 v1: COLOR0, 14 | float2 v2: TEXCOORD0, 15 | out float4 o0: SV_Target0) { 16 | float4 r0; 17 | uint4 bitmask, uiDest; 18 | float4 fDest; 19 | 20 | r0.xyzw = t0.Sample(s0_s, v2.xy).xyzw; 21 | r0.xyzw = v1.xyzw * r0.xyzw; 22 | o0.xyzw = v1.wwww * r0.xyzw; 23 | 24 | if (RENODX_TONE_MAP_TYPE == 0) { 25 | o0 = saturate(o0); 26 | } else { 27 | o0 = max(0, o0); 28 | } 29 | return; 30 | } 31 | -------------------------------------------------------------------------------- /src/games/hollowknight/legacy_particles_multiply_0xCCC102EE.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | // ---- Created with 3Dmigoto v1.4.1 on Sat Mar 22 17:32:28 2025 4 | Texture2D t0 : register(t0); 5 | 6 | SamplerState s0_s : register(s0); 7 | 8 | 9 | 10 | 11 | // 3Dmigoto declarations 12 | #define cmp - 13 | 14 | 15 | void main( 16 | float4 v0 : SV_POSITION0, 17 | float4 v1 : COLOR0, 18 | float2 v2 : TEXCOORD0, 19 | out float4 o0 : SV_Target0) 20 | { 21 | float4 r0,r1; 22 | uint4 bitmask, uiDest; 23 | float4 fDest; 24 | 25 | r0.xyzw = t0.Sample(s0_s, v2.xy).xyzw; 26 | r1.x = v1.w * r0.w; 27 | r0.xyzw = v1.xyzw * r0.xyzw + float4(-1,-1,-1,-1); 28 | o0.xyzw = r1.xxxx * r0.xyzw + float4(1,1,1,1); 29 | 30 | if (RENODX_TONE_MAP_TYPE == 0) { 31 | o0 = saturate(o0); 32 | } else { 33 | o0 = max(0, o0); 34 | } 35 | return; 36 | } -------------------------------------------------------------------------------- /src/games/hollowknight/sprites_default_0xBC821AE4.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | // ---- Created with 3Dmigoto v1.4.1 on Fri Mar 21 00:58:54 2025 4 | Texture2D t0 : register(t0); 5 | 6 | SamplerState s0_s : register(s0); 7 | 8 | 9 | 10 | 11 | // 3Dmigoto declarations 12 | #define cmp - 13 | 14 | 15 | void main( 16 | float4 v0 : SV_POSITION0, 17 | float4 v1 : COLOR0, 18 | float2 v2 : TEXCOORD0, 19 | out float4 o0 : SV_Target0) 20 | { 21 | float4 r0; 22 | uint4 bitmask, uiDest; 23 | float4 fDest; 24 | 25 | r0.xyzw = t0.Sample(s0_s, v2.xy).xyzw; 26 | r0.xyzw = v1.xyzw * r0.xyzw; 27 | o0.xyz = r0.xyz * r0.www; 28 | o0.w = r0.w; 29 | 30 | if (RENODX_TONE_MAP_TYPE == 0) { 31 | o0 = saturate(o0); 32 | } else { 33 | o0 = max(0, o0); 34 | } 35 | return; 36 | } -------------------------------------------------------------------------------- /src/games/hollowknight/swap_chain_proxy_pixel_shader.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0 : register(s0); 5 | float4 main(float4 vpos: SV_POSITION, float2 uv: TEXCOORD0) 6 | : SV_TARGET { 7 | return renodx::draw::SwapChainPass(t0.Sample(s0, uv)); 8 | } 9 | -------------------------------------------------------------------------------- /src/games/hollowknight/swap_chain_proxy_vertex_shader.vs_4_0.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id : SV_VERTEXID, out float4 pos : SV_POSITION, 2 | out float2 uv : TEXCOORD0) { 3 | uv.x = (id == 1) ? 2.0 : 0.0; 4 | uv.y = (id == 2) ? 2.0 : 0.0; 5 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 6 | } -------------------------------------------------------------------------------- /src/games/hollowknight/tk2d_blend_0x97452557.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | // ---- Created with 3Dmigoto v1.4.1 on Fri Mar 21 00:58:54 2025 4 | Texture2D t0 : register(t0); 5 | 6 | SamplerState s0_s : register(s0); 7 | 8 | 9 | 10 | 11 | // 3Dmigoto declarations 12 | #define cmp - 13 | 14 | 15 | void main( 16 | float4 v0 : SV_POSITION0, 17 | float4 v1 : COLOR0, 18 | float2 v2 : TEXCOORD0, 19 | out float4 o0 : SV_Target0) 20 | { 21 | float4 r0; 22 | uint4 bitmask, uiDest; 23 | float4 fDest; 24 | 25 | r0.xyzw = t0.Sample(s0_s, v2.xy).xyzw; 26 | o0.xyzw = v1.xyzw * r0.xyzw; 27 | 28 | if (RENODX_TONE_MAP_TYPE == 0) { 29 | o0 = saturate(o0); 30 | } else { 31 | o0 = max(0, o0); 32 | } 33 | return; 34 | } -------------------------------------------------------------------------------- /src/games/honkai-starrail/shared.h: -------------------------------------------------------------------------------- 1 | #ifndef SRC_OUTER_WILDS_SHARED_H_ 2 | #define SRC_OUTER_WILDS_SHARED_H_ 3 | 4 | #ifndef __cplusplus 5 | #include "../../shaders/renodx.hlsl" 6 | #endif 7 | 8 | // Must be 32bit aligned 9 | // Should be 4x32 10 | struct ShaderInjectData { 11 | float toneMapType; 12 | float toneMapPeakNits; 13 | float toneMapGameNits; 14 | float toneMapUINits; 15 | float toneMapHueCorrection; 16 | float colorGradeExposure; 17 | float colorGradeHighlights; 18 | float colorGradeShadows; 19 | float colorGradeContrast; 20 | float colorGradeSaturation; 21 | float colorGradeBlowout; 22 | float colorGradeFlare; 23 | }; 24 | 25 | #ifndef __cplusplus 26 | cbuffer cb13 : register(b13) { 27 | ShaderInjectData injectedData : packoffset(c0); 28 | } 29 | #endif 30 | 31 | #endif // SRC_OUTER_WILDS_SHARED_H_ 32 | -------------------------------------------------------------------------------- /src/games/honkai-starrail/swap_chain_proxy_pixel_shader.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | #include "./shared.h" 3 | 4 | Texture2D t0 : register(t0); 5 | SamplerState s0 : register(s0); 6 | float4 main(float4 vpos: SV_POSITION, float2 uv: TEXCOORD0) 7 | : SV_TARGET { 8 | float4 color = t0.Sample(s0, uv); 9 | color.rgb = FinalizeOutput(color.rgb); 10 | color.a = 1.f; 11 | return color; 12 | } 13 | -------------------------------------------------------------------------------- /src/games/honkai-starrail/swap_chain_proxy_vertex_shader.vs_4_0.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id : SV_VERTEXID, out float4 pos : SV_POSITION, 2 | out float2 uv : TEXCOORD0) { 3 | uv.x = (id == 1) ? 2.0 : 0.0; 4 | uv.y = (id == 2) ? 2.0 : 0.0; 5 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 6 | } -------------------------------------------------------------------------------- /src/games/horizonfw/shared.h: -------------------------------------------------------------------------------- 1 | #ifndef SRC_HORIZONFW_SHARED_H_ 2 | #define SRC_HORIZONFW_SHARED_H_ 3 | 4 | // Must be 32bit aligned 5 | // Should be 4x32 6 | struct ShaderInjectData { 7 | float toneMapType; 8 | float toneMapPeakNits; 9 | float toneMapGameNits; 10 | float toneMapUINits; 11 | float colorGradeHighlights; 12 | float colorGradeShadows; 13 | float colorGradeContrast; 14 | float colorGradeSaturation; 15 | }; 16 | 17 | #ifndef __cplusplus 18 | cbuffer cb13 : register(b13) { 19 | ShaderInjectData injectedData : packoffset(c0); 20 | } 21 | #endif 22 | 23 | #endif // SRC_HORIZONFW_SHARED_H_ 24 | -------------------------------------------------------------------------------- /src/games/jedisurvivor/06_copy_0xD14395A5.ps_6_1.hlsl: -------------------------------------------------------------------------------- 1 | Texture2D _8 : register(t0, space0); 2 | SamplerState _11 : register(s0, space0); 3 | 4 | float4 main(noperspective float2 TEXCOORD : TEXCOORD0, float4 gl_FragCoord : SV_Position) : SV_Target0 { 5 | return _8.Sample(_11, float2(TEXCOORD.x, TEXCOORD.y)); 6 | } 7 | -------------------------------------------------------------------------------- /src/games/justcause4/02_ui_icons_0x121F4325.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | SamplerState sampler_tex_s : register(s0); 4 | Texture2D tex : register(t0); 5 | 6 | // 3Dmigoto declarations 7 | #define cmp - 8 | 9 | void main(float4 v0 : COLOR0, float2 v1 : TEXCOORD0, out float4 o0 : SV_Target0) { 10 | float4 r0; 11 | uint4 bitmask, uiDest; 12 | float4 fDest; 13 | 14 | r0.xyzw = tex.Sample(sampler_tex_s, v1.xy).xyzw; 15 | o0.w = v0.w * r0.w; 16 | o0.xyz = r0.xyz; 17 | 18 | o0.rgb = saturate(o0.rgb); 19 | o0.rgb = injectedData.toneMapGammaCorrection 20 | ? pow(o0.rgb, 2.2f) 21 | : renodx::color::srgb::Decode(o0.rgb); 22 | o0.rgb *= injectedData.toneMapUINits / 80.f; 23 | return; 24 | } 25 | -------------------------------------------------------------------------------- /src/games/justcause4/03_ui_background_0x0BD2C9BA.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | // 3Dmigoto declarations 4 | #define cmp - 5 | 6 | void main(float4 v0 : COLOR0, float4 v1 : COLOR1, out float4 o0 : SV_Target0) { 7 | o0.w = v1.w * v0.w; 8 | o0.xyz = v0.xyz; 9 | 10 | o0.rgb = saturate(o0.rgb); 11 | o0.rgb = injectedData.toneMapGammaCorrection 12 | ? pow(o0.rgb, 2.2f) 13 | : renodx::color::srgb::Decode(o0.rgb); 14 | o0.rgb *= injectedData.toneMapUINits / 80.f; 15 | return; 16 | } 17 | -------------------------------------------------------------------------------- /src/games/justcause4/04_subtitles_0x9BA33763.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | SamplerState sampler_tex_s : register(s0); 4 | Texture2D tex : register(t0); 5 | 6 | // 3Dmigoto declarations 7 | #define cmp - 8 | 9 | void main(float2 v0 : TEXCOORD0, float4 v1 : COLOR0, out float4 o0 : SV_Target0) { 10 | float4 r0; 11 | uint4 bitmask, uiDest; 12 | float4 fDest; 13 | 14 | r0.x = tex.Sample(sampler_tex_s, v0.xy).x; 15 | o0.w = v1.w * r0.x; 16 | o0.xyz = v1.xyz; 17 | 18 | o0.rgb = saturate(o0.rgb); 19 | o0.rgb = injectedData.toneMapGammaCorrection 20 | ? pow(o0.rgb, 2.2f) 21 | : renodx::color::srgb::Decode(o0.rgb); 22 | o0.rgb *= injectedData.toneMapUINits / 80.f; 23 | return; 24 | } 25 | -------------------------------------------------------------------------------- /src/games/justcause4/05_ui_selection_0xE6453EB0.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | SamplerState sampler_tex_s : register(s0); 4 | Texture2D tex : register(t0); 5 | 6 | // 3Dmigoto declarations 7 | #define cmp - 8 | 9 | void main(float4 v0 : COLOR0, float4 v1 : TEXCOORD0, float4 v2 : TEXCOORD1, float2 v3 : TEXCOORD2, out float4 o0 : SV_Target0) { 10 | float4 r0; 11 | uint4 bitmask, uiDest; 12 | float4 fDest; 13 | 14 | r0.xyzw = tex.Sample(sampler_tex_s, v3.xy).xyzw; 15 | r0.xyzw = saturate(r0.xyzw * v2.xyzw + v1.xyzw); 16 | o0.w = v0.w * r0.w; 17 | o0.xyz = r0.xyz; 18 | 19 | o0.rgb = saturate(o0.rgb); 20 | o0.rgb = injectedData.toneMapGammaCorrection 21 | ? pow(o0.rgb, 2.2f) 22 | : renodx::color::srgb::Decode(o0.rgb); 23 | o0.rgb *= injectedData.toneMapUINits / 80.f; 24 | return; 25 | } -------------------------------------------------------------------------------- /src/games/justcause4/06_ui_background_0x192E4012.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | // 3Dmigoto declarations 4 | #define cmp - 5 | 6 | void main(float4 v0 : COLOR0, float4 v1 : COLOR1, float4 v2 : TEXCOORD0, float4 v3 : TEXCOORD1, out float4 o0 : SV_Target0) { 7 | float4 r0; 8 | uint4 bitmask, uiDest; 9 | float4 fDest; 10 | 11 | r0.xyzw = saturate(v0.xyzw * v3.xyzw + v2.xyzw); 12 | o0.w = v1.w * r0.w; 13 | o0.xyz = r0.xyz; 14 | 15 | o0.rgb = saturate(o0.rgb); 16 | o0.rgb = injectedData.toneMapGammaCorrection 17 | ? pow(o0.rgb, 2.2f) 18 | : renodx::color::srgb::Decode(o0.rgb); 19 | o0.rgb *= injectedData.toneMapUINits / 80.f; 20 | return; 21 | } -------------------------------------------------------------------------------- /src/games/justcause4/08_output_0x353A9EDA.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | SamplerState sampler_tex_s : register(s0); 4 | Texture2D tex : register(t0); 5 | 6 | // 3Dmigoto declarations 7 | #define cmp - 8 | 9 | void main(float4 v0 : TEXCOORD0, float4 v1 : TEXCOORD1, float2 v2 : TEXCOORD2, out float4 o0 : SV_Target0) { 10 | float4 r0, r1; 11 | uint4 bitmask, uiDest; 12 | float4 fDest; 13 | 14 | r0.xyzw = tex.Sample(sampler_tex_s, v2.xy).xyzw; 15 | r1.xyz = v1.xyz; 16 | r1.w = 1; 17 | r0.xyzw = r1.xyzw * r0.xyzw; 18 | r0.xyzw = v1.wwww * r0.xyzw; 19 | o0.xyzw = saturate(v0.xyzw * r0.wwww + r0.xyzw); 20 | 21 | o0.rgb = saturate(o0.rgb); 22 | o0.rgb = injectedData.toneMapGammaCorrection 23 | ? pow(o0.rgb, 2.2f) 24 | : renodx::color::srgb::Decode(o0.rgb); 25 | o0.rgb *= injectedData.toneMapUINits / 80.f; 26 | } -------------------------------------------------------------------------------- /src/games/justcause4/13_overlay_0xD5E94F6D.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | SamplerState sampler_tex_s : register(s0); 4 | Texture2D tex : register(t0); 5 | 6 | // 3Dmigoto declarations 7 | #define cmp - 8 | 9 | void main(float4 v0 : COLOR0, float4 v1 : TEXCOORD0, float4 v2 : TEXCOORD1, float2 v3 : TEXCOORD2, out float4 o0 : SV_Target0) { 10 | float4 r0; 11 | uint4 bitmask, uiDest; 12 | float4 fDest; 13 | 14 | r0.xyzw = tex.Sample(sampler_tex_s, v3.xy).xyzw; 15 | r0.xyzw = saturate(r0.xyzw * v2.xyzw + v1.xyzw); 16 | r0.w = v0.w * r0.w; 17 | o0.xyz = r0.xyz * r0.www; 18 | o0.w = r0.w; 19 | 20 | o0.rgb = saturate(o0.rgb); 21 | o0.rgb = injectedData.toneMapGammaCorrection 22 | ? pow(o0.rgb, 2.2f) 23 | : renodx::color::srgb::Decode(o0.rgb); 24 | o0.rgb *= injectedData.toneMapGameNits / 80.f; 25 | return; 26 | } 27 | -------------------------------------------------------------------------------- /src/games/justcause4/xx_0x82BED845.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | cbuffer cb0 : register(b0) { 4 | float4 cb0[1]; 5 | } 6 | 7 | // 3Dmigoto declarations 8 | #define cmp - 9 | 10 | void main(out float4 o0 : SV_Target0) { 11 | o0.xyzw = cb0[0].xyzw; 12 | 13 | o0.rgb = saturate(o0.rgb); 14 | o0.rgb = injectedData.toneMapGammaCorrection 15 | ? pow(o0.rgb, 2.2f) 16 | : renodx::color::srgb::Decode(o0.rgb); 17 | o0.rgb *= injectedData.toneMapUINits / 80.f; 18 | return; 19 | } 20 | -------------------------------------------------------------------------------- /src/games/kingdomcome2/include/CBuffer_PERBATCH.hlsl: -------------------------------------------------------------------------------- 1 | /* 2 | // Example values from renderdoc capture 3 | HDRColorBalance 1.00, 0.93869, 0.87962, 0.98 0 float4 4 | SunShafts_SunCol 1.25037, 1.00135, 0.85085, 1.00 16 float4 5 | HDRUserModification 1.00, 1.00, 0.00, 0.00 32 float4 6 | HDREyeAdaptation 6.00, 12.50, 2.40, 1.00 48 float4 7 | HDRFilmCurve 0.80, 0.84286, 1.00, 10.00 64 float4 8 | HDRBloomColor 0.0375, 0.0375, 0.0375 80 float3 9 | */ 10 | 11 | cbuffer PER_BATCH : register(b0, space3) { 12 | float4 HDRColorBalance : packoffset(c000.x); 13 | float3 SunShafts_SunCol : packoffset(c001.x); 14 | float3 HDRUserModification : packoffset(c002.x); 15 | float3 HDREyeAdaptation : packoffset(c003.x); 16 | float4 HDRFilmCurve : packoffset(c004.x); 17 | float3 HDRBloomColor : packoffset(c005.x); 18 | }; 19 | -------------------------------------------------------------------------------- /src/games/kingdomcome2/include/Registers.hlsl: -------------------------------------------------------------------------------- 1 | Texture2D luminanceTex : register(t1); 2 | 3 | Texture2D sunShaftsTex : register(t5); 4 | 5 | Texture2D vignettingTex : register(t3); 6 | 7 | Texture2D bloomTex : register(t2); 8 | 9 | Texture2D colorChartTex : register(t4); 10 | 11 | Texture2D hdrTex : register(t0); -------------------------------------------------------------------------------- /src/games/kingdomcome2/intermediate_0xFF15F57D.ps_6_2.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | Texture2D Tx2Tx_Source : register(t0); 4 | 5 | SamplerState Tx2Tx_Sampler : register(s1); 6 | 7 | float4 main( 8 | noperspective float4 SV_Position: SV_Position, 9 | linear float2 TEXCOORD: TEXCOORD) 10 | : SV_Target { 11 | float4 SV_Target; 12 | float4 _5 = Tx2Tx_Source.Sample(Tx2Tx_Sampler, float2((TEXCOORD.x), (TEXCOORD.y))); 13 | 14 | SV_Target.x = (_5.x); 15 | SV_Target.y = (_5.y); 16 | SV_Target.z = (_5.z); 17 | SV_Target.w = (_5.w); 18 | return SV_Target; 19 | } 20 | -------------------------------------------------------------------------------- /src/games/kingdomcome2/swap_chain_proxy_pixel_shader.ps_5_1.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0 : register(s0); 5 | float4 main(float4 vpos: SV_POSITION, float2 uv: TEXCOORD0) 6 | : SV_TARGET { 7 | return renodx::draw::SwapChainPass(t0.Sample(s0, uv)); 8 | } 9 | -------------------------------------------------------------------------------- /src/games/kingdomcome2/swap_chain_proxy_vertex_shader.vs_5_1.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id : SV_VERTEXID, out float4 pos : SV_POSITION, 2 | out float2 uv : TEXCOORD0) { 3 | uv.x = (id == 1) ? 2.0 : 0.0; 4 | uv.y = (id == 2) ? 2.0 : 0.0; 5 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 6 | } -------------------------------------------------------------------------------- /src/games/koarr/rsui1_0xE76323E6.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | 2 | SamplerState g_diffuse_sampler_sampler_s : register(s0); 3 | Texture2D g_diffuse_sampler_texture : register(t0); 4 | 5 | void main( 6 | float4 v0: SV_Position0, 7 | float4 v1: COLOR0, 8 | float2 v2: TEXCOORD0, 9 | float w2: TEXCOORD1, 10 | out float4 o0: SV_Target0) { 11 | float4 r0, r1, r2; 12 | uint4 bitmask, uiDest; 13 | float4 fDest; 14 | 15 | r0.x = saturate(w2.x); 16 | r1.xyzw = g_diffuse_sampler_texture.Sample(g_diffuse_sampler_sampler_s, v2.xy).xyzw; 17 | r0.y = dot(r1.xyz, float3(0.212599993, 0.715200007, 0.0722000003)); 18 | r2.xyz = r1.xyz + -r0.yyy; 19 | r1.xyz = r0.xxx * r2.xyz + r0.yyy; 20 | o0.xyzw = v1.xyzw * r1.xyzw; 21 | return; 22 | } 23 | -------------------------------------------------------------------------------- /src/games/koarr/swap_chain_proxy_pixel_shader.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | SamplerState sourceSampler_s : register(s0); 4 | Texture2D sourceTexture : register(t0); 5 | 6 | void main( 7 | float4 vpos: SV_Position, 8 | float2 texcoord: TEXCOORD, 9 | out float4 output: SV_Target0) { 10 | float4 color = sourceTexture.Sample(sourceSampler_s, texcoord.xy); 11 | color.rgb = FinalizeOutput(color.rgb); 12 | output.rgba = color; 13 | } 14 | -------------------------------------------------------------------------------- /src/games/koarr/swap_chain_proxy_vertex_shader.vs_4_0.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id: SV_VERTEXID, out float4 pos: SV_POSITION, out float2 uv: TEXCOORD0) { 2 | uv.x = (id == 1) ? 2.0 : 0.0; 3 | uv.y = (id == 2) ? 2.0 : 0.0; 4 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 5 | } 6 | -------------------------------------------------------------------------------- /src/games/kunitsugami/common.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | float3 Tonemap(float3 untonemapped, float3 graded) { 4 | float3 color = graded; 5 | if (RENODX_TONE_MAP_TYPE > 0.f) { 6 | color = renodx::draw::ToneMapPass(untonemapped, color); 7 | } 8 | 9 | color = renodx::draw::RenderIntermediatePass(color); 10 | return color; 11 | } 12 | 13 | float3 FinalOutput(float3 final_image) { 14 | final_image = renodx::draw::SwapChainPass(final_image); 15 | 16 | return final_image; 17 | } 18 | -------------------------------------------------------------------------------- /src/games/lanoire/99_clear_0x156045DD.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | SamplerState Sampler0_s : register(s0); 4 | Texture2D Tex0 : register(t0); 5 | 6 | // 3Dmigoto declarations 7 | #define cmp - 8 | 9 | void main(float4 v0 : SV_Position0, float4 v1 : CLIP_SPACE_POSITION0, float2 v2 : TEXCOORD0, out float4 o0 : SV_Target0) { 10 | o0.xyzw = Tex0.Sample(Sampler0_s, v2.xy).xyzw; 11 | o0 = saturate(o0); 12 | o0 = injectedData.toneMapGammaCorrection 13 | ? pow(o0, 2.2f) 14 | : renodx::color::srgba::Decode(o0); 15 | o0.rgb *= injectedData.toneMapUINits / 80.f; 16 | return; 17 | } -------------------------------------------------------------------------------- /src/games/lastepoch/final_0x20133A8B.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | SamplerState BlitSampler_s : register(s0); 4 | Texture2D BlitTexture : register(t0); 5 | 6 | void main( 7 | float2 v0: TEXCOORD0, 8 | float4 v1: SV_POSITION0, 9 | out float4 o0: SV_Target0) { 10 | o0.xyzw = BlitTexture.Sample(BlitSampler_s, v0.xy).xyzw; 11 | o0.rgb = FinalizeOutput(o0.rgb); 12 | return; 13 | } 14 | -------------------------------------------------------------------------------- /src/games/lostinrandom/final_0x20133A8B.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | SamplerState BlitSampler_s : register(s0); 4 | Texture2D BlitTexture : register(t0); 5 | 6 | #define cmp - 7 | 8 | void main( 9 | float2 v0: TEXCOORD0, 10 | float4 v1: SV_POSITION0, 11 | out float4 o0: SV_Target0) { 12 | o0.xyzw = BlitTexture.Sample(BlitSampler_s, v0.xy).xyzw; 13 | o0.rgb = FinalizeOutput(o0.rgb); 14 | return; 15 | } 16 | -------------------------------------------------------------------------------- /src/games/lostinrandom/theeternaldie/fsr_0xC244242D.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "../common.hlsl" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0_s : register(s0); 5 | cbuffer cb0 : register(b0){ 6 | float4 cb0[6]; 7 | } 8 | 9 | void main( 10 | float4 v0 : SV_POSITION0, 11 | float2 v1 : TEXCOORD0, 12 | out float4 o0 : SV_Target0) 13 | { 14 | float4 r0; 15 | uint4 bitmask, uiDest; 16 | float4 fDest; 17 | 18 | r0.xyzw = t0.SampleBias(s0_s, v1.xy, cb0[5].x).xyzw; 19 | r0.rgb = renodx::color::bt2020::from::BT709(r0.rgb); 20 | r0.rgb = renodx::color::pq::EncodeSafe(r0.rgb); 21 | o0.xyz = sqrt(r0.xyz); 22 | o0.w = 1; 23 | return; 24 | } -------------------------------------------------------------------------------- /src/games/lostinrandom/theeternaldie/no_rcas_0xB1CE8C1C.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "../common.hlsl" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0_s : register(s0); 5 | cbuffer cb0 : register(b0){ 6 | float4 cb0[6]; 7 | } 8 | 9 | void main( 10 | float4 v0 : SV_POSITION0, 11 | float2 v1 : TEXCOORD0, 12 | out float4 o0 : SV_Target0) 13 | { 14 | float4 r0; 15 | uint4 bitmask, uiDest; 16 | float4 fDest; 17 | 18 | r0.xyz = t0.SampleBias(s0_s, v1.xy, cb0[5].x).xyz; 19 | r0.rgb = renodx::color::pq::Decode(r0.rgb); 20 | r0.rgb = renodx::color::bt709::from::BT2020(r0.rgb); 21 | if (injectedData.fxFilmGrain > 0.f) { 22 | r0.rgb = applyFilmGrain(r0.rgb, v1, injectedData.fxFilmGrainType != 0.f); 23 | } 24 | o0.xyz = PostToneMapScale(r0.xyz); 25 | o0.w = 1; 26 | return; 27 | } -------------------------------------------------------------------------------- /src/games/lostplanet/finalac_0x7952DC10.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | // fullscreen (aspect correction) 2 | 3 | #include "./shared.h" 4 | 5 | SamplerState XfBaseSampler_s : register(s0); 6 | Texture2D XfBaseSamplerTEXTURE : register(t0); 7 | 8 | cbuffer cb13 : register(b13) { 9 | ShaderInjectData injectedData : packoffset(c0); 10 | } 11 | 12 | float4 main(float4 v0 : SV_POSITION0, float2 v1 : TEXCOORD0) : SV_TARGET0 { 13 | float4 inputColor = XfBaseSamplerTEXTURE.Sample(XfBaseSampler_s, v1.xy).xyzw; 14 | 15 | float3 outputColor = pow(max(0, inputColor.rgb), 2.2f); 16 | // Convert to linear 17 | 18 | outputColor.rgb *= injectedData.toneMapUINits; 19 | outputColor.rgb /= 80.f; 20 | return float4(outputColor.rgb, inputColor.a); 21 | } 22 | -------------------------------------------------------------------------------- /src/games/lostplanet/finalfs_0xB2AD4F48.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | // fullscreen noop 2 | 3 | #include "./shared.h" 4 | 5 | SamplerState XfBaseSampler_s : register(s0); 6 | Texture2D XfBaseSamplerTEXTURE : register(t0); 7 | 8 | cbuffer cb13 : register(b13) { 9 | ShaderInjectData injectedData : packoffset(c0); 10 | } 11 | 12 | float4 main(float4 v0 : SV_POSITION0, float2 v1 : TEXCOORD0) : SV_TARGET0 { 13 | float4 inputColor = XfBaseSamplerTEXTURE.Sample(XfBaseSampler_s, v1.xy).xyzw; 14 | 15 | float3 outputColor = pow(max(0, inputColor.rgb), 2.2f); 16 | // Convert to linear 17 | 18 | outputColor.rgb *= injectedData.toneMapUINits; 19 | outputColor.rgb /= 80.f; 20 | return float4(outputColor.rgb, inputColor.a); 21 | } 22 | -------------------------------------------------------------------------------- /src/games/lostplanet/shared.h: -------------------------------------------------------------------------------- 1 | #ifndef SRC_LOSTPLANET_SHARED_H_ 2 | #define SRC_LOSTPLANET_SHARED_H_ 3 | 4 | #ifndef __cplusplus 5 | #include "../../shaders/renodx.hlsl" 6 | #endif 7 | 8 | // Must be 32bit aligned 9 | // Should be 4x32 10 | struct ShaderInjectData { 11 | float toneMapType; 12 | float toneMapPeakNits; 13 | float toneMapGameNits; 14 | float toneMapUINits; 15 | float colorGradeExposure; 16 | float colorGradeHighlights; 17 | float colorGradeShadows; 18 | float colorGradeContrast; 19 | float colorGradeSaturation; 20 | }; 21 | 22 | #endif // SRC_LOSTPLANET_SHARED_H_ 23 | -------------------------------------------------------------------------------- /src/games/lysfanga/UIshadow_0x36588C4F.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | Texture2D t0 : register(t0); 2 | SamplerState s0_s : register(s0); 3 | cbuffer cb0 : register(b0) { 4 | float4 cb0[3]; 5 | } 6 | 7 | void main( 8 | float4 v0: SV_POSITION0, 9 | float4 v1: COLOR0, 10 | float4 v2: TEXCOORD0, 11 | float4 v3: TEXCOORD1, 12 | float4 v4: TEXCOORD2, 13 | out float4 o0: SV_Target0) { 14 | float4 r0; 15 | uint4 bitmask, uiDest; 16 | float4 fDest; 17 | 18 | r0.xyzw = t0.Sample(s0_s, v2.xy).xyzw; 19 | r0.xyzw = cb0[2].xyzw + r0.xyzw; 20 | o0.xyzw = v1.xyzw * r0.xyzw; 21 | o0 = saturate(o0); 22 | return; 23 | } 24 | -------------------------------------------------------------------------------- /src/games/lysfanga/final_0x20133A8B.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | SamplerState BlitSampler_s : register(s0); 4 | Texture2D BlitTexture : register(t0); 5 | 6 | void main( 7 | float2 v0: TEXCOORD0, 8 | float4 v1: SV_POSITION0, 9 | out float4 o0: SV_Target0) { 10 | o0.xyzw = BlitTexture.Sample(BlitSampler_s, v0.xy).xyzw; 11 | o0.rgb = FinalizeOutput(o0.rgb); 12 | return; 13 | } 14 | -------------------------------------------------------------------------------- /src/games/mafiade/swap_chain_proxy_pixel_shader.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | SamplerState sourceSampler_s : register(s0); 4 | Texture2D sourceTexture : register(t0); 5 | 6 | void main( 7 | float4 vpos : SV_Position, 8 | float2 texcoord : TEXCOORD, 9 | out float4 output : SV_Target0) 10 | { 11 | float4 color = sourceTexture.Sample(sourceSampler_s, texcoord.xy); 12 | color.rgb = FinalizeOutput(color.rgb); 13 | output.rgba = color; 14 | } -------------------------------------------------------------------------------- /src/games/mafiade/swap_chain_proxy_vertex_shader.vs_5_0.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id : SV_VERTEXID, out float4 pos : SV_POSITION, out float2 uv : TEXCOORD0) 2 | { 3 | uv.x = (id == 1) ? 2.0 : 0.0; 4 | uv.y = (id == 2) ? 2.0 : 0.0; 5 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 6 | } -------------------------------------------------------------------------------- /src/games/mafiade/videos2_0x00D96EAE.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | Texture2D t0 : register(t0); 2 | SamplerState s0_s : register(s0); 3 | 4 | #define cmp - 5 | 6 | void main( 7 | float4 v0 : SV_Position0, 8 | float4 v1 : VDATA0, 9 | out float4 o0 : SV_Target0) 10 | { 11 | float4 r0; 12 | uint4 bitmask, uiDest; 13 | float4 fDest; 14 | 15 | r0.xyz = t0.Sample(s0_s, v1.xy).xyz; 16 | r0.w = dot(r0.xyz, float3(1,1,1)); 17 | o0.rgb = r0.rgb; 18 | r0.x = cmp(9.99999975e-06 < r0.w); 19 | o0.w = r0.x ? 1.000000 : 0; 20 | return; 21 | } -------------------------------------------------------------------------------- /src/games/maxpayne3/postfx/postfx_0xD3F808EC.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "../common.hlsl" 2 | 3 | SamplerState RenderMapPointSampler_s : register(s1); 4 | Texture2D RenderMapPointSampler : register(t1); 5 | 6 | void main( 7 | float4 v0: SV_Position0, 8 | float2 v1: TEXCOORD0, 9 | float4 v2: COLOR0, 10 | out float4 o0: SV_Target0) { 11 | float4 r0; 12 | 13 | r0.xyz = RenderMapPointSampler.Sample(RenderMapPointSampler_s, v1.xy).xyz; 14 | o0.xyz = v2.xyz * r0.xyz; 15 | o0.w = v2.w; 16 | 17 | o0.rgb = PostFXScale(o0.rgb); 18 | return; 19 | } 20 | -------------------------------------------------------------------------------- /src/games/maxpayne3/swap_chain_proxy_pixel_shader.ps_5_x.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0 : register(s0); 5 | float4 main(float4 vpos: SV_POSITION, float2 uv: TEXCOORD0) 6 | : SV_TARGET { 7 | return renodx::draw::SwapChainPass(t0.Sample(s0, uv)); 8 | } 9 | -------------------------------------------------------------------------------- /src/games/maxpayne3/swap_chain_proxy_vertex_shader.vs_5_x.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id : SV_VERTEXID, out float4 pos : SV_POSITION, 2 | out float2 uv : TEXCOORD0) { 3 | uv.x = (id == 1) ? 2.0 : 0.0; 4 | uv.y = (id == 2) ? 2.0 : 0.0; 5 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 6 | } -------------------------------------------------------------------------------- /src/games/metaphorrefantazio/01_overlays_0x7EB16138.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | // ---- Created with 3Dmigoto v1.3.16 on Thu Sep 26 18:26:06 2024 2 | #include "./shared.h" 3 | 4 | SamplerState diffuseSampler_s : register(s0); 5 | Texture2D diffuseTexture : register(t0); 6 | 7 | // 3Dmigoto declarations 8 | #define cmp - 9 | 10 | void main(float4 v0 11 | : SV_POSITION0, float4 v1 12 | : COLOR0, float2 v2 13 | : TEXCOORD0, out float4 o0 14 | : SV_Target0) { 15 | float4 r0, r1; 16 | uint4 bitmask, uiDest; 17 | float4 fDest; 18 | 19 | r0.xyzw = diffuseTexture.Sample(diffuseSampler_s, v2.xy).xyzw; 20 | /* r1.xyz = log2(abs(r0.xyz)); 21 | r1.xyz = float3(2.20000005,2.20000005,2.20000005) * r1.xyz; 22 | r0.xyz = exp2(r1.xyz); */ 23 | r0.rgb = renodx::color::gamma::DecodeSafe(r0.rgb); 24 | 25 | o0.xyzw = v1.xyzw * r0.xyzw; 26 | return; 27 | } -------------------------------------------------------------------------------- /src/games/metaphorrefantazio/shared.h: -------------------------------------------------------------------------------- 1 | #ifndef SRC_METAPHOR_SHARED_H_ 2 | #define SRC_METAPHOR_SHARED_H_ 3 | 4 | #ifndef __cplusplus 5 | #include "../../shaders/renodx.hlsl" 6 | #endif 7 | 8 | // Must be 32bit aligned 9 | // Should be 4x32 10 | struct ShaderInjectData { 11 | float toneMapType; 12 | float toneMapPeakNits; 13 | float toneMapGameNits; 14 | float toneMapUINits; 15 | float toneMapGammaCorrection; 16 | float toneMapHueCorrection; 17 | float colorGradeExposure; 18 | float colorGradeHighlights; 19 | float colorGradeShadows; 20 | float colorGradeContrast; 21 | float colorGradeSaturation; 22 | float colorGradeLUTStrength; 23 | float colorGradeBlowout; 24 | }; 25 | 26 | #ifndef __cplusplus 27 | cbuffer cb13 : register(b13) { 28 | ShaderInjectData injectedData : packoffset(c0); 29 | } 30 | #endif 31 | 32 | #endif // SRC_METAPHOR_SHARED_H_ 33 | -------------------------------------------------------------------------------- /src/games/nfs16/UI_0x314165B5.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | SamplerState mainTextureSampler_s : register(s0); 2 | Texture2D mainTexture : register(t0); 3 | 4 | void main( 5 | float4 v0 : SV_Position0, 6 | float4 v1 : TEXCOORD0, 7 | float4 v2 : TEXCOORD1, 8 | out float4 o0 : SV_Target0) 9 | { 10 | float4 r0; 11 | uint4 bitmask, uiDest; 12 | float4 fDest; 13 | 14 | r0.xyzw = mainTexture.Sample(mainTextureSampler_s, v1.xy).xyzw; 15 | o0.xyzw = v2.xyzw * r0.xyzw; 16 | o0 = saturate(o0); 17 | return; 18 | } -------------------------------------------------------------------------------- /src/games/nfs16/swap_chain_proxy_pixel_shader.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | SamplerState sourceSampler_s : register(s0); 4 | Texture2D sourceTexture : register(t0); 5 | 6 | void main( 7 | float4 vpos: SV_Position, 8 | float2 texcoord: TEXCOORD, 9 | out float4 output: SV_Target0) { 10 | float4 color = sourceTexture.Sample(sourceSampler_s, texcoord.xy); 11 | color.rgb = FinalizeOutput(color.rgb); 12 | output.rgba = color; 13 | } 14 | -------------------------------------------------------------------------------- /src/games/nfs16/swap_chain_proxy_vertex_shader.vs_5_0.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id: SV_VERTEXID, out float4 pos: SV_POSITION, out float2 uv: TEXCOORD0) { 2 | uv.x = (id == 1) ? 2.0 : 0.0; 3 | uv.y = (id == 2) ? 2.0 : 0.0; 4 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 5 | } 6 | -------------------------------------------------------------------------------- /src/games/oblivionremastered/swap_chain_proxy_pixel_shader.ps_5_x.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0 : register(s0); 5 | float4 main(float4 vpos: SV_POSITION, float2 uv: TEXCOORD0) 6 | : SV_TARGET { 7 | return renodx::draw::SwapChainPass(t0.Sample(s0, uv)); 8 | } 9 | -------------------------------------------------------------------------------- /src/games/oblivionremastered/swap_chain_proxy_vertex_shader.vs_5_x.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id : SV_VERTEXID, out float4 pos : SV_POSITION, 2 | out float2 uv : TEXCOORD0) { 3 | uv.x = (id == 1) ? 2.0 : 0.0; 4 | uv.y = (id == 2) ? 2.0 : 0.0; 5 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 6 | } -------------------------------------------------------------------------------- /src/games/opus-eos/LetterBoxShader_0x461C59CD.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | // ---- Created with 3Dmigoto v1.4.1 on Sat Apr 12 14:11:13 2025 4 | Texture2D t0 : register(t0); 5 | SamplerState s0_s : register(s0); 6 | // 3Dmigoto declarations 7 | #define cmp - 8 | void main( 9 | float2 v0: TEXCOORD0, 10 | float4 v1: SV_POSITION0, 11 | out float4 o0: SV_Target0) { 12 | float4 r0; 13 | uint4 bitmask, uiDest; 14 | float4 fDest; 15 | r0.xy = cmp(v0.yx < float2(0, 0)); 16 | r0.zw = cmp(float2(1, 1) < v0.yx); 17 | r0.x = (int)r0.z | (int)r0.x; 18 | r0.x = (int)r0.y | (int)r0.x; 19 | r0.x = (int)r0.w | (int)r0.x; 20 | if (r0.x != 0) { 21 | o0.xyzw = float4(0, 0, 0, 1); 22 | return; 23 | } 24 | r0.xyzw = t0.Sample(s0_s, v0.xy).xyzw; 25 | // Removed saturate() 26 | o0.xyzw = r0.xyzw; 27 | 28 | return; 29 | } 30 | -------------------------------------------------------------------------------- /src/games/opus-eos/swap_chain_proxy_pixel_shader.ps_5_x.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0 : register(s0); 5 | float4 main(float4 vpos: SV_POSITION, float2 uv: TEXCOORD0) 6 | : SV_TARGET { 7 | return renodx::draw::SwapChainPass(t0.Sample(s0, uv)); 8 | } 9 | -------------------------------------------------------------------------------- /src/games/opus-eos/swap_chain_proxy_vertex_shader.vs_5_x.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id : SV_VERTEXID, out float4 pos : SV_POSITION, 2 | out float2 uv : TEXCOORD0) { 3 | uv.x = (id == 1) ? 2.0 : 0.0; 4 | uv.y = (id == 2) ? 2.0 : 0.0; 5 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 6 | } -------------------------------------------------------------------------------- /src/games/ori1definitive/final_0x52BC2F1B.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | Texture2D t0 : register(t0); 3 | 4 | SamplerState s0_s : register(s0); 5 | 6 | cbuffer cb0 : register(b0) { 7 | float4 cb0[25]; 8 | } 9 | 10 | void main( 11 | float4 v0: SV_POSITION0, 12 | float2 v1: TEXCOORD0, 13 | float2 w1: TEXCOORD1, 14 | float2 v2: TEXCOORD2, 15 | out float4 o0: SV_Target0) { 16 | float4 r0; 17 | uint4 bitmask, uiDest; 18 | float4 fDest; 19 | 20 | r0.xyzw = t0.Sample(s0_s, v1.xy).xyzw; 21 | o0.xyz = r0.xyz * cb0[24].xxx + cb0[24].yyy; 22 | o0.w = r0.w; 23 | 24 | o0 = renodx::math::SignPow(o0, 2.2f); 25 | o0.rgb *= RENODX_GRAPHICS_WHITE_NITS / renodx::color::srgb::REFERENCE_WHITE; 26 | o0.rgb = renodx::color::bt709::clamp::BT2020(o0.rgb); 27 | return; 28 | } 29 | -------------------------------------------------------------------------------- /src/games/ori1definitive/video_final_0x591107A5.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | Texture2D t1 : register(t1); 3 | 4 | Texture2D t0 : register(t0); 5 | 6 | SamplerState s1_s : register(s1); 7 | 8 | SamplerState s0_s : register(s0); 9 | 10 | void main( 11 | float4 v0: SV_POSITION0, 12 | float4 v1: COLOR0, 13 | float2 v2: TEXCOORD0, 14 | float2 w2: TEXCOORD1, 15 | out float4 o0: SV_Target0) { 16 | float4 r0; 17 | uint4 bitmask, uiDest; 18 | float4 fDest; 19 | 20 | r0.xyzw = t0.Sample(s0_s, v2.xy).xyzw; 21 | o0.xyz = v1.xyz * r0.xyz; 22 | r0.xyzw = t1.Sample(s1_s, w2.xy).xyzw; 23 | o0.w = v1.w * r0.w; 24 | 25 | o0 = renodx::math::SignPow(o0, 2.2f); 26 | o0.rgb *= RENODX_DIFFUSE_WHITE_NITS / renodx::color::srgb::REFERENCE_WHITE; 27 | o0.rgb = renodx::color::bt709::clamp::BT2020(o0.rgb); 28 | return; 29 | } 30 | -------------------------------------------------------------------------------- /src/games/ori2/shared.h: -------------------------------------------------------------------------------- 1 | #ifndef SRC_ORI2_SHARED_H_ 2 | #define SRC_ORI2_SHARED_H_ 3 | 4 | #ifndef __cplusplus 5 | #include "../../shaders/renodx.hlsl" 6 | #endif 7 | 8 | // Must be 32bit aligned 9 | // Should be 4x32 10 | struct ShaderInjectData { 11 | float toneMapType; 12 | float toneMapPeakNits; 13 | float toneMapGameNits; 14 | float toneMapHueCorrection; 15 | float toneMapHDRBlendFactor; 16 | float colorGradeStrength; 17 | }; 18 | 19 | #ifndef __cplusplus 20 | cbuffer cb11 : register(b11) { 21 | ShaderInjectData injectedData : packoffset(c0); 22 | } 23 | #endif 24 | 25 | #endif // SRC_ORI2_SHARED_H_ 26 | -------------------------------------------------------------------------------- /src/games/osirisnewdawn/BlitCopyHDRTonemap_0xD02D3BF1.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | Texture2D t0 : register(t0); 2 | SamplerState s0_s : register(s0); 3 | cbuffer cb0 : register(b0) { 4 | float4 cb0[4]; 5 | } 6 | 7 | void main( 8 | float4 v0: SV_POSITION0, 9 | float2 v1: TEXCOORD0, 10 | out float4 o0: SV_Target0) { 11 | float4 r0, r1, r2, r3; 12 | uint4 bitmask, uiDest; 13 | float4 fDest; 14 | 15 | r0.x = 9.99999975e-05 * cb0[3].x; 16 | r1.xyzw = t0.Sample(s0_s, v1.xy).xyzw; 17 | o0.rgba = r1.rgba; 18 | return; 19 | } 20 | -------------------------------------------------------------------------------- /src/games/osirisnewdawn/UIdefault_0x066C98CB.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0_s : register(s0); 5 | cbuffer cb0 : register(b0) { 6 | float4 cb0[4]; 7 | } 8 | 9 | void main( 10 | float4 v0: SV_POSITION0, 11 | float4 v1: COLOR0, 12 | float4 v2: TEXCOORD0, 13 | float4 v3: TEXCOORD1, 14 | float4 v4: TEXCOORD2, 15 | out float4 o0: SV_Target0) { 16 | float4 r0, r1; 17 | uint4 bitmask, uiDest; 18 | float4 fDest; 19 | 20 | r0.x = 255 * v1.w; 21 | r0.x = round(r0.x); 22 | r0.w = 0.00392156886 * r0.x; 23 | r1.xyzw = t0.Sample(s0_s, v2.xy).xyzw; 24 | r1.xyzw = cb0[3].xyzw + r1.xyzw; 25 | r0.xyz = v1.xyz; 26 | r0.xyzw = r1.xyzw * r0.xyzw; 27 | o0.xyz = r0.xyz * r0.www; 28 | o0.w = r0.w; 29 | o0.rgb = UIScale(o0.rgb); 30 | return; 31 | } 32 | -------------------------------------------------------------------------------- /src/games/osirisnewdawn/final_0x20133A8B.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | SamplerState BlitSampler_s : register(s0); 4 | Texture2D BlitTexture : register(t0); 5 | 6 | void main( 7 | float2 v0: TEXCOORD0, 8 | float4 v1: SV_POSITION0, 9 | out float4 o0: SV_Target0) { 10 | o0.xyzw = BlitTexture.Sample(BlitSampler_s, v0.xy).xyzw; 11 | o0.rgb = FinalizeOutput(o0.rgb); 12 | return; 13 | } 14 | -------------------------------------------------------------------------------- /src/games/outerwilds/UIdefault_0x2B868B21.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | Texture2D t0 : register(t0); 4 | 5 | SamplerState s0_s : register(s0); 6 | 7 | cbuffer cb0 : register(b0) { 8 | float4 cb0[4]; 9 | } 10 | 11 | #define cmp - 12 | 13 | void main( 14 | float4 v0: SV_POSITION0, 15 | float4 v1: COLOR0, 16 | float4 v2: TEXCOORD0, 17 | float4 v3: TEXCOORD1, 18 | float4 v4: TEXCOORD2, 19 | out float4 o0: SV_Target0) { 20 | float4 r0; 21 | uint4 bitmask, uiDest; 22 | float4 fDest; 23 | 24 | r0.xyzw = t0.Sample(s0_s, v2.xy).xyzw; 25 | r0.xyzw = cb0[3].xyzw + r0.xyzw; 26 | o0.xyzw = v1.xyzw * r0.xyzw; 27 | o0.rgb = UIScale(o0.rgb); 28 | return; 29 | } 30 | -------------------------------------------------------------------------------- /src/games/outerwilds/shared.h: -------------------------------------------------------------------------------- 1 | #ifndef SRC_OUTER_WILDS_SHARED_H_ 2 | #define SRC_OUTER_WILDS_SHARED_H_ 3 | 4 | #ifndef __cplusplus 5 | #include "../../shaders/renodx.hlsl" 6 | #endif 7 | 8 | // Must be 32bit aligned 9 | // Should be 4x32 10 | struct ShaderInjectData { 11 | float toneMapType; 12 | float toneMapPeakNits; 13 | float toneMapGameNits; 14 | float toneMapUINits; 15 | float colorGradeExposure; 16 | float colorGradeHighlights; 17 | float colorGradeShadows; 18 | float colorGradeContrast; 19 | float colorGradeSaturation; 20 | float colorGradeBlowout; 21 | float colorGradeFlare; 22 | }; 23 | 24 | #ifndef __cplusplus 25 | cbuffer cb13 : register(b13) { 26 | ShaderInjectData injectedData : packoffset(c0); 27 | } 28 | #endif 29 | 30 | #endif // SRC_OUTER_WILDS_SHARED_H_ -------------------------------------------------------------------------------- /src/games/outerwilds/swap_chain_proxy_pixel_shader.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | #include "./shared.h" 3 | 4 | Texture2D t0 : register(t0); 5 | SamplerState s0 : register(s0); 6 | float4 main(float4 vpos: SV_POSITION, float2 uv: TEXCOORD0) 7 | : SV_TARGET { 8 | float4 color = t0.Sample(s0, uv); 9 | color.rgb = FinalizeOutput(color.rgb); 10 | color.a = 1.f; 11 | return color; 12 | } 13 | -------------------------------------------------------------------------------- /src/games/outerwilds/swap_chain_proxy_vertex_shader.vs_4_0.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id : SV_VERTEXID, out float4 pos : SV_POSITION, 2 | out float2 uv : TEXCOORD0) { 3 | uv.x = (id == 1) ? 2.0 : 0.0; 4 | uv.y = (id == 2) ? 2.0 : 0.0; 5 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 6 | } -------------------------------------------------------------------------------- /src/games/p4g/shared.h: -------------------------------------------------------------------------------- 1 | #ifndef SRC_TEMPLATE_SHARED_H_ 2 | #define SRC_TEMPLATE_SHARED_H_ 3 | 4 | #ifndef __cplusplus 5 | #include "../../shaders/renodx.hlsl" 6 | #endif 7 | 8 | // Must be 32bit aligned 9 | // Should be 4x32 10 | struct ShaderInjectData { 11 | float toneMapType; 12 | float toneMapPeakNits; 13 | float toneMapGameNits; 14 | float toneMapUINits; 15 | float toneMapGammaCorrection; 16 | float colorGradeExposure; 17 | float colorGradeHighlights; 18 | float colorGradeShadows; 19 | float colorGradeContrast; 20 | float colorGradeSaturation; 21 | float colorGradeBlowout; 22 | }; 23 | 24 | #ifndef __cplusplus 25 | cbuffer cb13 : register(b13) { 26 | ShaderInjectData injectedData : packoffset(c0); 27 | } 28 | #endif 29 | 30 | #endif // SRC_TEMPLATE_SHARED_H_ 31 | -------------------------------------------------------------------------------- /src/games/p5r/00_clear_0xCF70BF33.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | cbuffer GFD_PSCONST_SYSTEM : register(b0) { 4 | float4 clearColor : packoffset(c0); 5 | float2 resolution : packoffset(c1); 6 | float2 resolutionRev : packoffset(c1.z); 7 | } 8 | 9 | // 3Dmigoto declarations 10 | #define cmp - 11 | 12 | float4 main() : SV_TARGET0 { 13 | if (injectedData.clampState == CLAMP_STATE__MIN_ALPHA) return 1.f; 14 | if (injectedData.clampState == CLAMP_STATE__MAX_ALPHA) return 0.f; 15 | float4 o0 = clearColor; 16 | if (injectedData.clampState == CLAMP_STATE__OUTPUT) { 17 | o0 = saturate(o0); 18 | } 19 | return o0; 20 | } 21 | -------------------------------------------------------------------------------- /src/games/p5r/04_copy_0xB6E26AC7.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | SamplerState diffuseSampler_s : register(s0); 4 | Texture2D diffuseTexture : register(t0); 5 | 6 | void main(float4 v0 : SV_POSITION0, float2 v1 : TEXCOORD0, out float4 o0 : SV_TARGET0) { 7 | float4 r0; 8 | uint4 bitmask, uiDest; 9 | float4 fDest; 10 | 11 | r0.xyzw = diffuseTexture.Sample(diffuseSampler_s, v1.xy).xyzw; 12 | o0.xyzw = r0.xyzw; 13 | o0.a = 1.f; 14 | return; 15 | } 16 | -------------------------------------------------------------------------------- /src/games/p5r/0x_ui_0xCC71BBE3.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | SamplerState diffuseSampler_s : register(s0); 4 | Texture2D diffuseTexture : register(t0); 5 | 6 | float4 main(float4 v0 : SV_POSITION0, float4 v1 : COLOR0, float2 v2 : TEXCOORD0) : SV_TARGET0 { 7 | if (injectedData.clampState == CLAMP_STATE__MIN_ALPHA) return 1.f; 8 | if (injectedData.clampState == CLAMP_STATE__MAX_ALPHA) return 0.f; 9 | 10 | float4 o0 = diffuseTexture.SampleLevel(diffuseSampler_s, v2.xy, 1) * v1; 11 | if (injectedData.clampState == CLAMP_STATE__OUTPUT) { 12 | o0 = saturate(o0); 13 | } 14 | return o0; 15 | } 16 | -------------------------------------------------------------------------------- /src/games/p5r/0x_ui_0xE126DD24.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | float4 main(float4 v0 : SV_POSITION0, float4 v1 : COLOR0) : SV_TARGET0 { 4 | if (injectedData.clampState == CLAMP_STATE__MIN_ALPHA) return 1.f; 5 | if (injectedData.clampState == CLAMP_STATE__MAX_ALPHA) return 0.f; 6 | float4 o0 = v1; 7 | if (injectedData.clampState == CLAMP_STATE__OUTPUT) { 8 | o0 = saturate(o0); 9 | } 10 | return o0; 11 | } 12 | -------------------------------------------------------------------------------- /src/games/p5r_archive/Copy_0xB6E26AC7.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | SamplerState diffuseSampler_s : register(s0); 2 | Texture2D diffuseTexture : register(t0); 3 | 4 | 5 | // 3Dmigoto declarations 6 | #define cmp - 7 | 8 | 9 | void main( 10 | float4 v0 : SV_POSITION0, 11 | float2 v1 : TEXCOORD0, 12 | out float4 o0 : SV_TARGET0) 13 | { 14 | o0 = diffuseTexture.Sample(diffuseSampler_s, v1.xy); 15 | 16 | return; 17 | } -------------------------------------------------------------------------------- /src/games/p5r_archive/UIDrawColor_0xE126DD24.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./p5r.h" 2 | 3 | void main( 4 | float4 v0 : SV_POSITION0, 5 | float4 v1 : COLOR0, 6 | out float4 o0 : SV_TARGET0) 7 | { 8 | o0 = v1; 9 | 10 | return; 11 | } 12 | -------------------------------------------------------------------------------- /src/games/p5r_archive/UIDrawTexture_0xCC71BBE3.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./p5r.h" 2 | 3 | SamplerState diffuseSampler_s : register(s0); 4 | Texture2D diffuseTexture : register(t0); 5 | 6 | void main( 7 | float4 v0 : SV_POSITION0, 8 | float4 v1 : COLOR0, 9 | float2 v2 : TEXCOORD0, 10 | out float4 o0 : SV_TARGET0) 11 | { 12 | float4 r0 = diffuseTexture.Sample(diffuseSampler_s, v2.xy); 13 | r0 = r0 * v1; 14 | 15 | o0 = r0; 16 | 17 | return; 18 | } 19 | -------------------------------------------------------------------------------- /src/games/p5r_archive/X_ClampAlpha_0xFFFFFFFF.cs_5_0.hlsl: -------------------------------------------------------------------------------- 1 | 2 | RWTexture2D targetTexture : register(u0); 3 | 4 | [numthreads(32, 32, 1)] 5 | void main(uint3 dispatchThreadID : SV_DispatchThreadID) 6 | { 7 | // Read the current pixel 8 | float4 pixel = targetTexture[dispatchThreadID.xy]; 9 | 10 | // clamp negative colors and saturate alpha 11 | pixel.rgb = max(0, pixel.rgb); 12 | pixel.a = saturate(pixel.a); 13 | 14 | // Write the modified pixel back to the texture 15 | targetTexture[dispatchThreadID.xy] = pixel; 16 | } 17 | -------------------------------------------------------------------------------- /src/games/p5r_archive/p5r.h: -------------------------------------------------------------------------------- 1 | #ifndef SRC_TEMPLATE_SHARED_H_ 2 | #define SRC_TEMPLATE_SHARED_H_ 3 | 4 | #ifndef __cplusplus 5 | #include "../../shaders/renodx.hlsl" 6 | #endif 7 | 8 | // Must be 32bit aligned 9 | // Should be 4x32 10 | struct ShaderInjectData { 11 | float toneMapType; 12 | float toneMapPeakNits; 13 | float toneMapGameNits; 14 | float toneMapUINits; 15 | float toneMapGammaCorrection; 16 | float colorGradeExposure; 17 | float colorGradeHighlights; 18 | float colorGradeShadows; 19 | float colorGradeContrast; 20 | float colorGradeSaturation; 21 | float colorGradeBlowout; 22 | }; 23 | 24 | #ifndef __cplusplus 25 | cbuffer cb10 : register(b10) { 26 | ShaderInjectData injectedData : packoffset(c0); 27 | } 28 | #endif 29 | 30 | #endif // SRC_TEMPLATE_SHARED_H_ 31 | -------------------------------------------------------------------------------- /src/games/poptlc/LUT_0xFA1EB89D.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "LUTShared.hlsl" 2 | 3 | Texture2D InternalGradingLUT : register(t1); 4 | Texture2D SourceTexture : register(t0); 5 | SamplerState sampler0 : register(s0); // likely bilinear 6 | 7 | // cbuffer cb0 : register(b0) 8 | // { 9 | // float4 cb0[131]; 10 | // } 11 | 12 | void main( 13 | float4 v0 : SV_POSITION0, 14 | float2 v1 : TEXCOORD0, 15 | out float4 outColor : SV_Target0) 16 | { 17 | const float2 inCoords = v1.xy; 18 | 19 | float3 color; 20 | color = GetSceneColor(inCoords, SourceTexture, sampler0); 21 | color = ApplyExposure(color); 22 | color = ApplyLUT(inCoords, color, InternalGradingLUT, sampler0); 23 | 24 | outColor.rgb = color.rgb; 25 | outColor.a = 1; 26 | return; 27 | } -------------------------------------------------------------------------------- /src/games/poptlc/LUT_Bloom_0xA8D65F39.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "LUTShared.hlsl" 2 | 3 | Texture2D InternalGradingLUT : register(t2); 4 | Texture2D BloomTexture : register(t1); 5 | Texture2D SourceTexture : register(t0); 6 | SamplerState sampler0 : register(s0); // likely bilinear 7 | 8 | //cbuffer cb0 : register(b0) 9 | //{ 10 | // float4 cb0[143]; 11 | //} 12 | 13 | void main( 14 | float4 v0 : SV_POSITION0, 15 | float2 v1 : TEXCOORD0, 16 | out float4 outColor : SV_Target0) 17 | { 18 | const float2 inCoords = v1.xy; 19 | 20 | float3 color; 21 | color = GetSceneColor(inCoords, SourceTexture, sampler0); 22 | color = ApplyBloom(inCoords, color, BloomTexture, sampler0); 23 | color = ApplyExposure(color); 24 | color = ApplyLUT(inCoords, color, InternalGradingLUT, sampler0); 25 | 26 | outColor.rgb = color.rgb; 27 | outColor.a = 1; 28 | return; 29 | } -------------------------------------------------------------------------------- /src/games/poptlc/Output_0x20133A8B.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | SamplerState BlitSampler_s : register(s0); 4 | Texture2D BlitTexture : register(t0); 5 | 6 | void main( 7 | float2 v0 : TEXCOORD0, 8 | float4 v1 : SV_POSITION0, 9 | out float4 outColor : SV_Target0) 10 | { 11 | outColor.xyzw = BlitTexture.Sample(BlitSampler_s, v0.xy).xyzw; 12 | 13 | // fix mismatch 14 | if (injectedData.fixGammaMismatch) { 15 | float3 colInExcess = outColor.rgb - saturate(outColor.rgb); 16 | outColor.rgb = pow(renodx::color::srgb::from::BT709(saturate(outColor.rgb)), 2.2); 17 | outColor.rgb += colInExcess; 18 | } 19 | 20 | outColor.rgb *= injectedData.toneMapGameNits / 80.f; 21 | return; 22 | } -------------------------------------------------------------------------------- /src/games/poptlc/shared.h: -------------------------------------------------------------------------------- 1 | #ifndef SRC_TEMPLATE_SHARED_H_ 2 | #define SRC_TEMPLATE_SHARED_H_ 3 | 4 | #ifndef __cplusplus 5 | #include "../../shaders/renodx.hlsl" 6 | #endif 7 | 8 | // Must be 32bit aligned 9 | // Should be 4x32 10 | struct ShaderInjectData { 11 | float toneMapType; 12 | float toneMapPeakNits; 13 | float toneMapGameNits; 14 | float diceShoulderStart; 15 | float hueCorrectionStrength; 16 | float lutExtrapolation; 17 | float fixGammaMismatch; 18 | }; 19 | 20 | #ifndef __cplusplus 21 | cbuffer cb13 : register(b13) { 22 | ShaderInjectData injectedData : packoffset(c0); 23 | } 24 | #endif 25 | 26 | #endif // SRC_TEMPLATE_SHARED_H_ 27 | -------------------------------------------------------------------------------- /src/games/rdr1/shared.h: -------------------------------------------------------------------------------- 1 | #ifndef SRC_RDR1_SHARED_H_ 2 | #define SRC_RDR1_SHARED_H_ 3 | 4 | #ifndef __cplusplus 5 | #include "../../shaders/renodx.hlsl" 6 | #endif 7 | 8 | // Must be 32bit aligned 9 | // Should be 4x32 10 | struct ShaderInjectData { 11 | float toneMapType; 12 | float toneMapPeakNits; 13 | float toneMapHueCorrection; 14 | }; 15 | 16 | #ifndef __cplusplus 17 | cbuffer injectedBuffer : register(b0,space50) { 18 | ShaderInjectData injectedData : packoffset(c0); 19 | } 20 | #endif 21 | 22 | #endif // SRC_RDR1_SHARED_H_ -------------------------------------------------------------------------------- /src/games/re2remake/shared.h: -------------------------------------------------------------------------------- 1 | #ifndef SRC_RE2REMAKE_SHARED_H_ 2 | #define SRC_RE2REMAKE_SHARED_H_ 3 | 4 | #ifndef __cplusplus 5 | #include "../../shaders/renodx.hlsl" 6 | #endif 7 | 8 | #endif // SRC_RE2REMAKE_SHARED_H_ -------------------------------------------------------------------------------- /src/games/re3remake/shared.h: -------------------------------------------------------------------------------- 1 | #ifndef SRC_RE2REMAKE_SHARED_H_ 2 | #define SRC_RE2REMAKE_SHARED_H_ 3 | 4 | #ifndef __cplusplus 5 | #include "../../shaders/renodx.hlsl" 6 | #endif 7 | 8 | #endif // SRC_RE2REMAKE_SHARED_H_ -------------------------------------------------------------------------------- /src/games/re4remake/shared.h: -------------------------------------------------------------------------------- 1 | #ifndef SRC_RE4REMAKE_SHARED_H_ 2 | #define SRC_RE4REMAKE_SHARED_H_ 3 | 4 | #ifndef __cplusplus 5 | #include "../../shaders/renodx.hlsl" 6 | #endif 7 | 8 | // Must be 32bit aligned 9 | // Should be 4x32 10 | struct ShaderInjectData { 11 | float toneMapType; 12 | float toneMapGammaCorrection; 13 | float toneMapGammaAdjust; 14 | float colorGradeHighlightContrast; 15 | float colorGradeToeAdjustmentType; 16 | float colorGradeShadowToe; 17 | float colorGradeLUTStrength; 18 | float colorGradeLUTScaling; 19 | float processingInternalSampling; 20 | }; 21 | 22 | #ifndef __cplusplus 23 | cbuffer injectedBuffer : register(b0, space50) { 24 | ShaderInjectData injectedData : packoffset(c0); 25 | } 26 | #endif 27 | 28 | #endif // SRC_RE4REMAKE_SHARED_H_ -------------------------------------------------------------------------------- /src/games/re7/shared.h: -------------------------------------------------------------------------------- 1 | #ifndef SRC_RE7_SHARED_H_ 2 | #define SRC_RE7_SHARED_H_ 3 | 4 | #ifndef __cplusplus 5 | #include "../../shaders/renodx.hlsl" 6 | #endif 7 | 8 | #endif // SRC_RE7_SHARED_H_ -------------------------------------------------------------------------------- /src/games/reka/final_0x20133A8B.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | SamplerState BlitSampler_s : register(s0); 4 | Texture2D BlitTexture : register(t0); 5 | 6 | void main( 7 | float2 v0 : TEXCOORD0, 8 | float4 v1 : SV_POSITION0, 9 | out float4 o0 : SV_Target0) 10 | { 11 | o0.xyzw = BlitTexture.Sample(BlitSampler_s, v0.xy).xyzw; 12 | o0.rgb = FinalizeOutput(o0.rgb); 13 | return; 14 | } -------------------------------------------------------------------------------- /src/games/reveil/final_0x20133A8B.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | SamplerState BlitSampler_s : register(s0); 4 | Texture2D BlitTexture : register(t0); 5 | 6 | void main( 7 | float2 v0: TEXCOORD0, 8 | float4 v1: SV_POSITION0, 9 | out float4 o0: SV_Target0) { 10 | o0.xyzw = BlitTexture.Sample(BlitSampler_s, v0.xy).xyzw; 11 | o0.rgb = FinalizeOutput(o0.rgb); 12 | return; 13 | } 14 | -------------------------------------------------------------------------------- /src/games/reveil/videos_0x8A6BCB4C.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | Texture2D t0 : register(t0); 2 | SamplerState s0_s : register(s0); 3 | cbuffer cb0 : register(b0) { 4 | float4 cb0[3]; 5 | } 6 | 7 | void main( 8 | float4 v0: SV_POSITION0, 9 | float2 v1: TEXCOORD0, 10 | out float4 o0: SV_Target0) { 11 | float4 r0; 12 | uint4 bitmask, uiDest; 13 | float4 fDest; 14 | 15 | r0.xyzw = t0.Sample(s0_s, v1.xy).xyzw; 16 | o0.w = cb0[2].x * r0.w; 17 | o0.xyz = r0.xyz; 18 | o0 = saturate(o0); 19 | return; 20 | } 21 | -------------------------------------------------------------------------------- /src/games/revillage/shared.h: -------------------------------------------------------------------------------- 1 | #ifndef SRC_REVILLAGE_SHARED_H_ 2 | #define SRC_REVILLAGE_SHARED_H_ 3 | 4 | #ifndef __cplusplus 5 | #include "../../shaders/renodx.hlsl" 6 | #endif 7 | 8 | #endif // SRC_REVILLAGE_SHARED_H_ -------------------------------------------------------------------------------- /src/games/risetombraider/bloom_0x0971078C.ps_5_x.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | SamplerState SamplerGenericBilinearClamp_s : register(s13); 4 | Texture2D textureMap : register(t0); 5 | Texture2D scatterMap : register(t1); 6 | 7 | 8 | // 3Dmigoto declarations 9 | #define cmp - 10 | 11 | 12 | void main( 13 | float4 v0 : SV_POSITION0, 14 | float2 v1 : TEXCOORD0, 15 | out float4 o0 : SV_Target0) 16 | { 17 | float4 r0,r1; 18 | uint4 bitmask, uiDest; 19 | float4 fDest; 20 | 21 | r0.xyzw = textureMap.SampleLevel(SamplerGenericBilinearClamp_s, v1.xy, 0).xyzw; 22 | r1.xyzw = scatterMap.SampleLevel(SamplerGenericBilinearClamp_s, v1.xy, 0).xyzw; 23 | o0.xyz = r1.xyz + r0.xyz; 24 | o0.rgb *= CUSTOM_BLOOM; 25 | o0.w = 1; 26 | return; 27 | } -------------------------------------------------------------------------------- /src/games/risetombraider/final_copy_0x2082055F.ps_5_x.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | cbuffer ColorConstantBuffer : register(b0) { 4 | float4 pixelColor : packoffset(c0); 5 | } 6 | 7 | // 3Dmigoto declarations 8 | #define cmp - 9 | 10 | void main( 11 | float4 v0: SV_POSITION0, 12 | float2 v1: TEXCOORD0, 13 | out float4 o0: SV_TARGET0) { 14 | o0.xyzw = pixelColor.xyzw; 15 | o0.rgb = renodx::draw::SwapChainPass(o0.rgb); 16 | return; 17 | } 18 | -------------------------------------------------------------------------------- /src/games/risetombraider/final_copy_0x3D0F897E.ps_5_x.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | cbuffer ColorConstantBuffer : register(b0) { 4 | float4 pixelColor : packoffset(c0); 5 | } 6 | 7 | // 3Dmigoto declarations 8 | #define cmp - 9 | 10 | void main( 11 | float4 v0: SV_POSITION0, 12 | float2 v1: TEXCOORD0, 13 | out float4 o0: SV_TARGET0) { 14 | o0.xyzw = pixelColor.xyzw; 15 | o0.rgb = renodx::draw::SwapChainPass(o0.rgb); 16 | return; 17 | } 18 | -------------------------------------------------------------------------------- /src/games/roadhogengine/gamma_0xC567CE8A.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | Texture2D t0 : register(t0); 2 | SamplerState s4_s : register(s4); 3 | cbuffer cb0 : register(b0){ 4 | float4 cb0[38]; 5 | } 6 | 7 | #define cmp - 8 | 9 | void main( 10 | float4 v0 : SV_Position0, 11 | float4 v1 : COLOR0, 12 | float2 v2 : TEXCOORD0, 13 | out float4 o0 : SV_Target0) 14 | { 15 | float4 r0; 16 | uint4 bitmask, uiDest; 17 | float4 fDest; 18 | 19 | r0.xyzw = t0.Sample(s4_s, v2.xy).xyzw; 20 | r0.xyzw = v1.xyzw * r0.xyzw; 21 | o0.w = r0.w; 22 | o0.rgb = r0.rgb; 23 | return; 24 | } -------------------------------------------------------------------------------- /src/games/roadhogengine/hardresetredux/rip_0x23F2025E.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | Texture2D t0 : register(t0); 2 | SamplerState s3_s : register(s3); 3 | 4 | #define cmp - 5 | 6 | void main( 7 | float4 v0 : SV_Position0, 8 | float4 v1 : COLOR0, 9 | float4 v2 : TEXCOORD0, 10 | out float4 o0 : SV_Target0) 11 | { 12 | float4 r0,r1; 13 | uint4 bitmask, uiDest; 14 | float4 fDest; 15 | 16 | r0.xyzw = t0.Sample(s3_s, v2.xy).xyzw; 17 | r1.x = r0.w * v1.w + -9.99999975e-05; 18 | r0.xyzw = v1.xyzw * r0.xyzw; 19 | o0.xyzw = r0.xyzw; 20 | o0.a = saturate(o0.a); 21 | r0.x = cmp(r1.x < 0); 22 | if (r0.x != 0) discard; 23 | return; 24 | } -------------------------------------------------------------------------------- /src/games/roadhogengine/shadowwarrior2/UI_0x320A7BCC.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | Texture2D t0 : register(t0); 2 | SamplerState s2_s : register(s2); 3 | cbuffer cb0 : register(b0){ 4 | float4 cb0[17]; 5 | } 6 | 7 | void main( 8 | float4 v0 : SV_Position0, 9 | float4 v1 : COLOR0, 10 | float2 v2 : TEXCOORD0, 11 | out float4 o0 : SV_Target0) 12 | { 13 | float4 r0; 14 | uint4 bitmask, uiDest; 15 | float4 fDest; 16 | 17 | r0.xyzw = t0.Sample(s2_s, v2.xy).xyzw; 18 | r0.xyzw = v1.xyzw * r0.xyzw; 19 | o0.xyz = r0.xyz; 20 | o0.w = r0.w; 21 | return; 22 | } -------------------------------------------------------------------------------- /src/games/roadhogengine/shadowwarrior2/UI_0x4D593A55.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | Texture2D t0 : register(t0); 2 | SamplerState s1_s : register(s1); 3 | cbuffer cb1 : register(b1){ 4 | float4 cb1[4]; 5 | } 6 | 7 | void main( 8 | float4 v0 : SV_Position0, 9 | float4 v1 : COLOR0, 10 | float4 v2 : TEXCOORD0, 11 | out float4 o0 : SV_Target0) 12 | { 13 | float4 r0; 14 | uint4 bitmask, uiDest; 15 | float4 fDest; 16 | 17 | r0.xyzw = t0.Sample(s1_s, v2.xy).xyzw; 18 | r0.xyzw = v1.xyzw * r0.xyzw; 19 | o0.xyz = r0.xyz; 20 | o0.w = r0.w; 21 | return; 22 | } -------------------------------------------------------------------------------- /src/games/roadhogengine/shadowwarrior2/UI_0x7DE48FFA.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | Texture2D t0 : register(t0); 2 | SamplerState s2_s : register(s2); 3 | cbuffer cb1 : register(b1){ 4 | float4 cb1[4]; 5 | } 6 | cbuffer cb3 : register(b3){ 7 | float4 cb3[1]; 8 | } 9 | cbuffer cb0 : register(b0){ 10 | float4 cb0[17]; 11 | } 12 | 13 | void main( 14 | float4 v0 : SV_Position0, 15 | float4 v1 : COLOR0, 16 | float2 v2 : TEXCOORD0, 17 | out float4 o0 : SV_Target0) 18 | { 19 | float4 r0; 20 | uint4 bitmask, uiDest; 21 | float4 fDest; 22 | 23 | r0.xyzw = t0.SampleLevel(s2_s, v2.xy, cb1[3].x).xyzw; 24 | r0.xyzw = v1.xyzw * r0.xyzw; 25 | r0.xyz = cb3[0].zzz * r0.xyz; 26 | o0.w = r0.w; 27 | o0.xyz = r0.xyz; 28 | return; 29 | } -------------------------------------------------------------------------------- /src/games/roadhogengine/shadowwarrior2/UI_0xA3A17C66.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | Texture2DArray t0 : register(t0); 2 | SamplerState s3_s : register(s3); 3 | cbuffer cb1 : register(b1){ 4 | float4 cb1[5]; 5 | } 6 | cbuffer cb0 : register(b0){ 7 | float4 cb0[17]; 8 | } 9 | 10 | void main( 11 | float4 v0 : SV_Position0, 12 | float2 v1 : TEXCOORD0, 13 | out float4 o0 : SV_Target0) 14 | { 15 | float4 r0; 16 | uint4 bitmask, uiDest; 17 | float4 fDest; 18 | 19 | r0.xy = v1.xy; 20 | r0.z = cb1[3].x; 21 | r0.xyzw = t0.Sample(s3_s, r0.xyz).xyzw; 22 | o0.w = cb1[4].w * r0.w; 23 | o0.xyz = r0.xyz; 24 | return; 25 | } -------------------------------------------------------------------------------- /src/games/roadhogengine/shadowwarrior2/UI_0xA505992D.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | Texture2D t1 : register(t1); 2 | Texture2DArray t0 : register(t0); 3 | SamplerState s3_s : register(s3); 4 | SamplerState s2_s : register(s2); 5 | cbuffer cb1 : register(b1){ 6 | float4 cb1[5]; 7 | } 8 | cbuffer cb0 : register(b0){ 9 | float4 cb0[17]; 10 | } 11 | 12 | void main( 13 | float4 v0 : SV_Position0, 14 | float2 v1 : TEXCOORD0, 15 | out float4 o0 : SV_Target0) 16 | { 17 | float4 r0,r1; 18 | uint4 bitmask, uiDest; 19 | float4 fDest; 20 | 21 | r0.xy = float2(1,-1) * cb1[4].xy; 22 | r0.x = t1.Sample(s2_s, r0.xy).x; 23 | r1.xy = v1.xy; 24 | r1.z = cb1[3].x; 25 | r1.xyzw = t0.Sample(s3_s, r1.xyz).xyzw; 26 | r0.y = cb1[4].w * r1.w; 27 | o0.xyz = r1.xyz; 28 | o0.w = r0.y * r0.x; 29 | return; 30 | } -------------------------------------------------------------------------------- /src/games/roadhogengine/shadowwarrior2/UI_0xCACDD090.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | cbuffer cb3 : register(b3){ 2 | float4 cb3[1]; 3 | } 4 | cbuffer cb0 : register(b0){ 5 | float4 cb0[17]; 6 | } 7 | 8 | void main( 9 | float4 v0 : SV_Position0, 10 | float4 v1 : COLOR0, 11 | out float4 o0 : SV_Target0) 12 | { 13 | float4 r0; 14 | uint4 bitmask, uiDest; 15 | float4 fDest; 16 | 17 | r0.xyz = cb3[0].zzz * v1.xyz; 18 | o0.xyz = r0.xyz; 19 | o0.w = v1.w; 20 | return; 21 | } -------------------------------------------------------------------------------- /src/games/roadhogengine/shadowwarrior2/UI_0xDB333004.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | Texture2D t1 : register(t1); 2 | Texture2D t0 : register(t0); 3 | SamplerState s6_s : register(s6); 4 | SamplerState s1_s : register(s1); 5 | cbuffer cb1 : register(b1){ 6 | float4 cb1[5]; 7 | } 8 | 9 | #define cmp - 10 | 11 | void main( 12 | float4 v0 : SV_Position0, 13 | float4 v1 : COLOR0, 14 | float4 v2 : TEXCOORD0, 15 | out float4 o0 : SV_Target0) 16 | { 17 | float4 r0; 18 | uint4 bitmask, uiDest; 19 | float4 fDest; 20 | 21 | r0.x = t1.SampleLevel(s6_s, v2.zw, 0).w; 22 | r0.x = -cb1[4].w + r0.x; 23 | r0.x = cmp(r0.x < 0); 24 | if (r0.x != 0) discard; 25 | r0.xyzw = t0.Sample(s1_s, v2.xy).xyzw; 26 | r0.xyzw = v1.xyzw * r0.xyzw; 27 | o0.xyz = r0.xyz; 28 | o0.w = r0.w; 29 | return; 30 | } -------------------------------------------------------------------------------- /src/games/roadhogengine/shadowwarrior2/UI_0xE6D30E69.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | Texture2D t0 : register(t0); 2 | SamplerState s2_s : register(s2); 3 | cbuffer cb3 : register(b3){ 4 | float4 cb3[1]; 5 | } 6 | cbuffer cb0 : register(b0){ 7 | float4 cb0[17]; 8 | } 9 | 10 | void main( 11 | float4 v0 : SV_Position0, 12 | float4 v1 : COLOR0, 13 | float2 v2 : TEXCOORD0, 14 | out float4 o0 : SV_Target0) 15 | { 16 | float4 r0; 17 | uint4 bitmask, uiDest; 18 | float4 fDest; 19 | 20 | r0.xyzw = t0.Sample(s2_s, v2.xy).xyzw; 21 | r0.xyzw = v1.xyzw * r0.xyzw; 22 | r0.xyz = cb3[0].zzz * r0.xyz; 23 | o0.w = r0.w; 24 | o0.xyz = r0.xyz; 25 | return; 26 | } -------------------------------------------------------------------------------- /src/games/roadhogengine/shadowwarrior2/gamma_0xCBB34038.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | 2 | Texture2D t0 : register(t0); 3 | SamplerState s5_s : register(s5); 4 | cbuffer cb0 : register(b0){ 5 | float4 cb0[45]; 6 | } 7 | 8 | void main( 9 | float4 v0 : SV_Position0, 10 | float4 v1 : COLOR0, 11 | float2 v2 : TEXCOORD0, 12 | out float4 o0 : SV_Target0) 13 | { 14 | float4 r0; 15 | uint4 bitmask, uiDest; 16 | float4 fDest; 17 | 18 | r0.xyzw = t0.Sample(s5_s, v2.xy).xyzw; 19 | r0.xyzw = v1.xyzw * r0.xyzw; 20 | o0.w = r0.w; 21 | o0.xyz = r0.xyz; 22 | return; 23 | } -------------------------------------------------------------------------------- /src/games/roadhogengine/shadowwarrior2013/UIinteract_0x6720BADB.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | Texture2D t0 : register(t0); 2 | SamplerState s3_s : register(s3); 3 | cbuffer cb1 : register(b1){ 4 | float4 cb1[3]; 5 | } 6 | 7 | void main( 8 | float4 v0 : SV_Position0, 9 | float2 v1 : TEXCOORD0, 10 | out float4 o0 : SV_Target0) 11 | { 12 | float4 r0,r1,r2,r3; 13 | uint4 bitmask, uiDest; 14 | float4 fDest; 15 | 16 | r0.xyzw = cb1[2].xyzw + v1.xyxy; 17 | r1.xyzw = t0.SampleLevel(s3_s, r0.xy, 0).xyzw; 18 | r0.xyzw = t0.SampleLevel(s3_s, r0.zw, 0).xyzw; 19 | r2.xyzw = -cb1[2].xyzw + v1.xyxy; 20 | r3.xyzw = t0.SampleLevel(s3_s, r2.xy, 0).xyzw; 21 | r2.xyzw = t0.SampleLevel(s3_s, r2.zw, 0).xyzw; 22 | r1.xyz = r3.xyz + r1.xyz; 23 | r0.xyz = r1.xyz + r0.xyz; 24 | r0.xyz = r0.xyz + r2.xyz; 25 | o0.xyz = float3(0.25,0.25,0.25) * r0.xyz; 26 | o0.w = 1; 27 | o0.rgb = saturate(o0.rgb); 28 | return; 29 | } -------------------------------------------------------------------------------- /src/games/roadhogengine/shadowwarrior2013/lensflare_0x3708D87A.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "../common.hlsl" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s3_s : register(s3); 5 | 6 | #define cmp - 7 | 8 | void main( 9 | float4 v0 : SV_Position0, 10 | float4 v1 : TEXCOORD0, 11 | float4 v2 : TEXCOORD1, 12 | out float4 o0 : SV_Target0) 13 | { 14 | float4 r0; 15 | uint4 bitmask, uiDest; 16 | float4 fDest; 17 | 18 | r0.xyzw = t0.Sample(s3_s, v1.xy).xyzw; 19 | r0.w = dot(r0.xyz, float3(1,1,1)); 20 | o0.xyz = v2.xyz * r0.xyz * injectedData.fxLens; 21 | r0.x = -9.99999975e-05 + r0.w; 22 | r0.x = cmp(r0.x < 0); 23 | if (r0.x != 0) discard; 24 | o0.w = 1; 25 | return; 26 | } -------------------------------------------------------------------------------- /src/games/roadhogengine/swap_chain_proxy_pixel_shader.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | SamplerState sourceSampler_s : register(s0); 4 | Texture2D sourceTexture : register(t0); 5 | 6 | void main( 7 | float4 vpos: SV_Position, 8 | float2 texcoord: TEXCOORD, 9 | out float4 output: SV_Target0) { 10 | float4 color = sourceTexture.Sample(sourceSampler_s, texcoord.xy); 11 | color.rgb = FinalizeOutput(color.rgb, injectedData.isLinearSpace); 12 | output.rgba = color; 13 | } 14 | -------------------------------------------------------------------------------- /src/games/roadhogengine/swap_chain_proxy_vertex_shader.vs_5_0.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id: SV_VERTEXID, out float4 pos: SV_POSITION, out float2 uv: TEXCOORD0) { 2 | uv.x = (id == 1) ? 2.0 : 0.0; 3 | uv.y = (id == 2) ? 2.0 : 0.0; 4 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 5 | } 6 | -------------------------------------------------------------------------------- /src/games/scblacklist/common.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | //-----TONEMAP-----// 4 | float3 toneMap(float3 color) { 5 | const float peakWhite = RENODX_PEAK_WHITE_NITS / RENODX_DIFFUSE_WHITE_NITS; 6 | if (peakWhite <= 1.f) return saturate(color); 7 | const float rolloff_start = 1.f; 8 | return renodx::tonemap::ExponentialRollOff(color, rolloff_start, peakWhite); 9 | } 10 | 11 | //-----SCALING-----// 12 | float3 FinalizeOutput(float3 color) { 13 | color = renodx::color::gamma::DecodeSafe(color, 2.2f); 14 | color = renodx::color::bt709::clamp::BT2020(color); 15 | 16 | if (RENODX_TONE_MAP_TYPE == 2.f) { 17 | color = toneMap(color); 18 | } else if (RENODX_TONE_MAP_TYPE == 0.f) { 19 | color = saturate(color); 20 | } 21 | 22 | color *= RENODX_DIFFUSE_WHITE_NITS / 80.f; 23 | return color; 24 | } 25 | -------------------------------------------------------------------------------- /src/games/scblacklist/final_0x1E767A42.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | // ---- Created with 3Dmigoto v1.4.1 on Sat Jan 11 03:31:30 2025 4 | 5 | SamplerState tex_s : register(s0); 6 | Texture2D tex : register(t0); 7 | 8 | // 3Dmigoto declarations 9 | #define cmp - 10 | 11 | void main( 12 | float4 v0: SV_Position0, 13 | float4 v1: TEXCOORD0, 14 | float2 v2: TEXCOORD1, 15 | out float4 o0: SV_Target0) { 16 | float4 r0; 17 | 18 | r0.xyzw = tex.Sample(tex_s, v2.xy).xyzw; 19 | o0.xyzw = v1.xyzw * r0.xyzw; 20 | 21 | o0.rgb = FinalizeOutput(o0.rgb); 22 | return; 23 | } 24 | -------------------------------------------------------------------------------- /src/games/seaofstars/final_0x72B31CDE.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | Texture2D t0 : register(t0); 4 | 5 | SamplerState s0_s : register(s0); 6 | 7 | cbuffer cb0 : register(b0) { 8 | float4 cb0[134]; 9 | } 10 | 11 | // 3Dmigoto declarations 12 | #define cmp - 13 | 14 | float4 main(float4 v0 : SV_POSITION0, float2 v1 : TEXCOORD0) : SV_Target0 { 15 | const float4 inputColor = t0.Sample(s0_s, v1.xy).rgba; 16 | 17 | float3 outputColor = inputColor.rgb; 18 | 19 | if (injectedData.toneMapGammaCorrection) { 20 | outputColor = renodx::color::correct::GammaSafe(outputColor); 21 | } 22 | 23 | outputColor.rgb *= injectedData.toneMapUINits / 80.f; 24 | 25 | return float4(outputColor, inputColor.a); 26 | } 27 | -------------------------------------------------------------------------------- /src/games/seaofthieves/seaofthieves.h: -------------------------------------------------------------------------------- 1 | #ifndef SRC_SHIPOFTHIEVES_SHIPOFTHIEVES_H_ 2 | #define SRC_SHIPOFTHIEVES_SHIPOFTHIEVES_H_ 3 | 4 | #ifndef __cplusplus 5 | #include "../../shaders/renodx.hlsl" 6 | #endif 7 | 8 | // Must be 32bit aligned 9 | // Should be 4x32 10 | struct ShaderInjectData { 11 | }; 12 | 13 | #endif // SRC_SHIPOFTHIEVES_SHIPOFTHIEVES_H_ 14 | -------------------------------------------------------------------------------- /src/games/shadowofwar/bloom_0xA35C971A.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | // ---- Created with 3Dmigoto v1.3.16 on Thu Sep 05 23:49:44 2024 4 | Texture2D t1 : register(t1); 5 | 6 | Texture2D t0 : register(t0); 7 | 8 | SamplerState s0_s : register(s0); 9 | 10 | cbuffer cb3 : register(b3) { 11 | float4 cb3[1]; 12 | } 13 | 14 | // 3Dmigoto declarations 15 | #define cmp - 16 | 17 | void main( 18 | float4 v0: SV_POSITION0, 19 | float2 v1: TEXCOORD0, 20 | uint v2: SV_IsFrontFace0, 21 | out float4 o0: SV_Target0) { 22 | float4 r0, r1; 23 | uint4 bitmask, uiDest; 24 | float4 fDest; 25 | 26 | r0.xy = min(cb3[0].zw, v1.xy); 27 | r1.xyz = t0.SampleLevel(s0_s, r0.xy, 0).xyz; 28 | r0.xyz = t1.SampleLevel(s0_s, r0.xy, 0).xyz; 29 | o0.xyz = max(r1.xyz, r0.xyz) * injectedData.fxBloom; 30 | o0.w = 1; 31 | return; 32 | } 33 | -------------------------------------------------------------------------------- /src/games/shadowofwar/shared.h: -------------------------------------------------------------------------------- 1 | #ifndef SRC_SHADOWOFWAR_SHARED_H_ 2 | #define SRC_SHADOWOFWAR_SHARED_H_ 3 | 4 | #ifndef __cplusplus 5 | #include "../../shaders/renodx.hlsl" 6 | #endif 7 | 8 | // Must be 32bit aligned 9 | // Should be 4x32 10 | struct ShaderInjectData { 11 | float toneMapType; 12 | float toneMapPeakNits; 13 | float toneMapGameNits; 14 | float toneMapUINits; 15 | float fxBloom; 16 | float colorGradeExposure; 17 | float colorGradeHighlights; 18 | float colorGradeShadows; 19 | float colorGradeContrast; 20 | float colorGradeSaturation; 21 | float colorGradeBlowout; 22 | }; 23 | 24 | #ifndef __cplusplus 25 | cbuffer cb11 : register(b11) { 26 | ShaderInjectData injectedData : packoffset(c0); 27 | } 28 | #endif 29 | 30 | #endif // SRC_SHADOWOFWAR_SHARED_H_ 31 | -------------------------------------------------------------------------------- /src/games/shadowsawakening/UIminimap_0x4E43372C.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | Texture2D t1 : register(t1); 4 | Texture2D t0 : register(t0); 5 | SamplerState s1_s : register(s1); 6 | SamplerState s0_s : register(s0); 7 | 8 | #define cmp - 9 | 10 | void main( 11 | float4 v0: SV_POSITION0, 12 | float4 v1: COLOR0, 13 | float2 v2: TEXCOORD0, 14 | out float4 o0: SV_Target0) { 15 | float4 r0, r1; 16 | uint4 bitmask, uiDest; 17 | float4 fDest; 18 | 19 | r0.xyzw = t0.Sample(s0_s, v2.xy).xyzw; 20 | r1.x = r0.w * v1.w + -0.00999999978; 21 | r0.xyzw = v1.xyzw * r0.xyzw; 22 | r1.x = cmp(r1.x < 0); 23 | if (r1.x != 0) discard; 24 | r1.xyzw = t1.Sample(s1_s, v2.xy).xyzw; 25 | r1.x = 1 + -r1.w; 26 | o0.xyzw = r1.xxxx * r0.xyzw; 27 | o0.rgb = UIScale(o0.rgb); 28 | return; 29 | } 30 | -------------------------------------------------------------------------------- /src/games/shadowsawakening/videosopening_0x8A6BCB4C.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0_s : register(s0); 5 | cbuffer cb0 : register(b0) { 6 | float4 cb0[3]; 7 | } 8 | 9 | #define cmp - 10 | 11 | void main( 12 | float4 v0: SV_POSITION0, 13 | float2 v1: TEXCOORD0, 14 | out float4 o0: SV_Target0) { 15 | float4 r0; 16 | uint4 bitmask, uiDest; 17 | float4 fDest; 18 | 19 | r0.xyzw = t0.Sample(s0_s, v1.xy).xyzw; 20 | o0.w = cb0[2].x * r0.w; 21 | o0.xyz = r0.xyz; 22 | if (injectedData.hasLoadedTitleMenu == false) { 23 | o0.rgb = PostToneMapScale(o0.rgb); 24 | } 25 | return; 26 | } 27 | -------------------------------------------------------------------------------- /src/games/shadowtombraider/hdr_gamma_0x5D10D1A2.ps_5_x.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | // ---- Created with 3Dmigoto v1.3.16 on Tue Sep 03 06:54:22 2024 4 | 5 | cbuffer FlipConstantBuffer : register(b0) { 6 | float4 gamma : packoffset(c0); 7 | } 8 | 9 | SamplerState g_Sampler_s : register(s0); 10 | Texture2D g_InputTexture : register(t0); 11 | 12 | // 3Dmigoto declarations 13 | #define cmp - 14 | 15 | void main( 16 | float4 v0: SV_POSITION0, 17 | float2 v1: TEXCOORD0, 18 | out float4 o0: SV_TARGET0) { 19 | float4 r0; 20 | 21 | r0.xyz = g_InputTexture.Sample(g_Sampler_s, v1.xy).xyz; 22 | #if 0 23 | r0.rgb = renodx::math::SignPow(r0.rgb, gamma.y); // in game brightness slider 24 | r0.xyz = gamma.xxx * r0.xyz; // doesn't seem to apply in HDR 25 | #endif 26 | 27 | o0.rgb = r0.rgb; 28 | o0.w = 1; 29 | return; 30 | } 31 | -------------------------------------------------------------------------------- /src/games/silenthill2remake/0x063CCF18.cso: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clshortfuse/renodx/630b6ac9a1566696ea1454fbbe28319329092e6a/src/games/silenthill2remake/0x063CCF18.cso -------------------------------------------------------------------------------- /src/games/silenthill2remake/0x18A5ACE1.cso: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clshortfuse/renodx/630b6ac9a1566696ea1454fbbe28319329092e6a/src/games/silenthill2remake/0x18A5ACE1.cso -------------------------------------------------------------------------------- /src/games/silenthill2remake/0x1BC9EFE2.cso: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clshortfuse/renodx/630b6ac9a1566696ea1454fbbe28319329092e6a/src/games/silenthill2remake/0x1BC9EFE2.cso -------------------------------------------------------------------------------- /src/games/silenthill2remake/0x1E7B589F.cso: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clshortfuse/renodx/630b6ac9a1566696ea1454fbbe28319329092e6a/src/games/silenthill2remake/0x1E7B589F.cso -------------------------------------------------------------------------------- /src/games/silenthill2remake/0x309584F8.cso: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clshortfuse/renodx/630b6ac9a1566696ea1454fbbe28319329092e6a/src/games/silenthill2remake/0x309584F8.cso -------------------------------------------------------------------------------- /src/games/silenthill2remake/0x39235257.cso: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clshortfuse/renodx/630b6ac9a1566696ea1454fbbe28319329092e6a/src/games/silenthill2remake/0x39235257.cso -------------------------------------------------------------------------------- /src/games/silenthill2remake/0x394B5831.cso: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clshortfuse/renodx/630b6ac9a1566696ea1454fbbe28319329092e6a/src/games/silenthill2remake/0x394B5831.cso -------------------------------------------------------------------------------- /src/games/silenthill2remake/0x3CB03848.cso: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clshortfuse/renodx/630b6ac9a1566696ea1454fbbe28319329092e6a/src/games/silenthill2remake/0x3CB03848.cso -------------------------------------------------------------------------------- /src/games/silenthill2remake/0x421733C7.cso: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clshortfuse/renodx/630b6ac9a1566696ea1454fbbe28319329092e6a/src/games/silenthill2remake/0x421733C7.cso -------------------------------------------------------------------------------- /src/games/silenthill2remake/0x43713652.cso: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clshortfuse/renodx/630b6ac9a1566696ea1454fbbe28319329092e6a/src/games/silenthill2remake/0x43713652.cso -------------------------------------------------------------------------------- /src/games/silenthill2remake/0x4B7B660D.cso: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clshortfuse/renodx/630b6ac9a1566696ea1454fbbe28319329092e6a/src/games/silenthill2remake/0x4B7B660D.cso -------------------------------------------------------------------------------- /src/games/silenthill2remake/0x4CC68F73.cso: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clshortfuse/renodx/630b6ac9a1566696ea1454fbbe28319329092e6a/src/games/silenthill2remake/0x4CC68F73.cso -------------------------------------------------------------------------------- /src/games/silenthill2remake/0x507B8FB6.cso: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clshortfuse/renodx/630b6ac9a1566696ea1454fbbe28319329092e6a/src/games/silenthill2remake/0x507B8FB6.cso -------------------------------------------------------------------------------- /src/games/silenthill2remake/0x68E782E2.cso: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clshortfuse/renodx/630b6ac9a1566696ea1454fbbe28319329092e6a/src/games/silenthill2remake/0x68E782E2.cso -------------------------------------------------------------------------------- /src/games/silenthill2remake/0x72A44486.cso: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clshortfuse/renodx/630b6ac9a1566696ea1454fbbe28319329092e6a/src/games/silenthill2remake/0x72A44486.cso -------------------------------------------------------------------------------- /src/games/silenthill2remake/0x77178C51.cso: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clshortfuse/renodx/630b6ac9a1566696ea1454fbbe28319329092e6a/src/games/silenthill2remake/0x77178C51.cso -------------------------------------------------------------------------------- /src/games/silenthill2remake/0x82F211C7.cso: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clshortfuse/renodx/630b6ac9a1566696ea1454fbbe28319329092e6a/src/games/silenthill2remake/0x82F211C7.cso -------------------------------------------------------------------------------- /src/games/silenthill2remake/0x865E53FC.cso: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clshortfuse/renodx/630b6ac9a1566696ea1454fbbe28319329092e6a/src/games/silenthill2remake/0x865E53FC.cso -------------------------------------------------------------------------------- /src/games/silenthill2remake/0x95CC270F.cso: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clshortfuse/renodx/630b6ac9a1566696ea1454fbbe28319329092e6a/src/games/silenthill2remake/0x95CC270F.cso -------------------------------------------------------------------------------- /src/games/silenthill2remake/0x99145AE9.cso: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clshortfuse/renodx/630b6ac9a1566696ea1454fbbe28319329092e6a/src/games/silenthill2remake/0x99145AE9.cso -------------------------------------------------------------------------------- /src/games/silenthill2remake/0x9DF2DDD4.cso: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clshortfuse/renodx/630b6ac9a1566696ea1454fbbe28319329092e6a/src/games/silenthill2remake/0x9DF2DDD4.cso -------------------------------------------------------------------------------- /src/games/silenthill2remake/0x9EB78561.cso: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clshortfuse/renodx/630b6ac9a1566696ea1454fbbe28319329092e6a/src/games/silenthill2remake/0x9EB78561.cso -------------------------------------------------------------------------------- /src/games/silenthill2remake/0xA0A20D27.cso: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clshortfuse/renodx/630b6ac9a1566696ea1454fbbe28319329092e6a/src/games/silenthill2remake/0xA0A20D27.cso -------------------------------------------------------------------------------- /src/games/silenthill2remake/0xBBB5CA7B.cso: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clshortfuse/renodx/630b6ac9a1566696ea1454fbbe28319329092e6a/src/games/silenthill2remake/0xBBB5CA7B.cso -------------------------------------------------------------------------------- /src/games/silenthill2remake/0xBF32ABFA.cso: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clshortfuse/renodx/630b6ac9a1566696ea1454fbbe28319329092e6a/src/games/silenthill2remake/0xBF32ABFA.cso -------------------------------------------------------------------------------- /src/games/silenthill2remake/0xC496B5C3.cso: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clshortfuse/renodx/630b6ac9a1566696ea1454fbbe28319329092e6a/src/games/silenthill2remake/0xC496B5C3.cso -------------------------------------------------------------------------------- /src/games/silenthill2remake/0xDA6D5332.cso: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clshortfuse/renodx/630b6ac9a1566696ea1454fbbe28319329092e6a/src/games/silenthill2remake/0xDA6D5332.cso -------------------------------------------------------------------------------- /src/games/silenthill2remake/0xFDFD3CB7.cso: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clshortfuse/renodx/630b6ac9a1566696ea1454fbbe28319329092e6a/src/games/silenthill2remake/0xFDFD3CB7.cso -------------------------------------------------------------------------------- /src/games/silenthill2remake/shared.h: -------------------------------------------------------------------------------- 1 | #ifndef SRC_GAMES_SILENTHILL2_SHARED_H_ 2 | #define SRC_GAMES_SILENTHILL2_SHARED_H_ 3 | 4 | #ifndef __cplusplus 5 | #include "../../shaders/renodx.hlsl" 6 | #endif 7 | 8 | // Must be 32bit aligned 9 | // Should be 4x32 10 | struct ShaderInjectData { 11 | float type; 12 | float magicNumber; 13 | }; 14 | 15 | #ifndef __cplusplus 16 | cbuffer injectedBuffer : register(b0, space50) { 17 | ShaderInjectData injectedData : packoffset(c0); 18 | } 19 | #endif 20 | 21 | #endif // SRC_GAMES_SILENTHILL2_SHARED_H_ 22 | -------------------------------------------------------------------------------- /src/games/sleepingdogsde/shared.h: -------------------------------------------------------------------------------- 1 | #ifndef SRC_SLEEPINGDOGSDE_SHARED_H_ 2 | #define SRC_SLEEPINGDOGSDE_SHARED_H_ 3 | 4 | #ifndef __cplusplus 5 | #include "../../shaders/renodx.hlsl" 6 | #endif 7 | 8 | // Must be 32bit aligned 9 | // Should be 4x32 10 | struct ShaderInjectData { 11 | float toneMapType; 12 | float toneMapPeakNits; 13 | float toneMapGameNits; 14 | float toneMapUINits; 15 | float toneMapHueCorrection; 16 | float colorGradeExposure; 17 | float colorGradeHighlights; 18 | float colorGradeShadows; 19 | float colorGradeContrast; 20 | float colorGradeSaturation; 21 | float colorGradeBlowout; 22 | float colorGradeLUTStrength; 23 | float colorGradeLUTScaling; 24 | }; 25 | 26 | #ifndef __cplusplus 27 | cbuffer cb13 : register(b13) { 28 | ShaderInjectData injectedData : packoffset(c0); 29 | } 30 | #endif 31 | 32 | #endif // SRC_SLEEPINGDOGSDE_SHARED_H_ 33 | -------------------------------------------------------------------------------- /src/games/sonicgenerations/shared.h: -------------------------------------------------------------------------------- 1 | #ifndef SRC_SONICGENERATIONS_SHARED_H_ 2 | #define SRC_SONICGENERATIONS_SHARED_H_ 3 | 4 | #ifndef __cplusplus 5 | #include "../../shaders/renodx.hlsl" 6 | #endif 7 | 8 | // Must be 32bit aligned 9 | // Should be 4x32 10 | struct ShaderInjectData { 11 | float toneMapType; 12 | float toneMapPeakNits; 13 | float toneMapGameNits; 14 | float toneMapUINits; 15 | float toneMapGammaCorrection; 16 | float colorGradeExposure; 17 | float colorGradeHighlights; 18 | float colorGradeShadows; 19 | float colorGradeContrast; 20 | float colorGradeSaturation; 21 | float fxAutoExposure; 22 | float fxDoF; 23 | float fxBloom; 24 | }; 25 | 26 | #ifndef __cplusplus 27 | cbuffer cb13 : register(b13) { 28 | ShaderInjectData injectedData : packoffset(c0); 29 | } 30 | #endif 31 | 32 | #endif // SRC_SONICGENERATIONS_SHARED_H_ 33 | -------------------------------------------------------------------------------- /src/games/spacemarine2/swap_chain_proxy_pixel_shader.ps_6_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0 : register(s0); 5 | float4 main(float4 vpos: SV_POSITION, float2 uv: TEXCOORD0) 6 | : SV_TARGET { 7 | return renodx::draw::SwapChainPass(t0.Sample(s0, uv)); 8 | } 9 | -------------------------------------------------------------------------------- /src/games/spacemarine2/swap_chain_proxy_vertex_shader.vs_6_0.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id : SV_VERTEXID, out float4 pos : SV_POSITION, 2 | out float2 uv : TEXCOORD0) { 3 | uv.x = (id == 1) ? 2.0 : 0.0; 4 | uv.y = (id == 2) ? 2.0 : 0.0; 5 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 6 | } -------------------------------------------------------------------------------- /src/games/spiderman_2018_miles/shared.h: -------------------------------------------------------------------------------- 1 | #ifndef SRC_SPIDERMAN_2018_MILES_SHARED_H_ 2 | #define SRC_SPIDERMAN_2018_MILES_SHARED_H_ 3 | 4 | #define RENODX_GAMMA_ADJUST_TYPE 1u // 0 - multiplier, 1 - fixed 5 | #define RENODX_GAMMA_ADJUST_VALUE 2.35f // UI paper white slider behavior fixed at 2.35 6 | 7 | #ifndef __cplusplus 8 | 9 | #include "../../shaders/renodx.hlsl" 10 | 11 | #endif 12 | 13 | #endif // SRC_SPIDERMAN_2018_MILES_SHARED_H_ -------------------------------------------------------------------------------- /src/games/stalker2/shared.h: -------------------------------------------------------------------------------- 1 | #ifndef SRC_STALKER2_SHARED_H_ 2 | #define SRC_STALKER2_SHARED_H_ 3 | 4 | #ifndef __cplusplus 5 | #include "../../shaders/renodx.hlsl" 6 | #endif 7 | 8 | // Must be 32bit aligned 9 | // Should be 4x32 10 | struct ShaderInjectData { 11 | float toneMapType; 12 | float toneMapPeakNits; 13 | float toneMapGameNits; 14 | float toneMapUINits; 15 | float toneMapPerChannel; 16 | float radiationOverlayStrength; 17 | float vignetteStrength; 18 | float colorGradeExposure; 19 | float colorGradeHighlights; 20 | float colorGradeShadows; 21 | float colorGradeContrast; 22 | float colorGradeSaturation; 23 | float colorGradeBlowout; 24 | }; 25 | #ifndef __cplusplus 26 | cbuffer injectedBuffer : register(b13, space50) { 27 | ShaderInjectData injectedData : packoffset(c0); 28 | } 29 | #endif 30 | 31 | #endif // SRC_STALKER2_SHARED_H_ 32 | -------------------------------------------------------------------------------- /src/games/starfield/swap_chain_proxy_pixel_shader.ps_6_6.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0 : register(s0); 5 | float4 main(float4 vpos: SV_POSITION, float2 uv: TEXCOORD0) 6 | : SV_TARGET { 7 | return renodx::draw::SwapChainPass(t0.Sample(s0, uv)); 8 | } 9 | -------------------------------------------------------------------------------- /src/games/starfield/swap_chain_proxy_vertex_shader.vs_6_6.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id : SV_VERTEXID, out float4 pos : SV_POSITION, 2 | out float2 uv : TEXCOORD0) { 3 | uv.x = (id == 1) ? 2.0 : 0.0; 4 | uv.y = (id == 2) ? 2.0 : 0.0; 5 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 6 | } -------------------------------------------------------------------------------- /src/games/streetfighter6/common.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | float3 Tonemap(float3 untonemapped, float3 graded) { 4 | float3 color = graded; 5 | if (RENODX_TONE_MAP_TYPE > 0.f) { 6 | color = renodx::draw::ToneMapPass(untonemapped, color); 7 | } 8 | 9 | color = renodx::draw::RenderIntermediatePass(color); 10 | return color; 11 | } 12 | 13 | float3 FinalOutput(float3 final_image) { 14 | final_image = renodx::draw::SwapChainPass(final_image); 15 | 16 | return final_image; 17 | } 18 | -------------------------------------------------------------------------------- /src/games/sunsetoverdrive/copy_0xF7085ACD.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | SamplerState g_CopyBufferMapSampler_s : register(s6); 4 | Texture2D g_CopyBufferMap : register(t6); 5 | 6 | #define cmp - 7 | 8 | void main( 9 | float4 v0 : SV_POSITION0, 10 | float2 v1 : TEXCOORD0, 11 | out float4 o0 : SV_TARGET0) 12 | { 13 | o0.xyzw = g_CopyBufferMap.Sample(g_CopyBufferMapSampler_s, v1.xy).xyzw; 14 | o0.rgb = PostToneMapScale(o0.rgb); 15 | return; 16 | } -------------------------------------------------------------------------------- /src/games/sunsetoverdrive/swap_chain_proxy_pixel_shader.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | SamplerState sourceSampler_s : register(s0); 4 | Texture2D sourceTexture : register(t0); 5 | 6 | void main( 7 | float4 vpos: SV_Position, 8 | float2 texcoord: TEXCOORD, 9 | out float4 output: SV_Target0) { 10 | float4 color = sourceTexture.Sample(sourceSampler_s, texcoord.xy); 11 | color.rgb = FinalizeOutput(color.rgb); 12 | output.rgba = color; 13 | } 14 | -------------------------------------------------------------------------------- /src/games/sunsetoverdrive/swap_chain_proxy_vertex_shader.vs_5_0.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id: SV_VERTEXID, out float4 pos: SV_POSITION, out float2 uv: TEXCOORD0) { 2 | uv.x = (id == 1) ? 2.0 : 0.0; 3 | uv.y = (id == 2) ? 2.0 : 0.0; 4 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 5 | } 6 | -------------------------------------------------------------------------------- /src/games/tacticalbreachwizards/swap_chain_proxy_pixel_shader.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | #include "./shared.h" 3 | 4 | Texture2D t0 : register(t0); 5 | SamplerState s0 : register(s0); 6 | float4 main(float4 vpos: SV_POSITION, float2 uv: TEXCOORD0) 7 | : SV_TARGET { 8 | float4 color = t0.Sample(s0, uv); 9 | color.rgb = FinalizeOutput(color.rgb); 10 | color.a = 1.f; 11 | return color; 12 | } 13 | -------------------------------------------------------------------------------- /src/games/tacticalbreachwizards/swap_chain_proxy_vertex_shader.vs_4_0.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id : SV_VERTEXID, out float4 pos : SV_POSITION, 2 | out float2 uv : TEXCOORD0) { 3 | uv.x = (id == 1) ? 2.0 : 0.0; 4 | uv.y = (id == 2) ? 2.0 : 0.0; 5 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 6 | } -------------------------------------------------------------------------------- /src/games/talesofgracesf/swap_chain_proxy_pixel_shader.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0 : register(s0); 5 | float4 main(float4 vpos: SV_POSITION, float2 uv: TEXCOORD0) 6 | : SV_TARGET { 7 | return renodx::draw::SwapChainPass(t0.Sample(s0, uv)); 8 | } 9 | -------------------------------------------------------------------------------- /src/games/talesofgracesf/swap_chain_proxy_vertex_shader.vs_4_0.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id : SV_VERTEXID, out float4 pos : SV_POSITION, 2 | out float2 uv : TEXCOORD0) { 3 | uv.x = (id == 1) ? 2.0 : 0.0; 4 | uv.y = (id == 2) ? 2.0 : 0.0; 5 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 6 | } -------------------------------------------------------------------------------- /src/games/tekken8/shared.h: -------------------------------------------------------------------------------- 1 | #ifndef SRC_TEKKEN8_SHARED_H_ 2 | #define SRC_TEKKEN8_SHARED_H_ 3 | 4 | #ifndef __cplusplus 5 | #include "../../shaders/renodx.hlsl" 6 | #endif 7 | 8 | // Must be 32bit aligned 9 | // Should be 4x32 10 | struct ShaderInjectData { 11 | float toneMapType; 12 | float toneMapPeakNits; 13 | float toneMapDisplay; 14 | float toneMapGameNits; 15 | float toneMapUINits; 16 | float heroLightStrength; 17 | float colorGradeExposure; 18 | float colorGradeHighlights; 19 | float colorGradeShadows; 20 | float colorGradeContrast; 21 | float colorGradeSaturation; 22 | }; 23 | #ifndef __cplusplus 24 | cbuffer injectedBuffer : register(b13, space50) { 25 | ShaderInjectData injectedData : packoffset(c0); 26 | } 27 | #endif 28 | 29 | #endif // SRC_TEKKEN8_SHARED_H_ 30 | -------------------------------------------------------------------------------- /src/games/tempopo/swap_chain_proxy_pixel_shader.ps_5_x.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0 : register(s0); 5 | float4 main(float4 vpos: SV_POSITION, float2 uv: TEXCOORD0) 6 | : SV_TARGET { 7 | return renodx::draw::SwapChainPass(t0.Sample(s0, uv)); 8 | } 9 | -------------------------------------------------------------------------------- /src/games/tempopo/swap_chain_proxy_vertex_shader.vs_5_x.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id : SV_VERTEXID, out float4 pos : SV_POSITION, 2 | out float2 uv : TEXCOORD0) { 3 | uv.x = (id == 1) ? 2.0 : 0.0; 4 | uv.y = (id == 2) ? 2.0 : 0.0; 5 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 6 | } -------------------------------------------------------------------------------- /src/games/thesurge/swap_chain_proxy_pixel_shader.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | SamplerState sourceSampler_s : register(s0); 4 | Texture2D sourceTexture : register(t0); 5 | 6 | void main( 7 | float4 vpos: SV_Position, 8 | float2 texcoord: TEXCOORD, 9 | out float4 output: SV_Target0) { 10 | float4 color = sourceTexture.Sample(sourceSampler_s, texcoord.xy); 11 | color.rgb = FinalizeOutput(color.rgb); 12 | output.rgba = color; 13 | } 14 | -------------------------------------------------------------------------------- /src/games/thesurge/swap_chain_proxy_vertex_shader.vs_5_0.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id: SV_VERTEXID, out float4 pos: SV_POSITION, out float2 uv: TEXCOORD0) { 2 | uv.x = (id == 1) ? 2.0 : 0.0; 3 | uv.y = (id == 2) ? 2.0 : 0.0; 4 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 5 | } 6 | -------------------------------------------------------------------------------- /src/games/thetownoflight/X_Final_0xFFFFFFFD.vs_5_0.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id: SV_VERTEXID, out float4 pos: SV_POSITION, out float2 uv: TEXCOORD0) { 2 | uv.x = (id == 1) ? 2.0 : 0.0; 3 | uv.y = (id == 2) ? 2.0 : 0.0; 4 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 5 | } 6 | -------------------------------------------------------------------------------- /src/games/thetownoflight/shared.h: -------------------------------------------------------------------------------- 1 | #ifndef SRC_THETOWNOFLIGHT_SHARED_H_ 2 | #define SRC_THETOWNOFLIGHT_SHARED_H_ 3 | 4 | #ifndef __cplusplus 5 | #include "../../shaders/renodx.hlsl" 6 | #endif 7 | 8 | // Must be 32bit aligned 9 | // Should be 4x32 10 | struct ShaderInjectData { 11 | float outputMode; 12 | float toneMapType; 13 | float toneMapPeakNits; 14 | float toneMapGameNits; 15 | float toneMapUINits; 16 | 17 | float isTonemapped; 18 | }; 19 | 20 | #ifndef __cplusplus 21 | cbuffer cb13 : register(b13) { 22 | ShaderInjectData injectedData : packoffset(c0); 23 | } 24 | #endif 25 | 26 | #endif // SRC_THETOWNOFLIGHT_SHARED_H_ 27 | -------------------------------------------------------------------------------- /src/games/tombraider2013/fmv_0xD598975C.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | SamplerState Sampler0_s : register(s0); 4 | Texture2D InstanceTexture0 : register(t0); 5 | 6 | // 3Dmigoto declarations 7 | #define cmp - 8 | 9 | void main( 10 | float4 v0: SV_POSITION0, 11 | float4 v1: COLOR0, 12 | float2 v2: TEXCOORD0, 13 | out float4 o0: SV_Target0) { 14 | float4 r0; 15 | uint4 bitmask, uiDest; 16 | float4 fDest; 17 | 18 | r0.xyzw = InstanceTexture0.Sample(Sampler0_s, v2.xy).xyzw; 19 | o0.xyzw = v1.xyzw * r0.zyxw; 20 | if (CUSTOM_HDR_VIDEOS != 0) { 21 | o0.rgb = renodx::draw::UpscaleVideoPass(o0.rgb); 22 | o0.rgb = renodx::color::srgb::DecodeSafe(o0.rgb); 23 | o0.rgb = renodx::draw::RenderIntermediatePass(o0.rgb); 24 | } 25 | return; 26 | } 27 | -------------------------------------------------------------------------------- /src/games/tombraider2013de/fmv_0x60597EF5.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | SamplerState Sampler0_s : register(s0); 4 | Texture2D InstanceTexture0 : register(t0); 5 | 6 | // 3Dmigoto declarations 7 | #define cmp - 8 | 9 | void main( 10 | float4 v0: SV_POSITION0, 11 | float4 v1: COLOR0, 12 | float2 v2: TEXCOORD0, 13 | out float4 o0: SV_Target0) { 14 | float4 r0; 15 | uint4 bitmask, uiDest; 16 | float4 fDest; 17 | 18 | r0.xyzw = InstanceTexture0.Sample(Sampler0_s, v2.xy).xyzw; 19 | o0.xyzw = v1.xyzw * r0.zyxw; 20 | if (CUSTOM_HDR_VIDEOS != 0) { 21 | o0.rgb = renodx::draw::UpscaleVideoPass(o0.rgb); 22 | o0.rgb = renodx::color::srgb::DecodeSafe(o0.rgb); 23 | o0.rgb = renodx::draw::RenderIntermediatePass(o0.rgb); 24 | } 25 | return; 26 | } 27 | -------------------------------------------------------------------------------- /src/games/tunic/swap_chain_proxy_pixel_shader.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./shared.h" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0 : register(s0); 5 | float4 main(float4 vpos: SV_POSITION, float2 uv: TEXCOORD0) 6 | : SV_TARGET { 7 | return renodx::draw::SwapChainPass(t0.Sample(s0, uv)); 8 | } 9 | -------------------------------------------------------------------------------- /src/games/tunic/swap_chain_proxy_vertex_shader.vs_4_0.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id : SV_VERTEXID, out float4 pos : SV_POSITION, 2 | out float2 uv : TEXCOORD0) { 3 | uv.x = (id == 1) ? 2.0 : 0.0; 4 | uv.y = (id == 2) ? 2.0 : 0.0; 5 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 6 | } -------------------------------------------------------------------------------- /src/games/unchartedlotc/shared.h: -------------------------------------------------------------------------------- 1 | #ifndef SRC_UNCHARTEDLOTC_SHARED_H_ 2 | #define SRC_UNCHARTEDLOTC_SHARED_H_ 3 | 4 | #ifndef __cplusplus 5 | #include "../../shaders/renodx.hlsl" 6 | #endif 7 | 8 | #endif // SRC_UNCHARTEDLOTC_SHARED_H_ -------------------------------------------------------------------------------- /src/games/unrealengine/swapchainproxy/swap_chain_proxy_pixel_shader.ps_5_x.hlsl: -------------------------------------------------------------------------------- 1 | #include "../common.hlsl" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0 : register(s0); 5 | float4 main(float4 vpos: SV_POSITION, float2 uv: TEXCOORD0) 6 | : SV_TARGET { 7 | return renodx::draw::SwapChainPass(t0.Sample(s0, uv)); 8 | } 9 | -------------------------------------------------------------------------------- /src/games/unrealengine/swapchainproxy/swap_chain_proxy_vertex_shader.vs_5_x.hlsl: -------------------------------------------------------------------------------- 1 | void main(uint id : SV_VERTEXID, out float4 pos : SV_POSITION, 2 | out float2 uv : TEXCOORD0) { 3 | uv.x = (id == 1) ? 2.0 : 0.0; 4 | uv.y = (id == 2) ? 2.0 : 0.0; 5 | pos = float4(uv * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); 6 | } -------------------------------------------------------------------------------- /src/games/vrising/final_0x20133A8B.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | SamplerState BlitSampler_s : register(s0); 4 | Texture2D BlitTexture : register(t0); 5 | 6 | void main( 7 | float2 v0: TEXCOORD0, 8 | float4 v1: SV_POSITION0, 9 | out float4 o0: SV_Target0) { 10 | o0.xyzw = BlitTexture.Sample(BlitSampler_s, v0.xy).xyzw; 11 | o0.rgb = FinalizeOutput(o0.rgb); 12 | return; 13 | } 14 | -------------------------------------------------------------------------------- /src/games/vrising/gamma_0xE52188B2.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0_s : register(s0); 5 | cbuffer cb0 : register(b0) { 6 | float4 cb0[6]; 7 | } 8 | 9 | #define cmp - 10 | 11 | void main( 12 | float4 v0: SV_POSITION0, 13 | float4 v1: COLOR0, 14 | float4 v2: TEXCOORD0, 15 | float4 v3: TEXCOORD1, 16 | out float4 o0: SV_Target0) { 17 | float4 r0, r1, r2; 18 | uint4 bitmask, uiDest; 19 | float4 fDest; 20 | 21 | r0.xyzw = t0.Sample(s0_s, v2.xy).xyzw; 22 | r0.xyzw = cb0[5].xyzw + r0.xyzw; 23 | r0.xyzw = v1.xyzw * r0.xyzw; 24 | o0.w = r0.w; 25 | r0.rgb = PostToneMapScale(r0.rgb); 26 | o0.rgb = r0.rgb; 27 | return; 28 | } 29 | -------------------------------------------------------------------------------- /src/games/vrising/videos_0x8A6BCB4C.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0_s : register(s0); 5 | cbuffer cb0 : register(b0) { 6 | float4 cb0[3]; 7 | } 8 | 9 | void main( 10 | float4 v0: SV_POSITION0, 11 | float2 v1: TEXCOORD0, 12 | out float4 o0: SV_Target0) { 13 | float4 r0; 14 | uint4 bitmask, uiDest; 15 | float4 fDest; 16 | 17 | r0.xyzw = t0.Sample(s0_s, v1.xy).xyzw; 18 | o0.w = cb0[2].x * r0.w; 19 | o0.xyz = r0.xyz; 20 | o0.rgb = InverseToneMap(o0.rgb); 21 | return; 22 | } 23 | -------------------------------------------------------------------------------- /src/games/watchdogs/UI_0x18A98259.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0_s : register(s0); 5 | cbuffer cb1 : register(b1){ 6 | float4 cb1[21]; 7 | } 8 | cbuffer cb0 : register(b0){ 9 | float4 cb0[39]; 10 | } 11 | 12 | void main( 13 | float4 v0 : TEXCOORD0, 14 | float2 v1 : TEXCOORD1, 15 | float4 v2 : SV_Position0, 16 | out float4 o0 : SV_Target0) 17 | { 18 | float4 r0,r1; 19 | uint4 bitmask, uiDest; 20 | float4 fDest; 21 | 22 | r0.xyzw = t0.Sample(s0_s, v1.xy).xyzw; 23 | r1.xyzw = v0.xyzw * r0.xyzw; 24 | r0.w = dot(r1.xyz, float3(0.298999995,0.587000012,0.114)); 25 | r0.xyz = v0.xyz * r0.xyz + -r0.www; 26 | r0.xyz = cb1[20].zzz * r0.xyz + r0.www; 27 | r1.xyz = cb0[38].www * r0.xyz; 28 | o0.xyzw = cb1[1].xyzw * r1.xyzw; 29 | o0.rgb = UIScale(o0.rgb); 30 | return; 31 | } -------------------------------------------------------------------------------- /src/games/watchdogs/UI_0x241150DC.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | cbuffer cb0 : register(b0){ 4 | float4 cb0[21]; 5 | } 6 | 7 | void main( 8 | float4 v0 : TEXCOORD0, 9 | float4 v1 : SV_Position0, 10 | out float4 o0 : SV_Target0) 11 | { 12 | float4 r0; 13 | uint4 bitmask, uiDest; 14 | float4 fDest; 15 | 16 | r0.x = dot(v0.xyz, float3(0.298999995,0.587000012,0.114)); 17 | r0.yzw = v0.xyz + -r0.xxx; 18 | r0.xyz = cb0[20].zzz * r0.yzw + r0.xxx; 19 | r0.w = v0.w; 20 | o0.xyzw = cb0[1].xyzw * r0.xyzw; 21 | o0.rgb = UIScale(o0.rgb); 22 | return; 23 | } -------------------------------------------------------------------------------- /src/games/watchdogs/UI_0x3536A197.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0_s : register(s0); 5 | cbuffer cb0 : register(b0){ 6 | float4 cb0[21]; 7 | } 8 | 9 | void main( 10 | float4 v0 : TEXCOORD0, 11 | float2 v1 : TEXCOORD1, 12 | float4 v2 : SV_Position0, 13 | out float4 o0 : SV_Target0) 14 | { 15 | float4 r0,r1; 16 | uint4 bitmask, uiDest; 17 | float4 fDest; 18 | 19 | r0.y = t0.Sample(s0_s, v1.xy).y; 20 | r0.x = 1; 21 | r1.xyzw = v0.xyzw * r0.xxxy; 22 | r0.y = dot(r1.xyz, float3(0.298999995,0.587000012,0.114)); 23 | o0.w = r1.w; 24 | r0.xzw = v0.xyz * r0.xxx + -r0.yyy; 25 | o0.xyz = cb0[20].zzz * r0.xzw + r0.yyy; 26 | o0.rgb = UIScale(o0.rgb); 27 | return; 28 | } -------------------------------------------------------------------------------- /src/games/watchdogs/UI_0x3E3D329A.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0_s : register(s0); 5 | cbuffer cb1 : register(b1){ 6 | float4 cb1[21]; 7 | } 8 | cbuffer cb0 : register(b0){ 9 | float4 cb0[39]; 10 | } 11 | 12 | void main( 13 | float4 v0 : TEXCOORD0, 14 | float2 v1 : TEXCOORD1, 15 | float4 v2 : SV_Position0, 16 | out float4 o0 : SV_Target0) 17 | { 18 | float4 r0,r1; 19 | uint4 bitmask, uiDest; 20 | float4 fDest; 21 | 22 | r0.xyzw = t0.Sample(s0_s, v1.xy).xyzw; 23 | r1.xyzw = v0.xyzw * r0.xyzw; 24 | r0.w = dot(r1.xyz, float3(0.298999995,0.587000012,0.114)); 25 | o0.w = r1.w; 26 | r0.xyz = v0.xyz * r0.xyz + -r0.www; 27 | r0.xyz = cb1[20].zzz * r0.xyz + r0.www; 28 | o0.xyz = cb0[38].www * r0.xyz; 29 | o0.rgb = UIScale(o0.rgb); 30 | return; 31 | } -------------------------------------------------------------------------------- /src/games/watchdogs/UI_0x5A4A5CCB.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0_s : register(s0); 5 | cbuffer cb0 : register(b0){ 6 | float4 cb0[21]; 7 | } 8 | 9 | void main( 10 | float4 v0 : TEXCOORD0, 11 | float2 v1 : TEXCOORD1, 12 | float4 v2 : SV_Position0, 13 | out float4 o0 : SV_Target0) 14 | { 15 | float4 r0,r1,r2; 16 | uint4 bitmask, uiDest; 17 | float4 fDest; 18 | 19 | r0.x = t0.Sample(s0_s, v1.xy).y; 20 | r1.w = r0.x; 21 | r1.x = 1; 22 | r2.xyzw = v0.xyzw * r1.xxxw; 23 | r0.y = dot(r2.xyz, float3(0.298999995,0.587000012,0.114)); 24 | r1.xyz = v0.xyz * r1.xxx + -r0.yyy; 25 | r2.xyz = cb0[20].zzz * r1.xyz + r0.yyy; 26 | r1.xyzw = cb0[0].xyzw + r2.xyzw; 27 | o0.xyzw = (r0.x > 0) ? r1.xyzw : r2.xyzw; 28 | o0.rgb = UIScale(o0.rgb); 29 | return; 30 | } -------------------------------------------------------------------------------- /src/games/watchdogs/UI_0x5AE351F5.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0_s : register(s0); 5 | cbuffer cb0 : register(b0){ 6 | float4 cb0[21]; 7 | } 8 | 9 | void main( 10 | float4 v0 : TEXCOORD0, 11 | float2 v1 : TEXCOORD1, 12 | float4 v2 : SV_Position0, 13 | out float4 o0 : SV_Target0) 14 | { 15 | float4 r0,r1,r2; 16 | uint4 bitmask, uiDest; 17 | float4 fDest; 18 | 19 | r0.xyzw = t0.Sample(s0_s, v1.xy).xyzw; 20 | r1.xyzw = v0.xyzw * r0.xyzw; 21 | r2.x = dot(r1.xyz, float3(0.298999995,0.587000012,0.114)); 22 | r0.xyz = v0.xyz * r0.xyz + -r2.xxx; 23 | r1.xyz = cb0[20].zzz * r0.xyz + r2.xxx; 24 | r2.xyzw = cb0[0].xyzw + r1.xyzw; 25 | o0.xyzw = (r0.w > 0) ? r2.xyzw : r1.xyzw; 26 | o0.rgb = UIScale(o0.rgb); 27 | return; 28 | } -------------------------------------------------------------------------------- /src/games/watchdogs/UI_0xAB1543DA.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0_s : register(s0); 5 | cbuffer cb0 : register(b0){ 6 | float4 cb0[21]; 7 | } 8 | 9 | void main( 10 | float4 v0 : TEXCOORD0, 11 | float2 v1 : TEXCOORD1, 12 | float4 v2 : SV_Position0, 13 | out float4 o0 : SV_Target0) 14 | { 15 | float4 r0,r1; 16 | uint4 bitmask, uiDest; 17 | float4 fDest; 18 | 19 | r0.xyzw = t0.Sample(s0_s, v1.xy).xyzw; 20 | r1.xyzw = v0.xyzw * r0.xyzw; 21 | r0.w = dot(r1.xyz, float3(0.298999995,0.587000012,0.114)); 22 | o0.w = r1.w; 23 | r0.xyz = v0.xyz * r0.xyz + -r0.www; 24 | o0.xyz = cb0[20].zzz * r0.xyz + r0.www; 25 | o0.rgb = UIScale(o0.rgb); 26 | return; 27 | } -------------------------------------------------------------------------------- /src/games/watchdogs/UI_0xB3FD67FA.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0_s : register(s0); 5 | 6 | void main( 7 | float4 v0 : TEXCOORD0, 8 | float2 v1 : TEXCOORD1, 9 | float4 v2 : SV_Position0, 10 | out float4 o0 : SV_Target0) 11 | { 12 | float4 r0; 13 | uint4 bitmask, uiDest; 14 | float4 fDest; 15 | 16 | r0.xyzw = t0.Sample(s0_s, v1.xy).xyzw; 17 | o0.xyzw = v0.xyzw * r0.xyzw; 18 | o0.rgb = UIScale(o0.rgb); 19 | return; 20 | } -------------------------------------------------------------------------------- /src/games/watchdogs/UI_0xBB3A8176.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | Texture2D t1 : register(t1); 4 | Texture2D t0 : register(t0); 5 | SamplerState s1_s : register(s1); 6 | SamplerState s0_s : register(s0); 7 | 8 | void main( 9 | float4 v0 : TEXCOORD0, 10 | float4 v1 : TEXCOORD1, 11 | float2 v2 : TEXCOORD2, 12 | float4 v3 : SV_Position0, 13 | out float4 o0 : SV_Target0) 14 | { 15 | float4 r0,r1; 16 | uint4 bitmask, uiDest; 17 | float4 fDest; 18 | 19 | r0.xy = v1.xy / v1.zz; 20 | r0.x = t0.Sample(s0_s, r0.xy).y; 21 | r1.xyzw = t1.Sample(s1_s, v2.xy).xyzw; 22 | r1.xyzw = v0.xyzw * r1.xyzw; 23 | o0.w = r1.w * r0.x; 24 | o0.xyz = r1.xyz; 25 | o0.rgb = UIScale(o0.rgb); 26 | return; 27 | } -------------------------------------------------------------------------------- /src/games/watchdogs/UI_0xCAAA3088.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | cbuffer cb0 : register(b0){ 4 | float4 cb0[21]; 5 | } 6 | 7 | void main( 8 | float4 v0 : TEXCOORD0, 9 | float4 v1 : SV_Position0, 10 | out float4 o0 : SV_Target0) 11 | { 12 | float4 r0; 13 | uint4 bitmask, uiDest; 14 | float4 fDest; 15 | 16 | r0.x = dot(v0.xyz, float3(0.298999995,0.587000012,0.114)); 17 | r0.yzw = v0.xyz + -r0.xxx; 18 | o0.xyz = cb0[20].zzz * r0.yzw + r0.xxx; 19 | o0.w = v0.w; 20 | o0.rgb = UIScale(o0.rgb); 21 | return; 22 | } -------------------------------------------------------------------------------- /src/games/watchdogs/UI_0xDE7D3985.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0_s : register(s0); 5 | cbuffer cb0 : register(b0){ 6 | float4 cb0[21]; 7 | } 8 | 9 | void main( 10 | float4 v0 : TEXCOORD0, 11 | float2 v1 : TEXCOORD1, 12 | float4 v2 : SV_Position0, 13 | out float4 o0 : SV_Target0) 14 | { 15 | float4 r0,r1; 16 | uint4 bitmask, uiDest; 17 | float4 fDest; 18 | 19 | r0.y = t0.Sample(s0_s, v1.xy).y; 20 | r0.x = 1; 21 | r1.xyzw = v0.xyzw * r0.xxxy; 22 | r0.y = dot(r1.xyz, float3(0.298999995,0.587000012,0.114)); 23 | r0.xzw = v0.xyz * r0.xxx + -r0.yyy; 24 | r1.xyz = cb0[20].zzz * r0.xzw + r0.yyy; 25 | o0.xyzw = cb0[1].xyzw * r1.xyzw; 26 | o0.rgb = UIScale(o0.rgb); 27 | return; 28 | } -------------------------------------------------------------------------------- /src/games/watchdogs/UI_0xE73ECAA8.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | Texture2D t1 : register(t1); 4 | Texture2D t0 : register(t0); 5 | SamplerState s1_s : register(s1); 6 | SamplerState s0_s : register(s0); 7 | cbuffer cb0 : register(b0){ 8 | float4 cb0[18]; 9 | } 10 | 11 | void main( 12 | float4 v0 : TEXCOORD0, 13 | float4 v1 : TEXCOORD1, 14 | float2 v2 : TEXCOORD2, 15 | float4 v3 : SV_Position0, 16 | out float4 o0 : SV_Target0) 17 | { 18 | float4 r0,r1; 19 | uint4 bitmask, uiDest; 20 | float4 fDest; 21 | 22 | r0.xy = v1.xy / v1.zz; 23 | r0.xyz = t0.Sample(s0_s, r0.xy).xyz; 24 | r1.xyzw = t1.Sample(s1_s, v2.xy).xyzw; 25 | r1.xyzw = v0.xyzw * r1.xyzw; 26 | r0.xyz = r1.xyz * r0.xyz; 27 | o0.w = r1.w; 28 | o0.xyz = cb0[17].xxx * r0.xyz; 29 | o0.rgb = UIScale(o0.rgb); 30 | return; 31 | } -------------------------------------------------------------------------------- /src/games/watchdogs/UI_0xF267B0FD.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0_s : register(s0); 5 | cbuffer cb1 : register(b1){ 6 | float4 cb1[21]; 7 | } 8 | cbuffer cb0 : register(b0){ 9 | float4 cb0[39]; 10 | } 11 | 12 | void main( 13 | float4 v0 : TEXCOORD0, 14 | float2 v1 : TEXCOORD1, 15 | float4 v2 : SV_Position0, 16 | out float4 o0 : SV_Target0) 17 | { 18 | float4 r0,r1; 19 | uint4 bitmask, uiDest; 20 | float4 fDest; 21 | 22 | r0.y = t0.Sample(s0_s, v1.xy).y; 23 | r0.x = 1; 24 | r1.xyzw = v0.xyzw * r0.xxxy; 25 | r0.y = dot(r1.xyz, float3(0.298999995,0.587000012,0.114)); 26 | o0.w = r1.w; 27 | r0.xzw = v0.xyz * r0.xxx + -r0.yyy; 28 | r0.xyz = cb1[20].zzz * r0.xzw + r0.yyy; 29 | o0.xyz = cb0[38].www * r0.xyz; 30 | o0.rgb = UIScale(o0.rgb); 31 | return; 32 | } -------------------------------------------------------------------------------- /src/games/watchdogs/UI_0xF66408FD.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | cbuffer cb0 : register(b0){ 4 | float4 cb0[21]; 5 | } 6 | 7 | void main( 8 | float4 v0 : TEXCOORD0, 9 | float4 v1 : SV_Position0, 10 | out float4 o0 : SV_Target0) 11 | { 12 | float4 r0; 13 | uint4 bitmask, uiDest; 14 | float4 fDest; 15 | 16 | r0.x = dot(v0.xyz, float3(0.298999995,0.587000012,0.114)); 17 | r0.yzw = v0.xyz + -r0.xxx; 18 | r0.xyz = cb0[20].zzz * r0.yzw + r0.xxx; 19 | r0.w = v0.w; 20 | o0.xyzw = r0.xyzw * cb0[1].xyzw + cb0[0].xyzw; 21 | o0.rgb = UIScale(o0.rgb); 22 | return; 23 | } -------------------------------------------------------------------------------- /src/games/watchdogs/UI_0xFCF8A953.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0_s : register(s0); 5 | cbuffer cb0 : register(b0){ 6 | float4 cb0[21]; 7 | } 8 | 9 | void main( 10 | float4 v0 : TEXCOORD0, 11 | float2 v1 : TEXCOORD1, 12 | float4 v2 : SV_Position0, 13 | out float4 o0 : SV_Target0) 14 | { 15 | float4 r0,r1,r2; 16 | uint4 bitmask, uiDest; 17 | float4 fDest; 18 | 19 | r0.x = t0.Sample(s0_s, v1.xy).y; 20 | r1.w = r0.x; 21 | r1.x = 1; 22 | r2.xyzw = v0.xyzw * r1.xxxw; 23 | r0.y = dot(r2.xyz, float3(0.298999995,0.587000012,0.114)); 24 | r1.xyz = v0.xyz * r1.xxx + -r0.yyy; 25 | r2.xyz = cb0[20].zzz * r1.xyz + r0.yyy; 26 | r1.xyzw = cb0[1].xyzw * r2.xyzw; 27 | r2.xyzw = r2.xyzw * cb0[1].xyzw + cb0[0].xyzw; 28 | o0.xyzw = (r0.x > 0) ? r2.xyzw : r1.xyzw; 29 | o0.rgb = UIScale(o0.rgb); 30 | return; 31 | } -------------------------------------------------------------------------------- /src/games/watchdogs/profiler_0x8262D185.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | cbuffer cb0 : register(b0){ 4 | float4 cb0[1]; 5 | } 6 | 7 | void main( 8 | float4 v0 : SV_Position0, 9 | out float4 o0 : SV_Target0) 10 | { 11 | float4 r0; 12 | uint4 bitmask, uiDest; 13 | float4 fDest; 14 | 15 | r0.xyzw = float4(-0.5,-0.5,-0.5,-0.5) + cb0[0].xyzw; 16 | o0.xyzw = cb0[0].wwww * r0.xyzw * injectedData.fxProfiler + float4(0.5,0.5,0.5,0.5); 17 | return; 18 | } -------------------------------------------------------------------------------- /src/games/watchdogs/profiler_0xC4817D66.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0_s : register(s0); 5 | cbuffer cb0 : register(b0){ 6 | float4 cb0[1]; 7 | } 8 | 9 | void main( 10 | float2 v0 : TEXCOORD0, 11 | float4 v1 : SV_Position0, 12 | out float4 o0 : SV_Target0) 13 | { 14 | float4 r0,r1; 15 | uint4 bitmask, uiDest; 16 | float4 fDest; 17 | 18 | r0.xyzw = float4(-0.5,-0.5,-0.5,-0.5) + cb0[0].xyzw; 19 | r0.xyzw = cb0[0].wwww * r0.xyzw * injectedData.fxProfiler + float4(0.5,0.5,0.5,0.5); 20 | r1.xyzw = t0.Sample(s0_s, v0.xy).xyzw; 21 | r0.xyzw = r1.xyzw * r0.xyzw; 22 | o0.xyzw = r0.xyzw + r0.xyzw; 23 | return; 24 | } -------------------------------------------------------------------------------- /src/games/watchdogs/worldmap_0x2168D571.ps_5_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | SamplerState PostFxSimple__TextureSampler__SampObj___s : register(s0); 4 | Texture2D PostFxSimple__TextureSampler__TexObj__ : register(t0); 5 | 6 | void main( 7 | float2 v0 : TEXCOORD0, 8 | float4 v1 : SV_Position0, 9 | out float4 o0 : SV_Target0) 10 | { 11 | float4 r0; 12 | uint4 bitmask, uiDest; 13 | float4 fDest; 14 | 15 | r0.xyz = PostFxSimple__TextureSampler__TexObj__.Sample(PostFxSimple__TextureSampler__SampObj___s, v0.xy).xyz; 16 | o0.xyz = r0.xyz; 17 | o0.w = 1; 18 | o0.rgb = PostToneMapScale(o0.rgb); 19 | return; 20 | } -------------------------------------------------------------------------------- /src/games/windblown/UIfastadditive_0xD63FB4E2.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0_s : register(s0); 5 | 6 | cbuffer cb0 : register(b0) { 7 | float4 cb0[4]; 8 | } 9 | 10 | #define cmp - 11 | 12 | void main( 13 | float4 v0: SV_POSITION0, 14 | float4 v1: COLOR0, 15 | float2 v2: TEXCOORD0, 16 | out float4 o0: SV_Target0) { 17 | float4 r0; 18 | uint4 bitmask, uiDest; 19 | float4 fDest; 20 | 21 | r0.xyzw = t0.Sample(s0_s, v2.xy).xyzw * injectedData.fxFlashbang; 22 | r0.xyzw = cb0[3].xyzw + r0.xyzw; 23 | o0.xyzw = v1.xyzw * r0.xyzw; 24 | return; 25 | } 26 | -------------------------------------------------------------------------------- /src/games/windblown/final_0x20133A8B.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | SamplerState BlitSampler_s : register(s0); 4 | Texture2D BlitTexture : register(t0); 5 | 6 | #define cmp - 7 | 8 | void main( 9 | float2 v0: TEXCOORD0, 10 | float4 v1: SV_POSITION0, 11 | out float4 o0: SV_Target0) { 12 | o0.xyzw = BlitTexture.Sample(BlitSampler_s, v0.xy).xyzw; 13 | o0.rgb = FinalizeOutput(o0.rgb); 14 | return; 15 | } 16 | -------------------------------------------------------------------------------- /src/games/windblown/fsr1_0xC244242D.ps_4_0.hlsl: -------------------------------------------------------------------------------- 1 | #include "./common.hlsl" 2 | 3 | Texture2D t0 : register(t0); 4 | SamplerState s0_s : register(s0); 5 | cbuffer cb0 : register(b0){ 6 | float4 cb0[6]; 7 | } 8 | 9 | void main( 10 | float4 v0 : SV_POSITION0, 11 | float2 v1 : TEXCOORD0, 12 | out float4 o0 : SV_Target0) 13 | { 14 | float4 r0; 15 | uint4 bitmask, uiDest; 16 | float4 fDest; 17 | 18 | r0.xyzw = t0.SampleBias(s0_s, v1.xy, cb0[5].x).xyzw; 19 | r0.rgb = renodx::color::bt2020::from::BT709(r0.rgb); 20 | r0.rgb = renodx::color::pq::EncodeSafe(r0.rgb); 21 | o0.xyz = sqrt(r0.xyz); 22 | o0.w = 1; 23 | return; 24 | } -------------------------------------------------------------------------------- /src/games/zelda-eow/0xA380E737.frag.spv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clshortfuse/renodx/630b6ac9a1566696ea1454fbbe28319329092e6a/src/games/zelda-eow/0xA380E737.frag.spv -------------------------------------------------------------------------------- /src/games/zelda-eow/0xF3C7B934.frag.spv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clshortfuse/renodx/630b6ac9a1566696ea1454fbbe28319329092e6a/src/games/zelda-eow/0xF3C7B934.frag.spv -------------------------------------------------------------------------------- /src/reshadefx/RenoDXHelper.addonfx: -------------------------------------------------------------------------------- 1 | #include "ReShade.fxh" 2 | 3 | uniform float RENODX_UI_NITS < 4 | ui_type = "slider"; 5 | ui_min = 48.0; 6 | ui_max = 500.0; 7 | ui_step = 1; 8 | ui_label = "UI Nits"; 9 | hidden = true; 10 | > = 203; 11 | 12 | float3 main(float4 pos : SV_Position, float2 texcoord : TexCoord ) : COLOR { 13 | float3 inputColor = tex2D(ReShade::BackBuffer, texcoord).rgb; 14 | float3 outputColor = inputColor; 15 | outputColor = sign(outputColor) * pow(abs(outputColor), 2.2f); 16 | outputColor *= RENODX_UI_NITS/80.f; 17 | return outputColor; 18 | } 19 | 20 | technique RenoDXHelper < hidden = true; > { 21 | pass { 22 | VertexShader = PostProcessVS; 23 | PixelShader = main; 24 | } 25 | } -------------------------------------------------------------------------------- /src/reshadefx/ShortFuseBT1886For22.fx: -------------------------------------------------------------------------------- 1 | #include "ReShade.fxh" 2 | 3 | float3 main(float4 pos : SV_Position, float2 texcoord : TexCoord) : COLOR { 4 | float3 inputColor = tex2D(ReShade::BackBuffer, texcoord).rgb; 5 | if (BUFFER_COLOR_SPACE > 1) return inputColor; // Skip HDR 6 | return inputColor = pow(inputColor, 2.4f/2.2f); 7 | } 8 | 9 | technique ShortFuseBT1886For22 { 10 | pass { 11 | VertexShader = PostProcessVS; 12 | PixelShader = main; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/shaders/renodx.hlsl: -------------------------------------------------------------------------------- 1 | #ifndef SRC_SHADERS_RENODX_HLSL_ 2 | #define SRC_SHADERS_RENODX_HLSL_ 3 | 4 | #pragma warning(disable: 3571) // pow(f,e) 5 | 6 | #include "./aces.hlsl" 7 | #include "./color.hlsl" 8 | #include "./color_convert.hlsl" 9 | #include "./colorcorrect.hlsl" 10 | #include "./colorgrade.hlsl" 11 | #include "./debug.hlsl" 12 | #include "./DICE.hlsl" 13 | #include "./draw.hlsl" 14 | #include "./effects.hlsl" 15 | #include "./frostbite.hlsl" 16 | #include "./inverse_tonemap.hlsl" 17 | #include "./math.hlsl" 18 | #include "./random.hlsl" 19 | #include "./tonemap.hlsl" 20 | 21 | #include "./deprecated.hlsl" 22 | 23 | #endif // SRC_SHADERS_RENODX_HLSL_ -------------------------------------------------------------------------------- /src/utils/bitwise.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace renodx::utils::bitwise { 4 | template 5 | static bool HasFlag(const T1 a, T2 b) { 6 | return (a & b) == b; 7 | } 8 | 9 | template 10 | static T1 SetFlag(const T1 a, const T2 value) { 11 | return a | value; 12 | } 13 | 14 | template 15 | static T1 UnsetFlag(const T1 a, T2 value) { 16 | return a & ~value; 17 | } 18 | } // namespace renodx::utils::bitwise -------------------------------------------------------------------------------- /src/utils/mutex.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | namespace renodx::utils::mutex { 6 | 7 | static std::shared_mutex global_mutex; 8 | 9 | } // namespace renodx::utils::mutex 10 | --------------------------------------------------------------------------------