early-access version 3470
This commit is contained in:
parent
9d69b0118c
commit
723613f367
@ -1,7 +1,7 @@
|
||||
yuzu emulator early access
|
||||
=============
|
||||
|
||||
This is the source code for early-access 3468.
|
||||
This is the source code for early-access 3470.
|
||||
|
||||
## Legal Notice
|
||||
|
||||
|
@ -143,7 +143,7 @@ private:
|
||||
++m_read_index;
|
||||
|
||||
// Notify the producer that we have popped off the queue.
|
||||
std::unique_lock lock{producer_cv_mutex};
|
||||
std::scoped_lock lock{producer_cv_mutex};
|
||||
producer_cv.notify_one();
|
||||
|
||||
return true;
|
||||
|
@ -3,6 +3,8 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <compare>
|
||||
#include <type_traits>
|
||||
#include <fmt/format.h>
|
||||
|
||||
#include "common/common_types.h"
|
||||
@ -13,11 +15,12 @@ template <bool Virtual, typename T>
|
||||
class TypedAddress {
|
||||
public:
|
||||
// Constructors.
|
||||
inline TypedAddress() : m_address(0) {}
|
||||
constexpr inline TypedAddress() : m_address(0) {}
|
||||
constexpr inline TypedAddress(uint64_t a) : m_address(a) {}
|
||||
|
||||
template <typename U>
|
||||
constexpr inline explicit TypedAddress(U* ptr) : m_address(reinterpret_cast<uint64_t>(ptr)) {}
|
||||
constexpr inline explicit TypedAddress(const U* ptr)
|
||||
: m_address(reinterpret_cast<uint64_t>(ptr)) {}
|
||||
|
||||
// Copy constructor.
|
||||
constexpr inline TypedAddress(const TypedAddress& rhs) = default;
|
||||
@ -105,36 +108,16 @@ public:
|
||||
return m_address / size;
|
||||
}
|
||||
|
||||
constexpr inline bool operator!() const {
|
||||
return m_address == 0;
|
||||
constexpr explicit operator bool() const {
|
||||
return m_address != 0;
|
||||
}
|
||||
|
||||
// constexpr inline uint64_t operator%(U align) const { return m_address % align; }
|
||||
|
||||
// Comparison operators.
|
||||
constexpr inline bool operator==(TypedAddress rhs) const {
|
||||
return m_address == rhs.m_address;
|
||||
}
|
||||
|
||||
constexpr inline bool operator!=(TypedAddress rhs) const {
|
||||
return m_address != rhs.m_address;
|
||||
}
|
||||
|
||||
constexpr inline bool operator<(TypedAddress rhs) const {
|
||||
return m_address < rhs.m_address;
|
||||
}
|
||||
|
||||
constexpr inline bool operator<=(TypedAddress rhs) const {
|
||||
return m_address <= rhs.m_address;
|
||||
}
|
||||
|
||||
constexpr inline bool operator>(TypedAddress rhs) const {
|
||||
return m_address > rhs.m_address;
|
||||
}
|
||||
|
||||
constexpr inline bool operator>=(TypedAddress rhs) const {
|
||||
return m_address >= rhs.m_address;
|
||||
}
|
||||
constexpr bool operator==(const TypedAddress&) const = default;
|
||||
constexpr bool operator!=(const TypedAddress&) const = default;
|
||||
constexpr a |