ppsspp icon indicating copy to clipboard operation
ppsspp copied to clipboard

Broken fonts for Gran Turismo for software renderer

Open Panderner opened this issue 3 years ago • 5 comments

Game or games this happens in

UCUS-98632 - Gran Turismo

What area of the game

Main Menu

What happens

Fonts in Gran Turismo is broken when software rendering is used Screenshot (14)

What should happen

The font working fine in hardware renderers Screenshot (15)

GE frame capture

No response

Platform

Windows

Mobile phone model or graphics card

NVIDIA GTX 1050Ti

PPSSPP version affected

v1.13 and newer

Last working version

v1.12.3

Graphics backend (3D API)

Other

Checklist

  • [X] Test in the latest git build in case it's already fixed.
  • [X] Search for other reports of the same issue.
  • [ ] Try resetting settings or older versions and include if the issue is related.
  • [ ] Try changing graphics settings to determine if one causes the glitch (especially speed hacks or enhancements/replacements.)
  • [X] Include logs or screenshots of issue.

Panderner avatar Aug 07 '22 08:08 Panderner

I swear this game gonna be the one with most issues opened here soon lol. The fonts also cause issues with performance on hardware renderer if I am not mistaken...

ghost avatar Aug 07 '22 09:08 ghost

I swear this game gonna be the one with most issues opened here soon lol. The fonts also cause issues with performance on hardware renderer if I am not mistaken...

Here 👉https://github.com/hrydgard/ppsspp/issues/11244 and https://github.com/hrydgard/ppsspp/issues/13460

ghost avatar Aug 07 '22 09:08 ghost

Can you include a GE frame dump? I think it's fine if it's made while using hardware or software, as long as it shows the fonts that render wrong.

This is probably some annoying hazard where rendering needs to sync before some copy.

-[Unknown]

unknownbrackets avatar Aug 07 '22 15:08 unknownbrackets

Here: UCUS98632.zip

Panderner avatar Aug 07 '22 16:08 Panderner

Unfortunately, the dump isn't reproducing it.

I think this game block transfers data into texture VRAM, which it then references. Might need to track pending read hazards, which I think I moved away from due to perf...

My assumption is that it's:

  • Block transferring to a texture.
  • Drawing from that texture to the screen.
  • Block transferring again (which doesn't flush.)
  • Drawing from that texture again (which still doesn't flush, because it's not tracked as a write region.)

Maybe the best solution is to track pending reads, separate from writes. It'd have to do all mip levels, but could be updated just when texture params are dirty...

-[Unknown]

unknownbrackets avatar Aug 07 '22 21:08 unknownbrackets

Can you try this again with the artifacts from #15873 or after it is merged? I think that will fix it, based on how I understand this rendering to work.

-[Unknown]

unknownbrackets avatar Aug 21 '22 07:08 unknownbrackets

It's fixed now: Screenshot (27)

Panderner avatar Aug 21 '22 09:08 Panderner

Thanks for validating.

-[Unknown]

unknownbrackets avatar Aug 21 '22 14:08 unknownbrackets