Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
07536 Graphics Minor Always Jan 5, 2020, 14:01 Jun 28, 2020, 12:07
Tester hap View Status Public Platform
Assigned To Ryan Holtz Resolution Fixed OS Windows 10 (64-bit)
Status [?] Resolved Driver
Version 0.217 Fixed in Version 0.222 Build
Fixed in Git Commit Github Pull Request #
Summary 07536: Prescale option does not work properly on D3D renderer
Description Prescale option does not work properly on D3D renderer, see attached screenshots. As if the right and bottom edges are not prescaled. It looks correct with opengl.
Steps To Reproduce d3d screenshot created with:
mame.exe sexperta -video d3d -prescale 3 -view "screen"

opengl screenshot created with:
mame.exe sexperta -video opengl -prescale 3 -view "screen"
Additional Information
Github Commit
Flags
Regression Version
Affected Sets / Systems
Attached Files
png file icon d3d.png (26,159 bytes) Jan 5, 2020, 14:01 Uploaded by hap
hap
png file icon opengl.png (27,892 bytes) Jan 5, 2020, 14:01 Uploaded by hap
hap
png file icon Screenshot (120).png (13,939 bytes) May 28, 2020, 10:29 Uploaded by hap
hap
Relationships
There are no relationship linked to this issue.
Notes
11
User avatar
No.17318
hap
Developer
Jan 6, 2020, 11:19
src/osd/modules/render/drawd3d.cpp void texture_info::prescale(), It happens on StretchRect
If I force disable it, by changing:
m_stretch_supported = ((caps.StretchRectFilterCaps & D3DPTFILTERCAPS_MAGFPOINT) != 0);
to
m_stretch_supported = 0;

Then it works ok.

I am thinking it's possibly a video card driver bug. Mine is an Nvidia 980Ti. Can someone with an AMD card try?
User avatar
No.17320
hap
Developer
Jan 6, 2020, 14:24
no problem with StretchRect/prescale on my laptop with on-cpu Intel GPU.

It is a (nvidia) driver bug.
closing this :D
User avatar
No.17686
hap
Developer
May 28, 2020, 10:32
edited on: May 28, 2020, 10:56
I posted another example image, done with:
mame64 tama -prescale 8 -video d3d -window -view screen
Press button2 (Left ALT) after starting, to see time setup screen.

The bug is still there with nvidia driver 446.14 on Gefore 980ti.
I'm thinking about forwarding it to Nvidia.
User avatar
No.17758
bedrock
Tester
Jun 19, 2020, 15:56
edited on: Jun 19, 2020, 15:59
Dunno if related but smth I've noticed ages ago, maybe since 0.107, and is still there;

Playing for instance one of the Cave shmups (e.g esprade), or PGM (ket) with;
filter 1
prescale 2
...looks really good !
> BUT a kind of scaling bug is noticeable, like a thin ripple (looks like a tearing line), obvious on vertical scrollings middle of the screen, also in cases when you move left right and it scrolls horizontally.

Well, as far as I've seen it happens only with nVidia, no such issue if running an ATI/AMD.
User avatar
No.17759
hap
Developer
Jun 19, 2020, 17:37
mid-screen tearing is waitvsync related, not prescale
User avatar
No.17760
bedrock
Tester
Jun 20, 2020, 07:48
edited on: Jun 20, 2020, 07:51
Well no, not in this case, It's different you don't have portions of the screen desynchronized here. Of course I always play with either vsync or triplebuffer on, I've used MAME for far too long to not make such basic mistakes.

Over time I've witnessed the issue comparing about half a dozen ATI/AMD vs. another half of nVidias.
It was never noticed/mentioned because most ppl don't know about using prescale to sharpen the filtered output, and they'd had to have a nVidia + playing scrolling-a-lot games like these shooters to notice.

I can't seem to capture it with either screenshorts or video so I'd need a decent camera because this is tiny, unfortunately my phone's crap.
Anyway it's easy to reproduce.
This may be nVidia driver's fault but I though it might be related to this entry. In any case it's real, take it or leave it. *shrug*
User avatar
No.17761
hap
Developer
Jun 20, 2020, 12:15
edited on: Jun 20, 2020, 12:16
And it only happens with -prescale?
It's possible you're witnessing this specific bug(07536). But it's already fixed now. It's a recent fix, MAME 0.222 will have it.
User avatar
No.17762
bedrock
Tester
Jun 20, 2020, 12:57
Specifically filter 1 prescale 2
with prescale 3 it is not showing

(too bad because it's with 2 that it looks the nicest; a moderate full screen smoothing preserving the pixel art and vivid colors)

And again it's an nVdia problem, both ATI/AMD and Intel iGPUs don't produce the issue AFAIK.

I'll make sure to check w/ 0.222 and report, then if the issue is still there it might deserve a seperate entry (?)
User avatar
No.17763
hap
Developer
Jun 20, 2020, 13:11
My local compile doesn't have cave.cpp in it, I just added it to test the problem you describe.
Indeed, MAME 0.221(and I presume older versions) have a 'seam' in esprade when using d3d+prescale 2. It does not happen anymore, should be OK in 0.222.
User avatar
No.17764
bedrock
Tester
Jun 20, 2020, 13:42
YAY! NOICE! :)

Well I've seen this first time soon after the 0.107 video change, so it's been there forever.
Such a tiny issue no one but my picture quality snub self ever cared or even noticed, but that's cool for nVidia owners who like a nicely resized picture, thanks a ton.

ps: Note it wasn't specifically Cave games, but it's always been much more noticeable over scrolling shooters for obvious reasons.
User avatar
No.17783
bedrock
Tester
Jun 28, 2020, 12:07
Confirming the 'seam' is gone in 0.222 *applause*