What are the system requirements for MetalFX upscaling?
Will it only be available on systems that support Metal 3 (which I believe excludes the most current Apple TV)?
Post
Replies
Boosts
Views
Activity
Is there a feature available to sandbox profiles that would allow a suid program (in this particular case, /bin/ps) to be exec-ed without privilege (with the uid of exec-ing process instead of uid of file owner.)
Currently, trying to launch gives error:
sandbox-exec: execvp() of '/bin/ps' failed: Operation not permitted
With logged message:
deny(1) forbidden-exec-sugid
If I make a copy of /bin/ps, thus removing the suid-bit, it does run ok in the sandbox. However, it would be more convent if I could just tell the sandbox environment to allow the exec without elevating privilege.
Yes, I understand sandbox-exec has been DEPRECATED for quite a while, and the profile language is "Apple System Private Interface", but I thought I'd ask anyway. Thanks.
In Catalina with Xcode installed, if I turn the command
find -x / -type f -name slapd-bdb.5 -print 2>/dev/null | head -2
it returns the two files:
/usr/share/man/man5/slapd-bdb.5
/System/Volumes/Data/usr/share/man/man5/slapd-bdb.5
However, the second file returned above does not exist:
ls -l /System/Volumes/Data/usr/share/man/man5/slapd-bdb.5
ls: /System/Volumes/Data/usr/share/man/man5/slapd-bdb.5: No such file or directory
Any suggestions on the proper way to use use find to traverse the filesystem namespace without producing non-existing paths?
Anyone else in a state where Capture GPU Frame is always producing "Unexpected Replayer Termination", "time out (5)"?
I happen to be targeting Apple TV running tvOS 14.0.1 using Xcode 12.0.1 (12A7300)
GPU Frame Capture has recently stopped working for me.
Currently, when I run it I get alert -
Unexpected Replayer Termination
Replayer terminated unexpectedly with error code 5. Please export the frame capture file then file a radar
When I'm in this state, how do I "export the frame capture file"?
"Export..." is greyed out under File menu.
I'm using Xcode 12.0.1 (12A7300) targeting Apple TV 4K running tvOS 14.0.1 (18J400).
The tvOS App template project asset catalog "Top Shelf Image Wide" entry has slots for images labeled "Apple TV" and "tvOS Marketing".
I assume the "Apple TV" entry is for images as described in the tvOS Human Interface Guidelines.
Can anyone provide an explanation of (or pointer to documentation of) the "tvOS Marketing" images slots.
Anyone notice a Metal performance hit on devices running tvOS 14.0.1 vs 13.4.8, possibly due to compositor (backboardd) using more time?
In 13.4.8 Instruments A10X State is typically 2 channels active. However, in 14.0.1 it is typically 3 channels active.
The FPS drops by 4 on AppleTV 4K (8 on HD) when I enable a UIView that contains 6 UIButtons (Type=System), each with a SF Symbol as the background image and no label.
Is this expected?
Are there any suggestions for the most performant way to mix UIKit controls with Metal?
Are tap (not press) and panning available via tvOS Switch Control Accessibility?
In iOS, the little switch control menu has a Gestures sub-menu that allows a variety of touch gestures to be performed, but I don't see a similar capability when Switch Control is enabled in tvOS 13.4.8.
My AppleTV app has a very simple UI - Tap to Zoom In
Press to Zoom Out
Swipe to pan around (continuous panning, not moving through items)
which I'm trying to make accessible.
The accessibilityCustomActions I've added to my app show up in the little Switch Control Menu that appears when a switch is activated in iOS. However, the accessibilityCustomActions do not appear in tvOS 13.4.8.
Do I need to configure accessibilityCustomActions differently in tvOS than iOS?
Is there a way to test Switch Control on AppleTV without a dedicated Switch device? iOS can be configure so a tap anywhere on the screen produces a switch click response, but I don't see that capability in tvOS.
These messages are appearing in the text output of the debug area when running my metal app under Simulator for AppleTV 4K.
2020-08-10 22:30:57.937497-0700 Mandelbits[3074:322942] libMobileGestalt MGIOMFBSupport.c:145: screen parameters are unexpected: MGScreenClass3840x2160x2x80 SCREENTYPE(3840,2160,2, 80) 2020-08-10 22:30:57.937639-0700 Mandelbits[3074:322942] screen parameters are unexpected: MGScreenClass3840x2160x2x80 SCREENTYPE(3840,2160,2, 80) The message changes to this for "AppleTV 4K (1080p)".
2020-08-10 22:50:04.430681-0700 Mandelbits[3316:340765] libMobileGestalt MGIOMFBSupport.c:145: screen parameters are unexpected: MGScreenClass1920x1080x1x40 SCREENTYPE(1920,1080,1, 40) 2020-08-10 22:50:04.430870-0700 Mandelbits[3316:340765] screen parameters are unexpected: MGScreenClass1920x1080x1x40 SCREENTYPE(1920,1080,1, 40) Any idea what these mean? App still starts up and runs.
Environment: Simulator 12.0 (940.14), Xcode 12.0 beta 4 (12A8179i), macOS 10.15.6 (19G73).
When doing GPU Frame Capture to AppleTV HD I see a message
“Profiling GPU trace: This may take a while…” after a minute I see
“Deployment Target is lower than device OS version. Shader performance data may not be available.”
However, I’m using the current release version [tvOS 13.4.8, Xcode 11.6 (11E708) on MacOS 10.15.6 (19G73)]
with the target's Deployment Target set to 13.4.
“Pipeline Statistics” page can be displayed and shows graphs and instruction counts, but has 0 for Total Function Execution Time.
Clicking on Performance (or other GPU options) in Debug Navigator causes another minute of
“Profiling GPU trace: This may take a while…”
during which I can’t select a different GPU display option.
Any suggestions or should I just file a radar?
Is there an explanation why "Capture GPU Frame" reports this fragment shader uses Float instead of Half instructions.
fragment half4 texturedQuadFragment/*ConstantColorNoParameters*/()
{
METAL_CONST half4 color={0.5h,0.25h,0.75h,1.0h};
return color;
}
The Pipeline Statistics, Remarks pane reports:
High Float-to-Half Ratio
A relatively high amount of floating-point operations use 32-bit float data types
Instead, use 16-bit half data types to increase performance.
Ratio is 100.0% - TextureQuadShader.metal:texturedQuadFragmentMultiline Total Number of Instructions 4 Performance, Counters, Fragment Shader reports:
FS ALU Instructions, 4,216,440
FS ALU Float Instructions, 98.5%
FS ALU Half Instructions, 1.51% Assembly listing doesn't indicate Float usage:
define <4 x half> @texturedQuadFragment() local_unnamed_addr #0 {
ret <4 x half> <half 0xH3800, half 0xH3400, half 0xH3A00, half 0xH3C00>
}
Fragment shader is rendering to CAMetalLayer Display Drawable, 1920x1080 BGRA8Unorm
Apple TV 4K
tvOS 13.4.6 (17L570)
Xcode 11.5 (11E608c)
MacOS 10.15.5 (19F101)
In a fragment shader, an expression that adds together the four components of a ushort4 is the heaviest line in the profile.
Is there a faster way to do this?
The relevant lines from shader are:
ushort4 iterationSamples;
iterationSamples=tex2D.gather(quadSampler, inFrag.m_TexCoord);
ushort totalIterations=(iterationSamples.x+iterationSamples.y)+(iterationSamples.z+iterationSamples.w);	// 40% of shader time on this line
Device is Apple TV 4K running tvOS 13.4.6 (17L570)
Xcode 11.5 (11E608c)