commit - 26c6b2579543e928158fa7d3c00d8b0e04ac270c
commit + 61601587295f6d0ef1c4084530fe0318e0c72b16
blob - 78110302b1f40714d758eeaa023d4a5012fe01e0
blob + 21c041a5586c3486defa415cffd1e7964503f688
--- src/cmd/devdraw/cocoa-screen-metal.m
+++ src/cmd/devdraw/cocoa-screen-metal.m
id<MTLLibrary> library;
MTLRenderPipelineDescriptor *pipelineDesc;
NSError *error;
+ NSArray *allDevices;
const NSWindowStyleMask Winstyle = NSWindowStyleMaskTitled
| NSWindowStyleMaskClosable
[win setContentView:myContent];
[myContent setWantsLayer:YES];
[myContent setLayerContentsRedrawPolicy:NSViewLayerContentsRedrawOnSetNeedsDisplay];
-
- device = MTLCreateSystemDefaultDevice();
+
+ device = nil;
+ allDevices = MTLCopyAllDevices();
+ for(id mtlDevice in allDevices) {
+ if ([mtlDevice isLowPower] && ![mtlDevice isRemovable]) {
+ device = mtlDevice;
+ break;
+ }
+ }
+ if(!device)
+ device = MTLCreateSystemDefaultDevice();
+
commandQueue = [device newCommandQueue];
layer = (DrawLayer *)[myContent layer];