Commit Graph

3389 Commits

Author SHA1 Message Date
Ivan Avdeev 1f774c6400
Merge significant ray tracer improvements #341 from w23/better-sampling-passes
Initial observation: our vgpr story is abysmal, so need to split the one uber-rt-shader into pieces.

Done here:
- ray tracing pipeline uber shader is split into separate compute phases -> perf x2 (with a possibility of further radical improvements)
- "programmable render": read spirv, extract bindings, auto-create missing resources, etc.
- better light sampling, significant image quality improvements
- better synchronization. cpu can continue preparing the next frame while previous one is still being drawn on GPU
- lots of other small fixes
2023-02-14 13:00:53 -08:00
Ivan 'provod' Avdeev 4dd793569c rt: add alpha-quality alpha blending
Do translucency in bounce stage. It's not great, but lets us see thing through.

Also fix reading OOB uninitialized memory for color/alpha.
2023-02-14 12:55:40 -08:00
Alibek Omarov 21b9f07323 engine: platform: sdl: remove legacy XASH_NANOGL macro from vid code, it's only relevant for ref_gl 2023-02-14 18:52:51 +03:00
Alibek Omarov 0bff62e696 engine: sprite: migrate header to stdint.h, remove usage of enums in data structs for portability, add static sizeof checks 2023-02-14 18:29:27 +03:00
Alibek Omarov 858597832d engine: alias: migrate header to stdint.h, remove usage of enums in data structs for portability, add static sizeof checks 2023-02-14 18:29:18 +03:00
Alibek Omarov 9b0ac7cb32 common: add shared synctype_t definition header, borrowed from Quake's modelgen.h 2023-02-14 18:18:16 +03:00
Alibek Omarov 3c27384b6b filesystem: speedup fs_ext_path case in FS_FindFile 2023-02-13 06:49:52 +03:00
Alibek Omarov 1e8c26a527 filesystem: wad: fix loading WADs by absolute paths 2023-02-13 06:49:29 +03:00
Alibek Omarov f4069de7f2 engine: move SlerpBones, CalcBonePosition/Quaternion from engine to libpublic 2023-02-13 05:23:13 +03:00
Alibek Omarov e95161aa14 filesystem: fix ClearSearchPath 2023-02-12 17:09:53 +03:00
Ivan Avdeev eaf8b3c55a
Merge pull request #421 from w23/denoiser-massage
1. Denoise different channels (diffuse, specular, indirect) differently.
2. Make indirect bounce half res.
2023-02-11 12:39:07 -08:00
Ivan 'provod' Avdeev 64ac964dfc rt: make indirect light run at half res 2023-02-11 12:12:57 -08:00
Ivan 'provod' Avdeev 218bd0a9c2 rt/denoiser: blur different channels differently 2023-02-11 11:36:45 -08:00
Ivan 'provod' Avdeev e9712f36e3 rt/denoiser: split into diffuse/specular/direct/indirect channels
apply to lighting only, not to the final color
2023-02-11 11:06:33 -08:00
Alibek Omarov 0984368a31 engine: server: GoldSrc compliant pfnServerExecute(), don't execute config.cfg for server! 2023-02-11 07:22:04 +03:00
Alibek Omarov f4961d9da7 engine: client: return empty string in pfnGetLevelName if no map is loaded yet 2023-02-11 06:50:46 +03:00
Alibek Omarov f42a174482 engine: client: empty current map name in CL_ClearState 2023-02-11 06:45:20 +03:00
Alibek Omarov 13bf607031 engine: client: call VidInit early in svc_serverdata parsing, GoldSrc compatibility 2023-02-11 06:43:38 +03:00
Alibek Omarov 3cfdb1213b engine: client: consolidate modern and legacy protocol parsing functions, if possible 2023-02-11 06:06:21 +03:00
Alibek Omarov d58105d64d scripts: flatpak: fix Half-Life directory detection 2023-02-11 03:56:40 +03:00
Alibek Omarov 1bdd844860 scripts: flatpak: minimize filesystem permissions, add Steam Flatpak data directory 2023-02-11 03:36:40 +03:00
Alibek Omarov 11f3d97cd7 scripts: flatpak: respect XDG data home in launcher script, add Steam Flatpak data directory 2023-02-11 03:36:40 +03:00
Alibek Omarov fccf044976 engine: initialize network buffers used on player connect and after 2023-02-09 17:57:45 +03:00
Alibek Omarov c23396f533 engine: client: keys: hardcode K_START_BUTTON as escape button, cancelselect doesn't exist anymore and many games seems to use this button for menu access, and back for pause 2023-02-09 06:32:14 +03:00
Alibek Omarov 33c9f7118b engine: platform: sdl: sanitize buttons/axes from SDL, add ABXY->BAYX swap for NSwitch 2023-02-09 06:31:19 +03:00
Alibek Omarov c741ec223f engine: client: keys: reserve some more buttons as gamepad buttons according to latest SDL2 GameController header 2023-02-09 06:30:08 +03:00
Alibek Omarov d6d98bd297 engine: platform: sdl: minor style changes 2023-02-09 05:59:34 +03:00
Alibek Omarov 5e1b5d89f7 engine: client: console: allow opening OSK and existing console with gamepads for all platforms 2023-02-09 05:58:54 +03:00
Alibek Omarov a0edfd28b2 engine: common: host: use DEFAULT_ALLOWCONSOLE macro to set default console state 2023-02-09 05:56:11 +03:00
Alibek Omarov 555fd02407 defaults: reorganize platform default overrides, disable touch for nswitch 2023-02-09 05:55:35 +03:00
Alibek Omarov f7f9cfecfc ci: nswitch: use waf install to copy build artifacts 2023-02-09 05:35:30 +03:00
Alibek Omarov 2aeee59a31 Merge remote-tracking branch 'fgsfds/switch_newer' 2023-02-09 05:18:06 +03:00
Ivan Avdeev 780b225735 mark a bunch of things as done 2023-02-08 14:55:17 -08:00
Ivan Avdeev a46d82f3b5
Merge pull request #419 from w23/bounces
Add indirect illumination
2023-02-08 10:32:02 -08:00
Ivan 'provod' Avdeev 3ecd21a25b rt: simplify bounce computations
use simpler polygon sampling
use smaller texture lods
2023-02-08 10:11:00 -08:00
Ivan 'provod' Avdeev c5a1343fc6 rt: add additive to bounces 2023-02-08 09:44:28 -08:00
Ivan 'provod' Avdeev 5b59c387c1 rt: add emissive to specular bounce
makes it sample skybox, but is probably incorrect in other circumstances
2023-02-08 09:35:21 -08:00
Ivan 'provod' Avdeev 62720a7ed3 rt: fix uninitialized memory denoiser glitches
was reading garbage when ray doesn't hit anything
2023-02-08 09:34:40 -08:00
Ivan 'provod' Avdeev 19c4e2a1d8 rt: add reflections
i was trying to add specular properly: replace them with specular bounce. but it doesn't really work that easily. need some kind of color mapping and figuring out how to make them look consistent.

