Bill Hollings e1baea9a95 Refactor public MVKDevice content into MVKDeviceTrackingMixin functions.
This is a non-functional code-maintenance change.

Previously, MVKDevice contained a significant amount of publicly exposed
internal content. This patch adds functions to MVKDeviceTrackingMixin to
better encapsulate, consolidate & streamline access to this content.

- Make MVKDeviceTrackingMixin a friend of MVKDevice & MVKPhysicalDevice.
- Hide public MVKDevice content behind MVKDeviceTrackingMixin functions.
- Remove similar MVKDevice content pointers from MVKCommandEncoder.
- MVKDevice remove getPhysicalDevice(), getPixelFormats() & getMTLDevice(),
  to focus access through MVKDeviceTrackingMixin.
- Move performance tracking functions to MVKDeviceTrackingMixin to remove
  need to reference MVKDevice multiple times when marking performance values.
- Subclass MVKQueueSubmission, MVKMetalCompiler, MVKShaderLibrary, and
  MVKShaderLibraryCache from MVKBaseDeviceObject to make use of these changes.
2024-05-02 11:06:28 -04:00
..