Angband.oook.cz
Angband.oook.cz
AboutVariantsLadderForumCompetitionComicScreenshotsFunniesLinks

Go Back   Angband Forums > Angband > Vanilla

Reply
 
Thread Tools Display Modes
Old April 22, 2021, 16:49   #21
Cuboideb
Adept
 
Join Date: May 2020
Location: Argentina
Posts: 191
Cuboideb is on a distinguished road
I have to take a deeper look but perhaps the win port needs some kind of double buffering.
Cuboideb is offline   Reply With Quote
Old April 22, 2021, 17:30   #22
Pete Mack
Prophet
 
Join Date: Apr 2007
Location: Seattle, WA
Posts: 6,703
Donated: $40
Pete Mack is on a distinguished road
It's a shame that Angband is so reliant on Win32. Unfortunately the good Windows gfx are tightly bound to Visual Studio via C++ mangling, and would require extern C features for every call.
Pete Mack is offline   Reply With Quote
Old April 22, 2021, 19:13   #23
backwardsEric
Swordsman
 
Join Date: Aug 2019
Posts: 329
backwardsEric is on a distinguished road
All of the front ends that support the double-height tiles (Windows, SDL, SDL2, and Mac) use Term_mark(), and they'll all redraw the upper half in cases when it isn't necessary (the contents ui-term.c knows about in the upper half location didn't change and the double-height tile below didn't change as well). Making ui-term.c's change tracking aware of what are double-height tiles would help all the front ends and largely avoid the symptoms that double-buffering the Windows front-end is trying to hide.

One of the reasons this is likely worse in 4.2.1 and later compared to 4.1 is this change, https://github.com/angband/angband/c...3b3a454f5bac4b , made so Term_mark() called from the drawing hooks would have the intended effect.
backwardsEric is offline   Reply With Quote
Old April 23, 2021, 04:10   #24
Pete Mack
Prophet
 
Join Date: Apr 2007
Location: Seattle, WA
Posts: 6,703
Donated: $40
Pete Mack is on a distinguished road
@backwards
But surely double buffering will also get rid of the individual monster movement visible in that video, even in the one without marking?
Pete Mack is offline   Reply With Quote
Old April 23, 2021, 04:18   #25
Pete Mack
Prophet
 
Join Date: Apr 2007
Location: Seattle, WA
Posts: 6,703
Donated: $40
Pete Mack is on a distinguished road
@backwards
But surely double buffering will also get rid of the individual monster movement visible in that video, even in the one without marking?
Pete Mack is offline   Reply With Quote
Old April 23, 2021, 08:55   #26
backwardsEric
Swordsman
 
Join Date: Aug 2019
Posts: 329
backwardsEric is on a distinguished road
Quote:
Originally Posted by Pete Mack View Post
@backwards
But surely double buffering will also get rid of the individual monster movement visible in that video, even in the one without marking?
I think that would depend on how the double buffering was implemented. A simple approach, always performing a buffer swap in response to TERM_XTRA_FRESH in Term_xtra_win(), should show those movements (while processing the monsters until the player has enough energy to act, there'd be a swap for each EVENT_REFRESH or explicit Term_refresh() on the main window). If the response to TERM_XTRA_FRESH has some rate limiting (main-sdl2.c seems to do that) or sets a flag that the back buffer had been updated and signals another thread which will only do the buffer swap when that flag is set and the monitor is ready to refresh, then those movements should be filtered out if the monster processing loop is fast compared to refresh rate.
backwardsEric is offline   Reply With Quote
Old April 24, 2021, 21:06   #27
DavidMedley
Veteran
 
Join Date: Oct 2019
Posts: 1,004
DavidMedley is on a distinguished road
I did rejigger the HP and SP recovery functions in 4.2.1, and I'm a C novice, but I wouldn't think it could do much to slow the game down.
DavidMedley is offline   Reply With Quote
Old April 26, 2021, 05:01   #28
backwardsEric
Swordsman
 
Join Date: Aug 2019
Posts: 329
backwardsEric is on a distinguished road
The latest nightly builds, https://github.com/angband/angband/releases , include changes that avoid using Term_mark() for handling double-height tiles. The Windows, SDL, SDL2, and Mac front ends all make use of that. Feedback about whether that makes the performance with the Shockbolt tiles good enough or if more still needs to be done would be helpful, as would reports about any rendering artifacts.
backwardsEric is offline   Reply With Quote
Old April 26, 2021, 15:51   #29
Sky
Veteran
 
Join Date: Oct 2016
Location: London-ish
Age: 50
Posts: 2,088
Sky is on a distinguished road
ok i'll let you know.

Am i really the only person here on W10 x64 ?
__________________
"i can take this dracolich"
Sky is offline   Reply With Quote
Old April 26, 2021, 16:30   #30
Werbaer
Adept
 
Join Date: Aug 2014
Posts: 177
Werbaer is on a distinguished road
Quote:
Originally Posted by Sky View Post
Am i really the only person here on W10 x64 ?
Maybe you're the only one on that system using tiles instead of ASCII.
Werbaer is offline   Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
[4.2.1] How to figure out why am I slow? Monk Vanilla 45 July 14, 2020 17:22
It's a slow game, but fun Pete Mack AAR 3 June 18, 2018 08:56
slow Tibarius Vanilla 3 March 24, 2015 17:03
Angband 3.32 Slow/Laggy Ruin_Christmas Vanilla 12 August 12, 2013 17:48
Slow going Shade AAR 17 April 12, 2008 02:21


All times are GMT +1. The time now is 03:14.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2022, vBulletin Solutions Inc.