mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2026-04-25 07:46:01 +03:00
[PR #3063] [CLOSED] buffer_cache: Inline data to cpu unless gpu modified #3188
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#3188
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/3063
Author: @raphaelthegreat
Created: 6/8/2025
Status: ❌ Closed
Base:
main← Head:dc-fix2📝 Commits (1)
01eb805buffer_cache: Inline data to cpu unless gpu modified📊 Changes
1 file changed (+1 additions, -1 deletions)
View changed files
📝
src/video_core/buffer_cache/buffer_cache.cpp(+1 -1)📄 Description
The sea islands register reference mentions 2 different behaviors for VGT_GS_MAX_VERT_OUT. For Scenario C it represents the actual amount of output vertices a GS will make. For Scenario G on the other hand it represents the maximum, so it can't always be used for mapping offset to attribute, as the actual component stride might be smaller.
This fixes a crash when compiling a geometry shader in Driveclub (CUSA00093) which "lies" about its output vertex size. While the actual number is 4, the register reports a much larger number (44). Instead attempt to compute the output vertices from the copy shader and if they mismatch do some validation checks and use that instead. I've also added a warning in case this regresses any other geoshaders, so it can be seen easily
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.