-
Notifications
You must be signed in to change notification settings - Fork 3.2k
[$1000] [HOLD for payment 2023-08-28] [HOLD for payment 2023-08-16] Find solution to low resolution large images on Android, and the Canvas crash #18963
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Hi, I'm working on an image transform that will allow the display of large images that will allow re-enabling hardware acceleration in this PR |
Awesome, look forward to this @ArekChr 👍 |
My first step is to revert the original PR, which I'll do this afternoon after finishing higher priority work. |
@ArekChr I also looking into this, and i found that if we render the image as is with fast image and use scale it down with transform we can get pretty decent performance. I used Reanimated zoom component, fast image (our Image component) and just use scale as gallery_long_image_test.mov |
First step was taken here: revert the PR that disabled hardware acceleration |
@terrysahaidak looks like downscale is working great in your example 👌 What was the reason for changing zoom-in to the custom reanimated component? Asking because I have some issues with displaying large images with my changes in |
@ArekChr But we still need to downscale the image, because when a number of pixels is too high when you transform scale image down it can also lag a bit, because basically, we try to render too many pixels. |
Does the scale-down that you mention resolve that issue? How does it work with small images? The factor of scale 0.1 in the example will be calculated automatically? Regarding downscale, in the main branch, the' fast-image' framework has disabled transformations to display the image's original size. What size of the image are you trying to display? Maybe reverting these changes will reduce lags while transforming large images. Also, I implemented a custom image resizer for fast-image, I'm not sure, but maybe this could help with reducing lags when connecting it with your reanimated component for zooming-in Expensify/react-native-fast-image#6 |
I tried the image zoom component I implemented with Reanimated/Gesture handler + @ArekChr Fast Image PR. In this example, i render the image as is and scale it down using It works pretty well on low-end Samsung a12 ($150 phone): REC_20230525_110417.movThe logic in this zoom component is currently implemented to handle regular-size images, but i needs just a few adjustments to make it work properly with these long images - so you'll be able to zoom the image, and only pan it when edges are outside the viewport. |
Thats great, thanks Terry! |
This issue has not been updated in over 15 days. @Julesssss, @ArekChr eroding to Monthly issue. P.S. Is everyone reading this sure this is really a near-term priority? Be brave: if you disagree, go ahead and close it out. If someone disagrees, they'll reopen it, and if they don't: one less thing to do! |
Hey @terrysahaidak, you r work looks promising. Is this something we can continue working on? |
Arek is ooo for couple of weeks now I believe. @terrysahaidak would you be able to provide an update, thanks! |
Currently working on finishing @terrysahaidak 's work. Created a draft PR here |
|
The solution for this issue has been 🚀 deployed to production 🚀 in version 1.3.55-8 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue: If no regressions arise, payment will be issued on 2023-08-28. 🎊 After the hold period is over and BZ checklist items are completed, please complete any of the applicable payments for this issue, and check them off once done.
For reference, here are some details about the assignees on this issue:
As a reminder, here are the bonuses/penalties that should be applied for any External issue:
|
Job added to Upwork: https://www.upwork.com/jobs/~01fe4797a997c161ea |
Triggered auto assignment to @jliexpensify ( |
Current assignee @ArekChr is eligible for the External assigner, not assigning anyone new. |
Hey @jliexpensify, please complete the BZ checklist. I think no payment is required here. |
@ArekChr @chrispader - this wasn't a regression/no linked PR's or discussions right? Any QA steps you'd like to recommend, so I can get a GH created? |
@jliexpensify nah, not a regression |
@Julesssss am I going crazy or did the checklist not appear in this GH? |
Yeah, I only see this one... |
Really weird - the only other thing from the checklist (from memory) are the QA steps, if anyone wants to recommend some? I can make a GH for testrail if needed. Otherwise, we can close this! |
Bump @chrispader @ArekChr - any QA steps for me to document in a GH? Cheers. |
I'd say the same as in the fixing PR: On iOS/Android:
|
Cheers, GH created. No payment needed so closing! |
I did review the associated PR. Requested $1000 for PR review in newDot. cc: @jliexpensify |
Just had a look and you are correct cc @Julesssss Payment Summary for Jason Mills:
|
$1,000 payment approved via NewDot based on BZ summary. |
Uh oh!
There was an error while loading. Please reload this page.
Problem
While attempting to solve an issue with low-quality Android images, we disabled hardware acceleration and introduced a major performance regression.
@terrysahaidak noticed this while running performance testing and outlined a plan for re-enabling and trying an alternative fix.
Solution
Example big image
Upwork Automation - Do Not Edit
The text was updated successfully, but these errors were encountered: