LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Games (https://www.linuxquestions.org/questions/linux-games-33/)
-   -   Is SDL buggy? (https://www.linuxquestions.org/questions/linux-games-33/is-sdl-buggy-4175542327/)

xyzone 05-11-2015 11:37 PM

Is SDL buggy?
 
I notice that games that use SDL in recent times have issues when switching desktop resolution internally. I have one PC with the nvidia driver, and whenever a game tries to change the resolution, the 'game screen' looks offset, and you can scroll around the viewing area by moving the mouse. It's as if you are zoomed into a part of the old desktop, but the old dimensions remain. Then when exiting, often it doesn't change back to the desktop resolution, and then you have to restart X.

On intel video, the problem has to do with vsync. When you let a game switch the resolution, vsync doesn't work correctly in the switched resolution.

I notice that when you switch resolutions manually (with xrandr), this doesn't happen. This is why I believe it's an SDL issue, or at the very least related to it. It could also be that it's only SDL2 causing this but I am not sure, since I don't know which steam games use which SDL version. Yet another possibility is that of the two issues above, one might only relate to SDL2 and the other to both versions of SDL.

Anybody else notice these problems? It seems like switching resolutions for games is all but extinct, with everyone simply playing at native resolution. This might be why it's going under the radar?

ardvark71 05-11-2015 11:54 PM

Quote:

Originally Posted by xyzone (Post 5361193)
I have one PC with the nvidia driver, and whenever a game tries to change the resolution, the 'game screen' looks offset, and you can scroll around the viewing area by moving the mouse. It's as if you are zoomed into a part of the old desktop, but the old dimensions remain. Then when exiting, often it doesn't change back to the desktop resolution, and then you have to restart X.

Hi...

If I remember correctly, I had this exact issue when I was running Ubuntu 10.04 with a game called Powermanga. It didn't happen a lot but I would just restart the system when it did. I'm not sure if the game used SDL or not. I know Super Maryo Chronicles does and I've never had a problem with it, regardless of the brand of video chip. :confused:

Regards...

xyzone 05-12-2015 01:16 AM

Quote:

Originally Posted by ardvark71 (Post 5361196)
Hi...

If I remember correctly, I had this exact issue when I was running Ubuntu 10.04 with a game called Powermanga. It didn't happen a lot but I would just restart the system when it did. I'm not sure if the game used SDL or not. I know Super Maryo Chronicles does and I've never had a problem with it, regardless of the brand of video chip. :confused:

Regards...

Were you selecting non-desktop resolutions in-game on Maryo on intel video? Did vsync work if you did?

edit: I just tried the maryo game. I installed from the distro repos. It starts in 640x480 fullscreen by default. I tried on intel video and vsync does not work correctly unless you use xrandr to switch resolutions before starting the game.

ardvark71 05-12-2015 02:44 AM

Quote:

Originally Posted by xyzone (Post 5361217)
Were you selecting non-desktop resolutions in-game on Maryo on intel video? Did vsync work if you did?

edit: I just tried the maryo game. I installed from the distro repos. It starts in 640x480 fullscreen by default. I tried on intel video and vsync does not work correctly unless you use xrandr to switch resolutions before starting the game.

Hi...

Whooops, I forgot that the system I own with the Intel graphics has Windows XP installed, so I'm using the Windows version of SMC. My laptop is the one running Linux and it has a GeForce 8600M GS, which SMC does fine on, either with the proprietary or the nouveau drivers.

Just as a thought, if you haven't already, you might want to file a bug, or in some other way, have a chat with folks over at SDL to see if there is something they can do. :)

Regards...

xyzone 05-12-2015 05:48 AM

Yeah, I might file a bug report, even if I'm a little worried of being yelled at by devs, which is why I want to confirm that it's repeatable, and not just some weird cosmic coincidence happening only on my devices.

Although it's not just an intel video problem, or there's two separate SDL bugs. Like I said previously, the nvidia problem seems to be more severe. There are so many steam games that fail to change (and change back) the resolution correctly on the nvidia driver that it seems like an SDL2 problem. I also suspect this because there is a game emulator called mednafen that uses SDL-1.2 which does not suffer either problem on an nvidia card, but another emulator called mame does suffer from the floppy screen issue, and mame uses sdl2 at this point. I suspect that a change in Xorg which SDL did not account for is causing these problems.

At any rate, the workaround for now is to make a wrapper script with xrandr commands. Although on steam that causes other problems with the GUI (this is already known by the steam devs).

ardvark71 05-12-2015 12:28 PM

Quote:

Originally Posted by xyzone (Post 5361290)
Yeah, I might file a bug report, even if I'm a little worried of being yelled at by devs, which is why I want to confirm that it's repeatable, and not just some weird cosmic coincidence happening only on my devices.

Hi...

You could broach the issue first in their forum and see what their thoughts are. Perhaps some folks could help you with confirmation. Sorry I can't help you out more with the details, I'm more of a hardware guy. ;)

Regards...

John VV 05-12-2015 03:48 PM

it is not that SDL_??? is buggy

but new developers tended to HARD CODE the x/y coordinates of things for 600x800 desktops
by using say on a 600x800 screen as the location
x=100 px
y=100 px

instead of using percentages


because buried deep in some .c or .h file is a hard codded location and the size of the object

this makes UPDATING programs a "ROYAL PAIN IN THE 'rear end' "
you have to not only change the location but HOW big it is


so MUCH of a pain in the rear that i gave up on modernizing some of the games

xyzone 05-12-2015 05:30 PM

Quote:

Originally Posted by John VV (Post 5361585)
it is not that SDL_??? is buggy

but new developers tended to HARD CODE the x/y coordinates of things for 600x800 desktops
by using say on a 600x800 screen as the location
x=100 px
y=100 px

instead of using percentages


because buried deep in some .c or .h file is a hard codded location and the size of the object

this makes UPDATING programs a "ROYAL PAIN IN THE 'rear end' "
you have to not only change the location but HOW big it is


so MUCH of a pain in the rear that i gave up on modernizing some of the games

That is interesting. But some time ago I didn't notice it happening with some of the very same SDL applications that it's happening with now. That's why I think it's some kind of issue that stems from a Xorg change (at least in the case of the vsync issue on intel). Would it be difficult to have them switch resolutions with xrandr if Linux is detected?


All times are GMT -5. The time now is 03:11 AM.