Ivan Avdeev
2db83a22a5
vk: profiler: add studio models count metric
2023-03-25 12:03:41 -07:00
Ivan Avdeev
f2ebcd663b
vk: profiler: explicit metric types; also more metrics
2023-03-25 12:03:41 -07:00
Ivan Avdeev
8ecfae5bf0
vk: profiler: simplify metric registration
2023-03-25 12:03:41 -07:00
Ivan Avdeev
cdc2a1258a
vk: profiler: add staging stats
2023-03-25 12:03:41 -07:00
Ivan Avdeev
3b47c7315a
vk: profiler: add dynamic model count
2023-03-25 12:03:41 -07:00
Ivan Avdeev
160a69d2cc
vk: profiler: add BLAS stats
2023-03-25 12:03:41 -07:00
Ivan Avdeev
e0e9305628
vk: profiler: add a way to add arbitrary metrics to profiler
2023-03-25 12:03:41 -07:00
Ivan Avdeev
576b4163b9
vk: profiler: rename slows to speeds (enough kekage)
2023-03-25 12:03:41 -07:00
Ivan 'provod' Avdeev
5f38f3467d
rt: originate ray on the near plane
...
fixes #63
also, compute max distance based on the far plane distance
2023-03-24 14:04:30 -07:00
Ivan 'provod' Avdeev
4a5fc186ea
vk: profiler: fixup incorrect __FUNCTION__ macro usage
...
No idea how it could work before
2023-03-21 11:59:57 -07:00
Ivan Avdeev
e1afb2a9de
vk: profiler: collect and display ref cpu busy and waiting times
2023-03-21 11:59:57 -07:00
Ivan Avdeev
5d23494cfc
vk: profiler: use existing R_SpeedsMessage to display profiling data
2023-03-21 11:59:57 -07:00
Ivan Avdeev
9d8ec1bc9d
vk: profiler: control profiler with r_speeds command
...
use bits to enable particular performance data display:
0 -- off
1 -- simple frame time
2 -- more object count and sizes statistics (TODO)
4 -- overall gpu usage (TODO)
8 -- extended intra-frame data, function times graph, etc
2023-03-21 11:59:57 -07:00
Ivan Avdeev
55af70c422
vk: profiler: remove noisy printf
2023-03-21 11:59:57 -07:00
Ivan Avdeev
bcb1d367b9
vk: profiler: refactor plotting functions slightly
2023-03-21 11:59:57 -07:00
Ivan Avdeev
2b8f74ff0e
vk: profiler: minor cleanup
2023-03-21 11:59:57 -07:00
Ivan 'provod' Avdeev
b4b63492f2
vk: profiler: fixup time scaling on windows
2023-03-21 11:59:57 -07:00
Ivan Avdeev
22d4202ad9
vk: profiler: draw total gpu time
...
Use VK_EXT_calibrated_timestamps to convert to host time.
2023-03-21 11:59:57 -07:00
Ivan Avdeev
a66c44a266
vk: convert query timestamps to ns
...
also, fix linux build
2023-03-21 11:59:57 -07:00
Ivan 'provod' Avdeev
93a539df74
vk: display gpu time taken for a previous frame
...
its value will be incorrect for non-nv cards which have non-1 timestampPeriod
2023-03-21 11:59:57 -07:00
Ivan 'provod' Avdeev
be95b65b22
vk: add better scope macro for profiler
...
also cover synchrnoized slow uploading for staging
2023-03-21 11:59:57 -07:00
Ivan 'provod' Avdeev
9a5e1fec4a
vk: scale profiling bars the same way the font is scale
...
make sizes consistent with the default font on hidpi displays
2023-03-21 11:59:57 -07:00
Ivan Avdeev
2872b4d237
vk: add profiling pause, add swapchain acquire scope
2023-03-21 11:59:57 -07:00
Ivan Avdeev
1c9ff300a9
vk: draw profiler scope blocks
...
also add a couple more scopes to rendering
2023-03-21 11:59:57 -07:00
Ivan Avdeev
be59d1d8e9
vk: tune profiler colors and animation a bit
2023-03-21 11:59:57 -07:00
Ivan Avdeev
39f2d78199
vk: start refactoring profiler
...
Convert direct stack manipulation to simple and cheap event writing.
Draw rudimentary frame times graph.
Related to #412
2023-03-21 11:59:57 -07:00
NightFox
190a691c6d
Add simple soft shadows by @LifeKILLED
...
This is a temporary solution.
2023-03-18 11:39:56 -07:00
NightFox
e5658f59cd
Update rads & patches ( #479 )
2023-03-18 11:38:11 -07:00
Ivan Avdeev
01de5957d8
vk: respect TF_NEAREST/CLAMP/BORDER flags ( #471 )
...
Use these flags to pick the right sampler. Fixes issues with blurry and leaking fonts, lines in main menu tiles, etc.
fixes #439 , fixes #79
2023-03-08 14:16:21 -08:00
Ivan 'provod' Avdeev
6d7fd41494
rt: increase model cache size, fix #449
...
Apparently just increasing the model cache size limit is fine.
"LRU" cache eviction was not even used when testing.
2023-03-04 12:46:37 -08:00
Ivan 'provod' Avdeev
21534c044b
rt: fix uploading too many light cells, fix #451
...
c5a1 has ~230k light cells, and tries to upload 77MiB of them. Previous staging size of 64MiB wasn't enough.
2023-03-04 12:46:37 -08:00
Ivan 'provod' Avdeev
62392ac4b6
rt: increase kusochki limit to 32768, fix #85
...
boot_camp worldmodel has ~11k surfaces, which means it will need at least 22k kusochki for 1:1 static:dynamic split.
2023-03-04 12:46:37 -08:00
Ivan 'provod' Avdeev
c1483216ef
rt: increase MAX_ACCELS to 2048, fix #366
...
test_shaders_room3 has lots of sprites, and currently we create a new BLAS for each sprite.
This is not great, and a proper fix would probably mean consolidating all dynamic transparent things into BLASes per render mode or something. But for now we can just increase the limit
2023-03-04 12:46:37 -08:00
Ivan 'provod' Avdeev
78a1b24e11
rt: enable entity light, fix #115
2023-03-04 12:46:37 -08:00
Ivan 'provod' Avdeev
dc698c16dc
vk: make sure deleted textures are not referenced in staging
...
This fixes -vkvalidate and fixes #464
2023-03-04 12:46:37 -08:00
NightFox
8ed23cb40f
More correct emissive textures ( #456 )
...
Я подобрал новое компромиссное значение которое не требует clamp.
Это не идеально, но пока сойдёт. Может давать немного больше солнечных зайчиков чем с clamp.
Позже надо будет разобраться с самим kusok.emissive.
2023-03-04 09:41:05 -08:00
Ivan Avdeev
d1376a89e4
Merge "Enable live reloading light data" #457
...
- [x] Fixes #417
- [x] Fixes #330
- [x] Fixes #104
2023-03-03 16:50:41 -08:00
Ivan Avdeev
c47c314512
rt: clear geom emissive values prior to loading light data
...
fix #104
2023-03-03 16:41:16 -08:00
Ivan Avdeev
4f2eb7680b
rt: propagate emissive color patches to kusochki
...
Fixes #330
Also, fix incorrect patch application introduced by previous commit, it
would not read the patch color value, and could only switch the light
off.
2023-03-02 23:23:31 -08:00
Ivan Avdeev
a284567002
rt: refactor loading surface lights, fix #417
...
Do not entangle brush model loading with loading surface lights.
Do a separate pass over brush model surfaces for the sole purpose of
finding light sources. Enables consistent live-reloading light data
after patching entities/surface/rad files.
2023-03-02 22:32:08 -08:00
Ivan Avdeev
58c9a9920e
rt: do not allow direct access to pached surfaces
2023-03-02 20:27:18 -08:00
NightFox
ed9a06cae1
Update lighting patches
2023-03-01 22:50:02 -08:00
Ivan 'provod' Avdeev
8a457a17c2
rt: compute tangents for studio models
...
Enables applying normal maps to studio models.
Fixes #220 , fixes #241
2023-03-01 10:47:31 -08:00
Ivan Avdeev
bd2bda9a41
Fix: additive soft particles, skybox shadow
...
Add another flag to kusochki for glow geometry. Move flags to a new kusok.flags field.
- [x] Fixes #231 (or at least makes it not stand out too much)
Fix the way we check for environment/skybox lights, explicitly look for closest hit instead of any.
- [x] Fixes #424 and #413
2023-02-28 18:58:02 -08:00
Ivan 'provod' Avdeev
6b1e84308a
rt: fix checking for skybox shadow intersection
...
Doing tereminate-on-first-hit is incorrect, as we might accidentally hit the skybox geometry first, and consider this as no shadow.
Unfortunately we have to explicitly find a closest hit and check whether that was a skybox.
Maybe there's even a better way, e.g. querying for skybox-only geometry first, and only then checking for a terminate-on-first-hit for everything else. But it likely doesn't matter that much, and would need profiling anyway.
Fixes #424 and #413
2023-02-28 18:50:07 -08:00
Ivan 'provod' Avdeev
59e8a8c4c3
rt: only overshoot additive for glow mode
...
Add another flag to kusochki for glow geometry.
Move flags to a new kusok.flags field.
Fixes #231 (or at least makes it not stand out too much)
2023-02-28 17:50:50 -08:00
Ivan Avdeev
149dc7cade
Merge pull request #446 from LifeKILLED/reprojection-fix
...
vk rt: fix reprojection
Right way to put previous model matrix
Fix bad index of previous frame
Fallback to current frame if previous frames are outdated
2023-02-28 12:08:19 -08:00
LifeKILLED
2f050a6618
Merge branch 'reprojection-fix' of https://github.com/lifekilled/xash3d-fwgs into reprojection-fix
2023-02-28 23:07:08 +04:00
LifeKILLED
f4b0f5016b
vk rt: fix reprojection
2023-02-28 23:06:09 +04:00
LifeKILLED
5fbee4a97a
vk rt: fix linux build 2
2023-02-28 22:58:54 +04:00