-
Notifications
You must be signed in to change notification settings - Fork 15
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
Fix memory region in framebuffer #65
base: main
Are you sure you want to change the base?
Conversation
backend/fbdev.c
Outdated
@@ -85,6 +97,7 @@ static bool twin_fbdev_work(void *closure) | |||
|
|||
if (twin_screen_damaged(screen)) | |||
twin_screen_update(screen); | |||
twin_fbdev_cache_sync(closure); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you explain why twin_fbdev_cache_sync
should be called here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
After some search, this is driver-specificed code and should not be used, I will remove this code.
This code has a side-effect on my machine that it updates the smooth display but on VirtualBox is not.
dee133c
to
e87ba61
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Improve the git commit message to address the consideration of FBIOPAN_DISPLAY
.
e87ba61
to
964d343
Compare
@shengwen-tw, May you test the pull request on you machine to see if it is running correctly? |
Okay, I'll test it soon. |
I have ran the modification code and have some observations: Firstly, I want to point out that I wasn’t able to reproduce the issue you encountered, as we previously discussed. From my side, I can only confirm the functionality remains the same. However, although the framebuffer output appears correct, I noticed that the rendering update is not smooth, with significant lag when dragging windows or even just moving the cursor. Could you analyze any potential performance bottlenecks in your code and look into ways to address this issue? |
Please check the video I recorded: |
Rebase the latest |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't use git merge
. Always enforce git rebase
.
acf5c4d
to
bbc35ff
Compare
I find out that mado's screen work fine on second display, subtly. Check the video: https://youtu.be/XvhigZefDfc The commit bbc35ff removed code |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Refine the statement "The same setting may not be applied on different hardware" to address the consideration and use scenario.
The size of the screen may be different to the virtual resolution. If the size is less than virtual resolution, it will draw multiple windows on display. Use `line_length` to calculate instead of the size of the screen. Changable information like virtual resoultion or setting different information on virtual terminal may not be applied on different hardware and driver. For example on VirtualBox, virtual resolution's width and height are 2048 and 2048, visible resolutions' are 800 and 600, and line length is 2048 * 4. Any setting from guest machine to these maybe ignored.
bbc35ff
to
144ff6d
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Read https://cbea.ms/git-commit/ carefully and enforce the rules.
You mentioned that
Are you planning to open a new pull request to resolve issue #62? |
Nope. I notice another drm pull request #69 . The updated may followed and discussed on it. Issue #62 mentioned some problems:
For third problem, I suspect it is just my laptop and i915drmfb (Intel DRM) will need this pan display and it is not a bug in Mado but in Intel DRM. For second problem, I did write some switch code for switching, and I notice the proposed DRM backend (#69). The updated may followed and discussed on it. |
I did various tests and found that the problem might not be caused by If I suspect that the lag might be due to the button events being sent from the Linux input subsystem we recently integrated, as the current implementation does not ensure atomic updates for mouse events. I may open another new issue once I have a clearer understanding of this phenomenon. |
Issue #62
The width of screen may be different from the virtual resolution.
In
apps/main.c
, the default value ofWIDTH
andHEIGHT
are 640 and 480, but the visual resolution are set to 1920 and 1080 on my machine.The different width will draw three screens on the display as the below screenshot.
Before:
After:
The reason to use
xres_virtual
line_length
as the width and not to usexres
instruct fb_var_screeninfo
:On VirtualBox, the visible resolution of virtual terminal, which switched by
ctrl+alt+f3
, is set to 800x600, but the virtual solution is set to 2048x2048. On my physical machine, Asus latop and Ubuntu system, these are the same values.The information from
sudo fbset -i
on my laptop and VirtualBox.Laptop:
VirtualBox: