Post

Replies

Boosts

Views

Activity

Comment on CoreImage memory build up on real device but not on simulator
Good question. I would recommend to use the startTask(...) APIs of CIContext to render to a CIRenderDestionation. You get a CIRenderTask object back, on which you can call waitUntilCompleted() to get a CIRenderInfo object. When you Quick Look that in Xcode (mark the variable and press space), you get a very detailed render graph that, among many other useful info, shows how much memory the render pass required.
Nov ’25
Comment on CoreImage memory build up on real device but not on simulator
Hmm, this looks to me like a problem with profiling itself. If you run the experiment just in Xcode and watch the memory graph, you'll see that memory will return to normal a little while after rendering. Even if spamming the button, memory stays well within the resource limits. I don't know why, when profiling with instruments, those small 4 MiB surfaces don't get released. 🤷‍♂️
Nov ’25
Comment on Capturing & Processing ProRaw 48MP images is slow
Deferred here means that it's doing the bulk of the work later, but gives you something you can use and show the user quickly. So you can quickly show a preview of the capture (the 12 MP image) and a few seconds later update it with the fully processed 48 MP image. Since you want to use CIRawFilter, I'm afraid you have to wait for the full image to arrive before you can present the user with editing controls. But you can use the smaller image to bridge the UI transition.
Mar ’25
Comment on CIImageProcessorKernel using Metal Compute Pipeline error
On iOS, there is a watch dog that kills processes on the GPU that run too long. I don't think there is much you can do to change the timing limit. The only way to prevent that is to improve the runtime of your algorithm. You could also try splitting up the work into multiple steps, if possible. E.g., by splitting up the images into regions and performing the regression on the regions first, and then once more on the results of step one.
Topic: Graphics & Games SubTopic: Metal Tags:
Aug ’24
Comment on Linker trying to link Metal toolchain for every object file on Catalyst
Thanks for looking into this, Quinn! Feedback is filed under FB22188848.
Replies
Boosts
Views
Activity
Mar ’26
Comment on CoreImage memory build up on real device but not on simulator
How did you write your kernels before? In CI Kernel Language? If so, I would highly recommend to not mix Metal and CIKL kernels in one rendering. It's best if you can translate all your kernels to Metal.
Replies
Boosts
Views
Activity
Nov ’25
Comment on CoreImage memory build up on real device but not on simulator
Good question. I would recommend to use the startTask(...) APIs of CIContext to render to a CIRenderDestionation. You get a CIRenderTask object back, on which you can call waitUntilCompleted() to get a CIRenderInfo object. When you Quick Look that in Xcode (mark the variable and press space), you get a very detailed render graph that, among many other useful info, shows how much memory the render pass required.
Replies
Boosts
Views
Activity
Nov ’25
Comment on CoreImage memory build up on real device but not on simulator
Hmm, this looks to me like a problem with profiling itself. If you run the experiment just in Xcode and watch the memory graph, you'll see that memory will return to normal a little while after rendering. Even if spamming the button, memory stays well within the resource limits. I don't know why, when profiling with instruments, those small 4 MiB surfaces don't get released. 🤷‍♂️
Replies
Boosts
Views
Activity
Nov ’25
Comment on Unable to compile Core Image filter on Xcode 26 due to missing Metal toolchain
I can confirm what @ihomway says: it works after a reboot. 👍
Topic: Graphics & Games SubTopic: Metal Tags:
Replies
Boosts
Views
Activity
Jun ’25
Comment on Unable to compile Core Image filter on Xcode 26 due to missing Metal toolchain
It's still not working. Do we need to remove the previous toolchain download somehow?
Topic: Graphics & Games SubTopic: Metal Tags:
Replies
Boosts
Views
Activity
Jun ’25
Comment on UI freeze during layouting
But shouldn't the stack trace be longer in this case?
Topic: UI Frameworks SubTopic: UIKit Tags:
Replies
Boosts
Views
Activity
Apr ’25
Comment on Loading a DNG into CIRAWFilter and use HDR
When you call CIRAWFilter(imageURL: rawURL, options: [:]) you are calling the old, deprecated CIFilter RAW API. What happens if you just use CIRAWFilter(imageURL: rawURL) (the actual initializer of CIRAWFilter)?
Topic: UI Frameworks SubTopic: General Tags:
Replies
Boosts
Views
Activity
Mar ’25
Comment on iOS 18.4 beta 4 tipkit crash
How does the crash look like? Where does it crash? Do you have a crash log?
Topic: UI Frameworks SubTopic: General Tags:
Replies
Boosts
Views
Activity
Mar ’25
Comment on Capturing & Processing ProRaw 48MP images is slow
Deferred here means that it's doing the bulk of the work later, but gives you something you can use and show the user quickly. So you can quickly show a preview of the capture (the 12 MP image) and a few seconds later update it with the fully processed 48 MP image. Since you want to use CIRawFilter, I'm afraid you have to wait for the full image to arrive before you can present the user with editing controls. But you can use the smaller image to bridge the UI transition.
Replies
Boosts
Views
Activity
Mar ’25
Comment on develop app in Europe using image playground
All I did was to set the system & Siri language to English (US) and log in with a US sandbox account under Media & Purchases. Then I could enable Apple Intelligence on my iPad in Germany.
Replies
Boosts
Views
Activity
Jan ’25
Comment on develop app in Europe using image playground
What device did you test on? The trick only works on iPad, not on iPhone and also not on the Simulator (not even in supported countries). It also has to be an iPad that supports Apple Intelligence (M1 or newer).
Replies
Boosts
Views
Activity
Jan ’25
Comment on Image Playground not available for "Designed for iPad" apps?
Tested with macOS 15.2 RC 2.
Replies
Boosts
Views
Activity
Dec ’24
Comment on CIImageProcessorKernel using Metal Compute Pipeline error
On iOS, there is a watch dog that kills processes on the GPU that run too long. I don't think there is much you can do to change the timing limit. The only way to prevent that is to improve the runtime of your algorithm. You could also try splitting up the work into multiple steps, if possible. E.g., by splitting up the images into regions and performing the regression on the regions first, and then once more on the results of step one.
Topic: Graphics & Games SubTopic: Metal Tags:
Replies
Boosts
Views
Activity
Aug ’24
Comment on IOSurface vs. IOSurfaceRef on Catalyst
Thanks for the reply! I already filed FB14074014 for this. I also attached a small sample project now.
Topic: Media Technologies SubTopic: General Tags:
Replies
Boosts
Views
Activity
Jun ’24