Skip to content

[0.83] fix(textinput): correct placeholder layout constraints (px vs DIP) and no-op NaN fontSize guard - #16303

Open
FaithfulAudio wants to merge 3 commits into
microsoft:0.83-stablefrom
FacilitronWorks:fix/textinput-placeholder-layout
Open

[0.83] fix(textinput): correct placeholder layout constraints (px vs DIP) and no-op NaN fontSize guard#16303
FaithfulAudio wants to merge 3 commits into
microsoft:0.83-stablefrom
FacilitronWorks:fix/textinput-placeholder-layout

Conversation

@FaithfulAudio

@FaithfulAudio FaithfulAudio commented Jul 11, 2026

Copy link
Copy Markdown

Problem

The native placeholder renders at a different height/size than typed text; a placeholder with no explicit fontSize gets a NaN size that is never repaired.

Root cause

In CreatePlaceholderLayout(): (1) LayoutConstraints are in DIPs, but the code feeds m_imgWidth/m_imgHeight, which are physical pixels (frame * pointScaleFactor) — the placeholder is laid out in a box pointScaleFactor× too large. (2) The NaN-fontSize guard is a no-op: TextAttributes::defaultTextAttributes().fontSize; is a discarded expression (missing assignment), so NaN is never replaced.

Fix

Divide the constraint by pointScaleFactor to get DIPs; actually assign the default into textAttributes.fontSize.

Validation (honest)

Probed in a production RNW 0.83.2 new-arch app (Facilitron FIT, Windows 11 ARM64, Debug, 250% scale) with stock deep-import TextInputs and no app shims:

placeholder vs typed at 250%

