mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2026-10-30 16:37:14 +00:00
feat(ugc): processing options per make, recorded per model with their times
Staff can make models again with other processing options than the UGC
settings' (ray backend, hidden-face method, denoising) and every make records
what made it, for comparing the options.
- migration mysql 99 / sqlite 82 (ugc_process_options): ugc.process_options
(picked for the next make, cleared once made), ugc.made_options (what made
the current files) and ugc_process_runs (every successful make: options,
wall and CPU time, hidden faces', occlusion's and icon's time, bricks,
triangles before and after)
- IUgc: ResetUgcModelProcessing and ResetPropertyUgcModelProcessing take the
options; PendingModel carries them; RecordUgcModelRun, GetUgcRunSummaries;
list entries have madeOptions and processOptions
- the UGC server applies a job's options over its settings and records the run
- /api/ugc/reprocess takes options ("embree fast oidn"); /api/ugc/options
lists the choices, the settings' defaults and averages per combination
- /reprocessproperty [builtin|embree|hiprt] [toolbox|fast] [off|oidn], any
order, all optional
Check: run the migration on MySQL and SQLite; /reprocessproperty embree fast
on a property, then the models' made_options and ugc_process_runs rows;
/api/ugc/options.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -346,16 +346,17 @@ namespace {
|
||||
}
|
||||
}
|
||||
|
||||
size_t UgcManifest::ReprocessProperty(const LWOOBJID propertyId) {
|
||||
size_t UgcManifest::ReprocessProperty(const LWOOBJID propertyId, const std::string& options) {
|
||||
std::set<LWOOBJID> blueprintIds;
|
||||
for (const auto& model : Database::Get()->GetPropertyModels(propertyId)) {
|
||||
if (model.ugcId != 0) blueprintIds.insert(model.ugcId);
|
||||
}
|
||||
if (blueprintIds.empty()) return 0;
|
||||
Database::Get()->ResetPropertyUgcModelProcessing(propertyId);
|
||||
Database::Get()->ResetPropertyUgcModelProcessing(propertyId, options);
|
||||
const auto now = std::chrono::steady_clock::now();
|
||||
g_PropertyReload = PropertyReload{ std::move(blueprintIds), now, now + RETRY_INTERVAL };
|
||||
LOG("Making the %zu models of property %llu again; players are reloaded when they're made", g_PropertyReload->blueprintIds.size(), static_cast<unsigned long long>(propertyId));
|
||||
LOG("Making the %zu models of property %llu again%s; players are reloaded when they're made", g_PropertyReload->blueprintIds.size(), static_cast<unsigned long long>(propertyId),
|
||||
options.empty() ? "" : (" with " + options).c_str());
|
||||
return g_PropertyReload->blueprintIds.size();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user