Post

Replies

Boosts

Views

Activity

Reply to AVAssetExportSession fails part way thru for long videos
hi, thanks for the response. the problem seems to be at some low level. example case is: get a movie longer than 1 hour into your camera roll. try to clip it to 1 hour with the built-in video tools in the iOS photo app. it clips it to something like 43 minutes instead of 1 hour. we have temporarily worked around the problem by only allowing 40 minute videos max in our app. it is interesting that you say there might be a problem w/ the video, i will try other videos when we get back to this issue.
Apr ’21
Reply to iphone has denied the launch request
if anyone else is running into this error, just ran into this in Feb 2021, i found a clue that helped me solve it via this other forum post https://developer.apple.com/forums/thread/662300 when i would go to the keychain app on mac and click on the auto-generated developer certificate (not provisioning profile, but certificate), keychain was showing a message about the certificate being "not trusted" delete that cert, it seems to be bad. this led me to the above link, which tells you to re-download an intermediate certificate. then do the automatic provisioning in apple xcode as usual (like unclick automatic button and reclick it). then try to run on device. works, finally first time in a couple weeks i got this to work. what a terrible error message it gives for this problem. why not just say the intermedidate certificate is untrusted, so get a new one from this link here?
Feb ’21
Reply to AVAssetWriter fail in background
Yes I have seen notes about this behavior in Stackoverflow etc. Thanks for the response! Do you know offhand if it is allowed to run the AVAssetWriter from a true background process: BGTaskScheduler? Apparently those allow more time than the app just going off into the background. Another alternative might be a software implementation of an MP4 writer that takes an AVAsset as input. Something like ffmpeg or something. Not as efficient, but pausing due to app sleeping might be less of an issue then.
Feb ’21
Reply to imessage extension not getting touch events
If anyone has this issue, I seem to have found it: I implemented viewDidAppear:(BOOL)animated in the MessagesViewController.m, but i did not call [super viewDidAppear:animated]. Adding the call to super fixed the missing touch events. The problem seems unrelated to the CFMessagePort error, because those are still showing in xcode console.
Dec ’20
Reply to Metal performance compared to OpenCL
This is an interesting thread, thanks for the orig post. I was under the impression that Metal was almost always faster than OpenCL because OpenCL is and old and clunky higher level API, but Metal "goes right to the metal" as they say. I guess not? I would suggest looking into the global memory access times if you can, e.g. the read-write refs to the "device" declared arrays. I am unsure of the latest tools for this, but you can try to check into the problem by removing device arrays from the picture and just doing fake calculations. E.g. try to set up some local arrays in thread or threadgroup storage instead of device storage for the arrays xyin, xyout and spherical_params (see https://developer.apple.com/metal/Metal-Shading-Language-Specification.pdf section 4.3) and dont even bother to initialize them. Just let the array dereferences and calculations stay the same in your kernel and let it run on bogus float data in those threadgroup arrays. See if it is faster. It should be a lot faster. If it is faster, then you can see the problem is the GPU / kernel code "reaching out" to global memory space for reads and writes. I have seen that sometimes the performance tools show slow calculations on a given line of code, but that may be due to memory read-write access, not the computation itself. A common pattern is copying "device" or global arrays into a chunk of threadgroup array storage e.g. in parallel, then let the kernel calcs read/write on the threadgroup arrays, then block copy in parallel the threadgroup results back into device/global memory. There are some cool CUDA examples of this in the CUDA intro tutorials... there may be some for Metal also. Oh I also see that "mattke" in this thread has the threadlocal mem / sync example. Before going down that more complicated path (which may be required eventually).../ you could try stuff like this: Copy globals to a local variable (not threadgroup), do all processing on local variables, then copy out to global in one step. E.g. for the 2 lines that use the "params" global: xyout[index].x = params->x + params->scale * x; xyout[index].y = params->y + params->scale * y; Instead, you could try: sphericalparams localparams; float2 localxyout;  localparams = params; // copy whole struct to local mem // now all mem refs are local in these 2 lines: localxyout.x = localparams.x + localparams.scale * x; localxyout.y = localparams.y + localparams.scale * y; // copy the float2 back to global mem w/ one index/deref operation xyout[index] = localxyout; PS: this Apple service is making some words italic but not in the preview I am typing...that is not intentional. Similarly, you could access the input array only once at the top of the kernel: float2 localxyin; localxyin = xyin[index]; Now use localxy_in where you compute lambda and phi.
Nov ’20
Reply to 1024x1024 icon required...but the app has it
fyi, found the problem if anyone needs it: in the asset catalog, select the 1024x1024 icon, then on one of the xcode right side menus, there are check boxes for ios and mac. check the mac box. then it opens up the asset catalog to have more spaces for mac icons, and you can add the required 1024x1024 icon for mac. this must be a new requirement, as this app had been shipped recently w/ only ios assets to mac app store (catalyst app)
Sep ’20
Reply to new builds not show in app store connect
I found that I had a reference to UIWebView in a cocoapods module. You may have UIWebView in a package.json module (npm or yarn module?) Even though I didnt use UIWebView or anything calling it, Apple has a problem with it. The app makes it up during upload, but then you get an email saying that the upload failed, and it never goes into processing mode on itunes connect / app store connect. When I remove the .m files that have the UIWebView from the build (e.g. remove from build target), it worked. However, that was a lucky fix. In some cases if you remove .m files from target, the app might not build, and you have to do more to remove the referencers of UIWebView.
Jun ’20