this commit still does them separately, i.e. specular is done in direct lighting pass. no emissive is added on bounce. this probably makes it not reflect skybox ;_;.
2023-02-08 09:25:40 -08:00
Alibek Omarov 12b8965a8c mainui: update 2023-02-08 20:01:06 +03:00
Alibek Omarov b5b6b8b785 engine: network: fix some unitialized sockaddr_storage's 2023-02-08 20:00:51 +03:00
fgsfds 35e073ceff ci: nswitch: don't forget filesystem_stdio 2023-02-08 01:53:26 +01:00
fgsfds b2cc96cf0d scripts: wscript: nswitch: do the libstdc++ hack right before build to not pollute the environment 2023-02-08 01:37:35 +01:00
fgsfds f7489a3747 scripts: nswitch: it's arm64, not aarch64 2023-02-08 01:04:31 +01:00
fgsfds 0e7ebf6d44 Merge branch 'master' of https://github.com/FWGS/xash3d-fwgs into switch_newer 2023-02-08 00:56:20 +01:00
fgsfds 69607d7890 nswitch: do not link libstdc++ into dynamic libraries
instead only link it to the main executable with --whole-archive, letting the dynamic libs import anything they want from it
2023-02-08 00:52:48 +01:00
fgsfds 4e87eb068a engine: common: nswitch: use #if instead of #ifdef 2023-02-07 23:03:59 +01:00
Alibek Omarov 03a7c67731 public: build: revert arm64 renaming to aarch64, we shouldn't enforce naming changes without a reason 2023-02-08 00:03:15 +03:00
Alibek Omarov 5ba2449d10 engine: common: static-ify functions in mod_studio.c 2023-02-08 00:03:15 +03:00
fgsfds 0ee2fd8a8a ci: nswitch: do not dumb, 00 penalty 2023-02-07 20:52:23 +01:00