Project

General

Profile

Actions

Emulator Issues #3256

closed

"Framebuffer depth texture" error with some nVidia on-board GPUs

Added by mbc07 over 13 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

What steps will reproduce the problem?

  1. Load any game (GC, Wii, WAD) with Dolphin r6000 or newer
  2. A warning will appear: http://img810.imageshack.us/img810/6476/semttulobv.jpg
  3. If you click OK (or disable panic handlers) the emulation continues, but with a very low FPS (10~15 FPS) and with all textures buggy (really a mess).

What is the expected output? What do you see instead?
Expected output is seeing game running without texture bugs and without FPS dropped (as they was running in older revs) but all textures will be buggy and the game will run with a very low FPS.

Dolphin version with the problem? Other Dolphin version without the
problem?
It's not clear, but this bug started around r6000 and newer, older revs works flawlessy

32-bit or 64-bit and any other build parameters?
Any build of r6000 or newer have this problem.

OS version and versions of tools/libraries used?
Windows Vista x86 @ Intel Core 2 Duo 2.2GHz with on-board nVidia chipset

Please provide any additional information below.
A friend reported to me that this bug will occur too with Intel GMA video cards if you use r4598 or newer. If a fix to this break the progress made in Dolphin, a patch (or hack) would be implemented.


Related issues 1 (0 open1 closed)

Has duplicate Emulator - Emulator Issues #3274: 6025 caused grahpical errors.Duplicate

Actions
Actions #1

Updated by william.oliveira183 over 13 years ago

I updated the emulator and had the same problem.
He begins to appear exactly from r5025. Before it was just uncheck the "Enable CPU -> EFB access and everything was normal.

Core2Duo E5400
4GB RAM
video onboard Intel(R)G33/31 Express Chipset Family

Actions #2

Updated by william.oliveira183 over 13 years ago

Sorry, is r6025.

Actions #3

Updated by skidau over 13 years ago

  • Category set to gfx
Actions #4

Updated by mbc07 over 13 years ago

More details:

.--------------------------------------------------------------------------.
| Version | Intel GMA (on-board) | nVidia GPUs (on-board) |
|---------------------|----------------------------|------------------------|
| r4598 or older | Works fine | Works fine |
|---------------------|----------------------------|------------------------|
| r4599 until r6024 | Works if you disable | Works fine |
| | Enable CPU -> EFB access | |
|---------------------|----------------------------|------------------------|
| r6025 or newer | Doesn't work | Doesn't work |
'---------------------------------------------------------------------------'

Actions #5

Updated by skidau over 13 years ago

Issue 3274 has been merged into this issue.

Actions #6

Updated by tommyhl2.SS over 13 years ago

This is not a dupe issue, skid. I do not have an on-board GPU.

Actions #7

Updated by skidau over 13 years ago

Both this issue and issue 3274 are reporting that r6025 causes graphical issues. The reporting stating that on-board GPU's are affected is extra information.

Actions #8

Updated by tommyhl2.SS over 13 years ago

Maybe we can narrow down what my GPU has that some on-board cards have (or doesn't have)that is causing this. I can provide more info if needed.

I'm using the VisionTek Radeon HD3650, 1GB DDR2 with the Catalyst 10.9 AGP Hotfix.

Actions #9

Updated by NeoBrainX over 13 years ago

fwiw, what jhonn.copperfield said above kind of doesn't make sense... r6025 only enabled a code path which was disabled before if EFB access is disabled as well. So nvidia onboard gpus should either work or at least fail with EFB access enabled before r6025.

However, if that is not the case, this issue makes even less sense to me...

Actions #10

Updated by mbc07 over 13 years ago

Sorry, NeoBrainX, the table submited was wrong, correct is:
More details:

.-------------------------------------------------------------------------------.
| Version | Intel GMA (on-board) | nVidia GPUs (on-board) |
|---------------------|----------------------------|----------------------------|
| r4598 or older | Works fine | Works fine |
|---------------------|----------------------------|----------------------------|
| r4599 until r6024 | Works if you disable | Works if you disable |
| | Enable CPU -> EFB access | Enable CPU -> EFB access |
|---------------------|----------------------------|----------------------------|
| r6025 or newer | Doesn't work | Doesn't work |
'-------------------------------------------------------------------------------'

Actions #11

Updated by NeoBrainX over 13 years ago

Yeah, that certainly makes a lot of more sense...
Still, I don't get what's so bad about creating an additional texture.
I'll create a test program for you to check why the driver fails to create the textures... Might take a few days though.

Actions #12

Updated by mbc07 over 13 years ago

Ok, I will be waiting for your test program.

Actions #13

Updated by tommyhl2.SS over 13 years ago

I'd like to test this as well seeing how my video card that is not on-board and is capable of good performance) suffers from this problem also.

Actions #14

Updated by mbc07 over 13 years ago

Recently I've made some tests and discovered more details:

1) This issue occurs with other on-board GPUs manufacturers too, not only Intel GMA and nVidia.

