Announcement

Collapse
No announcement yet.

DX8 ProQuake Testing

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

  • DX8 ProQuake Testing

    Direct3D 8.1 ProQuake Version 2:

    Download: http://quakeone.com/proquake/src_int...400_test_2.zip

    Source: http://quakeone.com/proquake/src_int...t_source_2.zip

    What doesn't work: ALT-TAB + Fullscreen = blackness (don't ALT-TAB unless using -window). Video mode change (for now). Multitexture (fullbright support, which is OFF in ProQuake by default anyway, uses multitexture).

    What does work: Just about everything else. Gamma.

    This is a Direct3D version of ProQuake based off MH's work. It uses Direct3D for rendering (DirectX drivers, etc.) instead of OpenGL.

    MH has other engine prototypes and this thread can be for testing those as well if he wants [or doesn't]. But for testing and debugging purposes, I wanted to get this out there. Someone commented in the other thread (legion?) that background flashes are slow, etc.

    Anyone interested in testing and reporting issues or performance weaknesses is welcome and will help make this version better and MH's intended future Direct3D Qrack version.

    Technical notes, mostly for MH:

    I don't have video mode changing working. Yet. Could be me. The sole difference between FitzQuake and ProQuake in relation to video mode changing is that FitzQuake reloads textures on video mode changing always for a bpp change. Maybe redoes the warp textures for any change? I wasn't changing bpp. In theory, I should be able to make this work. Assume my fault for now. AND ... my workaround for fullscreen + ALT-TAB will be to force a video mode restart, hehe

    Multitexture: ProQuake uses old SGIS stuff. I might just upgrade the code from aguirReQuake which doesn't use SGIS. I don't recall seeing any D3D SGIS functions in the wrapper you made but I'll just replace SGIS to avoid issue.

    Will work on this more as week progresses.
    Quakeone.com - Being exactly one-half good and one-half evil has advantages. When a portal opens to the antimatter universe, my opposite is just me with a goatee.

    So while you guys all have to fight your anti-matter counterparts, me and my evil twin will be drinking a beer laughing at you guys ...

  • #2
    For Windows based ports this is a god sent!
    Hopefully this will open new platform avenues, (XBOX).
    www.quakeone.com/qrack | www.quakeone.com/cax| http://en.twitch.tv/sputnikutah

    Comment


    • #3
      I reckon that the DirectJoe I sent you is good to go; that's feature-complete aside from the stuff that's obviously broken (Alt-Tab, etc). DirectFitz needs some work still, particularly with regard to water warps and some entry points I haven't yet fully implemented.

      I'd advise to get off SGIS for Multitexture, quite a few cards don't even advertise the extension in OpenGL anymore if memory serves. ARB is almost identical anyway aside from the entry point names and some esoteric functionality that nobody ever used. I could trivially implement the SGIS extension in the wrapper, but it would come with the warning that if anyone did try to use the esoteric stuff, the end results would be "undefined".
      IT LIVES! http://directq.blogspot.com/

      Comment


      • #4
        Originally posted by mhquake View Post
        I reckon that the DirectJoe I sent you is good to go; that's feature-complete aside from the stuff that's obviously broken (Alt-Tab, etc). DirectFitz needs some work still, particularly with regard to water warps and some entry points I haven't yet fully implemented.

        I'd advise to get off SGIS for Multitexture, quite a few cards don't even advertise the extension in OpenGL anymore if memory serves. ARB is almost identical anyway aside from the entry point names and some esoteric functionality that nobody ever used. I could trivially implement the SGIS extension in the wrapper, but it would come with the warning that if anyone did try to use the esoteric stuff, the end results would be "undefined".
        SGIS Removal notes:

        I need to edit these files: gl_draw.c
        gl_rsurf.c
        gl_vidnt.c
        glquake.h
        Quakeone.com - Being exactly one-half good and one-half evil has advantages. When a portal opens to the antimatter universe, my opposite is just me with a goatee.

        So while you guys all have to fight your anti-matter counterparts, me and my evil twin will be drinking a beer laughing at you guys ...

        Comment


        • #5
          Direct3D 8.1 ProQuake Version 3:

          Fullbrights work. Since this is off by default in ProQuake, gl_fullbright 1 is needed to turn it on. Contrast works as well (the command "contrast", which isn't widely known or in the ProQuake menu).

          Still unavailable: video mode switch; ALT-TAB in full screen has issues

          Using -window does not have issues with ALT-TAB.

          Download: http://quakeone.com/proquake/src_int...400_test_3.zip

          Source: http://quakeone.com/proquake/src_int...t_source_3.rar
          Quakeone.com - Being exactly one-half good and one-half evil has advantages. When a portal opens to the antimatter universe, my opposite is just me with a goatee.

          So while you guys all have to fight your anti-matter counterparts, me and my evil twin will be drinking a beer laughing at you guys ...

          Comment


          • #6
            A work around, for ALT-TAB could be to force the screen into windowed mode, then minimize, and back again? Just a suggestion not sure how doable this is. Im assuming alt-enter works?

            eDIT, went to video setting below advanced settting and crashed. I guess i wasnt supposed to do that, since it was erased, though the cursor position is still intact ... I noticed after a crash though, dirextx returns the desktop back to normal, instead of using setgamma
            Last edited by R00k; 12-02-2009, 09:28 AM.
            www.quakeone.com/qrack | www.quakeone.com/cax| http://en.twitch.tv/sputnikutah

            Comment


            • #7
              Originally posted by R00k View Post
              A work around, for ALT-TAB could be to force the screen into windowed mode, then minimize, and back again? Just a suggestion not sure how doable this is. Im assuming alt-enter works?
              I test compiled a executable from MH for a different engine and the video mode switching worked, but ALT-TAB for fullscreen didn't. But with a black screen, I could still type "toggle vid_fullscreen; vid_restart" and viola!

              Unless I have to implement texture reloading for some reason, I will have video mode switch working in DX8 ProQuake.

              So ... what I will do is have AppActivate trigger a vid_restart if ProQuake is fullscreen. Yeah there will be a 1 second wait, but that effectively resolves the ALT-TAB fullscreen issue until MH has time to work on that.

              I think that is an effective workaround.
              Quakeone.com - Being exactly one-half good and one-half evil has advantages. When a portal opens to the antimatter universe, my opposite is just me with a goatee.

              So while you guys all have to fight your anti-matter counterparts, me and my evil twin will be drinking a beer laughing at you guys ...

              Comment


              • #8
                Originally posted by R00k View Post
                eDIT, went to video setting below advanced settting and crashed. I guess i wasnt supposed to do that, since it was erased, though the cursor position is still intact ... I noticed after a crash though, dirextx returns the desktop back to normal, instead of using setgamma
                Oops! Thanks for the heads up. Phantom menu item to non-existent function, heh.

                Yeah, I wonder how DirectX is restoring the gamma on a crash. Either way, that's nice.
                Quakeone.com - Being exactly one-half good and one-half evil has advantages. When a portal opens to the antimatter universe, my opposite is just me with a goatee.

                So while you guys all have to fight your anti-matter counterparts, me and my evil twin will be drinking a beer laughing at you guys ...

                Comment


                • #9
                  Right now the Direct3D wrapper isn't doing anything at all with gamma, so it's entirely handled by the same code as your OpenGL engine. Unless there's something nice in the API that's doing it Right I don't know.

                  FitzQuake is reloading textures after a vid_restart, which is why it's not working for you. It's not too easy to provide generic code that will work in every situation for every engine here, but I have a good idea where it's broken now.

                  The Alt-Tab thing is just some state that I'm not restoring correctly. Trial and error will get there.

                  By the way - I've never been able to successfully compile ProQuake, otherwise I could do some testing myself and shortcut a lot of work and delay. Any dependencies I should be aware of?
                  IT LIVES! http://directq.blogspot.com/

                  Comment


                  • #10
                    Originally posted by mhquake View Post
                    Right now the Direct3D wrapper isn't doing anything at all with gamma, so it's entirely handled by the same code as your OpenGL engine. Unless there's something nice in the API that's doing it Right I don't know.

                    FitzQuake is reloading textures after a vid_restart, which is why it's not working for you. It's not too easy to provide generic code that will work in every situation for every engine here, but I have a good idea where it's broken now.

                    The Alt-Tab thing is just some state that I'm not restoring correctly. Trial and error will get there.

                    By the way - I've never been able to successfully compile ProQuake, otherwise I could do some testing myself and shortcut a lot of work and delay. Any dependencies I should be aware of?
                    The above source codes in this thread, unlike usual, I rolled all the dependency folders into it.

                    It requires DirectX 7 SDK (versus the typical SDK3), which is a bit different than most engines but I wanted 5 button mouse support in Windows with DirectInput (DarkPlaces can't do mouse5 in Windows with -dinput, for example. Not that ProQuake or Qrack even need a command line parameter to use DirectInput, hehe You can turn it off and on on-the-fly via m_directinput 1|0).

                    Normally I don't roll the dependency folders into the source download because it causes the source to be 7 to 10 MB instead of 0.9 MB and in 2007-2008 I probably made 40 releases of ProQuake.

                    Originally posted by mhquake View Post
                    FitzQuake is reloading textures after a vid_restart, which is why it's not working for you. It's not too easy to provide generic code that will work in every situation for every engine here, but I have a good idea where it's broken now.
                    I've done enough research on texture reloading that maybe I'll just add that to the engine. If you are saying you believe that will solve the mode switching issues.

                    Inside3d Forums :: View topic - Analyzing the FitzQuake texture manager
                    Last edited by Baker; 12-02-2009, 12:25 PM.
                    Quakeone.com - Being exactly one-half good and one-half evil has advantages. When a portal opens to the antimatter universe, my opposite is just me with a goatee.

                    So while you guys all have to fight your anti-matter counterparts, me and my evil twin will be drinking a beer laughing at you guys ...

                    Comment


                    • #11
                      Nice one, but more trouble! I'm getting a 404 on the source download.

                      By the way, mode switching is possible without texture reloading (DirectQ does it). The biggest problem is that most engines do a DestroyWindow followed by a full recreation of everything when switching modes, whereas a few SetWindowLongs (for style, etc) followed by a SetWindowPos is sufficient.
                      Last edited by MH; 12-02-2009, 01:06 PM.
                      IT LIVES! http://directq.blogspot.com/

                      Comment


                      • #12
                        Originally posted by mhquake View Post
                        Nice one, but more trouble! I'm getting a 404 on the source download.

                        By the way, mode switching is possible without texture reloading (DirectQ does it). The biggest problem is that most engines do a DestroyWindow followed by a full recreation of everything when switching modes, whereas a few SetWindowLongs (for style, etc) followed by a SetWindowPos is sufficient.
                        http://quakeone.com/proquake/src_int/proquake4dx8.2.rar

                        Despite the name, that is version #3's source. I forgot to rename the filename when the upload was complete.

                        I've always wondered about the video mode change code and whether or not it was a little heavy. You know, the most surprising oddity is if I use -fullwindow command line option in the dx8proquake (full screen windowed mode, which is just windowed mode without a titlebar) and ALT-TAB in and out, I get the "full screen ALT-TAB problem" despite being in Windowed mode.

                        /I had thought that was a cool way to temporarily "cheat", but it didn't work.
                        Last edited by Baker; 12-02-2009, 01:25 PM.
                        Quakeone.com - Being exactly one-half good and one-half evil has advantages. When a portal opens to the antimatter universe, my opposite is just me with a goatee.

                        So while you guys all have to fight your anti-matter counterparts, me and my evil twin will be drinking a beer laughing at you guys ...

                        Comment


                        • #13
                          Direct3D 8.1 ProQuake Version 4:

                          Download: http://quakeone.com/proquake/src_int...400_test_4.zip

                          Source: http://quakeone.com/proquake/src_int...t_source_4.rar

                          Based on yet another update of MH's Direct3D wrapper.

                          Video mode switching works and nearly everything is functional. ALT-TAB in fullscreen still causes a blank black screen, but the next build I will use a workaround to fix and I'll do that in the next one. [Eventually ProQuake will have full texture reload like FitzQuake and therefore bpp switching on-the-fly. But some planning and reworking the engine will be required.]

                          And then the next one will be included in ProQuake 4's main download as dx8pro400.exe.

                          The "old" Direct3D ProQuake build will continue to be supported but I won't be including it in the main download as I wouldn't want someone to accidentally be using that instead of this one.

                          (But maintaining the old "d3dpro400.exe" build as a separate download will still around for bug testing and compare and contrast.)
                          Quakeone.com - Being exactly one-half good and one-half evil has advantages. When a portal opens to the antimatter universe, my opposite is just me with a goatee.

                          So while you guys all have to fight your anti-matter counterparts, me and my evil twin will be drinking a beer laughing at you guys ...

                          Comment


                          • #14
                            Neat.

                            The more cautious approach definitely seems the best way to go here.

                            (QRack is 95% working by the way...)
                            IT LIVES! http://directq.blogspot.com/

                            Comment


                            • #15
                              Works fine for me and it's faster than a snot on a slippery slope.

                              Aside from Alt-Tab, that gave a black screen and crashed the engine after a while. Odd that. I'm gonna have a peek at your source later on.
                              IT LIVES! http://directq.blogspot.com/

                              Comment

                              Working...
                              X