OS X 10.11 and iOS 8-9: Metal API and/or Graphic Drivers Potentially Causing UI Bugs

Originator:sephirothfanatic
Number:rdar://23133501 Date Originated:15-Oct-2015
Status:Insufficient information Resolved:
Product:OS X, iOS Product Version:El Capitan, 8, 9
Classification:Performance, UI/Usability Reproducible:N/A
 
Summary:
I'm not sure how to classify this as I think it falls under two categories: Performance and UI/Usability.  In both OS X and iOS I've seen some strange behavior between pre and post 2012 Macs and iOS devices that are pre and post A7 chipsets, that could be related to the Metal API and/or Graphic Card Drivers.

In OS X El Capitan and iOS 8 and 9 there are windows and screens that have various degrees of transparency and shading, which I like; it adds to the aesthetics of the OS!  But there seems to be some inconsistency in the way it's being handled.  On Macs that are pre 2012 and iOS devices that are pre A7 chips (devices that don't use the Metal API), I'm seeing fewer instances of the bugs I've been reporting.

Steps to Reproduce:
N/A

Expected Results:
As far as my understanding of the Metal API goes, Metal is supposed to take the overhead away from the Graphic Card Drivers and Graphic Hardware to allow for a smoother GUI by pre-computing shaders, transparency and some screen rending/drawing events, in order to free up the CPU so that it can focus, for a lack of a better term, on other system processes; ultimately allowing for additional features in OS X to run at the highest performance.

I think there may be a disconnect between what the Graphic Card and Graphic Card Drivers are supposed to be doing and what Metal is supposed to be doing.  Because there are instances of transparency and shading being lost and reloaded when certain events are triggered.  Is this a result of Metal and/or the Graphic Hardware not doing what each is supposed to be doing?  There should be correct fallbacks for each machine that can and can't run Metal.  If a machine is too old to run Metal, then the Graphic Drivers should be able to handle the same rendering events with no glitching just at a slower speed.

Actual Results:
What I'm seeing in OS X and iOS is that on devices running the Metal API, post 2012 Macs and iOS devices with A7 chips or newer, there are more transparency issues, graphical glitches and UI bugs than there are on pre 2012 Macs and iOS devices with pre A7 chips that are just using the GPU and CPU to calculate shading and transparency.  For example, I'm seeing that the Dock is failing to unhide correctly on machines that are running the Metal API, but unhide correctly when there is no Metal API.

Devices that don't run the Metal API do indeed have a slower GUI and are slower to launch apps, but they seem to loads screens more consistently, meaning each animation is the same linear speed with less visual glitches than devices that are running Metal which seem to speed up and slow down during linear events.

I wonder too if the reason some of these visual glitches are appearing is that neither Metal nor the Graphic Card Drivers are programmed to handle certain transparency, shading and screen rendering/drawing events?

Version:
OS X El Capitan, iOS 8 and iOS 9

Notes:
As a final note, I think this bug report may simply be something that gets worked out over time as the Metal API gets more solidified in newer systems and Graphic Card Drivers are updated to support more of the new GUI events on older hardware.  But I did want to report this as there seemed to be some correlation between bugs appearing on Metal and Non-Metal systems.  I could also be completely off base and the bugs I'm seeing are simply other issues in OS X and iOS that have yet to be worked out.

Configuration:
Pre and Post 2012 Macs and Pre and Post A7 Chipsets behave differently.

Attachments:
NONE

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!