Commit Graph

1983 Commits

Author SHA1 Message Date
Ivan Avdeev 90e5500e83 add per-vertex studio model lighting
it doesn't correctly sample lightmaps for env lighting yet. we'll figure this out some time later ....
2021-08-07 19:56:38 -07:00
Ivan Avdeev e6f8d8e47a enable anisotropy if available
also force require vulkan 1.2 for now, need to have 1.0 device for testing lower versions (TODO)
2021-08-07 18:06:48 -07:00
Ivan Avdeev d61dff4849
Merge pull request #24 from w23/hashhub
Better hashes/random for shaders
2021-08-06 12:28:15 -07:00
Ivan Avdeev 27681c1baf
Merge pull request #23 from w23/mips
Add mipmaps for textures
2021-08-06 09:29:16 -07:00
Владислав Сухов 1b20694a1c ci: Fix missing extras in android builds 2021-08-06 13:06:44 +03:00
Ivan Avdeev 0028899eac rtx: add better hashes
from: Mark Jarzynski and Marc Olano, Hash Functions for GPU Rendering, Journal of Computer Graphics Techniques (JCGT), vol. 9, no. 3, 21-38, 2020
http://www.jcgt.org/published/0009/03/02/
2021-08-04 19:32:56 -07:00
Ivan Avdeev 378c1e52e0 enable anisotropy only for rtx
this doesn't make any visible impact for rtx rendering. but does affect non-rtx rendering when running with rtx enabled (kekw)
2021-08-04 18:56:11 -07:00
Ivan Avdeev 94ac51a527 rtx: sample mip levels based on ray cone width
this is mostly copied from ray tracing gems 2 chapter 7 (Texture Coordinate Gradients Estimation for Ray Cones, by Wessam Bahnassi).
There's a weird bit about radians vs degrees. We'll figure it out later when the book becomes available.
2021-08-04 18:36:53 -07:00
Ivan Avdeev 71bf85d4f8 fix mips generation 2021-08-04 17:44:21 -07:00
Ivan Avdeev dbd5a7a2e4 add texture mipmaps
they're still corrupted a bit
2021-08-02 10:55:26 -07:00
SNMetamorph 2db6ad2c8a ref_gl: fixed GL_CheckForErrors doesn't print error message 2021-08-01 22:28:24 +03:00
Ivan Avdeev 074fdf84b4 update todo 2021-07-31 12:43:35 -07:00
Ivan Avdeev fc2c7185df rtx: add basic transparency and reflections
this is very proof-of-concept quality. it should be definitely done some other way

e.g. we should control reflectivity and transparency differently (and not together)
and they should be based on texture ids, not on render_mode

it's also unfortunate that transparency required a lot of bounces. we should probably control transparency bounces separately from light bounces.
alternatively, transparency effects (beams, sprites) should be done with custom intersection shaders and not based on transparent geometry
2021-07-31 12:35:59 -07:00
SNMetamorph 8c351d9255 engine: client: made pfnSPR_Load and pfnSPR_Frames functions as exported 2021-07-31 13:47:43 +03:00
SNMetamorph c4ef42009c engine: client: fixed height argument writing in Con_DrawStringLen 2021-07-31 01:23:56 +03:00
SNMetamorph 8d5426cdcd utils: mdldec: fix of masked_solid texture flag 2021-07-29 13:17:38 +03:00
Alibek Omarov 7b8ec0ad4b engine: server: fix another const qualifier lose 2021-07-20 17:09:16 +03:00
Alibek Omarov 901e52615b engine: fix Com_ParseFile call 2021-07-20 16:26:17 +03:00
Alibek Omarov 88ce5fd0b6 engine: modify NetAPI to follow const qualifiers 2021-07-20 16:10:32 +03:00
Alibek Omarov 588dede2a2 ref_soft: fix pointer-to-int casts 2021-07-20 16:03:35 +03:00
Alibek Omarov 0efc5e82ec engine: fix some const qualifier lose and pointer-to-int casts 2021-07-20 16:03:06 +03:00
Alibek Omarov c3da9d8c8f mainui: update 2021-07-20 16:02:09 +03:00
Alibek Omarov a547526e86 engine: fix some signed char cases 2021-07-20 15:18:55 +03:00
Ivan Avdeev 84b696ca7a
Merge pull request #20 from w23/amd_ray_tracing_fixes
Ray tracing fixes for AMD GPUs, fix #13
2021-07-17 12:57:00 -07:00
Ivan Avdeev 1d94f5da00 rtx: fix c90 compilation errors 2021-07-17 12:40:26 -07:00
Ivan Avdeev c2729c9d63 rtx: fix reflections; update todo 2021-07-17 12:37:12 -07:00
Ivan Avdeev eeb83bd99f rtx: dont trace ray when there's no geometry
We used to dispatch rays anyway even if there was no models to render and tlas wasn't built (which is the case for the first few frames).
This ended up crashing AMD gpu when using some (but not all) variants of rgen shaders.

