forked from FWGS/xash3d-fwgs
-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add vulkan+rtx renderer #9
Draft
w23
wants to merge
1,721
commits into
master
Choose a base branch
from
vulkan
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Now indirect diffuse channel gets blurred with 2 Á-Trous passes. It mostly follows the paper, except for Σd_i, which gives very bad viusal artifacts.
Under `-vkvalidate` enables `debugPrintfEXT()` in shaders, allowing extra validation and error reporting from shaders. Severely degrades performance, so should be enabled only for debugging.
Hand-made organic bespoke GMO-free BRDFs - [x] Fix black metals in #666 - [x] Better diffuse-vs-specular channels tracking - [x] specular reflections - [x] Fix new `test_material` glitches - [x] Fix #461 - [x] Fix #151 - [x] Fix #266 - [x] Filter out zero-area degenerate triangles (NOTE: might affect normal smoothing) - [x] Implement #126 - [x] sun solid angle parametrization - [x] Make new brdfs sampling functions - [ ] distant light circular glitches - [x] not enough float precision, addressed to a degree with slight modifications to equations - [x] Address glow over weapons in RT, see #442 - [x] bounces - [x] diffuse - [x] why is it so dark? - [x] specular - [x] Peformance differences. Why is there no CPU-GPU parallelism anymore? - [x] `VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT` forces cpu-gpu sync. 💩 - [x] Make a special flag for it - [x] Update rendertests - [x] add more channels - [x] add white furnace display test
Once upon a time, there were some BLASes. There were the BLASes for dynamic geometry, that were to be used every frame to draw very dynamic things, like sprites and beams. They were initialized at the very begining of the renderer's lifetime, and were expected to live happily for the entire process duration. However, an evil NewMap appeared. It didn't care abount anything or anyone, so when it came, it just cleared all the allocators, and allowed other BLASes to be allocated into the same space as dynamic BLASes were already given. This made BLASes live on top of each other, use each others toys and make them fight. They weren't happy. So we just kill them and creat them again from scratch, when the evil NewMap comes. The end. Fixes #729
vk: rt: add workaround for holes in geometry Once upon a time, there were some BLASes. There were the BLASes for dynamic geometry, that were to be used every frame to draw very dynamic things, like sprites and beams. They were initialized at the very begining of the renderer's lifetime, and were expected to live happily for the entire process duration. However, an evil NewMap appeared. It didn't care abount anything or anyone, so when it came, it just cleared all the allocators, and allowed other BLASes to be allocated into the same space as dynamic BLASes were already given. This made BLASes live on top of each other, use each others toys and make them fight. They weren't happy. So we just kill them and creat them again from scratch, when the evil NewMap comes. The end. Fixes #729
It is not wired up to render anything yet, but we just made sure that it builds and gets destroyed. Also, fixup dynamic BLAS double-free.
It does it in a super dirty way, trad renderer needs a massive refactoring. It also displays patched skybox, however, we need it to display the oridingal one.
Also fix: - a bunch of texture/image destruction issues - `_xvk_remove_all_sky_surfaces` getting stuck
E373: Draw skybox in traditional renderer Fixes #732
- `mem->priv_.devmem` -> `slot_index`; - Move static `VK_DevMemUsageTypeString()` out of `devmem.h` header.
profiler: track memory usage (#502) * [x] vulkan device memory: * [x] allocated * [x] used as storage for buffers/images/etc * [x] unusable alignment holes * [x] vulkan buffers * [x] allocated * [x] used as storage * [x] unusable alignment holes * [x] images memory total * [ ] cpu memory allocated in ref/vk (copied & pasted from Issue #502)
Fixes sync hazard validation error for depth buffer.
`rt_force_disable` is perfectly fine, it just needs to be written into either `vk.cfg` or `video.cfg` to work. Other configs are read *after* `R_VkInit()` function get called.
This is a very dirty way of silencing errors, trading them for a waterfall of warnings. But it will allow making progress for now.
Trad rendering still works with this slightly more tight sync model. It is suboptimal as it doesn't really know the previous op on the buffer, so it has to do the ALL_COMMANDS stages, which makes validation a bit sore.
Not sure what's happening with the rest, but first couple works.
This makes RT rendering work w/o sync hazards. But it will still fail with one if menu is called. It's as much as it can go w/o proper state tracking.
Synchronization stuff started on stream E374 Addresses a bunch of validation synchronization hazards. Not all of them. And the remaining ones require more involved state tracking, a big effort. Also contains a few minor tweaks: - stop using SDL_GL functions, silence errors - increase acceleration structures buffer size -- with recent mesa update BLASes got bigger somewhat (?)
- rename ray_resources to vk_resources - add agenda and notes
Called on game controller becoming active or by user request. Exposes current calibration state by read-only console variable.
[E387-390] Merge from upstream
…anymore [skip ci]
…opt-in, yields better performance with VBO renderer
…trings, add Q_isalpha
Use existing ui_language cvar for mounting localization folders.
…hem when Cvar_Get is called with NULL description It allows us to not lose engine-side description when client or gameui registers cvar with the same name. In case of menu it's the only way to get cvar pointer.
…UD down to selected resolution with preserving aspect ratio
what is this i don't even
…the scaling factor isn't an integer
Fix CI flatpak build, also merge from master once more (as it contains flatpak fixes).
…rMode call Not sure if this is correct, but it's generally a good idea to restore it to an expected value.
… engine startup (it might be enabled later, it might also contain crash data)
Turns out it is invalid to calc bone quaternion for `numframes-1`. Therefore, calc up to, but not including, that frame, but depend on interpolation almost up to the last valid frame. This code is only used for dynamic studio model detection.
Fix ASAN errors: - [x] zero-sized buffers in r_speeds - [x] OOB reads in vk_studio
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is here for now only for tracking mergeability + CI purposes