mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-16 14:55:47 +00:00
Bug 1743667 - Fix GPUSupportedFeatures on WebGPU device r=jimb
Differential Revision: https://phabricator.services.mozilla.com/D133907
This commit is contained in:
parent
7ec3a677e7
commit
3e51a513a1
@ -89,14 +89,13 @@ already_AddRefed<dom::Promise> Adapter::RequestDevice(
|
||||
Maybe<RawId> id = mBridge->AdapterRequestDevice(mId, aDesc, &limits);
|
||||
if (id.isSome()) {
|
||||
RefPtr<Device> device =
|
||||
new Device(this, id.value(), aDesc.mRequiredFeatures,
|
||||
MakeUnique<ffi::WGPULimits>(limits));
|
||||
new Device(this, id.value(), MakeUnique<ffi::WGPULimits>(limits));
|
||||
// copy over the features
|
||||
for (const auto& feature : aDesc.mRequiredFeatures) {
|
||||
NS_ConvertASCIItoUTF16 string(
|
||||
dom::GPUFeatureNameValues::GetString(feature));
|
||||
dom::GPUSupportedFeatures_Binding::SetlikeHelpers::Add(mFeatures, string,
|
||||
aRv);
|
||||
dom::GPUSupportedFeatures_Binding::SetlikeHelpers::Add(device->mFeatures,
|
||||
string, aRv);
|
||||
}
|
||||
promise->MaybeResolve(device);
|
||||
} else {
|
||||
|
@ -54,15 +54,14 @@ JSObject* Device::CreateExternalArrayBuffer(JSContext* aCx, size_t aOffset,
|
||||
}
|
||||
|
||||
Device::Device(Adapter* const aParent, RawId aId,
|
||||
const dom::Sequence<dom::GPUFeatureName>& aRequiredFeatures,
|
||||
UniquePtr<ffi::WGPULimits> aRawLimits)
|
||||
: DOMEventTargetHelper(aParent->GetParentObject()),
|
||||
mId(aId),
|
||||
mBridge(aParent->mBridge),
|
||||
mQueue(new class Queue(this, aParent->mBridge, aId)),
|
||||
// features are filled in Adapter::RequestDevice
|
||||
mFeatures(new SupportedFeatures(aParent)),
|
||||
mLimits(new SupportedLimits(aParent, std::move(aRawLimits))) {
|
||||
mLimits(new SupportedLimits(aParent, std::move(aRawLimits))),
|
||||
mBridge(aParent->mBridge),
|
||||
mQueue(new class Queue(this, aParent->mBridge, aId)) {
|
||||
mBridge->RegisterDevice(mId, this);
|
||||
}
|
||||
|
||||
|
@ -84,9 +84,10 @@ class Device final : public DOMEventTargetHelper {
|
||||
GPU_DECL_JS_WRAP(Device)
|
||||
|
||||
const RawId mId;
|
||||
RefPtr<SupportedFeatures> mFeatures;
|
||||
RefPtr<SupportedLimits> mLimits;
|
||||
|
||||
explicit Device(Adapter* const aParent, RawId aId,
|
||||
const dom::Sequence<dom::GPUFeatureName>& aRequiredFeatures,
|
||||
UniquePtr<ffi::WGPULimits> aRawLimits);
|
||||
|
||||
RefPtr<WebGPUChild> GetBridge();
|
||||
@ -113,8 +114,6 @@ class Device final : public DOMEventTargetHelper {
|
||||
nsString mLabel;
|
||||
RefPtr<Queue> mQueue;
|
||||
nsTHashSet<nsCString> mKnownWarnings;
|
||||
RefPtr<SupportedFeatures> mFeatures;
|
||||
RefPtr<SupportedLimits> mLimits;
|
||||
|
||||
public:
|
||||
void GetLabel(nsAString& aValue) const;
|
||||
|
Loading…
Reference in New Issue
Block a user