From c2d6908a262bb0c4616af7f25ca8d16f9e6ed924 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Wed, 19 Aug 2026 14:58:45 -0700 Subject: [PATCH 1/3] Add Pixel 10a performance coverage Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- eng/pipelines/runtime-perf-jobs.yml | 122 ++++++++++-------- eng/pipelines/sdk-perf-jobs.yml | 7 + .../templates/build-machine-matrix.yml | 12 ++ .../templates/run-performance-job.yml | 2 +- helix.yml | 12 +- scripts/run_performance_job.py | 2 + 6 files changed, 100 insertions(+), 57 deletions(-) diff --git a/eng/pipelines/runtime-perf-jobs.yml b/eng/pipelines/runtime-perf-jobs.yml index ed1a98b5ef1..0d46f543b2b 100644 --- a/eng/pipelines/runtime-perf-jobs.yml +++ b/eng/pipelines/runtime-perf-jobs.yml @@ -76,6 +76,13 @@ parameters: type: object default: enabled: true + - name: androidMachines + type: object + default: + - logicalMachine: perfpixel4a + machinePool: '' + - logicalMachine: perfpixel10a + machinePool: Pixel10a jobs: - template: /eng/pipelines/performance/templates/perf-build-jobs.yml@${{ parameters.runtimeRepoAlias }} @@ -92,65 +99,70 @@ jobs: # Android CoreCLR JIT (includes static linking variant) — controlled by androidCoreclrJit toggle - ${{ if eq(parameters.androidCoreclrJit.enabled, true) }}: - - template: /eng/pipelines/common/platform-matrix.yml@${{ parameters.runtimeRepoAlias }} - parameters: - jobTemplate: /eng/pipelines/templates/runtime-perf-job.yml@${{ parameters.performanceRepoAlias }} - buildConfig: release - runtimeFlavor: coreclr - platforms: - - windows_x64 - jobParameters: - runtimeType: AndroidCoreCLR - codeGenType: JIT - projectFile: $(Build.SourcesDirectory)/eng/testing/performance/android_scenarios.proj - runKind: android_scenarios - isScenario: true - logicalMachine: 'perfpixel4a' - runtimeRepoAlias: ${{ parameters.runtimeRepoAlias }} - performanceRepoAlias: ${{ parameters.performanceRepoAlias }} - ${{ each parameter in parameters.jobParameters }}: - ${{ parameter.key }}: ${{ parameter.value }} + - ${{ each machine in parameters.androidMachines }}: + - template: /eng/pipelines/common/platform-matrix.yml@${{ parameters.runtimeRepoAlias }} + parameters: + jobTemplate: /eng/pipelines/templates/runtime-perf-job.yml@${{ parameters.performanceRepoAlias }} + buildConfig: release + runtimeFlavor: coreclr + platforms: + - windows_x64 + jobParameters: + runtimeType: AndroidCoreCLR + codeGenType: JIT + projectFile: $(Build.SourcesDirectory)/eng/testing/performance/android_scenarios.proj + runKind: android_scenarios + isScenario: true + logicalMachine: ${{ machine.logicalMachine }} + machinePool: ${{ machine.machinePool }} + runtimeRepoAlias: ${{ parameters.runtimeRepoAlias }} + performanceRepoAlias: ${{ parameters.performanceRepoAlias }} + ${{ each parameter in parameters.jobParameters }}: + ${{ parameter.key }}: ${{ parameter.value }} - - template: /eng/pipelines/common/platform-matrix.yml@${{ parameters.runtimeRepoAlias }} - parameters: - jobTemplate: /eng/pipelines/templates/runtime-perf-job.yml@${{ parameters.performanceRepoAlias }} - buildConfig: release - runtimeFlavor: coreclr - platforms: - - windows_x64 - jobParameters: - runtimeType: AndroidCoreCLR - codeGenType: JIT - linkingType: static - projectFile: $(Build.SourcesDirectory)/eng/testing/performance/android_scenarios.proj - runKind: android_scenarios - isScenario: true - logicalMachine: 'perfpixel4a' - runtimeRepoAlias: ${{ parameters.runtimeRepoAlias }} - performanceRepoAlias: ${{ parameters.performanceRepoAlias }} - ${{ each parameter in parameters.jobParameters }}: - ${{ parameter.key }}: ${{ parameter.value }} + - template: /eng/pipelines/common/platform-matrix.yml@${{ parameters.runtimeRepoAlias }} + parameters: + jobTemplate: /eng/pipelines/templates/runtime-perf-job.yml@${{ parameters.performanceRepoAlias }} + buildConfig: release + runtimeFlavor: coreclr + platforms: + - windows_x64 + jobParameters: + runtimeType: AndroidCoreCLR + codeGenType: JIT + linkingType: static + projectFile: $(Build.SourcesDirectory)/eng/testing/performance/android_scenarios.proj + runKind: android_scenarios + isScenario: true + logicalMachine: ${{ machine.logicalMachine }} + machinePool: ${{ machine.machinePool }} + runtimeRepoAlias: ${{ parameters.runtimeRepoAlias }} + performanceRepoAlias: ${{ parameters.performanceRepoAlias }} + ${{ each parameter in parameters.jobParameters }}: + ${{ parameter.key }}: ${{ parameter.value }} # Android CoreCLR R2R — controlled by androidCoreclrR2r toggle - ${{ if eq(parameters.androidCoreclrR2r.enabled, true) }}: - - template: /eng/pipelines/common/platform-matrix.yml@${{ parameters.runtimeRepoAlias }} - parameters: - jobTemplate: /eng/pipelines/templates/runtime-perf-job.yml@${{ parameters.performanceRepoAlias }} - buildConfig: release - runtimeFlavor: coreclr - platforms: - - windows_x64 - jobParameters: - runtimeType: AndroidCoreCLR - codeGenType: R2R - projectFile: $(Build.SourcesDirectory)/eng/testing/performance/android_scenarios.proj - runKind: android_scenarios - isScenario: true - logicalMachine: 'perfpixel4a' - runtimeRepoAlias: ${{ parameters.runtimeRepoAlias }} - performanceRepoAlias: ${{ parameters.performanceRepoAlias }} - ${{ each parameter in parameters.jobParameters }}: - ${{ parameter.key }}: ${{ parameter.value }} + - ${{ each machine in parameters.androidMachines }}: + - template: /eng/pipelines/common/platform-matrix.yml@${{ parameters.runtimeRepoAlias }} + parameters: + jobTemplate: /eng/pipelines/templates/runtime-perf-job.yml@${{ parameters.performanceRepoAlias }} + buildConfig: release + runtimeFlavor: coreclr + platforms: + - windows_x64 + jobParameters: + runtimeType: AndroidCoreCLR + codeGenType: R2R + projectFile: $(Build.SourcesDirectory)/eng/testing/performance/android_scenarios.proj + runKind: android_scenarios + isScenario: true + logicalMachine: ${{ machine.logicalMachine }} + machinePool: ${{ machine.machinePool }} + runtimeRepoAlias: ${{ parameters.runtimeRepoAlias }} + performanceRepoAlias: ${{ parameters.performanceRepoAlias }} + ${{ each parameter in parameters.jobParameters }}: + ${{ parameter.key }}: ${{ parameter.value }} # Mono microbenchmarks — controlled by monoMicro toggle - ${{ if eq(parameters.monoMicro.enabled, true) }}: diff --git a/eng/pipelines/sdk-perf-jobs.yml b/eng/pipelines/sdk-perf-jobs.yml index d3fb0d8bb9d..8e3878517b2 100644 --- a/eng/pipelines/sdk-perf-jobs.yml +++ b/eng/pipelines/sdk-perf-jobs.yml @@ -413,6 +413,7 @@ jobs: jobTemplate: /eng/pipelines/templates/run-scenarios-job.yml buildMachines: - win-x64-android-arm64-pixel + - win-x64-android-arm64-pixel10a - win-x64-android-arm64-galaxy isPublic: false jobParameters: @@ -433,6 +434,7 @@ jobs: jobTemplate: /eng/pipelines/templates/run-scenarios-job.yml buildMachines: - win-x64-android-arm64-pixel + - win-x64-android-arm64-pixel10a - win-x64-android-arm64-galaxy isPublic: false jobParameters: @@ -455,6 +457,7 @@ jobs: jobTemplate: /eng/pipelines/templates/run-scenarios-job.yml buildMachines: - win-x64-android-arm64-pixel + - win-x64-android-arm64-pixel10a - win-x64-android-arm64-galaxy isPublic: false jobParameters: @@ -475,6 +478,7 @@ jobs: jobTemplate: /eng/pipelines/templates/run-scenarios-job.yml buildMachines: - win-x64-android-arm64-pixel + - win-x64-android-arm64-pixel10a - win-x64-android-arm64-galaxy isPublic: false jobParameters: @@ -496,6 +500,7 @@ jobs: jobTemplate: /eng/pipelines/templates/run-scenarios-job.yml buildMachines: - win-x64-android-arm64-pixel + - win-x64-android-arm64-pixel10a - win-x64-android-arm64-galaxy isPublic: false jobParameters: @@ -595,6 +600,7 @@ jobs: jobTemplate: /eng/pipelines/templates/run-scenarios-job.yml buildMachines: - win-x64-android-arm64-pixel + - win-x64-android-arm64-pixel10a - win-x64-android-arm64-galaxy isPublic: false jobParameters: @@ -615,6 +621,7 @@ jobs: jobTemplate: /eng/pipelines/templates/run-scenarios-job.yml buildMachines: - win-x64-android-arm64-pixel + - win-x64-android-arm64-pixel10a - win-x64-android-arm64-galaxy isPublic: false jobParameters: diff --git a/eng/pipelines/templates/build-machine-matrix.yml b/eng/pipelines/templates/build-machine-matrix.yml index 232b94adf33..f1931c950ee 100644 --- a/eng/pipelines/templates/build-machine-matrix.yml +++ b/eng/pipelines/templates/build-machine-matrix.yml @@ -134,6 +134,18 @@ jobs: machinePool: Pixel8 ${{ insert }}: ${{ parameters.jobParameters }} +- ${{ if and(containsValue(parameters.buildMachines, 'win-x64-android-arm64-pixel10a'), not(eq(parameters.isPublic, true))) }}: # Windows ARM64 Pixel 10a only used in private builds currently + - template: ${{ parameters.jobTemplate }} + parameters: + osGroup: windows + archType: x64 + osVersion: 22H2 + pool: + vmImage: 'windows-2022' + queue: Windows.11.Amd64.Pixel.10.Perf + machinePool: Pixel10a + ${{ insert }}: ${{ parameters.jobParameters }} + - ${{ if and(containsValue(parameters.buildMachines, 'win-x64-android-arm64-galaxy'), not(eq(parameters.isPublic, true))) }}: # Windows ARM64 Galaxy only used in private builds currently - template: ${{ parameters.jobTemplate }} parameters: diff --git a/eng/pipelines/templates/run-performance-job.yml b/eng/pipelines/templates/run-performance-job.yml index 0045cdb5a03..eb0e529d11e 100644 --- a/eng/pipelines/templates/run-performance-job.yml +++ b/eng/pipelines/templates/run-performance-job.yml @@ -55,7 +55,7 @@ parameters: javascriptEngine: '' # optional -- JavaScript engine to use iOSLlvmBuild: false # optional -- Whether to build iOS with LLVM iOSStripSymbols: true # optional -- Whether to strip symbols from the iOS build - machinePool: '' # optional -- Machine pool name (e.g. Pixel8, GalaxyA16, iPhone17) + machinePool: '' # optional -- Machine pool name (e.g. Pixel8, Pixel10a, GalaxyA16, iPhone17) additionalSetupParameters: '' # optional -- Additional arguments to pass to the script liveLibrariesBuildConfig: '' # optional -- Build configuration when generating Core_Root for libraries crossBuild: false # optional -- Whether the Core_Root is being cross-compiled diff --git a/helix.yml b/helix.yml index ee663f904f1..7f5b6f87390 100644 --- a/helix.yml +++ b/helix.yml @@ -6,6 +6,7 @@ jobs: variables: architecture: 'x64' queue: '' + machinePool: '' framework: 'net8.0' runCategories: '' kind: '' @@ -31,7 +32,7 @@ jobs: localFolder: '{{ performanceRepoDir }}' dockerfile: performance/eng/performance/helix_sender.Dockerfile dockerImageName: helix_sender - dockerCommand: python ./performance/scripts/run_performance_job.py --queue {{ queue }} --framework {{ framework }} --run-kind {{ kind }} --core-root-dir /performance/coreRoot --performance-repo-dir /performance/performance --architecture {{ architecture }} --os-group {{ osGroup }} --os-sub-group {{ osSubGroup }} {% if internal %}--internal{% endif %} --run-categories "{{ runCategories }}" {% if bdnArgs != blank and bdnArgs != empty %} --extra-bdn-args "{{ bdnArgs }}" {% endif %} --partition-count {{ partitionCount }} --project-file {{ projectFile }} {% if isScenario %} --is-scenario {% endif %} {% if isLocalBuild %} --local-build {% endif %} + dockerCommand: python ./performance/scripts/run_performance_job.py --queue {{ queue }} --framework {{ framework }} --run-kind {{ kind }} --core-root-dir /performance/coreRoot --performance-repo-dir /performance/performance --architecture {{ architecture }} --os-group {{ osGroup }} --os-sub-group {{ osSubGroup }} {% if internal %}--internal{% endif %} --run-categories "{{ runCategories }}" {% if bdnArgs != blank and bdnArgs != empty %} --extra-bdn-args "{{ bdnArgs }}" {% endif %} --partition-count {{ partitionCount }} --project-file {{ projectFile }} {% if isScenario %} --is-scenario {% endif %} {% if isLocalBuild %} --local-build {% endif %} {% if machinePool != blank and machinePool != empty %} --machine-pool {{ machinePool }} {% endif %} dockerContextDirectory: . arguments: '--env HelixAccessToken --env SYSTEM_ACCESSTOKEN' environmentVariables: @@ -98,6 +99,15 @@ profiles: variables: osGroup: windows queue: Windows.11.Amd64.Pixel.Perf + machinePool: Pixel8 + + win-x64-android-arm64-pixel10a: + jobs: + benchmark: + variables: + osGroup: windows + queue: Windows.11.Amd64.Pixel.10.Perf + machinePool: Pixel10a win-x64-android-arm64-galaxy: jobs: diff --git a/scripts/run_performance_job.py b/scripts/run_performance_job.py index 2f3aefc0161..3543dfc216b 100644 --- a/scripts/run_performance_job.py +++ b/scripts/run_performance_job.py @@ -438,6 +438,7 @@ def logical_machine_to_queue(logical_machine: str, internal: bool, os_group: str "perftiger": "Windows.11.Amd64.Tiger.Perf", "perftiger_crossgen": "Windows.11.Amd64.Tiger.Perf", "perfpixel4a": "Windows.11.Amd64.Pixel.Perf", + "perfpixel10a": "Windows.11.Amd64.Pixel.10.Perf", "perfampere": "Windows.Server.Arm64.Perf", "perfviper": "Windows.11.Amd64.Viper.Perf", "cloudvm": "Windows.10.Amd64" @@ -1146,6 +1147,7 @@ def run_performance_job(args: RunPerformanceJobArgs): # Set device name from machine pool for mobile queues if args.machine_pool and args.queue and args.queue in ( "Windows.11.Amd64.Pixel.Perf", + "Windows.11.Amd64.Pixel.10.Perf", "Windows.11.Amd64.Galaxy.Lowend.Perf", "Mac.iPhone.17.Perf", ): From a22d37de95f1ec5fc61cfe6457af30238a000691 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Wed, 19 Aug 2026 15:27:04 -0700 Subject: [PATCH 2/3] Simplify Pixel 10a runtime jobs Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- eng/pipelines/runtime-perf-jobs.yml | 180 +++++++++++------- .../templates/run-performance-job.yml | 2 +- helix.yml | 5 +- scripts/run_performance_job.py | 6 +- 4 files changed, 119 insertions(+), 74 deletions(-) diff --git a/eng/pipelines/runtime-perf-jobs.yml b/eng/pipelines/runtime-perf-jobs.yml index 0d46f543b2b..e11969d2394 100644 --- a/eng/pipelines/runtime-perf-jobs.yml +++ b/eng/pipelines/runtime-perf-jobs.yml @@ -76,13 +76,6 @@ parameters: type: object default: enabled: true - - name: androidMachines - type: object - default: - - logicalMachine: perfpixel4a - machinePool: '' - - logicalMachine: perfpixel10a - machinePool: Pixel10a jobs: - template: /eng/pipelines/performance/templates/perf-build-jobs.yml@${{ parameters.runtimeRepoAlias }} @@ -99,70 +92,123 @@ jobs: # Android CoreCLR JIT (includes static linking variant) — controlled by androidCoreclrJit toggle - ${{ if eq(parameters.androidCoreclrJit.enabled, true) }}: - - ${{ each machine in parameters.androidMachines }}: - - template: /eng/pipelines/common/platform-matrix.yml@${{ parameters.runtimeRepoAlias }} - parameters: - jobTemplate: /eng/pipelines/templates/runtime-perf-job.yml@${{ parameters.performanceRepoAlias }} - buildConfig: release - runtimeFlavor: coreclr - platforms: - - windows_x64 - jobParameters: - runtimeType: AndroidCoreCLR - codeGenType: JIT - projectFile: $(Build.SourcesDirectory)/eng/testing/performance/android_scenarios.proj - runKind: android_scenarios - isScenario: true - logicalMachine: ${{ machine.logicalMachine }} - machinePool: ${{ machine.machinePool }} - runtimeRepoAlias: ${{ parameters.runtimeRepoAlias }} - performanceRepoAlias: ${{ parameters.performanceRepoAlias }} - ${{ each parameter in parameters.jobParameters }}: - ${{ parameter.key }}: ${{ parameter.value }} + - template: /eng/pipelines/common/platform-matrix.yml@${{ parameters.runtimeRepoAlias }} + parameters: + jobTemplate: /eng/pipelines/templates/runtime-perf-job.yml@${{ parameters.performanceRepoAlias }} + buildConfig: release + runtimeFlavor: coreclr + platforms: + - windows_x64 + jobParameters: + runtimeType: AndroidCoreCLR + codeGenType: JIT + projectFile: $(Build.SourcesDirectory)/eng/testing/performance/android_scenarios.proj + runKind: android_scenarios + isScenario: true + logicalMachine: 'perfpixel4a' + runtimeRepoAlias: ${{ parameters.runtimeRepoAlias }} + performanceRepoAlias: ${{ parameters.performanceRepoAlias }} + ${{ each parameter in parameters.jobParameters }}: + ${{ parameter.key }}: ${{ parameter.value }} + + - template: /eng/pipelines/common/platform-matrix.yml@${{ parameters.runtimeRepoAlias }} + parameters: + jobTemplate: /eng/pipelines/templates/runtime-perf-job.yml@${{ parameters.performanceRepoAlias }} + buildConfig: release + runtimeFlavor: coreclr + platforms: + - windows_x64 + jobParameters: + runtimeType: AndroidCoreCLR + codeGenType: JIT + projectFile: $(Build.SourcesDirectory)/eng/testing/performance/android_scenarios.proj + runKind: android_scenarios + isScenario: true + logicalMachine: 'perfpixel10a' + runtimeRepoAlias: ${{ parameters.runtimeRepoAlias }} + performanceRepoAlias: ${{ parameters.performanceRepoAlias }} + ${{ each parameter in parameters.jobParameters }}: + ${{ parameter.key }}: ${{ parameter.value }} - - template: /eng/pipelines/common/platform-matrix.yml@${{ parameters.runtimeRepoAlias }} - parameters: - jobTemplate: /eng/pipelines/templates/runtime-perf-job.yml@${{ parameters.performanceRepoAlias }} - buildConfig: release - runtimeFlavor: coreclr - platforms: - - windows_x64 - jobParameters: - runtimeType: AndroidCoreCLR - codeGenType: JIT - linkingType: static - projectFile: $(Build.SourcesDirectory)/eng/testing/performance/android_scenarios.proj - runKind: android_scenarios - isScenario: true - logicalMachine: ${{ machine.logicalMachine }} - machinePool: ${{ machine.machinePool }} - runtimeRepoAlias: ${{ parameters.runtimeRepoAlias }} - performanceRepoAlias: ${{ parameters.performanceRepoAlias }} - ${{ each parameter in parameters.jobParameters }}: - ${{ parameter.key }}: ${{ parameter.value }} + - template: /eng/pipelines/common/platform-matrix.yml@${{ parameters.runtimeRepoAlias }} + parameters: + jobTemplate: /eng/pipelines/templates/runtime-perf-job.yml@${{ parameters.performanceRepoAlias }} + buildConfig: release + runtimeFlavor: coreclr + platforms: + - windows_x64 + jobParameters: + runtimeType: AndroidCoreCLR + codeGenType: JIT + linkingType: static + projectFile: $(Build.SourcesDirectory)/eng/testing/performance/android_scenarios.proj + runKind: android_scenarios + isScenario: true + logicalMachine: 'perfpixel4a' + runtimeRepoAlias: ${{ parameters.runtimeRepoAlias }} + performanceRepoAlias: ${{ parameters.performanceRepoAlias }} + ${{ each parameter in parameters.jobParameters }}: + ${{ parameter.key }}: ${{ parameter.value }} + + - template: /eng/pipelines/common/platform-matrix.yml@${{ parameters.runtimeRepoAlias }} + parameters: + jobTemplate: /eng/pipelines/templates/runtime-perf-job.yml@${{ parameters.performanceRepoAlias }} + buildConfig: release + runtimeFlavor: coreclr + platforms: + - windows_x64 + jobParameters: + runtimeType: AndroidCoreCLR + codeGenType: JIT + linkingType: static + projectFile: $(Build.SourcesDirectory)/eng/testing/performance/android_scenarios.proj + runKind: android_scenarios + isScenario: true + logicalMachine: 'perfpixel10a' + runtimeRepoAlias: ${{ parameters.runtimeRepoAlias }} + performanceRepoAlias: ${{ parameters.performanceRepoAlias }} + ${{ each parameter in parameters.jobParameters }}: + ${{ parameter.key }}: ${{ parameter.value }} # Android CoreCLR R2R — controlled by androidCoreclrR2r toggle - ${{ if eq(parameters.androidCoreclrR2r.enabled, true) }}: - - ${{ each machine in parameters.androidMachines }}: - - template: /eng/pipelines/common/platform-matrix.yml@${{ parameters.runtimeRepoAlias }} - parameters: - jobTemplate: /eng/pipelines/templates/runtime-perf-job.yml@${{ parameters.performanceRepoAlias }} - buildConfig: release - runtimeFlavor: coreclr - platforms: - - windows_x64 - jobParameters: - runtimeType: AndroidCoreCLR - codeGenType: R2R - projectFile: $(Build.SourcesDirectory)/eng/testing/performance/android_scenarios.proj - runKind: android_scenarios - isScenario: true - logicalMachine: ${{ machine.logicalMachine }} - machinePool: ${{ machine.machinePool }} - runtimeRepoAlias: ${{ parameters.runtimeRepoAlias }} - performanceRepoAlias: ${{ parameters.performanceRepoAlias }} - ${{ each parameter in parameters.jobParameters }}: - ${{ parameter.key }}: ${{ parameter.value }} + - template: /eng/pipelines/common/platform-matrix.yml@${{ parameters.runtimeRepoAlias }} + parameters: + jobTemplate: /eng/pipelines/templates/runtime-perf-job.yml@${{ parameters.performanceRepoAlias }} + buildConfig: release + runtimeFlavor: coreclr + platforms: + - windows_x64 + jobParameters: + runtimeType: AndroidCoreCLR + codeGenType: R2R + projectFile: $(Build.SourcesDirectory)/eng/testing/performance/android_scenarios.proj + runKind: android_scenarios + isScenario: true + logicalMachine: 'perfpixel4a' + runtimeRepoAlias: ${{ parameters.runtimeRepoAlias }} + performanceRepoAlias: ${{ parameters.performanceRepoAlias }} + ${{ each parameter in parameters.jobParameters }}: + ${{ parameter.key }}: ${{ parameter.value }} + + - template: /eng/pipelines/common/platform-matrix.yml@${{ parameters.runtimeRepoAlias }} + parameters: + jobTemplate: /eng/pipelines/templates/runtime-perf-job.yml@${{ parameters.performanceRepoAlias }} + buildConfig: release + runtimeFlavor: coreclr + platforms: + - windows_x64 + jobParameters: + runtimeType: AndroidCoreCLR + codeGenType: R2R + projectFile: $(Build.SourcesDirectory)/eng/testing/performance/android_scenarios.proj + runKind: android_scenarios + isScenario: true + logicalMachine: 'perfpixel10a' + runtimeRepoAlias: ${{ parameters.runtimeRepoAlias }} + performanceRepoAlias: ${{ parameters.performanceRepoAlias }} + ${{ each parameter in parameters.jobParameters }}: + ${{ parameter.key }}: ${{ parameter.value }} # Mono microbenchmarks — controlled by monoMicro toggle - ${{ if eq(parameters.monoMicro.enabled, true) }}: diff --git a/eng/pipelines/templates/run-performance-job.yml b/eng/pipelines/templates/run-performance-job.yml index eb0e529d11e..0045cdb5a03 100644 --- a/eng/pipelines/templates/run-performance-job.yml +++ b/eng/pipelines/templates/run-performance-job.yml @@ -55,7 +55,7 @@ parameters: javascriptEngine: '' # optional -- JavaScript engine to use iOSLlvmBuild: false # optional -- Whether to build iOS with LLVM iOSStripSymbols: true # optional -- Whether to strip symbols from the iOS build - machinePool: '' # optional -- Machine pool name (e.g. Pixel8, Pixel10a, GalaxyA16, iPhone17) + machinePool: '' # optional -- Machine pool name (e.g. Pixel8, GalaxyA16, iPhone17) additionalSetupParameters: '' # optional -- Additional arguments to pass to the script liveLibrariesBuildConfig: '' # optional -- Build configuration when generating Core_Root for libraries crossBuild: false # optional -- Whether the Core_Root is being cross-compiled diff --git a/helix.yml b/helix.yml index 7f5b6f87390..c0c032d7a7a 100644 --- a/helix.yml +++ b/helix.yml @@ -6,7 +6,6 @@ jobs: variables: architecture: 'x64' queue: '' - machinePool: '' framework: 'net8.0' runCategories: '' kind: '' @@ -32,7 +31,7 @@ jobs: localFolder: '{{ performanceRepoDir }}' dockerfile: performance/eng/performance/helix_sender.Dockerfile dockerImageName: helix_sender - dockerCommand: python ./performance/scripts/run_performance_job.py --queue {{ queue }} --framework {{ framework }} --run-kind {{ kind }} --core-root-dir /performance/coreRoot --performance-repo-dir /performance/performance --architecture {{ architecture }} --os-group {{ osGroup }} --os-sub-group {{ osSubGroup }} {% if internal %}--internal{% endif %} --run-categories "{{ runCategories }}" {% if bdnArgs != blank and bdnArgs != empty %} --extra-bdn-args "{{ bdnArgs }}" {% endif %} --partition-count {{ partitionCount }} --project-file {{ projectFile }} {% if isScenario %} --is-scenario {% endif %} {% if isLocalBuild %} --local-build {% endif %} {% if machinePool != blank and machinePool != empty %} --machine-pool {{ machinePool }} {% endif %} + dockerCommand: python ./performance/scripts/run_performance_job.py --queue {{ queue }} --framework {{ framework }} --run-kind {{ kind }} --core-root-dir /performance/coreRoot --performance-repo-dir /performance/performance --architecture {{ architecture }} --os-group {{ osGroup }} --os-sub-group {{ osSubGroup }} {% if internal %}--internal{% endif %} --run-categories "{{ runCategories }}" {% if bdnArgs != blank and bdnArgs != empty %} --extra-bdn-args "{{ bdnArgs }}" {% endif %} --partition-count {{ partitionCount }} --project-file {{ projectFile }} {% if isScenario %} --is-scenario {% endif %} {% if isLocalBuild %} --local-build {% endif %} dockerContextDirectory: . arguments: '--env HelixAccessToken --env SYSTEM_ACCESSTOKEN' environmentVariables: @@ -99,7 +98,6 @@ profiles: variables: osGroup: windows queue: Windows.11.Amd64.Pixel.Perf - machinePool: Pixel8 win-x64-android-arm64-pixel10a: jobs: @@ -107,7 +105,6 @@ profiles: variables: osGroup: windows queue: Windows.11.Amd64.Pixel.10.Perf - machinePool: Pixel10a win-x64-android-arm64-galaxy: jobs: diff --git a/scripts/run_performance_job.py b/scripts/run_performance_job.py index 3543dfc216b..de6d00de5a4 100644 --- a/scripts/run_performance_job.py +++ b/scripts/run_performance_job.py @@ -1144,8 +1144,10 @@ def run_performance_job(args: RunPerformanceJobArgs): if wasm: args.run_env_vars["PERFLAB_EVALUATE_OVERHEAD"] = "1" - # Set device name from machine pool for mobile queues - if args.machine_pool and args.queue and args.queue in ( + # Pixel 10a runtime jobs use a logical machine rather than a machine pool. + if args.logical_machine == "perfpixel10a" and args.queue == "Windows.11.Amd64.Pixel.10.Perf": + args.run_env_vars["DEVICE_NAME"] = "Pixel10a" + elif args.machine_pool and args.queue and args.queue in ( "Windows.11.Amd64.Pixel.Perf", "Windows.11.Amd64.Pixel.10.Perf", "Windows.11.Amd64.Galaxy.Lowend.Perf", From e6b60f27a477a1c9bf05f465b095a72f51aa3a59 Mon Sep 17 00:00:00 2001 From: Parker Bibus Date: Wed, 19 Aug 2026 15:34:21 -0700 Subject: [PATCH 3/3] Align Pixel 10a runtime device handling Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- scripts/run_performance_job.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/scripts/run_performance_job.py b/scripts/run_performance_job.py index de6d00de5a4..3543dfc216b 100644 --- a/scripts/run_performance_job.py +++ b/scripts/run_performance_job.py @@ -1144,10 +1144,8 @@ def run_performance_job(args: RunPerformanceJobArgs): if wasm: args.run_env_vars["PERFLAB_EVALUATE_OVERHEAD"] = "1" - # Pixel 10a runtime jobs use a logical machine rather than a machine pool. - if args.logical_machine == "perfpixel10a" and args.queue == "Windows.11.Amd64.Pixel.10.Perf": - args.run_env_vars["DEVICE_NAME"] = "Pixel10a" - elif args.machine_pool and args.queue and args.queue in ( + # Set device name from machine pool for mobile queues + if args.machine_pool and args.queue and args.queue in ( "Windows.11.Amd64.Pixel.Perf", "Windows.11.Amd64.Pixel.10.Perf", "Windows.11.Amd64.Galaxy.Lowend.Perf",