Title: [288074] trunk/Source/ThirdParty/ANGLE
- Revision
- 288074
- Author
- ddkil...@apple.com
- Date
- 2022-01-16 13:34:17 -0800 (Sun, 16 Jan 2022)
Log Message
REGRESSION (r286603): Leak of three NSMutableDictionary objects each time rx::DisplayMtl::getMetalDeviceMatchingAttribute() is called
<https://webkit.org/b/235278>
<rdar://problem/87653812>
Reviewed by Darin Adler.
* src/libANGLE/renderer/metal/DisplayMtl.mm:
(rx::DisplayMtl::getMetalDeviceMatchingAttribute):
- Make use of mtl::adoptObjCObj<> so these objects are relaseed
when the method returns.
Modified Paths
Diff
Modified: trunk/Source/ThirdParty/ANGLE/ChangeLog (288073 => 288074)
--- trunk/Source/ThirdParty/ANGLE/ChangeLog 2022-01-16 20:51:53 UTC (rev 288073)
+++ trunk/Source/ThirdParty/ANGLE/ChangeLog 2022-01-16 21:34:17 UTC (rev 288074)
@@ -1,3 +1,16 @@
+2022-01-16 David Kilzer <ddkil...@apple.com>
+
+ REGRESSION (r286603): Leak of three NSMutableDictionary objects each time rx::DisplayMtl::getMetalDeviceMatchingAttribute() is called
+ <https://webkit.org/b/235278>
+ <rdar://problem/87653812>
+
+ Reviewed by Darin Adler.
+
+ * src/libANGLE/renderer/metal/DisplayMtl.mm:
+ (rx::DisplayMtl::getMetalDeviceMatchingAttribute):
+ - Make use of mtl::adoptObjCObj<> so these objects are relaseed
+ when the method returns.
+
2022-01-14 Kyle Piddington <kpidding...@apple.com>
ANGLE: Supports32BitFloatFiltering is not supported on TVOS
Modified: trunk/Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/DisplayMtl.mm (288073 => 288074)
--- trunk/Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/DisplayMtl.mm 2022-01-16 20:51:53 UTC (rev 288073)
+++ trunk/Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/DisplayMtl.mm 2022-01-16 21:34:17 UTC (rev 288074)
@@ -238,22 +238,22 @@
#if defined(ANGLE_PLATFORM_MACOS) || defined(ANGLE_PLATFORM_MACCATALYST)
auto deviceList = mtl::adoptObjCObj(MTLCopyAllDevices());
- NSMutableArray<id<MTLDevice>> *externalGPUs = [[NSMutableArray alloc] init];
- NSMutableArray<id<MTLDevice>> *integratedGPUs = [[NSMutableArray alloc] init];
- NSMutableArray<id<MTLDevice>> *discreteGPUs = [[NSMutableArray alloc] init];
+ auto externalGPUs = mtl::adoptObjCObj<NSMutableArray<id<MTLDevice>>>([[NSMutableArray alloc] init]);
+ auto integratedGPUs = mtl::adoptObjCObj<NSMutableArray<id<MTLDevice>>>([[NSMutableArray alloc] init]);
+ auto discreteGPUs = mtl::adoptObjCObj<NSMutableArray<id<MTLDevice>>>([[NSMutableArray alloc] init]);
for (id<MTLDevice> device in deviceList.get())
{
if (device.removable)
{
- [externalGPUs addObject:device];
+ [externalGPUs.get() addObject:device];
}
else if (device.lowPower)
{
- [integratedGPUs addObject:device];
+ [integratedGPUs.get() addObject:device];
}
else
{
- [discreteGPUs addObject:device];
+ [discreteGPUs.get() addObject:device];
}
}
// TODO(kpiddington: External GPU support. Do we prefer high power / low bandwidth for general
@@ -262,7 +262,7 @@
if (attribs.get(EGL_POWER_PREFERENCE_ANGLE, 0) == EGL_HIGH_POWER_ANGLE)
{
// Search for a discrete GPU first.
- for (id<MTLDevice> device in discreteGPUs)
+ for (id<MTLDevice> device in discreteGPUs.get())
{
if (![device isHeadless])
return device;
@@ -271,7 +271,7 @@
else if (attribs.get(EGL_POWER_PREFERENCE_ANGLE, 0) == EGL_LOW_POWER_ANGLE)
{
// If we've selected a low power device, look through integrated devices.
- for (id<MTLDevice> device in integratedGPUs)
+ for (id<MTLDevice> device in integratedGPUs.get())
{
if (![device isHeadless])
return device;
@@ -295,7 +295,7 @@
}
// Default to use a low power device, look through integrated devices.
- for (id<MTLDevice> device in integratedGPUs)
+ for (id<MTLDevice> device in integratedGPUs.get())
{
if (![device isHeadless])
return device;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes