Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DTM Race Driver 3; Toca 2 Graphic Problems #5001

Closed
zschigi2 opened this issue Jan 4, 2014 · 46 comments · Fixed by #11393
Closed

DTM Race Driver 3; Toca 2 Graphic Problems #5001

zschigi2 opened this issue Jan 4, 2014 · 46 comments · Fixed by #11393
Labels
Guardband / Range Culling Involves vertices outside fustrum.
Milestone

Comments

@zschigi2
Copy link

zschigi2 commented Jan 4, 2014

in DTM Race Driver 3 and Toca 2 there are massive Graphic Problems ingame

(some kind of scan lines over the game-graphics)

@dbz400
Copy link
Contributor

dbz400 commented Jan 4, 2014

Can you post the screenshot ?

@zschigi2
Copy link
Author

zschigi2 commented Jan 4, 2014

screen00000

yes :-)

@dbz400
Copy link
Contributor

dbz400 commented Jan 4, 2014

How about in software rendering mode ?

@zschigi2
Copy link
Author

zschigi2 commented Jan 4, 2014

in software rendering mode i only get a black screen...

@dbz400
Copy link
Contributor

dbz400 commented Jan 4, 2014

Okay i can reproduce it now in both GLES and softgpu

screen00221
screen00222

@unknownbrackets
Copy link
Collaborator

Has this improved with simulate block transfers?

-[Unknown]

@zschigi2
Copy link
Author

zschigi2 commented Jun 9, 2014

unfortunately it does not. the problems are still the same. (tested on my s3)

@unknownbrackets
Copy link
Collaborator

Does it have the same problems on Windows? Maybe it's an armjit bug. Would help to narrow it down.

-[Unknown]

@zschigi2
Copy link
Author

zschigi2 commented Jun 9, 2014

it´s the same on windows... :-(

@unknownbrackets
Copy link
Collaborator

Can you try to find the problem on Windows using the GE debugger?

https://github.com/hrydgard/ppsspp/wiki/How-to-find-a-graphic-issue-with-the-GE-debugger

-[Unknown]

@zschigi2
Copy link
Author

if i follow the instructions i get these:
debug

@unknownbrackets
Copy link
Collaborator

Well, the goal is to find it when the GE debugger is drawing the thing that shows up wrong. In your screenshot, it seems to be drawing some sliver in a separate framebuffer... this is interesting (btw, you are using buffered rendering, right?), but it doesn't really show what's causing this graphical issue.

Keep pressing step prim until you start to see the correct graphics. It highlights in red the part it's about to draw (as in your screenshot.)

-[Unknown]

@zschigi2
Copy link
Author

this time with buffered rendering on:
debug2
debug3

@unknownbrackets
Copy link
Collaborator

Okay, but those are just it drawing the screen still, right?

It's gonna spend a lot of time doing that, you can try pressing "Step Tex" if you're impatient, but if you pass where it draws the graphical glitches you have to press "Step Frame" and start over.

-[Unknown]

@zschigi2
Copy link
Author

here we go...
debug4

@ppmeis
Copy link
Contributor

ppmeis commented Jul 25, 2015

Tested in latest build. Same status:
image

@ppmeis
Copy link
Contributor

ppmeis commented Dec 6, 2015

Tested with latest build. Same status.

@unknownbrackets
Copy link
Collaborator

Are you able to capture when the GE debugger's red overlaps with one of the red lines specifically (e.g. not just the full screen, but is only over the black line, or right at the black line?)

The earlier screenshot looks like a clear and is probably not related.

-[Unknown]

@hrydgard
Copy link
Owner

hrydgard commented Apr 1, 2017

Probably broken geometry that gets discarded by the real PSP because the coordinates are way outside the guardband, and the PSP doesn't do proper triangle clipping. I'll send a pull request later with an experimental fix for D3D11 but it relies on undefined behaviour in vertex shaders to kill triangles, which isn't very nice. A "correct" fix will need geometry shaders.

hrydgard added a commit that referenced this issue Apr 1, 2017
, at least for Toca.

Really not sure how big the guard band should be, and the right way to
do this would be to use a geometry shader instead of killing triangles
by setting w = NaN, which I'm not sure will do sane things on all
hardware. Unfortunately geometry shaders are not available everywhere.
hrydgard added a commit that referenced this issue Apr 2, 2017
, at least for Toca.

Really not sure how big the guard band should be, and the right way to
do this would be to use a geometry shader instead of killing triangles
by setting w = NaN, which I'm not sure will do sane things on all
hardware. Unfortunately geometry shaders are not available everywhere.
hrydgard added a commit that referenced this issue Apr 2, 2017
, at least for Toca.

Really not sure how big the guard band should be, and the right way to
do this would be to use a geometry shader instead of killing triangles
by setting w = NaN, which I'm not sure will do sane things on all
hardware. Unfortunately geometry shaders are not available everywhere.
hrydgard added a commit that referenced this issue Nov 14, 2017
, at least for Toca.

Really not sure how big the guard band should be, and the right way to
do this would be to use a geometry shader instead of killing triangles
by setting w = NaN, which I'm not sure will do sane things on all
hardware. Unfortunately geometry shaders are not available everywhere.
hrydgard added a commit that referenced this issue Dec 27, 2017
, at least for Toca.

Really not sure how big the guard band should be, and the right way to
do this would be to use a geometry shader instead of killing triangles
by setting w = NaN, which I'm not sure will do sane things on all
hardware. Unfortunately geometry shaders are not available everywhere.
hrydgard added a commit that referenced this issue Mar 12, 2018
, at least for Toca.

Really not sure how big the guard band should be, and the right way to
do this would be to use a geometry shader instead of killing triangles
by setting w = NaN, which I'm not sure will do sane things on all
hardware. Unfortunately geometry shaders are not available everywhere.
@LunaMoo
Copy link
Collaborator

LunaMoo commented Sep 23, 2018

Works fine on windows at least, so that report might be another one from android where it might not had enough vertex registers or that's how the "optimization" fixing other games mentioned there is working aka it might be completely disabling the guardband fix.;]

ules00615_00002

@hrydgard
Copy link
Owner

Or forcing the coordinate to NaN isn't doing the right thing on the hardware....

@marosis
Copy link

marosis commented Sep 28, 2018

It is working right on every backend? I tested it on OpenGL on android and it is not working for me

@marosis
Copy link

marosis commented Sep 28, 2018

screenshot_20180928-111700

@marosis
Copy link

marosis commented Sep 28, 2018

We need more testers

@hrydgard
Copy link
Owner

@unknownbrackets maybe it would help to set all four parts of the position vector to NaN, not just w...

@marosis
Copy link

marosis commented Sep 28, 2018

Now i tested on latest build if i didn't get Wrong info and yeah STILL SAME status.

@hrydgard
Copy link
Owner

Thanks marosis. Stay tuned, I'm going to try my idea in the weekend.

@marosis
Copy link

marosis commented Sep 28, 2018

I will

@unknownbrackets
Copy link
Collaborator

That sounds worth trying. The cull distance extension isn't supported by much other than Adreno, so that probably won't help.

Maybe the other option is to try to set depth to a value that would be (mostly?) clipped and then also discard in the frag shader, but that sounds pretty awful...

-[Unknown]

@ghost
Copy link

ghost commented Sep 28, 2018

This is the only graphics glitch I encounterd in my Mali-450 MP I think it's normal for my GPU same graphics issue in Monster Hunter 3rd HD
screenshot_2018-09-29-01-22-20
screenshot_2018-09-29-01-33-29

@hrydgard
Copy link
Owner

On Mali, those issues are still there underneath even if you use earlier versions with the stripe bug, right? If so they are definitely a separate issue..

@ghost
Copy link

ghost commented Sep 29, 2018

PPSSPP 1.6.3 Playstore
screenshot_2018-09-29-17-55-03

Yeah separate issue..

@ghost
Copy link

ghost commented Oct 7, 2018

Upon testing in my brother phone Kata Selfie Mali-T720 GPU MT6753 Hardware
screenshot_20181007-104423

But in my Cloudfone Excite Prime Mali-450 MP GPU MT6592 Hardware it's fixed the only issue I have is the small black square that also exist in MH3RD HD :/
screenshot_2018-10-07-10-42-06

@unknownbrackets
Copy link
Collaborator

unknownbrackets commented Oct 7, 2018

I suppose that means Mali-T7xx doesn't support what we're trying to do. The weird thing is the lines are pretty much the same, but maybe it's because they're all nan.

-[Unknown]

@marosis
Copy link

marosis commented Oct 11, 2018

I can confirm it. I have same mali-T720

@MJH1000
Copy link

MJH1000 commented Oct 13, 2018

The game can be made playable using this cheat, 'Graphical glitches partial FIX'.

ULES00615.ini

_S ULES-00615
_G DTM Race Driver 3 Challenge [EUR]
_C0 Graphical glitches partial FIX
_L 0xE0018C84 0x000AB7BA
_L 0x200AB7B8 0x34040000
_C0 Graphical glitches NO-FIX [Default]
_L 0xE0013404 0x000AB7BA
_L 0x200AB7B8 0x8C840000

@marosis
Copy link

marosis commented Oct 13, 2018

Please do from it for me File. I did TXT, paste code, saved, renamed to ini and it is not working

@marosis
Copy link

marosis commented Oct 18, 2018

All cheats are working from PPSSPP forum but that your not.

@MJH1000
Copy link

MJH1000 commented Oct 18, 2018

The cheat does not remove all the graphics glitches, only the worst ones.

@marosis
Copy link

marosis commented Oct 19, 2018

No. I mean i can't launch it. He is not showing in the emulator

@benderscruffy01
Copy link

can the label android be add as this doesnt happen on windows

@LunaMoo
Copy link
Collaborator

LunaMoo commented Mar 24, 2019

No, it will still happen on windows, the feature fixing this issue is disabled on old gpu's. not just mobiles.

@benderscruffy01
Copy link

ok thanks for that

@unknownbrackets
Copy link
Collaborator

Maybe it makes more sense to close this and create a new issue (maybe referencing a list of the affected games for searchability) about guard band not working on older devices.

I don't have an affected device currently (except Vivante which can't handle a lot...) but some ideas collected from above:

  • Perhaps set more components of the vert to NAN.
  • Perhaps set w to 0 instead.
  • Perhaps send an interpolated value to the frag shader, and discard when > 0 (won't be perfect, but might be better... that said, speed penalty.)
  • Perhaps handle in software transform path? Maybe bigger speed penalty, and would require non-default setting or something...

-[Unknown]

@ghost
Copy link

ghost commented Aug 9, 2019

@hrydgard Thanks finally its totally fixed ^^
Screenshot_20190809-223330
•Mali-T720 MT8163 Android Phone Tablet

@unknownbrackets unknownbrackets added this to the v1.9.0 milestone Aug 10, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Guardband / Range Culling Involves vertices outside fustrum.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

9 participants