Use RefCounted for DeviceBase
DeviceBase implemented its own Reference / Release methods for historical reasons. Replace them with RefCounted's version that are similar, just more thread safe. Bug: dawn:723 Change-Id: Ib26f3e231eb12fe09612c8b5639576e2f26a3cfd Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/46000 Commit-Queue: Stephen White <senorblanco@chromium.org> Auto-Submit: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Austin Eng <enga@chromium.org> Reviewed-by: Stephen White <senorblanco@chromium.org>
This commit is contained in:
parent
1a232448d2
commit
1257152485
|
@ -902,19 +902,6 @@ namespace dawn_native {
|
||||||
return !IsDeviceIdle();
|
return !IsDeviceIdle();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DeviceBase::Reference() {
|
|
||||||
ASSERT(mRefCount != 0);
|
|
||||||
mRefCount++;
|
|
||||||
}
|
|
||||||
|
|
||||||
void DeviceBase::Release() {
|
|
||||||
ASSERT(mRefCount != 0);
|
|
||||||
mRefCount--;
|
|
||||||
if (mRefCount == 0) {
|
|
||||||
delete this;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
QueueBase* DeviceBase::GetQueue() {
|
QueueBase* DeviceBase::GetQueue() {
|
||||||
// Backends gave the primary queue during initialization.
|
// Backends gave the primary queue during initialization.
|
||||||
ASSERT(mQueue != nullptr);
|
ASSERT(mQueue != nullptr);
|
||||||
|
|
|
@ -41,7 +41,7 @@ namespace dawn_native {
|
||||||
struct InternalPipelineStore;
|
struct InternalPipelineStore;
|
||||||
struct ShaderModuleParseResult;
|
struct ShaderModuleParseResult;
|
||||||
|
|
||||||
class DeviceBase {
|
class DeviceBase : public RefCounted {
|
||||||
public:
|
public:
|
||||||
DeviceBase(AdapterBase* adapter, const DeviceDescriptor* descriptor);
|
DeviceBase(AdapterBase* adapter, const DeviceDescriptor* descriptor);
|
||||||
virtual ~DeviceBase();
|
virtual ~DeviceBase();
|
||||||
|
@ -183,9 +183,6 @@ namespace dawn_native {
|
||||||
|
|
||||||
PersistentCache* GetPersistentCache();
|
PersistentCache* GetPersistentCache();
|
||||||
|
|
||||||
void Reference();
|
|
||||||
void Release();
|
|
||||||
|
|
||||||
virtual ResultOrError<std::unique_ptr<StagingBufferBase>> CreateStagingBuffer(
|
virtual ResultOrError<std::unique_ptr<StagingBufferBase>> CreateStagingBuffer(
|
||||||
size_t size) = 0;
|
size_t size) = 0;
|
||||||
virtual MaybeError CopyFromStagingToBuffer(StagingBufferBase* source,
|
virtual MaybeError CopyFromStagingToBuffer(StagingBufferBase* source,
|
||||||
|
@ -390,7 +387,6 @@ namespace dawn_native {
|
||||||
struct DeprecationWarnings;
|
struct DeprecationWarnings;
|
||||||
std::unique_ptr<DeprecationWarnings> mDeprecationWarnings;
|
std::unique_ptr<DeprecationWarnings> mDeprecationWarnings;
|
||||||
|
|
||||||
uint32_t mRefCount = 1;
|
|
||||||
State mState = State::BeingCreated;
|
State mState = State::BeingCreated;
|
||||||
|
|
||||||
FormatTable mFormatTable;
|
FormatTable mFormatTable;
|
||||||
|
|
Loading…
Reference in New Issue