Merge pull request #4577 from Moaziz667/fix/prime-remaining-host-mutexes

fix(agc,shader): prime the remaining host shared mutexes
This commit is contained in:
Adrià 2026-10-13 16:45:17 +02:00 committed by GitHub
commit f2c314e902
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 10 additions and 2 deletions

View File

@ -177,8 +177,16 @@ struct GuardedRange {
std::uint32_t samples;
};
class PrimedSharedMutex : public std::shared_mutex {
public:
PrimedSharedMutex() {
lock();
unlock();
}
};
std::shared_mutex& guardedMutex() {
static std::shared_mutex mutex;
static PrimedSharedMutex mutex;
return mutex;
}

View File

@ -652,7 +652,7 @@ struct RegistrationModuleEntry {
std::shared_ptr<const SpecializedModule> registrationModule(std::uint64_t variantId, std::span<const std::uint32_t> moduleKey, const std::function<std::shared_ptr<const SpecializedModule>()>& specialize) {
std::vector<std::uint64_t> key{variantId};
key.insert(key.end(), moduleKey.begin(), moduleKey.end());
static std::shared_mutex mutex;
static PrimedSharedMutex mutex;
static std::map<std::vector<std::uint64_t>, std::shared_ptr<RegistrationModuleEntry>> modules;
std::shared_ptr<RegistrationModuleEntry> entry;
{