Project

General

Profile

Actions

Emulator Issues #8195

closed

Creation of a hybrid xfb mode for games that need real xfb only at certain times ingame (videos for example).

Added by kostamarino about 9 years ago. Updated about 6 years ago.

Status:
Fixed
Priority:
Normal
Assignee:
-
Category:
GFX
% Done:

0%

Operating system:
N/A
Issue type:
Feature request
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:
5.0-5874

Description

There are plenty of games currently that need real xfb only at certain times ingame, usually during video playback. The current way we deal with it is the enforcement of real xfb for the whole game through the gameini files, the downside of it is that all of them have to be played at low res for a proper experience, for something that sporadically happens ingame canceling one of dolphins greatest features which is upscaling. According to phiren's request i am opening this issue with his proposal on how to deal with it:

"Theoretically a "Hybrid XFB" mode could exist. Acts like virtual xfb unless it (somehow) detect something has been written to the xfb. Then it could switch to real xfb mode. Every frame it would have to check if anything has been written to xfb (such a check could be implemented through hashing, filling the xfb with zeros, cache flushes or locking)

Then the xfb would be transferred to the video card and either keyed into the virtual xfb or replacing the complete contents of virtual xfb."


Related issues 1 (0 open1 closed)

Has duplicate Emulator - Emulator Issues #8194: NASCAR Thunder 2003-Videos don't output graphicsDuplicatekostamarino

Actions
Actions #1

Updated by phire about 9 years ago

  • Status changed from New to Accepted
  • Priority set to Normal
  • Category set to gfx
Actions #2

Updated by Sonicadvance1 about 9 years ago

Phantasy star Online in particular uses the XFB directly for its prerendered videos, but the rest of the game doesn't need it.

Actions #3

Updated by JMC4789 about 9 years ago

Lots of older EA Sports games as well; hell, tons of games period use this.

Can this be detected though?

Actions #4

Updated by degasus about 9 years ago

Yeah, this can very likely be detected. While you're on xfb emulation, could you also move the code to calculate the coordinates into VideoCommon?

Actions #5

Updated by AmbientMalice about 9 years ago

Agent Under Fire would benefit from this. I heartily approve.

Actions #6

Updated by phire about 9 years ago

  • Status changed from Accepted to Work started
Actions #7

Updated by kostamarino about 9 years ago

Oh this is great, i will test this pronto.

Actions #8

Updated by theincrediblemastere about 9 years ago

I am ready for the future.

The only thing better than this would probably be 100% accurate Texture EFB copies. But oh well. Baby steps?

Actions #9

Updated by MayImilae about 9 years ago

Issue 8194 has been merged into this issue.

Actions #10

Updated by theincrediblemastere almost 8 years ago

Phire mentioned working on a new version of the PR he posted last year.

Care to share this new version with us, just to know where it is and how it's going?

Actions #11

Updated by theincrediblemastere almost 8 years ago

theincrediblemastere wrote:

Phire mentioned working on a new version of the PR he posted last year.

Care to share this new version with us, just to know where it is and how it's going?

@phire Oh yeah I needed to add that to get his attention.

Actions #12

Updated by phire almost 8 years ago

@phire Oh yeah I needed to add that to get his attention.

No, I got the email anyway, just been busy.

The new version is waiting on a rewrite of texture cache/virtual xfb code and it doesn't actually exist as code.

Actions #13

Updated by phire almost 8 years ago

BTW, the new version now exists and can be found in PR3880

https://github.com/dolphin-emu/dolphin/pull/3880

Actions #14

Updated by kolano about 6 years ago

Should this have closed out with Hybrid XFB?

Actions #15

Updated by JosJuice about 6 years ago

  • Status changed from Work started to Fixed
  • Assignee deleted (phire)
  • Fixed in set to 5.0-5874
Actions

Also available in: Atom PDF