early-access version 1417

This commit is contained in:
pineappleEA 2021-02-06 02:36:05 +01:00
parent a52316d0ad
commit b48be442b1
2 changed files with 10 additions and 10 deletions

View File

@ -1,7 +1,7 @@
yuzu emulator early access yuzu emulator early access
============= =============
This is the source code for early-access 1416. This is the source code for early-access 1417.
## Legal Notice ## Legal Notice

View File

@ -24,11 +24,11 @@ template <typename T>
concept KPriorityQueueAffinityMask = !std::is_reference_v<T> && requires(T & t) { concept KPriorityQueueAffinityMask = !std::is_reference_v<T> && requires(T & t) {
{ t.GetAffinityMask() } { t.GetAffinityMask() }
->Common::ConvertibleTo<u64>; ->Common::ConvertibleTo<u64>;
{t.SetAffinityMask(std::declval<u64>())}; {t.SetAffinityMask(0)};
{ t.GetAffinity(std::declval<int32_t>()) } { t.GetAffinity(0) }
->std::same_as<bool>; ->std::same_as<bool>;
{t.SetAffinity(std::declval<int32_t>(), std::declval<bool>())}; {t.SetAffinity(0, false)};
{t.SetAll()}; {t.SetAll()};
}; };
@ -42,11 +42,11 @@ concept KPriorityQueueMember = !std::is_reference_v<T> && requires(T & t) {
->std::same_as<T*>; ->std::same_as<T*>;
{ (typename T::QueueEntry()).GetPrev() } { (typename T::QueueEntry()).GetPrev() }
->std::same_as<T*>; ->std::same_as<T*>;
{ t.GetPriorityQueueEntry(std::declval<s32>()) } { t.GetPriorityQueueEntry(0) }
->std::same_as<typename T::QueueEntry&>; ->std::same_as<typename T::QueueEntry&>;
{t.GetAffinityMask()}; {t.GetAffinityMask()};
{ typename std::remove_cvref<decltype(t.GetAffinityMask())>::type() } { std::remove_cvref_t<decltype(t.GetAffinityMask())>() }
->KPriorityQueueAffinityMask; ->KPriorityQueueAffinityMask;
{ t.GetActiveCore() } { t.GetActiveCore() }
@ -55,17 +55,17 @@ concept KPriorityQueueMember = !std::is_reference_v<T> && requires(T & t) {
->Common::ConvertibleTo<s32>; ->Common::ConvertibleTo<s32>;
}; };
template <typename Member, size_t _NumCores, int LowestPriority, int HighestPriority> template <typename Member, size_t NumCores_, int LowestPriority, int HighestPriority>
requires KPriorityQueueMember<Member> class KPriorityQueue { requires KPriorityQueueMember<Member> class KPriorityQueue {
public: public:
using AffinityMaskType = typename std::remove_cv_t< using AffinityMaskType = std::remove_cv_t<
typename std::remove_reference<decltype(std::declval<Member>().GetAffinityMask())>::type>; std::remove_reference_t<decltype(std::declval<Member>().GetAffinityMask())>>;
static_assert(LowestPriority >= 0); static_assert(LowestPriority >= 0);
static_assert(HighestPriority >= 0); static_assert(HighestPriority >= 0);
static_assert(LowestPriority >= HighestPriority); static_assert(LowestPriority >= HighestPriority);
static constexpr size_t NumPriority = LowestPriority - HighestPriority + 1; static constexpr size_t NumPriority = LowestPriority - HighestPriority + 1;
static constexpr size_t NumCores = _NumCores; static constexpr size_t NumCores = NumCores_;
static constexpr bool IsValidCore(s32 core) { static constexpr bool IsValidCore(s32 core) {
return 0 <= core && core < static_cast<s32>(NumCores); return 0 <= core && core < static_cast<s32>(NumCores);