Developer
Brian Salomon
briansalomon@gmail.com
Performance
Key patterns and highlights from this developer's activity.
Breakdown of growth, maintenance, and fixes effort over time.
Bugs introduced vs. fixed over time.
No bugs introduced or fixed in this period.
Reclassifies engineering effort based on bug attribution. Commits that introduced bugs are retrospectively counted as poor investments.
Investment Quality reclassifies engineering effort based on bug attribution data. Commits identified as buggy origins (those that introduced bugs later fixed by someone) have their grow and maintenance time moved into the Wasted Time category. Their waste (fix commits) remains counted as productive. All other commits retain their standard classification: grow is productive, maintenance is maintenance, and waste (fixes) is productive.
The standard model classifies commits as Growth, Maintenance, or Fixes. Investment Quality adds a quality lens: a commit that introduced a bug is retrospectively counted as a poor investment — the engineering time spent on it was wasted because it ultimately required additional fix work. Fix commits (Fixes in the standard model) are reframed as productive, because fixing bugs is valuable work.
Currently computed client-side from commit and bug attribution data. Ideal server-side endpoint:
POST /v1/organizations/{orgId}/investment-quality
Content-Type: application/json
Request:
{
"startTime": "2025-01-01T00:00:00Z",
"endTime": "2025-12-31T23:59:59Z",
"bucketSize": "BUCKET_SIZE_MONTH",
"groupBy": ["repository_id" | "deliverer_email"]
}
Response:
{
"productivePct": 74,
"maintenancePct": 18,
"wastedPct": 8,
"buckets": [
{
"bucketStart": "2025-01-01T00:00:00Z",
"productive": 4.2,
"maintenance": 1.8,
"wasted": 0.6
}
]
}Latest analyzed commits from this developer.
| Hash | Message | Date | Files | Effort |
|---|---|---|---|---|
| 3218398 | This commit **refactors** the **Graphite GPU backend's atlas management system** by **relocating several core data types** to improve code organization and encapsulation. Key types such as `Plot`, `AtlasLocator`, and `GenerationCounter` are moved from `AtlasTypes.h` to become nested classes within `DrawAtlas.h`, explicitly tying them to the `DrawAtlas` system. Concurrently, `DrawAtlasConfig` is moved into `TextAtlasManager` as `AtlasConfig`, reflecting its specific role within that manager. This architectural change enhances **code clarity** and **modularity** across **Graphite's rendering pipeline's atlas components**, without introducing any functional changes. | Mar 4 | 20 | maint |
| a07c79a | This commit **refactors** and **simplifies** the core `Plot` types in both the **Ganesh** (`GrPlot`) and **Graphite** (`Plot`) GPU backends. It streamlines these classes by removing redundant fields like `fDirty`, replacing overspecified `ColorType/bpp` with a unified `MaskFormat`, and eliminating reference counting for `Plot` objects. This **maintenance** work updates various **atlas management** classes, including `DrawAtlas`, `ClipAtlasManager`, `PathAtlas`, and `TextAtlasManager`, to align with the new `MaskFormat`-based API. The changes reduce complexity and improve the efficiency of atlas plot handling across the rendering pipelines. | Feb 27 | 10 | maint |
| f66bf9d | This commit performs a significant **refactoring** by **forking shared atlas-related types** into distinct implementations for the **Ganesh** and **Graphite** GPU backends. Previously shared types like `Plot` are now specialized as `GrPlot` for Ganesh and `skgpu::graphite::Plot` for Graphite, allowing their respective atlas implementations to **diverge independently** in future development. The `MaskFormat` enum, however, remains shared and is extracted into a new standalone header, `src/gpu/MaskFormat.h`. This change is purely organizational and introduces **no functional differences**, primarily impacting the internal structure of the GPU rendering modules and their build configurations. | Feb 25 | 48 | maint |
| f494c61 | This commit **fixes a compilation error** within the **Graphite GPU backend** by addressing a missing header dependency. Specifically, `src/gpu/graphite/DrawListTypes.h` now correctly includes `SkTInternalLList.h`, resolving an "undefined SK_DECLARE_INTERNAL_LLIST_INTERFACE" error. This **maintenance fix** ensures that the project compiles successfully on platforms like Xcode/macOS SDK 26.4 beta, preventing build failures related to internal linked list declarations. The change restores proper compilation for the **drawing list types** within Graphite, ensuring stability for the GPU rendering pipeline. | Feb 19 | 1 | waste |
| d12836e | This commit performs a significant **architectural refactoring** of the **text rendering pipeline** to decouple **backend-specific glyph data storage** for the **Ganesh** and **Graphite** GPU backends. It introduces new backend-specific types like `GlyphData` and `TextStrike` to store data in a "sidecar" fashion, allowing their **atlas data structures** and algorithms to evolve independently. Core components such as `GlyphVector`, `StrikeCache`, and `SubRunContainer` are updated to manage this new backend-specific data, eliminating unnecessary indirection through neutral types. This **maintenance** effort improves modularity and enables **future independent development** of text rendering capabilities across different backends. | Feb 19 | 42 | maint |
| 495d6f8 | This commit performs **maintenance** by updating the **Bazel build configuration** for **CanvasKit** to utilize the **C++20** standard. Previously, the `emsdk`-provided Bazel toolchain defaulted to `gnu++17`, but this change explicitly adds the C++20 standard flag to the full build configuration within `bazel/buildrc`. This ensures that all future builds of **CanvasKit** can leverage modern C++ features and constructs, impacting the compilation process and potential optimizations for the module. | Dec 17 | 1 | maint |
| dc88b21 | This commit introduces a **new feature** to the **`tools/viewer`** application by adding a `ChineseScrollSlide`. This slide is specifically designed to **stress test Skia's glyph caching and atlas compaction** mechanisms, simulating a scenario where the cache fills up and glyph usage correlates with their introduction time. The new `ChineseScrollSlide` class, implemented in `tools/viewer/ChineseFlingSlide.cpp`, provides a scrolling text animation to effectively exercise these performance-critical aspects of text rendering. This addition serves as a valuable **test case** for optimizing Skia's text rendering pipeline, particularly concerning **atlas management** at plot granularity. | Nov 19 | 1 | grow |
| 84c83c0 | This commit **refactors and simplifies** the software rasterization logic for **paths and clips** within the **Graphite GPU backend**. It eliminates the unnecessary use of `SkAutoPixmapStorage` when rendering to atlases, instead directly utilizing `SkBitmap` and `SkPixmap` for pixel data management. This **code simplification** impacts **atlas management** (`AtlasTypes`, `DrawAtlas`) and the **clip/path rasterization helpers** (`RasterPathUtils`, `ClipAtlasManager`, `RasterPathAtlas`). By introducing a static `RasterMaskHelper::Allocate` method and simplifying drawing methods, the code for creating and drawing masks becomes cleaner and more direct, improving the overall maintainability and efficiency of software rendering to atlases. | Nov 14 | 8 | maint |
| 4d915a8 | This commit **reapplies a critical change** to ensure the **Skia DM (Drawing Master) tool** and various **test suites** build correctly when the **Ganesh GPU backend is disabled** and the **Graphite GPU backend is enabled**. It primarily involves a significant **refactoring** of the build system (`BUILD.gn`, `gn/tests.gni`) and source code across the `dm/` and `tests/` modules to introduce conditional compilation using `SK_GANESH` preprocessor directives. This effort **fixes build failures** for "no-gpu" and "chrome" configurations, preventing Ganesh-specific code from being compiled unnecessarily. The overall impact is improved **build robustness and flexibility** for Skia across diverse GPU backend setups. | Oct 24 | 43 | maint |
| 54f6a0b | This commit **refactors** the **Skia Display Module (DM)** and its associated build configurations to support building with **Graphite enabled and Ganesh disabled**. It introduces extensive **conditional compilation** across DM's sink creation, GPU test procedures, and source/sink handling, ensuring Ganesh-specific code paths are only included when necessary. The **build system (`.gn` files)** and a large portion of the **test suite** are updated to conditionally include or exclude Ganesh-related tests and configurations, streamlining the transition between GPU backends. Additionally, a **fix** was applied to `gm/imagefromyuvtextures.cpp` to correctly assert GPU recorder usage. This work facilitates the ongoing migration towards Graphite as the primary GPU rendering backend by allowing DM to operate without Ganesh. | Oct 21 | 45 | maint |
| 78d4fb3 | This commit performs a significant **refactoring** of the **Skia testing infrastructure** to improve organization and separation of concerns. It introduces new **generic `SkPixmap`-based pixel comparison utilities** in `tests/ComparePixels.h` and `tests/ComparePixels.cpp`, extracting them from previously mixed test helpers. Concurrently, Ganesh-specific pixel comparison logic is isolated and renamed within `tests/ganesh/GaneshTestUtils.cpp`, ensuring clear distinction between generic and backend-specific test helpers. Additionally, the `char to glyph cache test` is moved from a general utility file to its dedicated `tests/CharToGlyphCache.cpp`, further enhancing test modularity. This change impacts numerous **test files** across **Skia's core, Ganesh, and Graphite subsystems**, updating them to use the appropriate new or renamed comparison functions. | Oct 17 | 29 | grow |
| fd299c7 | This commit addresses a **corrective refactoring** within the **GPU atlas system** by fixing an incorrect argument order during the initialization of `PlotLocator` objects. Specifically, it corrects the placement of `AtlasGenerationCounter::kInvalidGeneration`, ensuring it is passed as the last parameter to the `PlotLocator()` constructor instead of the first. This **maintenance fix** primarily impacts the internal code correctness of `src/gpu/AtlasTypes.h` and does not introduce any functional changes, preventing potential issues from misordered parameters in the future. | Oct 8 | 1 | waste |
| b242cc0 | This commit provides a **maintenance fix** within the **Graphics Module (GM)** test `gm/imagemakewithfilter.cpp`. It addresses a compiler warning by explicitly casting the unused variable `dContext` to `void`. This change improves code hygiene by **silencing an unused variable warning**, ensuring cleaner build logs without altering any functional behavior or introducing new capabilities. | Sep 30 | 1 | maint |
| cdf24b9 | This commit **refactors** the build system and application code to properly manage dependencies on the **Ganesh** GPU backend, especially when **Graphite** is enabled. It introduces new build flags and extensive conditional compilation within `BUILD.gn` files, the **Viewer** application, and **windowing contexts**. This ensures that Ganesh-specific features and types are only included when Ganesh is explicitly enabled, resolving a build issue where the Viewer failed to compile with Graphite if Ganesh was absent. This **maintenance** work significantly improves the modularity and flexibility of the build process, allowing tools to function correctly with Graphite without requiring Ganesh. | Sep 23 | 27 | maint |
| 69fedde | This commit performs extensive **refactoring** and **maintenance** across the codebase to prepare for a **Graphite-only viewer build**. It introduces conditional compilation using `SK_GANESH` and `SK_GRAPHITE` macros to decouple Ganesh-specific code from various **GPU utilities** in `tools/gpu`, several **Gold Master (GM) tests**, and **command-line flag configurations**. This work ensures that Ganesh-related includes, declarations, and logic are only present when Ganesh is enabled, allowing for builds that specifically target Graphite without Ganesh dependencies. The changes streamline the codebase and enable more focused build configurations by conditionally compiling Ganesh-specific logic in areas like YUV handling, Vulkan helpers, and context initialization. | Sep 17 | 21 | maint |
| f950263 | This commit performs significant **refactoring** across numerous **Graphics Modules (GMs)** to enable their compilation even when the **Ganesh GPU backend** is disabled. It achieves this by introducing conditional compilation directives (`#if SK_GANESH`) around Ganesh-specific code paths, including context options, surface and image creation, GPU-specific includes, and flushing operations, affecting nearly all files within the `gm/` directory. This **maintenance** effort enhances the build system's flexibility, allowing the GM test suite to be built and executed in environments where Ganesh is not available or desired. The build configuration files, `gn/gm.gni` and `BUILD.gn`, were also updated to manage these conditional source inclusions, making the GM suite more modular and portable. | Sep 12 | 60 | maint |
| cbb0388 | This commit performs a significant **refactoring** by **relocating Ganesh-specific tool code** into a new, dedicated `tools/ganesh` directory. This change primarily affects **build system configurations** (GN, Bazel, Makefiles) and numerous **include paths** across `bench`, `dm`, `fuzz`, `gm`, `skottie`, `skpbench`, `skqp`, and `tests` modules, which now reference the new `tools/ganesh` location. The goal is to improve **code organization** and **modularity**, making it easier to build Ganesh-only tools like `dm` and `viewer` by reducing the intermixing of Ganesh and common GPU support code. This separation streamlines the build process for Ganesh-specific components, though some shared code still relies on macros for conditional compilation. | Sep 10 | 147 | maint |
| a0cd0b2 | This commit performs a **refactoring** by **relocating** the `TwoColorBC1Compress` utility and its helper functions. Previously residing in the **Ganesh GPU backend** (`src/gpu/ganesh/GrDataUtils`), this **BC1 compression utility** is now moved to a new, shared location within the **GPU tools module** (`tools/gpu/CompressedTexture.cpp` and `.h`). This **maintenance** effort improves code organization, making the utility more accessible for its current uses in **test code** (e.g., `gm/compressed_textures.cpp`) and with **Graphite**. The **build configurations** for GN and Bazel were updated to correctly include these newly located source files within the `skia_gpu_test_utils` target. | Sep 9 | 7 | maint |
| c3a3d1e | This commit performs **code cleanup** by **removing** the `tools/gpu/FenchSync.h` file from the repository. This file was identified as **unused**, indicating it was dead code within the **GPU tools** subsystem. The change improves code hygiene and reduces the overall codebase size and complexity by eliminating unnecessary components. | Sep 9 | 22 | – |
| cf34878 | This commit provides a **maintenance fix** to enable the **Mac viewer to build correctly with Bazel**, addressing compilation issues where Objective-C files using Manual Reference Counting (MRC) were incorrectly processed with Automatic Reference Counting (ARC). It **refactors** the `skia_objc_library` Bazel macro in `bazel/skia_rules.bzl` to properly support `non_arc_srcs` by creating a nested `objc_library` with specific compilation flags, circumventing an obscure Bazel crash. This change impacts **Mac-specific Objective-C sources** within the `audioplayer`, `sk_app`, and `window` modules, ensuring their correct compilation and resolving a critical build blocker for the Mac viewer. | Sep 8 | 6 | maint |
This commit **refactors** the **Graphite GPU backend's atlas management system** by **relocating several core data types** to improve code organization and encapsulation. Key types such as `Plot`, `AtlasLocator`, and `GenerationCounter` are moved from `AtlasTypes.h` to become nested classes within `DrawAtlas.h`, explicitly tying them to the `DrawAtlas` system. Concurrently, `DrawAtlasConfig` is moved into `TextAtlasManager` as `AtlasConfig`, reflecting its specific role within that manager. This architectural change enhances **code clarity** and **modularity** across **Graphite's rendering pipeline's atlas components**, without introducing any functional changes.
This commit **refactors** and **simplifies** the core `Plot` types in both the **Ganesh** (`GrPlot`) and **Graphite** (`Plot`) GPU backends. It streamlines these classes by removing redundant fields like `fDirty`, replacing overspecified `ColorType/bpp` with a unified `MaskFormat`, and eliminating reference counting for `Plot` objects. This **maintenance** work updates various **atlas management** classes, including `DrawAtlas`, `ClipAtlasManager`, `PathAtlas`, and `TextAtlasManager`, to align with the new `MaskFormat`-based API. The changes reduce complexity and improve the efficiency of atlas plot handling across the rendering pipelines.
This commit performs a significant **refactoring** by **forking shared atlas-related types** into distinct implementations for the **Ganesh** and **Graphite** GPU backends. Previously shared types like `Plot` are now specialized as `GrPlot` for Ganesh and `skgpu::graphite::Plot` for Graphite, allowing their respective atlas implementations to **diverge independently** in future development. The `MaskFormat` enum, however, remains shared and is extracted into a new standalone header, `src/gpu/MaskFormat.h`. This change is purely organizational and introduces **no functional differences**, primarily impacting the internal structure of the GPU rendering modules and their build configurations.
This commit **fixes a compilation error** within the **Graphite GPU backend** by addressing a missing header dependency. Specifically, `src/gpu/graphite/DrawListTypes.h` now correctly includes `SkTInternalLList.h`, resolving an "undefined SK_DECLARE_INTERNAL_LLIST_INTERFACE" error. This **maintenance fix** ensures that the project compiles successfully on platforms like Xcode/macOS SDK 26.4 beta, preventing build failures related to internal linked list declarations. The change restores proper compilation for the **drawing list types** within Graphite, ensuring stability for the GPU rendering pipeline.
This commit performs a significant **architectural refactoring** of the **text rendering pipeline** to decouple **backend-specific glyph data storage** for the **Ganesh** and **Graphite** GPU backends. It introduces new backend-specific types like `GlyphData` and `TextStrike` to store data in a "sidecar" fashion, allowing their **atlas data structures** and algorithms to evolve independently. Core components such as `GlyphVector`, `StrikeCache`, and `SubRunContainer` are updated to manage this new backend-specific data, eliminating unnecessary indirection through neutral types. This **maintenance** effort improves modularity and enables **future independent development** of text rendering capabilities across different backends.
This commit performs **maintenance** by updating the **Bazel build configuration** for **CanvasKit** to utilize the **C++20** standard. Previously, the `emsdk`-provided Bazel toolchain defaulted to `gnu++17`, but this change explicitly adds the C++20 standard flag to the full build configuration within `bazel/buildrc`. This ensures that all future builds of **CanvasKit** can leverage modern C++ features and constructs, impacting the compilation process and potential optimizations for the module.
This commit introduces a **new feature** to the **`tools/viewer`** application by adding a `ChineseScrollSlide`. This slide is specifically designed to **stress test Skia's glyph caching and atlas compaction** mechanisms, simulating a scenario where the cache fills up and glyph usage correlates with their introduction time. The new `ChineseScrollSlide` class, implemented in `tools/viewer/ChineseFlingSlide.cpp`, provides a scrolling text animation to effectively exercise these performance-critical aspects of text rendering. This addition serves as a valuable **test case** for optimizing Skia's text rendering pipeline, particularly concerning **atlas management** at plot granularity.
This commit **refactors and simplifies** the software rasterization logic for **paths and clips** within the **Graphite GPU backend**. It eliminates the unnecessary use of `SkAutoPixmapStorage` when rendering to atlases, instead directly utilizing `SkBitmap` and `SkPixmap` for pixel data management. This **code simplification** impacts **atlas management** (`AtlasTypes`, `DrawAtlas`) and the **clip/path rasterization helpers** (`RasterPathUtils`, `ClipAtlasManager`, `RasterPathAtlas`). By introducing a static `RasterMaskHelper::Allocate` method and simplifying drawing methods, the code for creating and drawing masks becomes cleaner and more direct, improving the overall maintainability and efficiency of software rendering to atlases.
This commit **reapplies a critical change** to ensure the **Skia DM (Drawing Master) tool** and various **test suites** build correctly when the **Ganesh GPU backend is disabled** and the **Graphite GPU backend is enabled**. It primarily involves a significant **refactoring** of the build system (`BUILD.gn`, `gn/tests.gni`) and source code across the `dm/` and `tests/` modules to introduce conditional compilation using `SK_GANESH` preprocessor directives. This effort **fixes build failures** for "no-gpu" and "chrome" configurations, preventing Ganesh-specific code from being compiled unnecessarily. The overall impact is improved **build robustness and flexibility** for Skia across diverse GPU backend setups.
This commit **refactors** the **Skia Display Module (DM)** and its associated build configurations to support building with **Graphite enabled and Ganesh disabled**. It introduces extensive **conditional compilation** across DM's sink creation, GPU test procedures, and source/sink handling, ensuring Ganesh-specific code paths are only included when necessary. The **build system (`.gn` files)** and a large portion of the **test suite** are updated to conditionally include or exclude Ganesh-related tests and configurations, streamlining the transition between GPU backends. Additionally, a **fix** was applied to `gm/imagefromyuvtextures.cpp` to correctly assert GPU recorder usage. This work facilitates the ongoing migration towards Graphite as the primary GPU rendering backend by allowing DM to operate without Ganesh.
This commit performs a significant **refactoring** of the **Skia testing infrastructure** to improve organization and separation of concerns. It introduces new **generic `SkPixmap`-based pixel comparison utilities** in `tests/ComparePixels.h` and `tests/ComparePixels.cpp`, extracting them from previously mixed test helpers. Concurrently, Ganesh-specific pixel comparison logic is isolated and renamed within `tests/ganesh/GaneshTestUtils.cpp`, ensuring clear distinction between generic and backend-specific test helpers. Additionally, the `char to glyph cache test` is moved from a general utility file to its dedicated `tests/CharToGlyphCache.cpp`, further enhancing test modularity. This change impacts numerous **test files** across **Skia's core, Ganesh, and Graphite subsystems**, updating them to use the appropriate new or renamed comparison functions.
This commit addresses a **corrective refactoring** within the **GPU atlas system** by fixing an incorrect argument order during the initialization of `PlotLocator` objects. Specifically, it corrects the placement of `AtlasGenerationCounter::kInvalidGeneration`, ensuring it is passed as the last parameter to the `PlotLocator()` constructor instead of the first. This **maintenance fix** primarily impacts the internal code correctness of `src/gpu/AtlasTypes.h` and does not introduce any functional changes, preventing potential issues from misordered parameters in the future.
This commit provides a **maintenance fix** within the **Graphics Module (GM)** test `gm/imagemakewithfilter.cpp`. It addresses a compiler warning by explicitly casting the unused variable `dContext` to `void`. This change improves code hygiene by **silencing an unused variable warning**, ensuring cleaner build logs without altering any functional behavior or introducing new capabilities.
This commit **refactors** the build system and application code to properly manage dependencies on the **Ganesh** GPU backend, especially when **Graphite** is enabled. It introduces new build flags and extensive conditional compilation within `BUILD.gn` files, the **Viewer** application, and **windowing contexts**. This ensures that Ganesh-specific features and types are only included when Ganesh is explicitly enabled, resolving a build issue where the Viewer failed to compile with Graphite if Ganesh was absent. This **maintenance** work significantly improves the modularity and flexibility of the build process, allowing tools to function correctly with Graphite without requiring Ganesh.
This commit performs extensive **refactoring** and **maintenance** across the codebase to prepare for a **Graphite-only viewer build**. It introduces conditional compilation using `SK_GANESH` and `SK_GRAPHITE` macros to decouple Ganesh-specific code from various **GPU utilities** in `tools/gpu`, several **Gold Master (GM) tests**, and **command-line flag configurations**. This work ensures that Ganesh-related includes, declarations, and logic are only present when Ganesh is enabled, allowing for builds that specifically target Graphite without Ganesh dependencies. The changes streamline the codebase and enable more focused build configurations by conditionally compiling Ganesh-specific logic in areas like YUV handling, Vulkan helpers, and context initialization.
This commit performs significant **refactoring** across numerous **Graphics Modules (GMs)** to enable their compilation even when the **Ganesh GPU backend** is disabled. It achieves this by introducing conditional compilation directives (`#if SK_GANESH`) around Ganesh-specific code paths, including context options, surface and image creation, GPU-specific includes, and flushing operations, affecting nearly all files within the `gm/` directory. This **maintenance** effort enhances the build system's flexibility, allowing the GM test suite to be built and executed in environments where Ganesh is not available or desired. The build configuration files, `gn/gm.gni` and `BUILD.gn`, were also updated to manage these conditional source inclusions, making the GM suite more modular and portable.
This commit performs a significant **refactoring** by **relocating Ganesh-specific tool code** into a new, dedicated `tools/ganesh` directory. This change primarily affects **build system configurations** (GN, Bazel, Makefiles) and numerous **include paths** across `bench`, `dm`, `fuzz`, `gm`, `skottie`, `skpbench`, `skqp`, and `tests` modules, which now reference the new `tools/ganesh` location. The goal is to improve **code organization** and **modularity**, making it easier to build Ganesh-only tools like `dm` and `viewer` by reducing the intermixing of Ganesh and common GPU support code. This separation streamlines the build process for Ganesh-specific components, though some shared code still relies on macros for conditional compilation.
This commit performs a **refactoring** by **relocating** the `TwoColorBC1Compress` utility and its helper functions. Previously residing in the **Ganesh GPU backend** (`src/gpu/ganesh/GrDataUtils`), this **BC1 compression utility** is now moved to a new, shared location within the **GPU tools module** (`tools/gpu/CompressedTexture.cpp` and `.h`). This **maintenance** effort improves code organization, making the utility more accessible for its current uses in **test code** (e.g., `gm/compressed_textures.cpp`) and with **Graphite**. The **build configurations** for GN and Bazel were updated to correctly include these newly located source files within the `skia_gpu_test_utils` target.
This commit performs **code cleanup** by **removing** the `tools/gpu/FenchSync.h` file from the repository. This file was identified as **unused**, indicating it was dead code within the **GPU tools** subsystem. The change improves code hygiene and reduces the overall codebase size and complexity by eliminating unnecessary components.
This commit provides a **maintenance fix** to enable the **Mac viewer to build correctly with Bazel**, addressing compilation issues where Objective-C files using Manual Reference Counting (MRC) were incorrectly processed with Automatic Reference Counting (ARC). It **refactors** the `skia_objc_library` Bazel macro in `bazel/skia_rules.bzl` to properly support `non_arc_srcs` by creating a nested `objc_library` with specific compilation flags, circumventing an obscure Bazel crash. This change impacts **Mac-specific Objective-C sources** within the `audioplayer`, `sk_app`, and `window` modules, ensuring their correct compilation and resolving a critical build blocker for the Mac viewer.
Commit activity distribution by hour and day of week. Shows when this developer is most active.
Developers who frequently work on the same files and symbols. Higher score means stronger code collaboration.