Idea: guest-memory fixes from the macOS port on Windows and Linux too, once timed (dirty-page atomics, zeroed pages marked, fatal allocation failures) #432
Labels
No labels
area/accessibility
area/audio
area/input
area/install
area/menu
area/renderer
area/saves
area/upscaling
good first issue
gpu/amd
gpu/igpu
gpu/intel
gpu/nvidia
help wanted
kind
bug
kind
chore
kind
docs
kind
feature
kind
performance
kind
question
needs measurements
platform/linux
platform/steam-deck
platform/windows
preview
priority
critical
priority
high
priority
low
status
blocked
status
confirmed
status
duplicate
status
invalid
status
needs-info
status
wontfix
testing wanted
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/Longshot#432
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The idea
The macOS port (#420) changes four things in guest memory handling. They are correct on every platform, but they touch
code that Windows and Linux run every frame, so they need timing and testing there before they leave the Apple path. In
the macOS pull request they are Apple-only. This issue tracks turning them on everywhere once they have been measured
on Windows (NVIDIA, AMD, Intel) and Linux (NVIDIA, AMD).
host/rx_backend.c,collect_in). This runs every frame.memcpyand word loads, while game threads write themone byte at a time.
exchange when it consumes marks.
reported, on the same PC, scene and settings.
host_guest_alloc).ERROR_COMMITMENT_LIMITretry (host/mkw_glue.c).hos_mem.c, plusVirtualQuery'slast_error. They must keep#324's mapped-pages accounting.
Each will be its own pull request once measured. On macOS all four are required: 16 KiB native pages and arm64 memory
ordering.
Anything else
Tester: @mooki (Windows, Linux and macOS machines).
Claiming the Windows and Linux side of this from a second PC: the timing, and one pull request per item once it is measured.
The four changes are now pushed, in two WIP pull requests from the macOS side:
mac/guest-memory@9c679145): the macOS guest-memory groundwork.mac/guest-16k@647e90e4, on #478 and #436): carries all four items. Commit3366b61bputs every part Windows or Linux could see under#if defined(__APPLE__), with main's code in the#else. Linux and Windows preprocess to the same tokens as main (14 of 14 comparisons), so there is nothing to time there yet.To save you separating them, I'm preparing a branch from current main (
9c9d69ed) with one commit per item, in this issue's order, each switched on for every platform and each passing its own test when cherry-picked alone. I'll post the branch and the four SHAs here once its suite has run on the Mac.