2) As Tommy confirmed, some off-board GPUs have this issue too (generally the low-end GPUs, but the same GPUs has a higher performance than the on-board GPUs if you test them in r4598 or older)

3) I've tested Zelda Twilight Princess on Dolphin r6482 with a Intel GMA and new errors appear, not just the Framebuffer Manage error (see attachments)

Actions #15

Updated by NeoBrainX over 13 years ago

Fwiw, could you guys with the problem run dxdiag and tell me what D3D version your GPU supports?
run dxdiag, select the "display" or "graphics" tab and tell me the DDI-version.

Actions #16

Updated by mbc07 over 13 years ago

By Wikipedia informations, the Intel GMA 945G (the GPU that i've used to run the tests of comment 22), support Pixel Shader 2.0 (3.0 by software), OpenGL 1.4 and DirectX 9.0c.

The DxDiag say that the video card DDI version is 9Ex and the driver is WHQL certified. I've attached the log generated by DxDiag, if you want to obtain more information.

Actions #17

Updated by tommyhl2.SS over 13 years ago

10.1

Actions #18

Updated by nitsuja- over 13 years ago

One thing I noticed is in the screenshots of the warning that have been posted so far, either the width or the height is an odd number. Maybe simply rounding the framebuffer dimensions up or down to an even number would fix it? I think they could test this by either running in fullscreen or changing the Window Size in the Display options to have even numbers in both fields.

Actions #19

Updated by NeoBrainX over 13 years ago

d'oh... it's actually pretty obvious.
If the hardware doesn't support NPOT2 textures it's clear why this fails...

I always thought this would be an issue in dx11 as well (where all GPUs need to support NPOT2 textures), but apparently everyone here was using dx9-only...

Should have a fix soon.

Actions #20

Updated by mbc07 over 13 years ago

A fix for it will cause regression in DX9 (some slowdown or break compatibility with some game)?

Actions #21

Updated by nitsuja- over 13 years ago

Oh yeah, lack of NPOT2 support sounds like it could be the reason. I don't know why I thought certain cards had "NMOT2" issues instead.

Actually, another reason I can think of is, maybe those cards don't support any of the 5 depth formats that are currently listed in the FramebufferManager constructor? I noticed that D3DFMT_D16 is not among them, and I think certain cards only support that one. That would make some sense too because it would only affect nVidia cards since ATI cards would usually support FOURCC_DF16 instead, which is already listed.

Actions #22

Updated by mbc07 over 13 years ago

We could implement a fallback system (only drop NPOT2 textures support if errors are found, otherwise use the normal NPOT2 textures as is now)

Actions #23

Updated by NeoBrainX over 13 years ago

... or just check the D3D9 device caps ...

idk, there's not much we can do if the hw doesn't support the depth formats we need.. we could just disable efb access altogether maybe

Actions #24

Updated by nitsuja- over 13 years ago

Checking the device caps sounds kind of unreliable to me, actually, since it's not clear whether some cards that don't normally support NPOT2 textures make a special exception for textures that are associated with the frame buffer, and there's also this "conditional" NPOT2 support cards can say they have, which maybe we can assume means it's supported for all cases we care about but I'm not completely sure on that. (Mine says POW2=yes, NONPOW2CONDITIONAL=yes, and I haven't run into this sort of failure so far.)

The current depth format of last resort is D3DFMT_D24X8, but it looks like if that format gets used, EFB access acts (partially?) disabled. I'm not sure what the point of the D24X8 format is if we can't use it to get depth information like the other formats, but if we can actually use it then I would think we could use D16 too. (My card doesn't support either of those so I can't check how they behave at the moment.)

Actions #25

Updated by NeoBrainX about 13 years ago

