Commit 06e21a8c authored by Roman Sedaikin's avatar Roman Sedaikin

Using an integrated video card on Metal rendering instead of a discrete one.

parent 347633a6
......@@ -100,6 +100,25 @@ JNIEXPORT jlong JNICALL Java_org_jetbrains_skiko_redrawer_MetalRedrawer_makeMeta
return (jlong) renderTarget;
}
id<MTLDevice> MTLCreateInegratedDevice() {
NSArray<id<MTLDevice>> *devices = MTLCopyAllDevices();
id<MTLDevice> gpu = nil;
for (id<MTLDevice> device in devices) {
if (device.isLowPower) {
gpu = device;
break;
}
}
if (gpu == nil) {
gpu = MTLCreateSystemDefaultDevice();
}
return gpu;
}
JNIEXPORT jlong JNICALL Java_org_jetbrains_skiko_redrawer_MetalRedrawer_createMetalDevice(
JNIEnv *env, jobject redrawer, jlong platformInfoPtr)
{
......@@ -116,7 +135,7 @@ JNIEXPORT jlong JNICALL Java_org_jetbrains_skiko_redrawer_MetalRedrawer_createMe
[container addSublayer: layer];
layer.javaRef = env->NewGlobalRef(redrawer);
id<MTLDevice> fDevice = MTLCreateSystemDefaultDevice();
id<MTLDevice> fDevice = MTLCreateInegratedDevice();
id<MTLCommandQueue> fQueue = [fDevice newCommandQueue];
device.container = container;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment