mirror of
https://github.com/w23/xash3d-fwgs
synced 2024-12-13 12:40:34 +01:00
vk: synchronize updating kusochki
Do not aggravate the validator by uploading to the same memory region twice. Make sure that there's synchronization between updating kusochki. Fixes #553
This commit is contained in:
parent
13eef5dda2
commit
6d749ea8d0
@ -14,6 +14,7 @@
|
||||
#include "vk_light.h"
|
||||
#include "vk_mapents.h"
|
||||
#include "r_speeds.h"
|
||||
#include "vk_staging.h"
|
||||
#include "vk_logs.h"
|
||||
|
||||
#include "ref_params.h"
|
||||
@ -1463,6 +1464,16 @@ void R_VkBrushModelCollectEmissiveSurfaces( const struct model_s *mod, qboolean
|
||||
// RAD data in vk_light.c, so the emissive values are empty. This is the place and time where we actually get to
|
||||
// know them, so let's fixup things.
|
||||
// TODO minor optimization: sort geom_indices to have a better chance for them to be sequential
|
||||
|
||||
{
|
||||
// Make sure that staging has been flushed.
|
||||
// Updating materials leads to staging an upload to the same memory that we've just staged an upload to.
|
||||
// This doesn't please the validator.
|
||||
// Ensure that these uploads are not mixed into the same unsynchronized stream.
|
||||
// TODO this might be not great for performance (extra waiting for GPU), so a better solution should be considered. E.g. tracking and barrier-syncing regions to-be-reuploaded.
|
||||
R_VkStagingFlushSync();
|
||||
}
|
||||
|
||||
R_RenderModelUpdateMaterials(&bmodel->render_model, geom_indices, emissive_surfaces_count);
|
||||
INFO("Loaded %d polylights for %s model %s", emissive_surfaces_count, is_static ? "static" : "movable", mod->name);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user