Ivan 'provod' Avdeev
8291efd08b
rt: fix polygon light clusters on missing pvs
2022-07-23 13:39:37 -07:00
Ivan 'provod' Avdeev
af594203f8
rt: fix point light cluster crash on missing pvs
...
will still crash for polygon lights
2022-07-23 13:39:37 -07:00
Ivan 'provod' Avdeev
9b76f3acb4
rt: fix missing moving polygon lights
2022-07-23 12:06:43 -07:00
NightFox
8baf34768a
correct environment light power
2022-07-23 11:34:57 -07:00
Valery Klachkov
658a67e09e
Fix #634
2022-07-23 11:33:42 -07:00
Ivan 'provod' Avdeev
ceea3a614e
vk: do not forget to upload staging without rays
2022-07-23 11:33:15 -07:00
Ivan 'provod' Avdeev
aaab09fd38
vk: remove old ring buffer helper
2022-07-15 00:50:29 -07:00
Ivan Avdeev
394587adbf
vk: remove geometry print stats func
2022-07-09 13:37:09 -07:00
Ivan 'provod' Avdeev
118bdd9985
vk: use debuffer for geometry mem management
2022-07-09 13:37:09 -07:00
Ivan 'provod' Avdeev
a2b083300c
vk: move geometry buffer handling to separate files
2022-07-09 13:37:09 -07:00
Ivan 'provod' Avdeev
da97f664d7
vk: recreate swapchain on exclusive mode lost, fix #365
2022-07-09 12:47:45 -07:00
Ivan 'provod' Avdeev
23ad2096a9
rt: remove old single-pipeline raytracer
2022-07-09 11:54:47 -07:00
Ivan 'provod' Avdeev
0fcd05554a
implement debuffer on top of flipping buffer
2022-07-09 10:41:59 -07:00
Ivan 'provod' Avdeev
b634d6251e
replace debuffer with flipping one where possible
2022-07-09 10:41:59 -07:00
Ivan 'provod' Avdeev
c299ac9ccd
do not overwrite ubo buffers being used
2022-07-09 10:41:59 -07:00
Ivan 'provod' Avdeev
f8ea93656f
do not overwrite staging data until we know it's been uploaded
2022-07-09 10:41:59 -07:00
Ivan 'provod' Avdeev
be20ae2fb0
vk: coalesce same buffer dest staging regions uploading
2022-07-09 10:41:59 -07:00
Ivan 'provod' Avdeev
f390591647
vk: fix texture mips uploading
2022-07-09 10:41:59 -07:00
Ivan 'provod' Avdeev
88f8aabf8e
vk: fix linux build
2022-07-09 10:41:59 -07:00
Ivan 'provod' Avdeev
1d48982e7b
vk: refactor staging api a bit
2022-07-09 10:41:59 -07:00
Ivan 'provod' Avdeev
eda34ee9db
vk: explicitly synchronize adjacent command buffer submissions
2022-07-09 10:41:59 -07:00
Ivan 'provod' Avdeev
ebcee75c0b
vk: silence offset prints in render
2022-07-09 10:41:59 -07:00
Ivan 'provod' Avdeev
4ef261a0b0
vk: print devmem allocation failure reason
2022-07-09 10:41:59 -07:00
Ivan 'provod' Avdeev
09112bedef
vk: slightly refactor s/2d/overlay/
2022-07-09 10:41:59 -07:00
Ivan 'provod' Avdeev
b0f1b60f62
vk: supposedly fix menu glitches
...
had to ringify 2d buffer too
2022-07-09 10:41:59 -07:00
Ivan 'provod' Avdeev
dc129475bd
vk: fix synchronization on resize/swapchain recreation
2022-07-09 10:41:59 -07:00
Ivan 'provod' Avdeev
2c667bdc60
fix func declaration
2022-07-09 10:41:59 -07:00
Ivan 'provod' Avdeev
31c35a4c82
rt: ringify tlas geom buffer
2022-07-09 10:41:59 -07:00
Ivan 'provod' Avdeev
aca2849c5a
rt: make kusochki use double-ended buffers
2022-07-09 10:41:59 -07:00
NightFox
4809fc5d02
more correct base_color processing
2022-05-30 18:04:59 -07:00
Ivan 'provod' Avdeev
d2bb972930
rt: assoc dyn polylights w/ render model
...
fix #355
2022-05-27 11:28:45 -07:00
NightFox
4e1982815c
correct payload.emissive.rgb
2022-05-27 11:28:26 -07:00
NightFox
c713c7fc59
correct lighting and gamma-correction improvement
2022-05-27 11:28:26 -07:00
Ivan 'provod' Avdeev
cb427d0839
vk: ring-based dynamic geometry buf alloc
...
- Clear split between static and dynamic geometry within the same buffer
- Store previous frame geometry data longer
- Use simpler ring buffer for allocation
- Add waf unit tests for alolcator
Known issues:
- ray tracing still glitches a lot
2022-05-14 14:00:13 -07:00
Ivan Avdeev
68738fdd97
Merge pull request #352 from w23/staging
...
Implement uploading using staging buffers
2022-05-04 10:24:52 -07:00
Ivan 'provod' Avdeev
fed12884dc
vk: ne sri v log
2022-05-04 09:55:13 -07:00
Ivan 'provod' Avdeev
608aa4137d
vk: use staging for uploading geometry
2022-05-04 09:23:37 -07:00
Ivan 'provod' Avdeev
c5012328d6
vk: pick device memory slot based on type index
2022-04-30 00:28:52 -07:00
Ivan 'provod' Avdeev
a3ff75b48f
vk: draft staging api, use it for textures
2022-04-28 00:16:25 -07:00
Ivan 'provod' Avdeev
573d006c4a
Merge remote-tracking branch 'origin/vulkan' into better-sampling-passes-parallel
2022-03-21 12:00:55 -07:00
NightFox
5342c92019
Rads and patches, rev1 ( #328 )
...
Обновлённые рады и патчи карт для лучей. Куча ненужных источников выкинута, местами освещение переделано в пользу реализма. Попытка вытянуть освещение через доступные светящиеся поверхности. Список радов и патчей будет потихоньку обновляться. Это первая ревизия, во второй будут исправляться пропущенные ошибки и коррекция освещения относительно новых материалов.
Для патчей исправлен масштаб яркости у светящихся текстур.
Также теперь рад файлы лежат в data/valve/maps/ а патчи в data/valve/luchiki/maps/. Теперь возможно добавлять другие моды.
2022-03-21 12:00:02 -07:00
Ivan 'provod' Avdeev
31e15e40c6
vk: print allocations only under -vkdebugmem
2022-02-22 21:46:44 -08:00
Ivan 'provod' Avdeev
00652f0e7d
rt: fix pcie bus thrashing; add profiler scopes
...
turns out it's not cool to read color from on-gpu kusok data, modify it, and write back
2022-02-21 23:46:50 -08:00
Ivan 'provod' Avdeev
3ebdeb876e
differentiate debug markers vs validation layers
...
Split concerns:
- validation layers help with correctness, but not performance (*generally)
- debug markers help with profiling (and ony sometimes with correctness too)
These were conflated into a single `-vkdebug` arg.
And sometimes you need only markers and no validation for performance.
(Validation is like 30% slower)
Make it so that:
- `-vkdebug` enables only debug names and time markers, but not validation
- `-vkvalidate` enables validation layers and also debug markers
2022-02-20 23:40:48 -08:00
Ivan 'provod' Avdeev
e35e2aa043
rt: allocate as many desc sets as frames in flight
...
still not fully correct or robust, but passes validation
missing correctness things:
- Nx light data buffers
- Nx dynamic model buffers
- Nx dynamic BLASes
quite likely will also need (depending on update strategy, direct vs upload):
- Nx light data buffers
- Nx UBOs
probably fine since frames don't really overlap:
- single TLAS
2022-02-20 23:30:23 -08:00
Ivan 'provod' Avdeev
955f36a423
Merge branch 'parallel-frames' into better-sampling-passes-parallel
...
includes a few initial compilation fixes for parallel ray tracing. does not work yet
2022-02-20 16:00:33 -08:00
Ivan Avdeev
22917938d9
vk: initial draft of parallel frames
...
adds multiple command buffers and bits of synchronization.
is not correct at all:
- no depth buffer barrier
- no ubo slots in render
- no proper render memory management
- no ray tracing support whatsoever
- ... etc
2022-02-10 22:55:33 -08:00
Ivan Avdeev
668d3fb81a
rt: add shadows for environment lights
2022-02-09 21:57:55 -08:00
Ivan Avdeev
152cca3a47
rt: select random triangle to sample based on solid angle
...
looks correct enough(ish?)
perf (c1a0):
direct poly light 4.4ms, v85(96), o10/16 (-6v +1o)
2022-02-08 23:04:00 -08:00
Ivan Avdeev
e2694ecf36
rt: try single triangle solid angle sampling
...
1. it looks way better
2. still missing other triangles
perf (c1a0):
4.2ms, v87(96), o10/16 (-6v +1o)
2022-02-08 22:26:39 -08:00