In response to Lummox JR
On the map as well. Or... it used to do so? I just tested it and it no longer seems to fix the map's scaling. I could have sworn it did in older versions.

Edit: I tested out the behavior I was describing. On 507.1286 and 508.1289, taking a screenshot does in fact fix the scaling of the map. Starting with 508.1290 however, it no longer works.
In response to Kaiochao
Huh. I wonder, then, if I can simply lock the backbuffer briefly during a draw, after the StretchRect() call.

When the issue was fixed for you in older versions, did it stay fixed after the screenshot or did it break again on subsequent map draws?
In response to Lummox JR
As far as I can tell, it remains fixed. Rebooting does cause the issue to return though.
In response to Kaiochao
I didn't want to hold up 1301 for this, but I'll look into this soon insofar as I can. My wife's machine has an NVIDIA card but doesn't show this problem. However, I think if I can include the same calls that were used in the screenshot process before, so that it forces a "reset" of whatever stupid thing the driver is doing, that'll probably take care of it.
In response to Kaiochao
What do you need to look into this? This bug is driving me absolutely batshit insane. Whatever you need to fix this, I will do whatever it takes to make it happen.
In response to Kaiochao
I'm not sure. It's strange that this doesn't happen to me.
In response to Kaiochao
If I install a clean Windows 7 partition on my machine and give you total remote access via TeamViewer, would that help you?

This issue seems to be apparent on any machine that's running reasonably up-to-date Nvidia cards. I've got an Nvidia 660GTX in the house, and two machines running an Nvidia 960GTX.

Again, this issue is driving me absolutely crazy and I'll do anything to see it fixed.
In response to Kaiochao
Descriptive Problem Summary:
When running any game that is by default at 32x32 at 64x64 after any version above 506.0? (perhaps even from 505.0) causes pixels to stretch in a + pattern around the middle of the game window.
Numbered Steps to Reproduce Problem:
1. Join game
2. .winset "mapwindow.map.icon-size=64" or select 64x64
Code Snippet (if applicable) to Reproduce Problem:


Expected Results:
http://puu.sh/om8R6.png
Correct rendering at 64x64, no artifacts
Actual Results:
http://puu.sh/om8W1.png
Bad rendering at 64x64, stretched pixels in a + shape
Does the problem occur:
Every time? Or how often?
Every time.
In other games?
Yes.
In other user accounts?
Yes.
On other computers?
Yes.

When does the problem NOT occur?
When downgrading back to many many versions ago.
Did the problem NOT occur in any earlier versions? If so, what was the last version that worked? (Visit http://www.byond.com/download/build to download old versions for testing.)
505.1233_byond and below
Workarounds:
Downgrading, not a likeable or secure decision.

In response to Trafficcone
I believe Ter13 already has a bug report on this issue. It's hard to fix without being able to reproduce it.
In response to Trafficcone
I'm still getting overscaling in dawncaster. This did not fix the issue completely in Dawncaster. Every other BYOND game that I load that uses map.zoom at integer multiples >1 is overscaling by a few pixels.

Ever since the map scaling fix, Nvidia 9 series cards (The gaming standard) all overscale the map, creating uneven pixel scaling.

This is becoming a bigger annoyance with the engine for me than you'd think a few pesky pixels would reasonably cause.

I use BYOND because I like high-granularity pixel games.

If BYOND can't do high-granularity pixel games on any NVIDIA 9-series GPU, I'm better off using another engine, because if I can't guarantee that I have pixel-level control over my output, and I can't guarantee that all users are seeing the same thing, I can't make a presentable product.

Something is wrong with the scaling. If it's a driver issue, it's going to be apparent to greater than 40% of the global desktop marketplace, as the 9 series chips and drivers have become THE industry standard for gaming devices.

What information can I offer to help you find the source of this problem and eliminate it?
Honestly I have no idea how to get to the bottom of this. This has been extremely frustrating for me because there's zero reason in the code that this should be happening at all, and I can do nothing to reproduce it.

The only info I've found has been here, in a very old thread, where it was definitely found to be a driver bug.

The only thing I can think of is that maybe another set of eyes on Google would be helpful. I've looked all over and can't find any explanation for why StretchRect() would misbehave in this way.

If you can show me some image examples of how other games are overscaling, it might also help me understand a little better what the exact situation is, and maybe refine my searches a little.

I'm also starting to wonder if maybe there's another way to upscale without using StretchRect(). Some advice on that front would be helpful as well.
The modern way to do it is to bind the backbuffer as a source for a fullscreen quad, then pass the quad's vertex buffer into into the scene linked to an HLSL shader.

The HSLSL shader you assign should use a simple point sampler without interpolation.

Something this basic should be trivial to do with shaders and quads. Just remember the halfpixel/halftexel coordinates, and should give you an idea for how to approach transformed appearances that use nearest-neighbor interpolation as an added benefit.
http://www.byond.com/forum/?post=1930864

Also, this is a duplicate report. When you get around to documenting the fix, this one's off the stack too.
Lummox JR resolved issue with message:
The method used to upscale maps in hardware mode has been altered to work around StretchRect() bugs in stupid stupid Nvidia drivers.
Page: 1 2