Recheck with r6725 plskthxbye.

Actions #26

Updated by mbc07 about 13 years ago

I've tested many GameCube games and Super Mario Galaxy on Dolphin r6725 with a Intel GMA and the same errors occur, but Framebuffer Manage error now have a double size (see attachments). I've noticed too that many textures gets rendered green (in all games, but in ZTP and SMG they are more visible).

Actions #27

Updated by mbc07 about 13 years ago

Little correction, I've tested on Dolphin r6728, but the same issues occur on r6725.

Actions #28

Updated by NeoBrainX about 13 years ago

Working on a proper fix, give me a few minutes...

Actions #29

Updated by mbc07 about 13 years ago

I forgot something, the green textures can be fixed by disabling "Emulate format changes".

Actions #30

Updated by NeoBrainX about 13 years ago

Alright, try again with r6730 :)

Actions #31

Updated by mbc07 about 13 years ago

Ok, just waiting Mamario build to test it :D

Actions #32

Updated by mbc07 about 13 years ago

Same as in r6728 or r6725, the only difference is the FrameBuffer Manager error that now is on line 96 instead of line 80.

Actions #33

Updated by NeoBrainX about 13 years ago

r6731?

Actions #34

Updated by mbc07 about 13 years ago

Same issues, the only thing is that the Frame Buffer Manager error was replaced by the alert "No supported depth format found, disabling depth buffers. Expect glitches."

Actions #35

Updated by NeoBrainX about 13 years ago

Erm, what happens if you use dx11 anyway?

Actions #36

Updated by NeoBrainX about 13 years ago

uh, someone else posted this here before and for whatever reason removed it again:
"According to intel gma9xx specs: In Direct3D, depth textures are not supported. "

No way to fix this bug then, sorry. Still wondering how DX11 behaves, or does the gma9xx not even support DX 10.0?

Actions #37

Updated by mbc07 about 13 years ago

With DX11 two errors occur (see attachments), then Dolphin crash ("Dolphin.exe was stopped working").

Actions #38

Updated by NeoBrainX about 13 years ago

Is it any different if you set the fullscreen resolution to your desktop resolution AND enable "start renderer in fullscreen"?

Actions #39

Updated by mbc07 about 13 years ago

No, occur the same as in comment 35 and comment 47.

Actions #40

Updated by NeoBrainX about 13 years ago

  • Status changed from New to Invalid

Ok... no idea about the DX11 issue, but anyway.

This issue is a hardware limitation and thus not fixable for us...

If someone still gets the original error instead of the new "No supported depth format found .. " one, please report this.

Actions #41

Updated by mbc07 about 13 years ago

But Enable CPU -> EFB access changes of r6025 that caused this issue, before r6025 Dolphin works without these glitches if you disable Enable CPU -> EFB access. I think that r6025 would be reverted or a patch (or hack) would be implemented.

Actions #42

Updated by NeoBrainX about 13 years ago

  • Status changed from Invalid to Accepted

Hm, come to think of it we could certainly add a workaround for this... I had thought of this before closing but... meh, didn't think long enough :P

I'll implement this tomorrow, should work...

Actions #43

Updated by NeoBrainX about 13 years ago

done, r6737.

Actions #44

Updated by mbc07 about 13 years ago

I think that is fixed, sometimes a Pixel Shader error appear but apparently no glitches are caused (see attachments). Some games also have slowdowns with Dolphin saying that they are running at 100%, but I think that this is another issue not related to this. Thanks NeoBrain.

Actions #45

Updated by NeoBrainX about 13 years ago

  • Status changed from Accepted to Fixed

The pixel shader issue is most likely yet another hardware restriction.. limited amount of shader registers etc...

Anyway, I'm glad the workaround fixed it for you, thanks for your quick testing ;)

Actions #46

Updated by Metzelmaennchen about 13 years ago

uh, someone else posted this here before and for whatever reason removed it again:
"According to intel gma9xx specs: In Direct3D, depth textures are not supported. "

Yes, it was me. Removed the entry because the spec was actually for intel gma945 and not for the 965.
But as it seems... intel still hasn't changed this :( (Well the g45 should support depth textures now)

Actions #47

Updated by mbc07 about 13 years ago

Only for notice, r6731 fixed this issue on nVidia on-board cards.

Actions

Also available in: Atom PDF