Announcement

Collapse
No announcement yet.

WinQuake software renderer running far slower than expected on modern PC.

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • WinQuake software renderer running far slower than expected on modern PC.

    After spending a few weeks auditioning modern Quake clients, I decided to give the original WinQuake a spin. While I can't promise I won't ever go back to running DarkPlaces with high-resolution textures and real-time lighting, there is a certain undeniable charm to the software renderer. While it was definitely playable on my modern machine (i5 4670k, 8 gigs of RAM, Windows 8.1, etc), I was really taken aback by the low FPS performance I was seeing. The various time demos returned results between 12 and 31 FPS depending on the resolution. I realize the ancient software renderer is a totally different beast than modern clients utilizing GPU acceleration, but I expected my processor to be able to brute-force an 18-year-old game past 60 FPS (with v-sync disabled, DarkPlaces approaches 600 FPS). The 640x400 mode is pretty smooth, but 1280x1024 feels like a slide-show at times. Is there some setting or conflict that might be throttling my performance? Any suggestions would be greatly appreciated.

  • #2
    Depends on what Engine you are using? I use ProQuake, and in ProQuake you have to type in console or add to config the following below

    pq_drawfps "1"
    pq_maxfps "xxx" <-- where XXX is put a number. Try to stay under 700 quake never really uses that much FPS anyway.

    Comment


    • #3
      run it window mode seriously.
      Want to get into playing Quake again? Click here for the Multiplayer-Startup kit! laissez bon temps rouler!

      Comment


      • #4
        there is a modern software engine out there - qbism Super8. it may show some better results. use console variables "cl_showfps 1" to see the fps counter, "cl_maxfps 70" to cap fps if necessary.

        don't hesitate to report any noticed bugs to the author, he would appreciate it.

        Comment


        • #5
          if windowed mode is faster, you might find -dibonly is sufficient.

          quake writes single bytes to the video memory. if that video memory is mapped weirdly on a 32bit-only bus, then for each write, the cpu must read the video memory (and wait for the result) before writing it back with one byte changed. for each pixel. understandably, this is slow.
          iirc, dibonly renders to some internal buffer then splurges it all out in one go. there's no need to read back anything as the data to write is properly aligned for the bus anyway.

          video memory is well known for being slow in this way.
          Some Game Thing

          Comment


          • #6
            I don't much care for the windowed mode — if for no other reason than the available resolutions are lower to begin with. It also takes me out of the experience.

            I appreciate the aesthetic of the Super8 engine, but it seems to enjoy crashing whenever I come into contact with water.

            I haven't tried ProQuake — is it simply an updated software renderer? I understand the non-GLQuake code is a bit onerous to modify.

            The rudimentary lighting, particle, and water effects greatly add to the atmosphere and I haven't found a modern client that can replicate them (far exceed them, perhaps — but not replicate them).

            I guess another option would be to try running the original software build in DOSBox. Does anyone have any experience with this?

            Is it possible that there is some mouse-related setting that is causing the renderer to wait for a signal before updating? I also have my integrated Intel HD Graphics accelerator set to enable v-sync in all applications. Is it possible this is causing a conflict?

            Sorry for all of the questions — I'm just thinking aloud, so to speak. Thanks for the help!

            Comment


            • #7
              fte and directq have faithful water effects by default iirc, both surface and fullscreen warp.
              'gl_texturemode gl_nearest_mipmap_nearest' should give you an equivelent look to software rendering (any gl/d3d engine). fullbrights and overbrights should both be supported in the aforementioned engines by default.
              fte uses circular particles instead of square ones, but its 'faithful' preset should otherwise be close enough. I don't remember directq's, but it was always aimed at faithfulness so I don't see why it would be significantly different.

              thinking about it, you should also try quakeforge's glsl version. taniwha went beyond the call of duty and implemented colourmaps for as faithful a look as you'll ever get in any gl engine. I've not personally used it myself, so I'm not sure exactly how faithful the rest is.

              but yeah, try using: gl_texturemode gl_nearest_mipmap_nearest
              Some Game Thing

              Comment


              • #8
                Thanks for the reply, Spike.

                gl_texturemode gl_nearest_mipmap_nearest already has a permanent home in all of my autoexec.cfg files — it gets me part of the way there.

                I think the software renderer is limited to 256 colors. Is there a setting to "desaturate" the textures in DarkPlaces to VGA? That might get me closer to the look of the original engine.

                I just found an old article online comparing graphics card performance across a number of different x86 systems. It happened to mention that "Quake itself runs at 10 FPS," but explained that additional performance overhead is useful for preventing bottlenecks. Is there any truth to this?
                Last edited by SlunkBoy; 07-18-2014, 10:49 AM. Reason: Edit: I see you're the author of FTEQW — I'll stop bugging you about DarkPlaces settings. :D

                Comment


                • #9
                  The "Quake itself runs at 10fps" is the server/client timing.
                  Sys_ticrate by default was 0.1. Also animations were fixed at 10fps. I think winQuake caps at 72fps for the rendering.

                  I'm pretty sure an article written in a mag back in the day used speculation to convey it's results.
                  www.quakeone.com/qrack | www.quakeone.com/cax| http://en.twitch.tv/sputnikutah

                  Comment


                  • #10
                    yeah, if you really want full palettization, quakeforge's glsl renderer is your only choice (of those that include hardware acceleration, that is). I don't know enough about quakeforge to really help, hopefully it'll have a video options menu that'll let you switch or something.
                    Some Game Thing

                    Comment


                    • #11
                      You should give Engoo - The Worst Quake Engine In Existence a try
                      Quake 1 Singleplayer Maps and Mods

                      Comment


                      • #12
                        Originally posted by SlunkBoy View Post

                        I appreciate the aesthetic of the Super8 engine, but it seems to enjoy crashing whenever I come into contact with water.
                        that may be fixed in the most recent updates at least for some resolutions, the author of the engine noted he had been able to reproduce this crash only on 640x480 or something. one could've probably help by testing the latest build availible and reporting to the author whether it crashes less or not on a specific hardware setup.

                        Comment


                        • #13
                          Getting closer - some experimental results:

                          - windowed modes get 1,000 to 1,500 FPS depending on resolution setting, but this is still an unsatisfactory way to play

                          - starting with the "-safe" parameter yields up to 270 FPS at the highest full-screen resolution, but many textures are corrupted in a rainbow of colors

                          - I tracked the effective parameters down to "-nodd", "-noddraw", and "-nodirectdraw" (there seems to be no difference between the three)

                          - restricting the palette to 256 colors in the Windows compatibility settings menu ALMOST fixes the rainbow texture problem, but white text is rendered as black (as far as I can tell, this only affects 2D overlays)

                          I'm so close! Does anyone have any suggestions to fix the black text issue? I am fairly ignorant of both DirectDraw and Windows compatibility settings (I was basically just playing jazz in the menus).
                          Last edited by SlunkBoy; 07-18-2014, 10:06 PM.

                          Comment

                          Working...
                          X