Project

General

Profile

Actions

Emulator Issues #6503

closed

Nvidia DX11 - Real XFB "macroblocking"

Added by MayImilae over 11 years ago.

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

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

Description

Real XFB shows an odd visual error in the D3D backends. I've called it "macroblocking" because, well, that's what it looks like. I tried a large number of settings, such as higher internal resolution, force texture filtering, safe texture cache, various anistropic filtering settings, on and on; nothing seems to affect it. The only cure is OpenGL: it doesn't have the problem, before or after the GLSL rewrite.

All games are affected, but I'll use Super Smash Brothers Brawl (RSBE01) to demonstrate it, as it's menus make it very obvious. To reproduce, do two tests, one with XFB: Real and one XFB disabled. Make sure the internal resolution is set to 1x in both cases to minimize outside factors in the test (it doesn't have any effect really).

Super Smash Bros. Brawl 1x Native Comparison
XFB Real (the problem) - http://img706.imageshack.us/img706/3644/cz92.png
XFB Disabled (correct) - http://img692.imageshack.us/img692/3503/qtnu.png

XFB Virtual does not have the error, and behaves the same as XFB Disabled here.

Tested builds:
3.5 win64
3.5-1720 win64
3.5-1810 win64

Tested on:
Core i5 3570K @ 4.7ghz
nVidia GeForce GTX 760
Windows 7 x64

Reproduced in the past by SS and double checked just now by JMC4789. Marking it as accepted.


Related issues 1 (0 open1 closed)

Has duplicate Emulator - Emulator Issues #7507: D3D Real XFB Broken on Nvidia GPUsDuplicate

Actions
Actions #1

Updated by delroth over 11 years ago

  • Priority set to Normal

Looks like some filtering is missing when blitting the XFB.

Actions #2

Updated by MayImilae over 11 years ago

  • Operating system N/A added
  • Operating system deleted (Windows)

I found another odd behavior. Higher internal resolutions seem to greatly improve in D3D11, to almost the same quality as 1x native on OpenGL (but doesn't fix it, there are still some odd artifacts, see under the X in "Group"). But higher internal resolutions makes OpenGL as bad as the others, to the point that D3D9 and OpenGL appear to be almost the same.

D3D11 Real XFB 4x Native - http://img694.imageshack.us/img694/2830/3zj.png
OpenGL Real XFB 4x Native - http://img94.imageshack.us/img94/7624/2cp5.png
D3D9 Real XFB 4x Native - http://img543.imageshack.us/img543/5003/sm7l.png

So yea, it appears OpenGL is affected as well, just under different circumstances.

Sorry I didn't check this. >_< I tested everything BUT this. That's what I get for making an issue report before bed.

Actions #3

Updated by kostamarino over 11 years ago

See Issue 5738 which is probably the same, there was a patch submitted there about it too...

Actions #4

Updated by MayImilae over 11 years ago

I saw it before making this issue, and it doesn't seem the same to me. It's all about antialiasing and stuff. If they are the same thing, then that report is terribly written lol.

Actions #5

Updated by kostamarino over 11 years ago

Thanks, i wrote it :-p. Believe me it is the same + antialiasing for real xfb that works only with opengl. I just thought the problem was an unfiltered image back then or something and i wrote it like that since it was apparent for 2d elements as well. I am not a programmer btw, just a hobbyist, therefore i suck at terminology...
See the result with the patch that guy posted...
(both DX9, 1xIR, EFB to RAM, real XFB):
b0rken: http://s8.postimage.org/4h7fl3unp/RMCE01_4.png
patched: http://s13.postimage.org/twwndgqnb/RMCE01_5.png

Actions #6

Updated by MayImilae over 11 years ago

I showed that patch to the devs. They weren't very enthusiastic.

(4:26:28 PM) phire: I'm not sure about the way its playing with floating point error
(4:27:24 PM) neobrain: it's wrong

Well, the two issues do appear to be the same problem. But uh, no offense or anything, but I think the approach in this report is better for this bug. It just focuses on what it's doing and describing it as accurately as possible. So I'd prefer it not be merged into the old problem...

Actions #7

Updated by phire about 11 years ago

So this bug is waiting for integer shaders?

Actions #8

Updated by phire almost 11 years ago

This is now fixed on OpenGL as of rb5bd2ba84756 aka 4.0-425

Now a DirectX 11 only bug.

Actions #9

Updated by MayImilae over 10 years ago

Issue 7507 has been merged into this issue.

Actions #10

Updated by MayImilae over 10 years ago

jimbo1qaz and JMC47 have confirmed that this is an nvidia only issue. It does not occur on Radeons.

Actions #11

Updated by MayImilae over 10 years ago

  • Status changed from New to Fix pending
Actions #12

Updated by MayImilae over 10 years ago

  • Status changed from Fix pending to Fixed
Actions

Also available in: Atom PDF