mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2026-04-25 15:56:00 +03:00
[PR #415] [MERGED] video_core: CPU flip relay #1549
Labels
No labels
Bloodborne
bug
contributor wanted
documentation
enhancement
frontend
good first issue
help wanted
linux
pull-request
question
release
verification progress
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/shadPS4#1549
Loading…
Add table
Add a link
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?
📋 Pull Request Information
Original PR: https://github.com/shadps4-emu/shadPS4/pull/415
Author: @psucien
Created: 8/12/2024
Status: ✅ Merged
Merged: 8/14/2024
Merged by: @psucien
Base:
main← Head:videocore/cpu_flip_relay📝 Commits (3)
2beff82video_core: cpu flip is propagated via gpu thread nowc94190btentative fix for cpu flips racing01e66bblibraries: videoout: better flip status handling📊 Changes
8 files changed (+98 additions, -33 deletions)
View changed files
📝
src/core/libraries/videoout/driver.cpp(+46 -20)📝
src/core/libraries/videoout/driver.h(+2 -1)📝
src/core/libraries/videoout/video_out.cpp(+4 -1)📝
src/video_core/amdgpu/liverpool.cpp(+19 -3)📝
src/video_core/amdgpu/liverpool.h(+11 -0)📝
src/video_core/renderer_vulkan/renderer_vulkan.h(+8 -2)📝
src/video_core/texture_cache/texture_cache.cpp(+5 -3)📝
src/video_core/texture_cache/texture_cache.h(+3 -3)📄 Description
Cherry-pick from https://github.com/shadps4-emu/shadPS4/pull/370. This PR fixes racing in flip submitted by CPU.
At the time when the CPU submits a flip request (fence for VO surface access is signaled by the GPU), it may be immediately taken into processing by the presenter thread via
flip_scheduler. However, all operations made on the surface are recorded indraw_scheduler, which needs to be submitted at the time of presentation. This might not be true, as the GPU can have other work to finish before the scheduler flush. With these changes, we postpone CPU flip submission and triggerdraw_schedulerflush. Then the flip is relayed into the flip queue as it was previously. This ensures the VO surface is presented in the correct state.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.