Posts

Post not yet marked as solved
0 Replies
95 Views
According to the Metal Best Practices guide, on Mac: If the texture is initialized once by the CPU and accessed frequently by the GPU, initialize a source texture with a Managed mode and then blit its data into a destination texture with a Private mode. This is a common case for static textures, such as diffuse maps. This would seem to be the best practice for things like material textures in a game that are loaded once, and then exclusively used by the GPU. However - the guide isn't specific on how Apple Silicon should be treated. It does say: Some macOS devices feature integrated GPUs. In these devices, the driver optimizes the underlying architecture to support a discrete memory model. macOS Metal apps should always target a discrete memory model. The iOS guide still mentions private textures, but does not going into detail, and has less prescriptive language. I'm basically unsure if Apple Silicon Macs should follow the iOS performance guide or the macOS performance guide. The guide also has a last updated of 2017, implying that it may not have been updated for Apple Silicon. I'm not quite sure for static texture resources for games what the best path is. Apple Silicon has a single address space - which I assume would reduce the penalty for having a shared resource. However, private resources can be optimized for GPU use during a blit. It's been hinted that things like textures might be compressed in a way that they typically couldn't if CPU access needed to be maintained. Very possible that the guide hasn't been updated because the guidance is unchanged. But I wanted to check in since I'd assume iOS and macOS on Apple Silicon should be similar.
Posted Last updated
.
Post not yet marked as solved
0 Replies
140 Views
Currently we have our own home grown Xcode continuous integration farm with Intel and Apple Silicon Mac minis. We've been piloting Xcode Cloud, but have found much slower build times than we expected. We understand cloud services won't be as responsive as our dedicated Macs, but the times are much higher than expected. Most of our projects are Swift, but we have one React Native project that takes 40 minutes to build on Xcode Cloud. Dependencies (like Cocoapods and NPM) seem like a build time issue for that project specifically. We're worried how that could affect even our pure Swift projects with SPM dependencies. And build times generally also seem slow. The real issue besides the speed is that we're paying per hour for Xcode Cloud. And even if we decided to take the slower build times as a trade off to not having to maintain our own Macs, it seems like we'd quickly run out of time even on the highest tier plan. Is there any plan to maybe kick in some more machines or bandwidth into the Xcode Cloud backend? Even our React Native app (which seems to be the worst case) takes less than 10 minutes to build end to end locally.
Posted Last updated
.
Post not yet marked as solved
0 Replies
488 Views
I'm working on a ReplayKit Upload Broadcast Extension on macOS 11. I've added the Broadcast Extension to the host Mac app. But I can't get the system or the host app to recognize the Broadcast Extension exists. The picker menu just says "No Broadcast Extension Installed." I've tried a few things that have normally kickstarted plugins in the past, like copying to the Applications folder or double clicking on the plug in itself. But nothing is working. Is there a trick to getting the system to register a Broadcast Extension? Maybe a command line tool like I've seen with Spotlight extensions? Thanks!
Posted Last updated
.
Post marked as solved
1 Replies
1.4k Views
My Mac has Cisco AnyConnect installed, which has stopped functioning.It looks like it has a daemon tool that is trying to send Apple events, but is probably getting denied.TCCAccessRequestIndirect: TCCAccessRequestIndirect with pid 1418: target_identity: { kTCCCodeIdentityAuthority = kTCCCodeIdentityDesignatedRequirementAuthority; kTCCCodeIdentityCSFlags = 570425345; kTCCCodeIdentityCanSendToAnyTarget = 0; kTCCCodeIdentityDesignatedRequirementData = <fade0c00 00000044 00000001 00000006 00000002 00000009 76706e61 67656e74 64000000 00000004 00000000 00000014 bf2c931f bd88e54c 96d886d5 f1e69bb7 de765162>; kTCCCodeIdentityExecutableURL = "file:///opt/cisco/anyconnect/bin/vpnagentd"; kTCCCodeIdentityIdentifier = "/opt/cisco/anyconnect/bin/vpnagentd"; kTCCCodeIdentityIdentifierType = 1; kTCCCodeIdentityPromptPolicy = 0; kTCCCodeIdentityTeamID = "";}But I don't see a way to authorize this tool to send Apple Events, or even see if it was authorized. The tool isn't a bundle, so I can't reference it by any bundle ID. And I haven't seen any dialog prompting me to authorize this tool.Is there any way to manually bless a command line tool to send Apple Events?
Posted Last updated
.
Post not yet marked as solved
2 Replies
1.9k Views
I have a custom Instrument that is using signpost data from my app, and it wants to compute velocity from each of the tasks.To borrow from the WWDC example - Say I have a signpost that measures image downloads, and I have a custom instrument wrapping it. I then want to compute the download speed. I have the image size, and the duration, but I can't figure out how to create a column for image size / duration. Duration doesn't seem to be a valid identifier for the CLIPS expression, and trips up the compiler pretty quick.My end goal is to have an aggregation view with an average download speed column, so if there is another way there that is easier than creating a new column in my schema, that is ok too.(Image download connection speed is not my exact situation, but without getting into ugly domain specifics, it's the same concept.)
Posted Last updated
.
Post marked as solved
6 Replies
2.3k Views
I'm running our app on device and using signposts to monitor performance. I can see most of the time, everything is working. But I get weird "N/A" tracks that never end, which is especially weird because I've given both my begin and end signposts a string to display (normally I see "Started" and "Finished" which are the strings I've supplied.) Eventually my whole vertical view of the log type fills up with these orphaned tracks.I don't think I'm the source of these tracks, so before I spend a bunch of time debugging, is this known behavior? This is a signal processing system so it's hard for me to determine if the errant tracks are related to any one event. But I checked my code and I don't see any stray begins, or places where the begin and end could be unpaired. I'm using the signposts instrument, haven't tried writing my own yet.
Posted Last updated
.