NavigaraNavigara
OrganizationsDistributionCompareResearch
NavigaraNavigara
OrganizationsDistributionCompareResearch
All developers

Brian Salomon

Developer

Brian Salomon

briansalomon@gmail.com

24 commits~23 files/commit

Performance

2026Previous year

Insights

Key patterns and highlights from this developer's activity.

Peak MonthFeb'26329 performance
Growth Trend↑2220%vs prior period
Avg Files/Commit23files per commit
Active Days22of 455 days
Top Reposkia24 commits

Effort Over Time

Breakdown of growth, maintenance, and fixes effort over time.

Bug Behavior

Beta

Bugs introduced vs. fixed over time.

No bugs introduced or fixed in this period.

Investment Quality

Beta

Reclassifies engineering effort based on bug attribution. Commits that introduced bugs are retrospectively counted as poor investments.

10%Productive TimeGrowth 92% + Fixes 8%
90%Maintenance Time
0%Wasted Time
How it works

Methodology

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.

Relationship to Growth / Maintenance / Fixes

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.

Proposed API Endpoint

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
    }
  ]
}

Recent Activity

Latest analyzed commits from this developer.

HashMessageDateFilesEffort
3218398This 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 420maint
a07c79aThis 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 2710maint
f66bf9dThis 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 2548maint
f494c61This 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 191waste
d12836eThis 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 1942maint
495d6f8This 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 171maint
dc88b21This 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 191grow
84c83c0This 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 148maint
4d915a8This 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 2443maint
54f6a0bThis 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 2145maint
78d4fb3This 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 1729grow
fd299c7This 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 81waste
b242cc0This 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 301maint
cdf24b9This 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 2327maint
69feddeThis 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 1721maint
f950263This 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 1260maint
cbb0388This 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 10147maint
a0cd0b2This 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 97maint
c3a3d1eThis 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 922–
cf34878This 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 86maint
3218398Mar 4

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.

20 filesmaint
a07c79aFeb 27

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.

10 filesmaint
f66bf9dFeb 25

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.

48 filesmaint
f494c61Feb 19

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.

1 fileswaste
d12836eFeb 19

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.

42 filesmaint
495d6f8Dec 17

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.

1 filesmaint
dc88b21Nov 19

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.

1 filesgrow
84c83c0Nov 14

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.

8 filesmaint
4d915a8Oct 24

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.

43 filesmaint
54f6a0bOct 21

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.

45 filesmaint
78d4fb3Oct 17

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.

29 filesgrow
fd299c7Oct 8

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.

1 fileswaste
b242cc0Sep 30

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.

1 filesmaint
cdf24b9Sep 23

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.

27 filesmaint
69feddeSep 17

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.

21 filesmaint
f950263Sep 12

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.

60 filesmaint
cbb0388Sep 10

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.

147 filesmaint
a0cd0b2Sep 9

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.

7 filesmaint
c3a3d1eSep 9

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.

22 files–
cf34878Sep 8

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.

6 filesmaint

Work Patterns

Beta

Commit activity distribution by hour and day of week. Shows when this developer is most active.

Collaboration

Beta

Developers who frequently work on the same files and symbols. Higher score means stronger code collaboration.

NavigaraNavigara
OrganizationsDistributionCompareResearch