* re-do "Use the Perfetto SDK instead of ATRACE" (#8701) This time we create an entirely new private header: Tracing.h which uses the perfetto SDK instead of ATRACE. The old Systrace.h is unchanged to presever backward compatibility but is essentially deprecated and no longer used within the filament repo. The new TRACING_ macros use an explicit CATEGORY parameter, which is declared in Tracing.h. Moreover, tracing can be compiled out by defining FILAMENT_TRACING_ENABLED to false before including Tracing.h iOS tracing is still supported and still controlled via FILAMENT_APPLE_SYSTRACE. There are three perfetto categories defined: - "filament/filament" - "filament/jobsystem" - "filament/gltfio" The "filament/jobsystem" category is compiled out by default. And they can be enabled in AGI / perfetto by adding: ``` data_sources { config { name: "track_event" track_event_config { disabled_categories: "*" enabled_categories: "filament/filament" enabled_categories: "filament/jobsystem" enabled_categories: "filament/gltfio" } } } ``` * Update libs/utils/include/private/utils/Tracing.h Co-authored-by: Powei Feng <powei@google.com> * Update libs/utils/src/android/Tracing.cpp Co-authored-by: Powei Feng <powei@google.com> * remove all references to SYSTRACE_TAG --------- Co-authored-by: Powei Feng <powei@google.com>
Description
gltfio is a loader library that consumes gltf or glb content and produces Filament
objects. For usage details, see the docstring for AssetLoader.
gltfio has two plug-in interfaces, TextureProvider and MaterialProvider. Filament ships with
several ready-to-go implementations described below.
MaterialProvidercreates Filament materials in response to certain glTF requirements.- UbershaderProvider loads pre-built materials.
JitShaderProviderbuilds materials at run time using thefilamatlibrary.
TextureProvidercreates and populates FilamentTextureobjects.StbProvideruses the STB library to read PNG and JPEG files.Ktx2Provideruses the BasisU library to read KTX2 files.
UbershaderProvider
UbershaderProvider is a ready-to-go implementation of the MaterialProvider interface that should
be used in applications that need fast startup times. There is no material compilation that
occurs at run time, but the shaders might be relatively large and complex.
At load time, the ubershader loader consumes an ubershader archive which is a precompiled set of materials bundled with formal descriptions of the glTF features that they support.
The uberz command line tool consumes a list of .spec and .filamat files and produces a single
.uberz file. For details on these two file formats, see the README in libs/uberz.