nesbox / TIC-80

TIC-80 is a fantasy computer for making, playing and sharing tiny games.
https://tic80.com
MIT License
5.04k stars 489 forks source link

DX vs. OGL vs. ??? #462

Closed hseiken closed 4 years ago

hseiken commented 6 years ago

What is the rendering surface primarily looked for and targeted by TIC80? One of the problems I find is that on my old computer running with an Intel GMA500 (arguably the worst GPU ever released by Intel...according to everyone including intel) is OpenGL and DX support is basically gimped so hard that many apps/games that rely heavily on passing graphics off to the GPU to handle actually slows down the entire software. This is exhibited by just about all the software I have except for a couple, such as DIV Studio, originally designed for DOS then ported over to use generic software rendering. It gets speeds that outstrip TIC80 in fullscreen 100:1 at least. However, running TIC in window, it doesn't slow down.

I know that my hardware isn't your problem and the GPU in question was discontinued ages ago, so my situation is highly unique (to say the least), but I bring this up not as issue but as consideration for some of the more obscure devices that TIC is inevitably going to be tried on. I find it rather concerning that a software meant to make 'old ass style games from the 80s' cannot function at 60fps on a system from 2010 because of it's heavy reliance on GPU rendering in a system where it frankly is completely unnecessary, since we are not trying to make GTAV style games with graphics using shaders and such.

As an example, DIV Studio was originally designed to run in MSDOS...it was later ported over in open source to other systems and runs fine on my under powered, crappy GPU computer at full screen, 60FPS stretched low-resolution images. In fact, it runs TOO fast sometimes! Compared to TIC80, then TIC80 seems like a step backwards. I don't bring this up in hopes that TIC80 will run perfectly on my system, I only bring it up to point out that, again, it's likely to run on systems without GPU accelleration or spotty support of Open GL/DX like my system and thus without strictly relying on software to do the heavy lifting it can totally do, makes it appear as if it's weak, poorly programmed and just not well designed if someone was unaware of this detail. For the record, Pico8 actually has far worse performance on the same machine as TIC80, even windowed (TIC80 windowed is 60fps for just about everything I've tossed at it, even maximized...it's only when the windows layer is removed and it goes full screen that things go bad, even though the rendered image is literally not changed in resolution!)

To close, this isn't a feature request nor a bug report, but rather just a side comment to the performance and I didn't know where to post this at, so feel free to move it somewhere more applicable. As well, if anyone knows a way to deal with the GMA500's incredibly bad implementation of literally everything graphical it's supposed to do (it technically should run everything I've put on the computer, except it doesn't...even Linux doesn't fully support the graphics card correctly...it's THAT bad!) please let me know, I'd love to have TIC80 running as nature intended. Keep up the good work on TIC80.

fangzhangmnm commented 6 years ago

Yeah, when I was writing codes with TIC80 on my surface pro 4, the CPU fan goes very high. It should not be so energy-consuming

nesbox commented 6 years ago

@hseiken could you test tic80_fullscreen_test.zip in fullscreen mode? I made some fixes thanks

hseiken commented 6 years ago

Oh wow, didn't expect this at all...I will report back in a few days.

hseiken commented 6 years ago

Just tested it out, same results. I get weird feedback from FPS on my computer as well. Again, it's a very uniquely stupid system so I wouldn't worry too much about it. If this system had any drivers worth half a fart, it wouldn't necessarily be an issue. As well, rereading what I wrote, there's really nothing inherently wrong with GPU accelerated graphics and if the compatibility with obscure systems isn't a priority, then it wouldn't make sense to waste time on it. Again, in my case, the GPU is clearly the culprit, not TiC, as some games that, again, should work and have virtually no CPU requirements (200mhz games running on regular DX7) complain that my videocard isn't working and other such nonsense. Researching into the problem, again, it seems it's just been buried by intel and everyone cut their losses with machines that used this unsupported mess.

I did notice something, in case it helps you with any generic optimization, when windowed, SYNC would flash randomly, but the frame rate was solid fast. However, when switching to full screen, I get sync locked as always on, but now it's slow. Obviously my system isn't reporting back frames as quickly as it should probably, is my guess. That or somehow it's locking to a lower framerate for missing by a microsecond a frame here and there, thinking that the system is under durress or something. I dunno how these manufacturers think about their hardware. I just know they did no thinking about this one so...meh.

I'd say just consider this closed unless someone other people have similar experience. I'd also ask first if they have the GMA500 and if they do, that's probably the origin of their woes. With as many problems as I've had with all kinds of software on this machine, it's clearly the graphics card not anything anyone else is doing.

Luraktinus commented 6 years ago

what is DX

frenetic commented 6 years ago

I think it is DirectX.

Luraktinus commented 6 years ago

oh... the windows thingy

frenetic commented 6 years ago

@hseiken could you please test it again with the latest release version?

hseiken commented 6 years ago

Yeah, i'll test it tonight. The machine affected is not on me at the moment.

hseiken commented 6 years ago

Okay, just tried it, crashes on opening. The download doesn't state whether it's 32 or 64 bit binary. I'm running a 32bit OS. However, I also don't get a warning message from windows saying I'm trying to run a 64 bit soft on 32 bit system. I dont' know if that's an automatic message generated by windows or if other software has put this in there manually as a test/error message.