With this change we'll check for whether there are any models to render, and if there are none, then we'll just clear frame to black.

This change also refactors ray tracing a bit.
2021-07-17 11:45:28 -07:00
Ivan Avdeev 316e77df78 rtx: add alpha mask transparency 2021-07-14 11:54:21 -07:00
Ivan Avdeev d7fc697de4 rtx: HACK: workaround for amd
for some reason amd will lose device whenever the first rendered frame has multiple push-constant-depndent bounces and break on line 138 in rgen.
when both break is commented out and bounces are compile-time constant, it will work just fine.
moreover, if we start xash with the workaround shader, get it to draw a few frames, and only then bring back both break and pc-bounces, recompile and reload shader, it will run just fine. not losing device and all.

wtf
2021-07-14 11:49:37 -07:00
Ivan Avdeev 59361f91cb rtx: remove old compute shader 2021-07-14 10:15:56 -07:00
Ivan Avdeev 4fa079b05a rtx: restore multiple bounces and dlights 2021-07-14 10:10:20 -07:00
Ivan Avdeev 38c636cad4 rtx: make freeman drunk again 2021-07-14 09:48:32 -07:00
Ivan Avdeev 04d92508ae rtx: bring back random sampling lights 2021-07-14 09:43:36 -07:00
Ivan Avdeev caa284f835 rtx: add shadows 2021-07-12 10:59:52 -07:00
Ivan Avdeev 7d6ee9623b rtx: add lighting w/o shadows 2021-07-12 10:42:20 -07:00
Ivan Avdeev d1fe897966 Merge remote-tracking branch 'origin/vulkan' into amd_ray_tracing_fixes 2021-07-12 09:45:26 -07:00
Ivan Avdeev b639aa8bc2
Merge pull request #22 from upstream master w/ github actions
- merge latest upstream master that includes moving from travis to github actions
- implement some vulkan-specific ci build fixes
- disable motomagx as it doesn't build at all and breaks merge checks (does not seem to be vulkan-specific)

this has not been checked functionally yet
2021-07-12 09:38:06 -07:00
Ivan Avdeev def7fac402 rtx: fixup build after merge 2021-07-12 09:23:50 -07:00
Ivan Avdeev a4fd1c1a42 disable motomagx until upstream fixes (or removes) it 2021-07-11 15:54:30 -07:00
Ivan Avdeev 02da9652bf make vulkan deps conditional at configure time 2021-07-11 15:47:51 -07:00
Ivan Avdeev 76d381388b improve vulkan api definitions 2021-07-11 14:07:25 -07:00
Ivan Avdeev 300bd1795c add vulkan-sdk to gha deps 2021-07-11 10:52:14 -07:00
Ivan Avdeev e5f82b1cc3 add VULKAN_SDK_VERSION to github actions 2021-07-11 10:43:47 -07:00
Ivan Avdeev 552e902a03 Merge remote-tracking branch 'upstream/master' into merge-master 2021-07-11 10:33:23 -07:00
Ivan Avdeev 64469b1a3d fix ci build 2021-07-10 12:42:47 -07:00
Ivan Avdeev a46b0dffdc rtx: enable textures
- use non-uniform indexing because AMD requires it (which is technically correct by spec, it's just nvidia that supports it transparently)
- disable immutable samplers, as that breaks filtering on amd for some reason (TODO)
2021-07-10 12:37:14 -07:00
Ivan Avdeev dd6fe33a16 add ghetto device selection, allow skipping first device
device selection should be performed by vulkan physical device index, but we have no way to read numeric cmdline arguments from xash
see #21
2021-07-10 11:34:59 -07:00
Ivan Avdeev d66ee6b3ce rtx: fix hit/miss shader order
also move geometries offsets to ranges struct instead of adding offsets to buffers addresses
2021-07-10 11:06:55 -07:00
SNMetamorph 09d647182d engine: net_encode: equality comparisions replaced with Q_equal macros 2021-07-09 14:57:49 +03:00
SNMetamorph af3c0686c5 engine: mathlib: added Q_equal macros 2021-07-09 14:57:49 +03:00