Add WGPU[Obj]AddRef and deprecated WGPU[Obj]Reference
Bug: dawn:2234
Change-Id: Id23b62be81afc879abb0caccb7f8b2339db2dc1c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/184280
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
diff --git a/generator/dawn_json_generator.py b/generator/dawn_json_generator.py
index bb27818..d37e34f 100644
--- a/generator/dawn_json_generator.py
+++ b/generator/dawn_json_generator.py
@@ -912,7 +912,9 @@
def c_methods(params, typ):
return typ.methods + [
+ # TODO(dawn:2234): Deprecated. Remove when no longer used.
Method(Name('reference'), params['types']['void'], [], False, {}),
+ Method(Name('add ref'), params['types']['void'], [], False, {}),
Method(Name('release'), params['types']['void'], [], False, {}),
]
diff --git a/generator/templates/api.h b/generator/templates/api.h
index 37282dd..b541b9c 100644
--- a/generator/templates/api.h
+++ b/generator/templates/api.h
@@ -73,6 +73,8 @@
#include <stdint.h>
#include <stddef.h>
+#define WGPU_BREAKING_REFERENCE_ADDREF
+
{% for constant in by_category["constant"] %}
#define {{API}}_{{constant.name.SNAKE_CASE()}} {{constant.value}}
{% endfor %}
diff --git a/generator/templates/api_cpp.cpp b/generator/templates/api_cpp.cpp
deleted file mode 100644
index e69de29..0000000
--- a/generator/templates/api_cpp.cpp
+++ /dev/null
diff --git a/generator/templates/api_cpp.h b/generator/templates/api_cpp.h
index ca281fa..0608cec 100644
--- a/generator/templates/api_cpp.h
+++ b/generator/templates/api_cpp.h
@@ -156,7 +156,7 @@
public:
ObjectBase() = default;
ObjectBase(CType handle): mHandle(handle) {
- if (mHandle) Derived::{{c_prefix}}Reference(mHandle);
+ if (mHandle) Derived::{{c_prefix}}AddRef(mHandle);
}
~ObjectBase() {
if (mHandle) Derived::{{c_prefix}}Release(mHandle);
@@ -169,7 +169,7 @@
if (&other != this) {
if (mHandle) Derived::{{c_prefix}}Release(mHandle);
mHandle = other.mHandle;
- if (mHandle) Derived::{{c_prefix}}Reference(mHandle);
+ if (mHandle) Derived::{{c_prefix}}AddRef(mHandle);
}
return static_cast<Derived&>(*this);
@@ -278,7 +278,7 @@
private:
friend ObjectBase<{{CppType}}, {{CType}}>;
- static inline void {{c_prefix}}Reference({{CType}} handle);
+ static inline void {{c_prefix}}AddRef({{CType}} handle);
static inline void {{c_prefix}}Release({{CType}} handle);
};
@@ -461,9 +461,9 @@
{% endif %}
}
{% endfor %}
- void {{CppType}}::{{c_prefix}}Reference({{CType}} handle) {
+ void {{CppType}}::{{c_prefix}}AddRef({{CType}} handle) {
if (handle != nullptr) {
- {{as_cMethod(type.name, Name("reference"))}}(handle);
+ {{as_cMethod(type.name, Name("add ref"))}}(handle);
}
}
void {{CppType}}::{{c_prefix}}Release({{CType}} handle) {
diff --git a/generator/templates/dawn/wire/client/ApiProcs.cpp b/generator/templates/dawn/wire/client/ApiProcs.cpp
index e4d1dd7..a5d45aa 100644
--- a/generator/templates/dawn/wire/client/ApiProcs.cpp
+++ b/generator/templates/dawn/wire/client/ApiProcs.cpp
@@ -125,8 +125,13 @@
obj->Release();
}
+ void Client{{as_MethodSuffix(type.name, Name("add ref"))}}({{cType}} cObj) {
+ reinterpret_cast<{{Type}}*>(cObj)->AddRef();
+ }
+
+ //* TODO(dawn:2234): Deprecated. Remove once no longer user.
void Client{{as_MethodSuffix(type.name, Name("reference"))}}({{cType}} cObj) {
- reinterpret_cast<{{Type}}*>(cObj)->Reference();
+ Client{{as_MethodSuffix(type.name, Name("add ref"))}}(cObj);
}
{% endfor %}
diff --git a/generator/templates/mock_api.h b/generator/templates/mock_api.h
index 77769b0..7e9fc4a 100644
--- a/generator/templates/mock_api.h
+++ b/generator/templates/mock_api.h
@@ -70,8 +70,12 @@
{%- for type in by_category["object"] %}
- virtual void {{as_MethodSuffix(type.name, Name("reference"))}}({{as_cType(type.name)}} self) = 0;
+ virtual void {{as_MethodSuffix(type.name, Name("add ref"))}}({{as_cType(type.name)}} self) = 0;
virtual void {{as_MethodSuffix(type.name, Name("release"))}}({{as_cType(type.name)}} self) = 0;
+ // TODO(dawn::2234): Deprecated. Remove once no longer used.
+ void {{as_MethodSuffix(type.name, Name("reference"))}}({{as_cType(type.name)}} self) {
+ {{as_MethodSuffix(type.name, Name("add ref"))}}(self);
+ }
{% for method in type.methods if method.name.get() not in ManuallyMockedFunctions %}
{% set Suffix = as_CppMethodSuffix(type.name, method.name) %}
{% if not has_callback_arguments(method) and not has_callback_info(method) %}
@@ -174,7 +178,7 @@
{%- for type in by_category["object"] %}
- MOCK_METHOD(void, {{as_MethodSuffix(type.name, Name("reference"))}}, ({{as_cType(type.name)}} self), (override));
+ MOCK_METHOD(void, {{as_MethodSuffix(type.name, Name("add ref"))}}, ({{as_cType(type.name)}} self), (override));
MOCK_METHOD(void, {{as_MethodSuffix(type.name, Name("release"))}}, ({{as_cType(type.name)}} self), (override));
{% for method in type.methods if not has_callback_arguments(method) and not has_callback_info(method) %}
MOCK_METHOD({{as_cType(method.return_type.name)}},{{" "}}
diff --git a/src/dawn/common/CoreFoundationRef.h b/src/dawn/common/CoreFoundationRef.h
index 4a6c992..aac447e 100644
--- a/src/dawn/common/CoreFoundationRef.h
+++ b/src/dawn/common/CoreFoundationRef.h
@@ -37,7 +37,7 @@
template <typename T>
struct CoreFoundationRefTraits {
static constexpr T kNullValue = nullptr;
- static void Reference(T value) { CFRetain(value); }
+ static void AddRef(T value) { CFRetain(value); }
static void Release(T value) { CFRelease(value); }
};
diff --git a/src/dawn/common/IOKitRef.h b/src/dawn/common/IOKitRef.h
index e945566..898698b 100644
--- a/src/dawn/common/IOKitRef.h
+++ b/src/dawn/common/IOKitRef.h
@@ -37,7 +37,7 @@
template <typename T>
struct IOKitRefTraits {
static constexpr T kNullValue = IO_OBJECT_NULL;
- static void Reference(T value) { IOObjectRetain(value); }
+ static void AddRef(T value) { IOObjectRetain(value); }
static void Release(T value) { IOObjectRelease(value); }
};
diff --git a/src/dawn/common/NSRef.h b/src/dawn/common/NSRef.h
index 1aac82d..c3db729 100644
--- a/src/dawn/common/NSRef.h
+++ b/src/dawn/common/NSRef.h
@@ -82,7 +82,7 @@
template <typename T>
struct NSRefTraits {
static constexpr T kNullValue = nullptr;
- static void Reference(T value) { [value retain]; }
+ static void AddRef(T value) { [value retain]; }
static void Release(T value) { [value release]; }
};
diff --git a/src/dawn/common/Ref.h b/src/dawn/common/Ref.h
index 2cca488..90e905d 100644
--- a/src/dawn/common/Ref.h
+++ b/src/dawn/common/Ref.h
@@ -46,7 +46,7 @@
template <typename T>
struct RefCountedTraits {
static constexpr T* kNullValue = nullptr;
- static void Reference(T* value) { value->Reference(); }
+ static void AddRef(T* value) { value->AddRef(); }
static void Release(T* value) { value->Release(); }
};
diff --git a/src/dawn/common/RefBase.h b/src/dawn/common/RefBase.h
index bdf6ec8..57abaac 100644
--- a/src/dawn/common/RefBase.h
+++ b/src/dawn/common/RefBase.h
@@ -42,7 +42,7 @@
//
// struct {
// static constexpr T kNullValue = ...;
-// static void Reference(T value) { ... }
+// static void AddRef(T value) { ... }
// static void Release(T value) { ... }
// };
//
@@ -66,7 +66,7 @@
// Constructors from a value T.
// NOLINTNEXTLINE(runtime/explicit)
- RefBase(T value) : mValue(value) { Reference(value); }
+ RefBase(T value) : mValue(value) { AddRef(value); }
RefBase<T, Traits>& operator=(const T& value) {
Set(value);
@@ -74,7 +74,7 @@
}
// Constructors from a RefBase<T>
- RefBase(const RefBase<T, Traits>& other) : mValue(other.mValue) { Reference(other.mValue); }
+ RefBase(const RefBase<T, Traits>& other) : mValue(other.mValue) { AddRef(other.mValue); }
RefBase<T, Traits>& operator=(const RefBase<T, Traits>& other) {
Set(other.mValue);
@@ -96,7 +96,7 @@
// operators defined with `other` == RefBase<T, Traits>.
template <typename U, typename UTraits, typename = typename std::is_convertible<U, T>::type>
RefBase(const RefBase<U, UTraits>& other) : mValue(other.mValue) {
- Reference(other.mValue);
+ AddRef(other.mValue);
}
template <typename U, typename UTraits, typename = typename std::is_convertible<U, T>::type>
@@ -160,7 +160,7 @@
}
private:
- // Friend is needed so that instances of RefBase<U> can call Reference and Release on
+ // Friend is needed so that instances of RefBase<U> can call AddRef and Release on
// RefBase<T>.
template <typename U, typename UTraits>
friend class RefBase;
@@ -170,9 +170,9 @@
other->Acquire(static_cast<U>(ref->Detach()));
}
- static void Reference(T value) {
+ static void AddRef(T value) {
if (value != Traits::kNullValue) {
- Traits::Reference(value);
+ Traits::AddRef(value);
}
}
static void Release(T value) {
@@ -185,7 +185,7 @@
if (mValue != value) {
// Ensure that the new value is referenced before the old is released to prevent any
// transitive frees that may affect the new value.
- Reference(value);
+ AddRef(value);
Release(mValue);
mValue = value;
}
diff --git a/src/dawn/common/RefCounted.cpp b/src/dawn/common/RefCounted.cpp
index 78a1b91..4c57023 100644
--- a/src/dawn/common/RefCounted.cpp
+++ b/src/dawn/common/RefCounted.cpp
@@ -136,7 +136,7 @@
return mRefCount.GetPayload();
}
-void RefCounted::Reference() {
+void RefCounted::AddRef() {
bool result = mRefCount.Increment();
// Never increase ref count from 0.
DAWN_ASSERT(!result);
diff --git a/src/dawn/common/RefCounted.h b/src/dawn/common/RefCounted.h
index e3a11b1..0d06e04 100644
--- a/src/dawn/common/RefCounted.h
+++ b/src/dawn/common/RefCounted.h
@@ -71,12 +71,14 @@
uint64_t GetRefCountForTesting() const;
uint64_t GetRefCountPayload() const;
- void Reference();
+ void AddRef();
// Release() is called by internal code, so it's assumed that there is already a thread
// synchronization in place for destruction.
void Release();
- void APIReference() { Reference(); }
+ // TODO(dawn:2234): Deprecated. Remove when no longer used.
+ void APIReference() { APIAddRef(); }
+ void APIAddRef() { AddRef(); }
void APIRelease() { Release(); }
protected:
diff --git a/src/dawn/native/Adapter.cpp b/src/dawn/native/Adapter.cpp
index 5ae7d47..6a03657 100644
--- a/src/dawn/native/Adapter.cpp
+++ b/src/dawn/native/Adapter.cpp
@@ -82,7 +82,7 @@
InstanceBase* AdapterBase::APIGetInstance() const {
InstanceBase* instance = mPhysicalDevice->GetInstance();
DAWN_ASSERT(instance != nullptr);
- instance->APIReference();
+ instance->APIAddRef();
return instance;
}
diff --git a/src/dawn/native/AsyncTask.cpp b/src/dawn/native/AsyncTask.cpp
index 45ac2e2..a9fb8ef 100644
--- a/src/dawn/native/AsyncTask.cpp
+++ b/src/dawn/native/AsyncTask.cpp
@@ -53,7 +53,7 @@
// Ref the task since it is accessed inside the worker function.
// The worker function will acquire and release the task upon completion.
- waitableTask->Reference();
+ waitableTask->AddRef();
waitableTask->waitableEvent =
mWorkerTaskPool->PostWorkerTask(DoWaitableTask, waitableTask.Get());
}
diff --git a/src/dawn/native/DawnNative.cpp b/src/dawn/native/DawnNative.cpp
index 9ac41fa..667ad23 100644
--- a/src/dawn/native/DawnNative.cpp
+++ b/src/dawn/native/DawnNative.cpp
@@ -63,7 +63,7 @@
Adapter::Adapter(AdapterBase* impl) : mImpl(impl) {
if (mImpl != nullptr) {
- mImpl->Reference();
+ mImpl->AddRef();
}
}
@@ -83,7 +83,7 @@
}
mImpl = other.mImpl;
if (mImpl) {
- mImpl->Reference();
+ mImpl->AddRef();
}
}
return *this;
diff --git a/src/dawn/native/Device.cpp b/src/dawn/native/Device.cpp
index 9f7eda1..784ae05 100644
--- a/src/dawn/native/Device.cpp
+++ b/src/dawn/native/Device.cpp
@@ -1661,7 +1661,7 @@
}
AdapterBase* DeviceBase::APIGetAdapter() {
- mAdapter->APIReference();
+ mAdapter->APIAddRef();
return mAdapter.Get();
}
diff --git a/src/dawn/native/ObjectBase.h b/src/dawn/native/ObjectBase.h
index a2bfbd2..3c98bdb 100644
--- a/src/dawn/native/ObjectBase.h
+++ b/src/dawn/native/ObjectBase.h
@@ -48,7 +48,7 @@
template <typename T>
struct APIRefCountedTraits {
static constexpr T* kNullValue = nullptr;
- static void Reference(T* value) { value->APIReference(); }
+ static void AddRef(T* value) { value->APIAddRef(); }
static void Release(T* value) { value->APIRelease(); }
};
diff --git a/src/dawn/native/RefCountedWithExternalCount.h b/src/dawn/native/RefCountedWithExternalCount.h
index 3bee3f7..64b4e5d 100644
--- a/src/dawn/native/RefCountedWithExternalCount.h
+++ b/src/dawn/native/RefCountedWithExternalCount.h
@@ -33,7 +33,7 @@
namespace dawn::native {
// RecCountedWithExternalCountBase is a version of RefCounted which tracks a separate
-// refcount for calls to APIReference/APIRelease (refs added/removed by the application).
+// refcount for calls to APIAddRef/APIRelease (refs added/removed by the application).
// The external refcount starts at 0, and the total refcount starts at 1 - i.e. the first
// ref isn't an external ref.
// When the external refcount drops to zero, WillDropLastExternalRef is called. and it can be called
@@ -44,13 +44,15 @@
public:
static constexpr bool HasExternalRefCount = true;
- using T::Reference;
+ using T::AddRef;
using T::Release;
using T::T;
- void APIReference() {
+ // TODO(dawn:2234): Deprecated. Remove when no longer used.
+ void APIReference() { APIAddRef(); }
+ void APIAddRef() {
IncrementExternalRefCount();
- T::APIReference();
+ T::APIAddRef();
}
void APIRelease() {
diff --git a/src/dawn/samples/SampleUtils.cpp b/src/dawn/samples/SampleUtils.cpp
index 6acb553..2f89d7a 100644
--- a/src/dawn/samples/SampleUtils.cpp
+++ b/src/dawn/samples/SampleUtils.cpp
@@ -168,7 +168,7 @@
if (preferredAdapter != adapters.end()) {
backendAdapter = *preferredAdapter;
WGPUAdapter cAdapter = preferredAdapter->Get();
- dawn::native::GetProcs().adapterReference(cAdapter);
+ dawn::native::GetProcs().adapterAddRef(cAdapter);
callback(WGPURequestAdapterStatus_Success, cAdapter, nullptr, userdata);
} else {
callback(WGPURequestAdapterStatus_Error, nullptr,
diff --git a/src/dawn/tests/DawnTest.cpp b/src/dawn/tests/DawnTest.cpp
index 6896f61..ef813e1 100644
--- a/src/dawn/tests/DawnTest.cpp
+++ b/src/dawn/tests/DawnTest.cpp
@@ -761,7 +761,7 @@
WGPUAdapter cAdapter = it->Get();
DAWN_ASSERT(cAdapter);
- native::GetProcs().adapterReference(cAdapter);
+ native::GetProcs().adapterAddRef(cAdapter);
callback(WGPURequestAdapterStatus_Success, cAdapter, nullptr, userdata);
};
diff --git a/src/dawn/tests/unittests/ObjectBaseTests.cpp b/src/dawn/tests/unittests/ObjectBaseTests.cpp
index ccc2a18..b9dd753 100644
--- a/src/dawn/tests/unittests/ObjectBaseTests.cpp
+++ b/src/dawn/tests/unittests/ObjectBaseTests.cpp
@@ -35,7 +35,7 @@
using ObjectBase::ObjectBase;
using ObjectBase::operator=;
- static void WGPUReference(int* handle) {
+ static void WGPUAddRef(int* handle) {
ASSERT_LE(0, *handle);
*handle += 1;
}
diff --git a/src/dawn/tests/unittests/RefBaseTests.cpp b/src/dawn/tests/unittests/RefBaseTests.cpp
index f898275..cc0fa2c 100644
--- a/src/dawn/tests/unittests/RefBaseTests.cpp
+++ b/src/dawn/tests/unittests/RefBaseTests.cpp
@@ -37,7 +37,7 @@
using Id = uint32_t;
enum class Action {
- kReference,
+ kAddRef,
kRelease,
kAssign,
kMarker,
@@ -51,8 +51,8 @@
std::ostream& operator<<(std::ostream& os, const Event& event) {
switch (event.action) {
- case Action::kReference:
- os << "Reference " << event.thisId;
+ case Action::kAddRef:
+ os << "AddRef " << event.thisId;
break;
case Action::kRelease:
os << "Release " << event.thisId;
@@ -80,7 +80,7 @@
RefTracker(Id id, Events* events) : mId(id), mEvents(events) {}
- void Reference() const { mEvents->emplace_back(Event{Action::kReference, mId}); }
+ void AddRef() const { mEvents->emplace_back(Event{Action::kAddRef, mId}); }
void Release() const { mEvents->emplace_back(Event{Action::kRelease, mId}); }
@@ -105,7 +105,7 @@
struct RefTrackerTraits {
static constexpr RefTracker kNullValue{nullptr};
- static void Reference(const RefTracker& handle) { handle.Reference(); }
+ static void AddRef(const RefTracker& handle) { handle.AddRef(); }
static void Release(const RefTracker& handle) { handle.Release(); }
};
@@ -152,9 +152,9 @@
Ref ref(tracker);
events.emplace_back(Event{Action::kMarker, 10});
}
- EXPECT_THAT(events, testing::ElementsAre(Event{Action::kReference, 1}, // reference tracker
- Event{Action::kMarker, 10}, //
- Event{Action::kRelease, 1} // destruct ref
+ EXPECT_THAT(events, testing::ElementsAre(Event{Action::kAddRef, 1}, // reference tracker
+ Event{Action::kMarker, 10}, //
+ Event{Action::kRelease, 1} // destruct ref
));
}
@@ -168,9 +168,9 @@
Ref refB(refA);
events.emplace_back(Event{Action::kMarker, 10});
}
- EXPECT_THAT(events, testing::ElementsAre(Event{Action::kReference, 1}, // reference tracker
- Event{Action::kMarker, 10}, //
- Event{Action::kRelease, 1} // destruct ref
+ EXPECT_THAT(events, testing::ElementsAre(Event{Action::kAddRef, 1}, // reference tracker
+ Event{Action::kMarker, 10}, //
+ Event{Action::kRelease, 1} // destruct ref
));
}
@@ -193,14 +193,14 @@
events.emplace_back(Event{Action::kMarker, 40});
}
EXPECT_THAT(events, testing::ElementsAre(Event{Action::kMarker, 10}, //
- Event{Action::kReference, 1}, // reference tracker1
+ Event{Action::kAddRef, 1}, // reference tracker1
Event{Action::kAssign, 0, 1}, // copy tracker1
Event{Action::kMarker, 20}, //
- Event{Action::kReference, 2}, // reference tracker2
+ Event{Action::kAddRef, 2}, // reference tracker2
Event{Action::kRelease, 1}, // release tracker1
Event{Action::kAssign, 1, 2}, // copy tracker2
Event{Action::kMarker, 30}, //
- Event{Action::kReference, 1}, // reference tracker1
+ Event{Action::kAddRef, 1}, // reference tracker1
Event{Action::kRelease, 2}, // release tracker2
Event{Action::kAssign, 2, 1}, // copy tracker1
Event{Action::kMarker, 40}, //
@@ -273,7 +273,7 @@
ref = tracker;
ref = tracker;
}
- EXPECT_THAT(events, testing::ElementsAre(Event{Action::kReference, 1}, //
+ EXPECT_THAT(events, testing::ElementsAre(Event{Action::kAddRef, 1}, //
Event{Action::kAssign, 0, 1}));
}
@@ -284,7 +284,7 @@
events.clear();
{ ref = std::move(tracker); }
- EXPECT_THAT(events, testing::ElementsAre(Event{Action::kReference, 1}, //
+ EXPECT_THAT(events, testing::ElementsAre(Event{Action::kAddRef, 1}, //
Event{Action::kAssign, 0, 1}));
}
@@ -303,14 +303,14 @@
ref = tracker1;
events.emplace_back(Event{Action::kMarker, 30});
}
- EXPECT_THAT(events, testing::ElementsAre(Event{Action::kReference, 1}, // reference tracker1
+ EXPECT_THAT(events, testing::ElementsAre(Event{Action::kAddRef, 1}, // reference tracker1
Event{Action::kAssign, 0, 1}, // copy tracker1
Event{Action::kMarker, 10}, //
- Event{Action::kReference, 2}, // reference tracker2
+ Event{Action::kAddRef, 2}, // reference tracker2
Event{Action::kRelease, 1}, // release tracker1
Event{Action::kAssign, 1, 2}, // copy tracker2
Event{Action::kMarker, 20}, //
- Event{Action::kReference, 1}, // reference tracker1
+ Event{Action::kAddRef, 1}, // reference tracker1
Event{Action::kRelease, 2}, // release tracker2
Event{Action::kAssign, 2, 1}, // copy tracker1
Event{Action::kMarker, 30}));
@@ -320,7 +320,7 @@
// depending on the order in which the compiler did implicit conversions.
struct FakePtrRefTraits {
static constexpr int* kNullValue{nullptr};
- static void Reference(int*) {}
+ static void AddRef(int*) {}
static void Release(int*) {}
};
TEST(RefBase, MissingExplicitOnOperatorBool) {
diff --git a/src/dawn/tests/unittests/RefCountedTests.cpp b/src/dawn/tests/unittests/RefCountedTests.cpp
index 4222243..655beaf 100644
--- a/src/dawn/tests/unittests/RefCountedTests.cpp
+++ b/src/dawn/tests/unittests/RefCountedTests.cpp
@@ -92,7 +92,7 @@
bool deleted = false;
auto* test = new RCTest(&deleted);
- test->Reference();
+ test->AddRef();
test->Release();
EXPECT_FALSE(deleted);
@@ -100,14 +100,14 @@
EXPECT_TRUE(deleted);
}
-// Test that Reference and Release atomically change the refcount.
-TEST(RefCounted, RaceOnReferenceRelease) {
+// Test that AddRef and Release atomically change the refcount.
+TEST(RefCounted, RaceOnAddRefRelease) {
bool deleted = false;
auto* test = new RCTest(&deleted);
auto referenceManyTimes = [test] {
for (uint32_t i = 0; i < 100000; ++i) {
- test->Reference();
+ test->AddRef();
}
};
std::thread t1(referenceManyTimes);
@@ -295,7 +295,7 @@
RCTest* test = new RCTest(1ull);
EXPECT_EQ(test->GetRefCountPayload(), 1u);
- test->Reference();
+ test->AddRef();
EXPECT_EQ(test->GetRefCountPayload(), 1u);
test->Release();
EXPECT_EQ(test->GetRefCountPayload(), 1u);
diff --git a/src/dawn/tests/unittests/wire/WireBasicTests.cpp b/src/dawn/tests/unittests/wire/WireBasicTests.cpp
index 3dd5388..f0d7326 100644
--- a/src/dawn/tests/unittests/wire/WireBasicTests.cpp
+++ b/src/dawn/tests/unittests/wire/WireBasicTests.cpp
@@ -68,7 +68,7 @@
TEST_F(WireBasicTests, RefCountKeptInClient) {
WGPUCommandEncoder encoder = wgpuDeviceCreateCommandEncoder(device, nullptr);
- wgpuCommandEncoderReference(encoder);
+ wgpuCommandEncoderAddRef(encoder);
wgpuCommandEncoderRelease(encoder);
WGPUCommandEncoder apiCmdBufEncoder = api.GetNewCommandEncoder();
diff --git a/src/dawn/tests/unittests/wire/WireDeviceLifetimeTests.cpp b/src/dawn/tests/unittests/wire/WireDeviceLifetimeTests.cpp
index cd14dd9..8b9c053 100644
--- a/src/dawn/tests/unittests/wire/WireDeviceLifetimeTests.cpp
+++ b/src/dawn/tests/unittests/wire/WireDeviceLifetimeTests.cpp
@@ -118,7 +118,7 @@
// Drop the device, but keep the server-side device alive.
// This prevents the callbacks from being flushed yet.
WGPUDevice oldDevice = lastBackendDevice;
- nativeProcs.deviceReference(oldDevice);
+ nativeProcs.deviceAddRef(oldDevice);
device = nullptr;
// Request a new device. This overrides the wire's device-related data.
@@ -166,7 +166,7 @@
// Drop the device, but keep the server-side device alive.
// This prevents the callbacks from being flushed yet.
WGPUDevice oldDevice = lastBackendDevice;
- nativeProcs.deviceReference(oldDevice);
+ nativeProcs.deviceAddRef(oldDevice);
device = nullptr;
// Request a new device. This overrides the wire's device-related data.
@@ -203,7 +203,7 @@
// Drop the device, but keep the server-side device alive.
// This prevents the callbacks from being flushed yet.
WGPUDevice oldDevice = lastBackendDevice;
- nativeProcs.deviceReference(oldDevice);
+ nativeProcs.deviceAddRef(oldDevice);
device = nullptr;
// Destroy the device to enqueue calling the lost callback.
diff --git a/src/dawn/tests/unittests/wire/WireInjectInstanceTests.cpp b/src/dawn/tests/unittests/wire/WireInjectInstanceTests.cpp
index 1ae8dde..d5e0ede 100644
--- a/src/dawn/tests/unittests/wire/WireInjectInstanceTests.cpp
+++ b/src/dawn/tests/unittests/wire/WireInjectInstanceTests.cpp
@@ -49,7 +49,7 @@
auto reserved = GetWireClient()->ReserveInstance();
WGPUInstance serverInstance = api.GetNewInstance();
- EXPECT_CALL(api, InstanceReference(serverInstance));
+ EXPECT_CALL(api, InstanceAddRef(serverInstance));
ASSERT_TRUE(GetWireServer()->InjectInstance(serverInstance, reserved.handle));
WGPUSurfaceDescriptor surfaceDesc = {};
@@ -74,20 +74,20 @@
auto reserved = GetWireClient()->ReserveInstance();
WGPUInstance serverInstance = api.GetNewInstance();
- EXPECT_CALL(api, InstanceReference(serverInstance));
+ EXPECT_CALL(api, InstanceAddRef(serverInstance));
ASSERT_TRUE(GetWireServer()->InjectInstance(serverInstance, reserved.handle));
// ID already in use, call fails.
ASSERT_FALSE(GetWireServer()->InjectInstance(serverInstance, reserved.handle));
}
-// Test that the server only borrows the instance and does a single reference-release
+// Test that the server only borrows the instance and does a single addref-release
TEST_F(WireInjectInstanceTests, InjectedInstanceLifetime) {
auto reserved = GetWireClient()->ReserveInstance();
// Injecting the instance adds a reference
WGPUInstance serverInstance = api.GetNewInstance();
- EXPECT_CALL(api, InstanceReference(serverInstance));
+ EXPECT_CALL(api, InstanceAddRef(serverInstance));
ASSERT_TRUE(GetWireServer()->InjectInstance(serverInstance, reserved.handle));
// Releasing the instance removes a single reference.
diff --git a/src/dawn/tests/unittests/wire/WireInjectSwapChainTests.cpp b/src/dawn/tests/unittests/wire/WireInjectSwapChainTests.cpp
index 02d3e18..d55799d 100644
--- a/src/dawn/tests/unittests/wire/WireInjectSwapChainTests.cpp
+++ b/src/dawn/tests/unittests/wire/WireInjectSwapChainTests.cpp
@@ -57,7 +57,7 @@
auto reserved = GetWireClient()->ReserveSwapChain(device, &swapChainDesc);
WGPUSwapChain apiSwapchain = api.GetNewSwapChain();
- EXPECT_CALL(api, SwapChainReference(apiSwapchain));
+ EXPECT_CALL(api, SwapChainAddRef(apiSwapchain));
ASSERT_TRUE(
GetWireServer()->InjectSwapChain(apiSwapchain, reserved.handle, reserved.deviceHandle));
@@ -80,7 +80,7 @@
auto reserved = GetWireClient()->ReserveSwapChain(device, &swapChainDesc);
WGPUSwapChain apiSwapchain = api.GetNewSwapChain();
- EXPECT_CALL(api, SwapChainReference(apiSwapchain));
+ EXPECT_CALL(api, SwapChainAddRef(apiSwapchain));
ASSERT_TRUE(
GetWireServer()->InjectSwapChain(apiSwapchain, reserved.handle, reserved.deviceHandle));
@@ -89,13 +89,13 @@
GetWireServer()->InjectSwapChain(apiSwapchain, reserved.handle, reserved.deviceHandle));
}
-// Test that the server only borrows the swapchain and does a single reference-release
+// Test that the server only borrows the swapchain and does a single addref-release
TEST_F(WireInjectSwapChainTests, InjectedSwapChainLifetime) {
auto reserved = GetWireClient()->ReserveSwapChain(device, &swapChainDesc);
// Injecting the swapchain adds a reference
WGPUSwapChain apiSwapchain = api.GetNewSwapChain();
- EXPECT_CALL(api, SwapChainReference(apiSwapchain));
+ EXPECT_CALL(api, SwapChainAddRef(apiSwapchain));
ASSERT_TRUE(
GetWireServer()->InjectSwapChain(apiSwapchain, reserved.handle, reserved.deviceHandle));
@@ -140,7 +140,7 @@
auto reserved = GetWireClient()->ReserveSwapChain(device, &swapChainDesc);
WGPUSwapChain apiSwapchain = api.GetNewSwapChain();
- EXPECT_CALL(api, SwapChainReference(apiSwapchain));
+ EXPECT_CALL(api, SwapChainAddRef(apiSwapchain));
ASSERT_TRUE(
GetWireServer()->InjectSwapChain(apiSwapchain, reserved.handle, reserved.deviceHandle));
diff --git a/src/dawn/tests/unittests/wire/WireInjectTextureTests.cpp b/src/dawn/tests/unittests/wire/WireInjectTextureTests.cpp
index cc5a143..02f0b3f 100644
--- a/src/dawn/tests/unittests/wire/WireInjectTextureTests.cpp
+++ b/src/dawn/tests/unittests/wire/WireInjectTextureTests.cpp
@@ -52,7 +52,7 @@
auto reserved = GetWireClient()->ReserveTexture(device, &placeholderDesc);
WGPUTexture apiTexture = api.GetNewTexture();
- EXPECT_CALL(api, TextureReference(apiTexture));
+ EXPECT_CALL(api, TextureAddRef(apiTexture));
ASSERT_TRUE(GetWireServer()->InjectTexture(apiTexture, reserved.handle, reserved.deviceHandle));
wgpuTextureCreateView(reserved.texture, nullptr);
@@ -75,7 +75,7 @@
auto reserved = GetWireClient()->ReserveTexture(device, &placeholderDesc);
WGPUTexture apiTexture = api.GetNewTexture();
- EXPECT_CALL(api, TextureReference(apiTexture));
+ EXPECT_CALL(api, TextureAddRef(apiTexture));
ASSERT_TRUE(GetWireServer()->InjectTexture(apiTexture, reserved.handle, reserved.deviceHandle));
// ID already in use, call fails.
@@ -93,7 +93,7 @@
reserved = GetWireClient()->ReserveTexture(device, &placeholderDesc);
apiTexture = api.GetNewTexture();
- EXPECT_CALL(api, TextureReference(apiTexture));
+ EXPECT_CALL(api, TextureAddRef(apiTexture));
ASSERT_TRUE(
GetWireServer()->InjectTexture(apiTexture, reserved.handle, reserved.deviceHandle));
@@ -116,18 +116,18 @@
}
// Valid to inject with the same ID and greater generation.
- EXPECT_CALL(api, TextureReference(apiTexture));
+ EXPECT_CALL(api, TextureAddRef(apiTexture));
reserved.handle.generation += 2;
ASSERT_TRUE(GetWireServer()->InjectTexture(apiTexture, reserved.handle, reserved.deviceHandle));
}
-// Test that the server only borrows the texture and does a single reference-release
+// Test that the server only borrows the texture and does a single addref-release
TEST_F(WireInjectTextureTests, InjectedTextureLifetime) {
auto reserved = GetWireClient()->ReserveTexture(device, &placeholderDesc);
// Injecting the texture adds a reference
WGPUTexture apiTexture = api.GetNewTexture();
- EXPECT_CALL(api, TextureReference(apiTexture));
+ EXPECT_CALL(api, TextureAddRef(apiTexture));
ASSERT_TRUE(GetWireServer()->InjectTexture(apiTexture, reserved.handle, reserved.deviceHandle));
// Releasing the texture removes a single reference.
diff --git a/src/dawn/tests/unittests/wire/WireInstanceTests.cpp b/src/dawn/tests/unittests/wire/WireInstanceTests.cpp
index 52155fd..4d1b4d1 100644
--- a/src/dawn/tests/unittests/wire/WireInstanceTests.cpp
+++ b/src/dawn/tests/unittests/wire/WireInstanceTests.cpp
@@ -59,7 +59,7 @@
wgpu::Instance instance = wgpu::Instance::Acquire(reserved.instance);
WGPUInstance apiInstance = api.GetNewInstance();
- EXPECT_CALL(api, InstanceReference(apiInstance));
+ EXPECT_CALL(api, InstanceAddRef(apiInstance));
EXPECT_TRUE(GetWireServer()->InjectInstance(apiInstance, reserved.handle));
instance = nullptr;
diff --git a/src/dawn/tests/unittests/wire/WireTest.cpp b/src/dawn/tests/unittests/wire/WireTest.cpp
index 0dc22de..327ec0f 100644
--- a/src/dawn/tests/unittests/wire/WireTest.cpp
+++ b/src/dawn/tests/unittests/wire/WireTest.cpp
@@ -85,7 +85,7 @@
auto reservedInstance = GetWireClient()->ReserveInstance();
instance = reservedInstance.instance;
apiInstance = api.GetNewInstance();
- EXPECT_CALL(api, InstanceReference(apiInstance));
+ EXPECT_CALL(api, InstanceAddRef(apiInstance));
EXPECT_TRUE(GetWireServer()->InjectInstance(apiInstance, reservedInstance.handle));
// Create the adapter for testing.
diff --git a/src/dawn/wire/client/Buffer.cpp b/src/dawn/wire/client/Buffer.cpp
index 88a4202..6c166a4 100644
--- a/src/dawn/wire/client/Buffer.cpp
+++ b/src/dawn/wire/client/Buffer.cpp
@@ -63,7 +63,7 @@
mUserdata(callbackInfo.userdata),
mBuffer(buffer) {
DAWN_ASSERT(buffer != nullptr);
- mBuffer->Reference();
+ mBuffer->AddRef();
}
~MapAsyncEvent() override { mBuffer.ExtractAsDangling()->Release(); }
diff --git a/src/dawn/wire/client/Device.cpp b/src/dawn/wire/client/Device.cpp
index 0cfe6c8..47b909c 100644
--- a/src/dawn/wire/client/Device.cpp
+++ b/src/dawn/wire/client/Device.cpp
@@ -176,7 +176,7 @@
DeviceLostEvent(const WGPUDeviceLostCallbackInfo& callbackInfo, Device* device)
: TrackedEvent(callbackInfo.mode), mDevice(device) {
DAWN_ASSERT(device != nullptr);
- mDevice->Reference();
+ mDevice->AddRef();
}
~DeviceLostEvent() override { mDevice.ExtractAsDangling()->Release(); }
@@ -448,7 +448,7 @@
client->SerializeCommand(cmd);
}
- mQueue->Reference();
+ mQueue->AddRef();
return ToAPI(mQueue);
}
diff --git a/src/dawn/wire/client/ObjectBase.cpp b/src/dawn/wire/client/ObjectBase.cpp
index df76a08..14a9f27 100644
--- a/src/dawn/wire/client/ObjectBase.cpp
+++ b/src/dawn/wire/client/ObjectBase.cpp
@@ -55,7 +55,7 @@
return mClient;
}
-void ObjectBase::Reference() {
+void ObjectBase::AddRef() {
mRefcount++;
}
diff --git a/src/dawn/wire/client/ObjectBase.h b/src/dawn/wire/client/ObjectBase.h
index 16d4fbf6..58649d2 100644
--- a/src/dawn/wire/client/ObjectBase.h
+++ b/src/dawn/wire/client/ObjectBase.h
@@ -63,7 +63,7 @@
ObjectGeneration GetWireGeneration() const;
Client* GetClient() const;
- void Reference();
+ void AddRef();
uint32_t Release();
protected:
diff --git a/src/dawn/wire/client/ShaderModule.cpp b/src/dawn/wire/client/ShaderModule.cpp
index 09a7ea7..cc84965 100644
--- a/src/dawn/wire/client/ShaderModule.cpp
+++ b/src/dawn/wire/client/ShaderModule.cpp
@@ -44,7 +44,7 @@
mUserdata(callbackInfo.userdata),
mShader(shader) {
DAWN_ASSERT(mShader != nullptr);
- mShader->Reference();
+ mShader->AddRef();
}
~CompilationInfoEvent() override { mShader.ExtractAsDangling()->Release(); }
diff --git a/src/dawn/wire/server/Server.cpp b/src/dawn/wire/server/Server.cpp
index bac95a1..f7c0a26 100644
--- a/src/dawn/wire/server/Server.cpp
+++ b/src/dawn/wire/server/Server.cpp
@@ -80,7 +80,7 @@
// The texture is externally owned so it shouldn't be destroyed when we receive a destroy
// message from the client. Add a reference to counterbalance the eventual release.
- mProcs.textureReference(texture);
+ mProcs.textureAddRef(texture);
return WireResult::Success;
}
@@ -104,7 +104,7 @@
// The texture is externally owned so it shouldn't be destroyed when we receive a destroy
// message from the client. Add a reference to counterbalance the eventual release.
- mProcs.swapChainReference(swapchain);
+ mProcs.swapChainAddRef(swapchain);
return WireResult::Success;
}
@@ -120,7 +120,7 @@
// The instance is externally owned so it shouldn't be destroyed when we receive a destroy
// message from the client. Add a reference to counterbalance the eventual release.
- mProcs.instanceReference(instance);
+ mProcs.instanceAddRef(instance);
return WireResult::Success;
}