Findings stated plainly: the fontSize no-op is an unambiguous code bug (discarded expression), though on 0.83.2 a no-fontSize placeholder still renders at a plausible default — so that part is correctness/robustness, not a visible-crash fix. At this probe geometry (44-DIP box, fontSize 18) placeholder and typed text measured pixel-identical glyph rows (both parked low — dominated by the GetContentSize centering bug, companion PR #), so the oversized constraint did not produce a visible offset in this configuration; the mismatch that motivated the fix was observed in product forms before we suppressed native placeholders app-wide. The DIP conversion mirrors how m_imgWidth/m_imgHeight are derived (verified in 0.83.2 source). Needs upstream CI + placeholder-vs-typed comparison at >100% scale across box/font sizes, with and without explicit placeholder fontSize. Authored against 0.83-stable; happy to re-cut onto main.

Microsoft Reviewers: Open in CodeFlow

FaithfulAudio and others added 2 commits July 11, 2026 11:58
Two defects in the native placeholder path of WindowsTextInputComponentView:

1. CreatePlaceholderLayout() built LayoutConstraints (which are in DIPs) from
   m_imgWidth/m_imgHeight, which are *physical* pixels (frame * pointScaleFactor).
   The placeholder was therefore laid out in a box pointScaleFactor x too large
   and rendered at a different height than the typed text at display scales > 100%.
   Convert the constraint back to DIPs.

2. The NaN-fontSize guard computed
   `TextAttributes::defaultTextAttributes().fontSize;` as a discarded expression
   (missing assignment), so a placeholder with no explicit fontSize kept NaN
   instead of the default. Assign it to textAttributes.fontSize.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@azure-pipelines

Copy link
Copy Markdown
Contributor
Azure Pipelines:
There may be pipelines that require an authorized user to comment /azp run to run.

@FaithfulAudio

Copy link
Copy Markdown
Author

@microsoft-github-policy-service agree [company="Facilitron"]

@FaithfulAudio

Copy link
Copy Markdown
Author

@microsoft-github-policy-service agree company="Facilitron"

@FaithfulAudio

Copy link
Copy Markdown
Author

Compiled into a framework source build (binary-gated) and re-probed in our production app: no regression; the NaN-fontSize guard now actually assigns (a no-fontSize placeholder renders at the default size), and placeholder-vs-typed remain pixel-comparable at this geometry. After-shot: after

@acoates-ms

Copy link
Copy Markdown
Contributor

/azp run

@acoates-ms

Copy link
Copy Markdown
Contributor

yeah, we should get a main check-in too otherwise it wont make it into future releases.

@azure-pipelines

Copy link
Copy Markdown
Contributor
Azure Pipelines:
Successfully started running 1 pipeline(s).

// LayoutConstraints are expressed in DIPs. Feeding physical px laid the
// placeholder out in a box pointScaleFactor x too large, so the placeholder was
// measured/positioned at a different height than the typed text. Convert to DIPs.
const float scale = m_layoutMetrics.pointScaleFactor != 0.0f ? m_layoutMetrics.pointScaleFactor : 1.0f;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I dont think we should need the != 0 protection here -- unless that is something you saw?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You're right — no, we didn't see it hit zero; that was purely defensive around the new division. LayoutMetrics::pointScaleFactor has a default member initializer of 1.0, and EmptyLayoutMetrics only designates .frame, so even the pre-layout sentinel inherits 1.0 — there's no normal path where it's 0 here. I'll drop the guard and just divide by m_layoutMetrics.pointScaleFactor.

@FaithfulAudio

Copy link
Copy Markdown
Author

Sounds good. Happy to re-cut onto main — do you prefer I retarget this PR, or open a companion main PR and keep this one as the 0.83-stable backport? I'll fold in removing the != 0 guard (per the inline thread) at the same time. Thanks for kicking off the pipeline.

Per @acoates-ms: the defensive check was not motivated by an observed
zero. LayoutMetrics::pointScaleFactor has a default member initializer
of 1.0 and EmptyLayoutMetrics only designates .frame, so the pre-layout
sentinel inherits 1.0 - there is no path here where it is 0. Divide
directly.
FaithfulAudio added a commit to FacilitronWorks/react-native-windows that referenced this pull request Jul 18, 2026
…d no-op NaN fontSize guard

Forward-port of microsoft#16303 (0.83-stable) to main.

CreatePlaceholderLayout fed m_imgWidth/m_imgHeight - which are physical
pixels (frame * pointScaleFactor) - into LayoutConstraints, which are
expressed in DIPs. The placeholder was laid out in a box pointScaleFactor
times too large, so it measured and positioned at a different height than
the typed text. Divide by pointScaleFactor.

The NaN fontSize guard was also a no-op: it evaluated
defaultTextAttributes().fontSize as a discarded expression statement
instead of assigning it, so a placeholder with no fontSize never picked
up the default.
@FaithfulAudio

Copy link
Copy Markdown
Author

Done on both counts:

  • Dropped the != 0 guard — you were right, it wasn't motivated by an observed zero. Now divides by m_layoutMetrics.pointScaleFactor directly.
  • Opened the main companion: fix(textinput): correct placeholder layout constraints (px vs DIP) and no-op NaN fontSize guard #16317. Same change applied to current main (both defects are still present there), so it lands in future releases; I've kept this PR as the 0.83-stable backport rather than retargeting, so the fix ships in 0.83 too. Happy to close either one if you'd rather have it the other way.

Ready for another CI pass when you get a chance.

@FaithfulAudio
FaithfulAudio marked this pull request as ready for review July 18, 2026 11:54
@FaithfulAudio
FaithfulAudio requested a review from a team as a code owner July 18, 2026 11:54
@azure-pipelines

Copy link
Copy Markdown
Contributor
Azure Pipelines:
There may be pipelines that require an authorized user to comment /azp run to run.

@FaithfulAudio

FaithfulAudio commented Jul 30, 2026

Copy link
Copy Markdown
Author

hey @acoates-ms — friendly bump, made the != 0 change you flagged, should be good for another look whenever you've got a sec

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes placeholder text layout in the Fabric/Composition TextInput implementation by ensuring placeholder measurement uses the correct units and by correcting a no-op NaN fontSize fallback so placeholders consistently match typed text styling.

Changes:

  • Fixes a no-op NaN fontSize guard by actually assigning the default fontSize into textAttributes.
  • Converts placeholder layout constraints from physical pixels to DIPs so placeholder measurement is performed in the correct coordinate space.
  • Adds a change file for react-native-windows describing the patch.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
vnext/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp Fixes placeholder text attributes fallback and updates placeholder layout constraints to use DIP sizing.
change/react-native-windows-fix-textinput-placeholder.json Adds changelog entry for the placeholder layout/fontSize guard fix.

@acoates-ms acoates-ms changed the title fix(textinput): correct placeholder layout constraints (px vs DIP) and no-op NaN fontSize guard [0.83] fix(textinput): correct placeholder layout constraints (px vs DIP) and no-op NaN fontSize guard Aug 3, 2026
@acoates-ms

Copy link
Copy Markdown
Contributor

/azp run

@azure-pipelines

Copy link
Copy Markdown
Contributor
Azure Pipelines:
Successfully started running 1 pipeline(s).

@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown

Performance Test Results

Branch: fix/textinput-placeholder-layout
Commit: 204f9a83
Time: 2026-08-03T23:49:06.595Z
Tests: 161/161 passed

✅ Passed

161 scenario(s) across 28 suite(s) — no regressions

SectionList

Scenario Mean Median StdDev Renders vs Baseline
SectionList mount 5.30ms 5.00ms ±0.67ms 1 +0.0%
SectionList unmount 0.00ms 0.00ms ±0.00ms 0 +0.0%
SectionList rerender 12.00ms 11.50ms ±2.21ms 2 +9.5%
SectionList with-3-sections-15-items 5.70ms 5.00ms ±1.64ms 1 -9.1%
SectionList with-5-sections-50-items 5.90ms 6.00ms ±1.37ms 1 +0.0%
SectionList with-10-sections-200-items 5.10ms 5.00ms ±0.57ms 1 -9.1%
SectionList with-20-sections-200-items 6.90ms 7.00ms ±2.77ms 1 +40.0%
SectionList with-section-separator 1.80ms 2.00ms ±0.63ms 1 +0.0%
SectionList with-item-separator 2.70ms 2.50ms ±0.95ms 1 +25.0%
SectionList with-header-footer 1.90ms 2.00ms ±0.32ms 1 +0.0%
SectionList with-section-footer 2.10ms 2.00ms ±0.32ms 1 +0.0%
SectionList with-sticky-section-headers 2.30ms 2.00ms ±1.77ms 1 +0.0%
SectionList with-empty-list 0.60ms 1.00ms ±0.52ms 1 +0.0%
SectionList with-50-sections-1000-items 2.30ms 2.00ms ±0.67ms 1 +0.0%

FlatList

Scenario Mean Median StdDev Renders vs Baseline
FlatList mount 4.70ms 5.00ms ±0.48ms 1 +25.0%
FlatList unmount 0.80ms 1.00ms ±0.42ms 0 +Infinity%
FlatList rerender 9.60ms 10.00ms ±0.84ms 2 +11.1%
FlatList with-10-items 5.00ms 5.00ms ±1.25ms 1 +25.0%
FlatList with-100-items 5.20ms 5.00ms ±0.42ms 1 +0.0%
FlatList with-500-items 4.90ms 5.00ms ±1.73ms 1 +25.0%
FlatList with-1000-items 4.90ms 4.50ms ±1.52ms 1 +12.5%
FlatList horizontal 4.60ms 5.00ms ±1.26ms 1 +0.0%
FlatList with-separator 1.80ms 2.00ms ±0.63ms 1 +0.0%
FlatList with-header-footer 1.20ms 1.00ms ±0.42ms 1 -50.0%
FlatList with-empty-list 0.50ms 0.50ms ±0.53ms 1 +0.0%
FlatList with-get-item-layout 1.60ms 2.00ms ±0.52ms 1 +100.0%
FlatList inverted 1.50ms 1.50ms ±0.53ms 1 +0.0%
FlatList with-num-columns 3.30ms 3.00ms ±1.70ms 1 +0.0%

TouchableOpacity

Scenario Mean Median StdDev Renders vs Baseline
TouchableOpacity mount 0.80ms 1.00ms ±0.42ms 1 +0.0%
TouchableOpacity unmount 0.10ms 0.00ms ±0.32ms 0 +0.0%
TouchableOpacity rerender 1.10ms 1.00ms ±0.74ms 2 +0.0%
TouchableOpacity custom-active-opacity 0.70ms 1.00ms ±0.48ms 1 +0.0%
TouchableOpacity disabled 0.60ms 1.00ms ±0.52ms 1 +0.0%
TouchableOpacity with-all-handlers 0.70ms 1.00ms ±0.48ms 1 +0.0%
TouchableOpacity with-hit-slop 0.90ms 1.00ms ±0.32ms 1 +0.0%
TouchableOpacity with-delay 0.90ms 1.00ms ±0.32ms 1 +0.0%
TouchableOpacity nested 1.30ms 1.00ms ±0.48ms 1 +0.0%
TouchableOpacity multiple-10 6.67ms 6.00ms ±1.45ms 1 +0.0%
TouchableOpacity multiple-50 31.13ms 32.00ms ±2.61ms 1 +10.3%
TouchableOpacity multiple-100 61.00ms 57.00ms ±24.67ms 1 +14.0%

ScrollView

Scenario Mean Median StdDev Renders vs Baseline
ScrollView mount 0.50ms 0.50ms ±0.53ms 1 +Infinity%
ScrollView unmount 0.00ms 0.00ms ±0.00ms 0 +0.0%
ScrollView rerender 0.60ms 1.00ms ±0.52ms 2 +0.0%
ScrollView children-20 3.67ms 3.00ms ±1.40ms 1 -25.0%
ScrollView children-100 17.40ms 16.00ms ±3.27ms 1 +0.0%
ScrollView horizontal 3.70ms 3.00ms ±1.06ms 1 -25.0%
ScrollView sticky-headers 3.10ms 3.00ms ±0.99ms 1 +0.0%
ScrollView scroll-indicators 0.80ms 1.00ms ±0.42ms 1 +0.0%
ScrollView nested 1.50ms 1.00ms ±0.71ms 1 +0.0%
ScrollView content-container-style 1.20ms 1.00ms ±1.40ms 1 +0.0%
ScrollView children-500 21.67ms 21.00ms ±3.22ms 1 +10.5%

TouchableHighlight

Scenario Mean Median StdDev Renders vs Baseline
TouchableHighlight mount 0.50ms 0.50ms ±0.53ms 1 +0.0%
TouchableHighlight unmount 0.00ms 0.00ms ±0.00ms 0 +0.0%
TouchableHighlight rerender 0.60ms 1.00ms ±0.52ms 2 +0.0%
TouchableHighlight custom-underlay-color 0.50ms 0.50ms ±0.53ms 1 +Infinity%
TouchableHighlight custom-active-opacity 0.20ms 0.00ms ±0.42ms 1 +0.0%
TouchableHighlight disabled 0.40ms 0.00ms ±0.52ms 1 +0.0%
TouchableHighlight with-all-handlers 0.40ms 0.00ms ±0.52ms 1 +0.0%
TouchableHighlight with-hit-slop 0.50ms 0.50ms ±0.53ms 1 +Infinity%
TouchableHighlight nested-touchables 1.00ms 1.00ms ±1.49ms 1 +0.0%
TouchableHighlight multiple-touchables-10 2.90ms 3.00ms ±0.32ms 1 +0.0%
TouchableHighlight multiple-touchables-50 13.90ms 13.00ms ±1.60ms 1 +4.0%
TouchableHighlight multiple-touchables-100 25.50ms 24.50ms ±4.77ms 1 +8.9%

Pressable

Scenario Mean Median StdDev Renders vs Baseline
Pressable mount 0.20ms 0.00ms ±0.42ms 1 +0.0%
Pressable unmount 0.00ms 0.00ms ±0.00ms 0 +0.0%
Pressable rerender 0.50ms 0.50ms ±0.53ms 2 +0.0%
Pressable with-all-handlers 0.40ms 0.00ms ±0.52ms 1 +0.0%
Pressable with-style-function 0.40ms 0.00ms ±0.52ms 1 +0.0%
Pressable disabled 0.40ms 0.00ms ±0.52ms 1 +0.0%
Pressable with-hit-slop 0.40ms 0.00ms ±0.52ms 1 +0.0%
Pressable nested 0.80ms 1.00ms ±0.42ms 1 +0.0%
Pressable multiple-10 2.87ms 3.00ms ±0.64ms 1 +0.0%
Pressable multiple-50 16.33ms 16.00ms ±2.61ms 1 +14.3%
Pressable multiple-100 18.07ms 12.00ms ±11.52ms 1 +0.0%

Modal

Scenario Mean Median StdDev Renders vs Baseline
Modal mount 0.40ms 0.00ms ±0.52ms 1 +0.0%
Modal unmount 0.00ms 0.00ms ±0.00ms 0 +0.0%
Modal rerender 0.30ms 0.00ms ±0.48ms 2 +0.0%
Modal slide-animation 0.40ms 0.00ms ±0.52ms 1 +0.0%
Modal fade-animation 0.30ms 0.00ms ±0.48ms 1 +0.0%
Modal transparent 0.40ms 0.00ms ±0.52ms 1 +0.0%
Modal with-callbacks 0.30ms 0.00ms ±0.48ms 1 +0.0%
Modal rich-content 1.90ms 2.00ms ±0.57ms 1 +0.0%
Modal with-accessibility 0.40ms 0.00ms ±0.52ms 1 +0.0%

Image

Scenario Mean Median StdDev Renders vs Baseline
Image mount 0.20ms 0.00ms ±0.42ms 1 +0.0%
Image unmount 0.00ms 0.00ms ±0.00ms 0 +0.0%
Image rerender 0.20ms 0.00ms ±0.42ms 2 +0.0%
Image with-resize-mode 0.20ms 0.00ms ±0.42ms 1 +0.0%
Image with-border-radius 0.10ms 0.00ms ±0.32ms 1 +0.0%
Image with-tint-color 0.20ms 0.00ms ±0.42ms 1 +0.0%
Image with-blur-radius 0.00ms 0.00ms ±0.00ms 1 +0.0%
Image with-accessibility 0.10ms 0.00ms ±0.32ms 1 +0.0%
Image multiple-10 1.00ms 1.00ms ±0.00ms 1 +0.0%
Image multiple-50 3.87ms 4.00ms ±0.35ms 1 +33.3%
Image multiple-100 8.67ms 8.00ms ±1.54ms 1 +0.0%

ActivityIndicator

Scenario Mean Median StdDev Renders vs Baseline
ActivityIndicator mount 0.10ms 0.00ms ±0.32ms 1 +0.0%
ActivityIndicator unmount 0.00ms 0.00ms ±0.00ms 0 +0.0%
ActivityIndicator rerender 0.10ms 0.00ms ±0.32ms 2 +0.0%
ActivityIndicator size-large 0.20ms 0.00ms ±0.42ms 1 +0.0%
ActivityIndicator size-small 0.00ms 0.00ms ±0.00ms 1 +0.0%
ActivityIndicator with-color 0.10ms 0.00ms ±0.32ms 1 +0.0%
ActivityIndicator not-animating 0.10ms 0.00ms ±0.32ms 1 +0.0%
ActivityIndicator with-accessibility 0.20ms 0.00ms ±0.42ms 1 +0.0%
ActivityIndicator multiple-10 0.67ms 1.00ms ±0.49ms 1 +0.0%
ActivityIndicator multiple-50 4.00ms 4.00ms ±0.65ms 1 +0.0%
ActivityIndicator multiple-100 8.07ms 8.00ms ±1.33ms 1 +14.3%

Switch

Scenario Mean Median StdDev Renders vs Baseline
Switch mount 0.40ms 0.00ms ±0.52ms 1 +0.0%
Switch unmount 0.00ms 0.00ms ±0.00ms 0 +0.0%
Switch rerender 0.50ms 0.50ms ±0.53ms 2 +0.0%
Switch value-true 0.30ms 0.00ms ±0.48ms 1 +0.0%
Switch disabled 0.20ms 0.00ms ±0.42ms 1 +0.0%
Switch custom-colors 0.30ms 0.00ms ±0.48ms 1 +0.0%
Switch on-value-change 0.20ms 0.00ms ±0.42ms 1 +0.0%
Switch with-accessibility 0.30ms 0.00ms ±0.48ms 1 +0.0%
Switch multiple-10 1.80ms 2.00ms ±1.26ms 1 +0.0%
Switch multiple-50 10.00ms 8.00ms ±3.25ms 1 -11.1%
Switch multiple-100 20.13ms 19.00ms ±4.03ms 1 +18.8%

Button

Scenario Mean Median StdDev Renders vs Baseline
Button mount 0.60ms 1.00ms ±0.52ms 1 +0.0%
Button unmount 0.00ms 0.00ms ±0.00ms 0 +0.0%
Button rerender 1.00ms 1.00ms ±0.47ms 2 +0.0%
Button disabled 0.60ms 1.00ms ±0.52ms 1 +0.0%
Button with-color 0.70ms 1.00ms ±0.48ms 1 +100.0%
Button with-accessibility 0.70ms 1.00ms ±0.48ms 1 +0.0%
Button multiple-10 6.20ms 6.00ms ±0.94ms 1 +0.0%
Button multiple-50 24.33ms 27.00ms ±9.12ms 1 +0.0%
Button multiple-100 21.27ms 20.00ms ±4.27ms 1 +5.3%

TextInput

Scenario Mean Median StdDev Renders vs Baseline
TextInput mount 0.10ms 0.00ms ±0.32ms 1 +0.0%
TextInput unmount 0.10ms 0.00ms ±0.32ms 0 +0.0%
TextInput rerender 0.10ms 0.00ms ±0.32ms 2 +0.0%
TextInput multiline 0.20ms 0.00ms ±0.42ms 1 +0.0%
TextInput with-value 0.20ms 0.00ms ±0.42ms 1 +0.0%
TextInput styled 0.20ms 0.00ms ±0.42ms 1 +0.0%
TextInput multiple-100 8.00ms 8.00ms ±1.51ms 1 +14.3%

View

Scenario Mean Median StdDev Renders vs Baseline
View mount 0.10ms 0.00ms ±0.32ms 1 +0.0%
View unmount 0.00ms 0.00ms ±0.00ms 0 +0.0%
View rerender 0.30ms 0.00ms ±0.48ms 2 +0.0%
View nested-50 3.73ms 4.00ms ±0.59ms 1 +33.3%
View nested-100 8.47ms 8.00ms ±1.19ms 1 +14.3%
View shadow 0.20ms 0.00ms ±0.42ms 1 +0.0%
View border-radius 0.10ms 0.00ms ±0.32ms 1 +0.0%
View nested-500 17.00ms 11.00ms ±12.05ms 1 +10.0%

Text

Scenario Mean Median StdDev Renders vs Baseline
Text mount 0.10ms 0.00ms ±0.32ms 1 +0.0%
Text unmount 0.00ms 0.00ms ±0.00ms 0 +0.0%
Text rerender 0.00ms 0.00ms ±0.00ms 2 +0.0%
Text long-1000 0.10ms 0.00ms ±0.32ms 1 +0.0%
Text nested 0.20ms 0.00ms ±0.42ms 1 +0.0%
Text styled 0.20ms 0.00ms ±0.42ms 1 +0.0%
Text multiple-100 9.33ms 9.00ms ±1.68ms 1 +28.6%

SectionList.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
SectionList native mount 6.54ms 6.47ms ±1.35ms 1 -0.5%

FlatList.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
FlatList native mount 5.68ms 5.72ms ±0.69ms 1 -38.0%

TouchableHighlight.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
TouchableHighlight native mount 1.52ms 1.46ms ±0.19ms 1 -30.2%

TouchableOpacity.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
TouchableOpacity native mount 1.81ms 1.73ms ±0.27ms 1 -45.0%

Pressable.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
Pressable native mount 1.62ms 1.58ms ±0.17ms 1 -37.0%

ScrollView.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
ScrollView native mount 3.91ms 3.52ms ±0.90ms 1 -13.0%

ActivityIndicator.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
ActivityIndicator native mount 1.41ms 1.32ms ±0.22ms 1 -46.9%

TextInput.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
TextInput native mount 2.25ms 2.01ms ±0.49ms 1 -50.8%

Switch.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
Switch native mount 1.21ms 1.17ms ±0.16ms 1 -32.5%

Button.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
Button native mount 1.96ms 1.84ms ±0.46ms 1 -29.3%

Modal.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
Modal native mount 1.09ms 0.97ms ±0.38ms 1 -20.7%

Image.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
Image native mount 1.95ms 1.82ms ±0.49ms 1 -19.5%

View.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
View native mount 1.16ms 1.05ms ±0.27ms 1 -26.6%

Text.native-perf-test.ts

Scenario Mean Median StdDev Renders vs Baseline
Text native mount 1.36ms 1.30ms ±0.19ms 1 -25.2%

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants