Announcement

Collapse
No announcement yet.

A Proposal To Fix The Full-Screen Linux Window Mess

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

  • #16
    So, I'm not going to join that mailing list just for this discussion, and Martin may never read this thread, but as others have said, Martin's arguments are just not valid unless you have KDE blinkers on. On the odd chance that he stops by, or someone else cares, my thoughts...

    Originally posted by Martin
    I try to explain the problems we have with this from the workspace perspective. In KDE Plasma we have a desktop shell which is strongly widget based and our users arrange the widgets on the whole screen. Also windows are manually placed and so on.

    Now if a game changes the resolution this gets completely destroyed. The manual layout is completely broken and cannot be restored (!) once the screen
    resolution changes back. A resolution change normally does not happen automatically, but only after a user e.g. plugged in an additional screen and configured it.
    This says KDE is broken and should be fixed, and the proposal to hand resolution changes off to the WM first provides a path for this - _NET_WM_STATE_FULLSCREEN_EXCLUSIVE triggers workspace state save, followed by resolution change. When the application terminates or unsets _NET_WM_STATE_FULLSCREEN_EXCLUSIVE, reset to previous resolution and restore workspace state.

    Originally posted by Martin
    Also windows get completely messed up when the resolution goes down. Most likely too large windows will get maximized and they will stay maximized once
    the screen resolution is changed.
    Why are windows being maximized in the first place under these conditions? Another KDE problem.

    Originally posted by Martin
    Moving the responsibility to the window manager to change the screen resolution will not solve this issue. It just increases the complexity of what
    could go wrong (hello Intel drivers crashing KWin when going back from unredirection state about a year ago).
    Seems to provide a pretty good path to solving the problem, as above. And drivers crashing? Yes, things will go wrong at that point, live with it.

    Originally posted by Martin
    Also in the case of KDE Plasma Workspaces the window manager is not at all responsible for handling the resolution. This is done by a daemon called
    krandr. I will not add code to change the resolution as that is nicely handled by krandr.
    KDE has probably the worst resolution handling of any DE, check the KDE bug tracker for all the ways it's deficient, and maybe take this as an opportunity to fix those issues too (no memory of previous settings for external monitors meaning manual configuration every time a monitor is (dis)connected, no auto-configuration of external monitors on attach/detach, no reduction in virtual desktop size on disabling of a monitor meaning logout or shutdown is required to return desktop to normal functionality, etc). To say anything is 'nicely' handled by krandr is a joke.

    Originally posted by Martin
    Last but not least I have never understood the need to change the resolution. If the screen is larger than the resolution supported by the game, why not run
    in windowed mode? At least I (though I'm not a gamer) hate the pixel graphics I get when running a game which supports only 1024x768 on my full HD computer screen.
    The biggest joke of all. It's obvious that Martin does not play games, but windowed gaming removes all immersion, and not all hardware is capable of running all games at full native screen resolution (which is really the only reason anyone wants to change resolution when playing a game - to solve poor performance). The idea others have mentioned of doing software scaling is not really a solution for this very reason - that will suck additional processing in the very circumstance where the hardware is already struggling.
    Last edited by pdffs; 10-25-2012, 10:22 AM. Reason: Reduce email wrapping

    Comment


    • #17
      Originally posted by Weegee View Post
      ... and now let's make this even funnier by bringing in windowed borderless fullscreen mode!

      Or wait, wouldn't this fix some problems because then the game actually runs in a window?
      On my gaming pc (which runs windows), I always run games in borderless windowed mode if they have that option. combines some of the advantages of fullscreen mode and windowed mode, allows for instant alt tabbing, and removes tearing without a big performance hit (Although from what I see with the current state of some linux compositors they may give a bigger hit than aero)

      Comment


      • #18
        Originally posted by Rigaldo View Post
        The solution mentioned above for Wayland, by Kazade, sounds best IMO and less problematic and would probably satisfy Martin as well.
        I'm very glad they're looking into it.
        That solution (resampling each frame before displaying it) will slow things down, though. Resizing 2 MPixels with something reasonable (bicubic interpolation, for example) is not the most expensive operation in the world, but if you do it 30x per second it is not negligable.

        Comment


        • #19
          BTW, I agree that KDE should fix the resizing problem.

          People change resolutions, period. At least for some of them, this is necessary. I have a multi-seat setup, where the two seats use monitors with different resolutions (I don't need to buy a new monitor, I have two perfectly fine ones, so I use that -- they just happen to have different native resolutions). I often change the seat, depending on which one is free at the moment (somebody else from the household might be using my preferred seat).

          Each time I do this, it messes up the panel and widget configuration.

          It's not just a "gaming" problem. It's a legitimate gripe for many people. I understand that it's a technical challenge for Plasma, the way it is coded right now, but it's still a legitimate gripe.

          Comment


          • #20
            been using KDE 4.8.5 and this SUCKS the same as Gnome 3. no wonder that the linux desktop is broken. Hopefully with wayland and some good DE tailored on wayland will have better response.

            Comment


            • #21
              Originally posted by ua=42 View Post
              Ummm... you are advocating making games slower? Linux is already bad performance wise. The interface idea sounds like it will tell KDE or other window managers that a resolution change is temporary and should save the location of its widgets, so that it can restore them when the change is over. That would take 4 integers per widget, with no performance hit for gaming.

              Windowed mode for many games, makes the game .... worse. Any game with scrolling (rts, strategy, anything with a scene bigger than the window.), menus that pop up when the cursor is at the edge of the screen (Sim games, theme hospital, etc) and any game with ui elements near the minimize and exit buttons on the window(you can accidently minimize and exit) would have serious issues with being played in a windowed mode. Not to mention its ugly (immersion matters!). Windowed mode is not an option for most games.

              We are talking about different things. I was referring to the idea of using a faux FS method. The performance hit I am referring to is this.
              Anytime you upscale a graphic it eats performance because it has to scale and redraw, probably at least bicubic so it doesn't look like crap. FWIG is that your resolution would not change but use a buffer that pretends to be a fullscale window at say 1600x900 then upscales it to your native 1920x1080 (at fullscreen) leaving your desktop alone. My AMD card sorta does this at least to the monitor, it scales in GPU so the monitor doesn't really change resolutions, not that useful actually.

              "Bad performance wise"? WTF are you smo.... oh for games, yeah that.

              Comment


              • #22
                I hope this will help Eyefinity setups also, just set mine up with radeon/mesa/xrandr combined framebuffer (5888x1152 O_O)

                Comment


                • #23
                  Question

                  Does "full screen" mean "full screen" or "full desktop"?

                  Inquiring minds with multiple screens want to know

                  Not even my computer will give me a straight answer, different programs behave differently

                  Comment


                  • #24
                    Originally posted by Bomyne View Post
                    This is something I hate about games on Windows as much as Linux. Please don't ever change my resolution for me. Your game should run at 1080p without issue... and if it can't, give me the choice (Before you change resolution) or put your game in a box with black border around it. Please don't automatically assume I want to run a game at 640x480 (Esp if it was written anywhere after 2005)
                    640x480 is the default resolution for most Windows games for no other reason then GPUs are guaranteed to accept that resolution, even without the presence of a GPU driver. Its more or less guaranteed to be supported by both the GPU and Display, so its the safest fallback mode. Granted, games *should* be coded to attempt the desktop default resolution first though...

                    Comment


                    • #25
                      Originally posted by ua=42 View Post
                      Ummm... you are advocating making games slower? Linux is already bad performance wise. The interface idea sounds like it will tell KDE or other window managers that a resolution change is temporary and should save the location of its widgets, so that it can restore them when the change is over. That would take 4 integers per widget, with no performance hit for gaming.
                      I know on Windows, theres a hidden file somewhere that saves the desktop icon setup. Thats why running a fullscreen application at a low resolution won't re-order your desktop applications. Thats probably the way Linux should go, since theres no performance impact, aside from the space to store the location of each widget on the desktop.

                      Windowed mode for many games, makes the game .... worse. Any game with scrolling (rts, strategy, anything with a scene bigger than the window.), menus that pop up when the cursor is at the edge of the screen (Sim games, theme hospital, etc) and any game with ui elements near the minimize and exit buttons on the window(you can accidently minimize and exit) would have serious issues with being played in a windowed mode. Not to mention its ugly (immersion matters!). Windowed mode is not an option for most games.
                      QFT. Try playing a combat flight sim in Window mode using a mouse.

                      Comment


                      • #26
                        Originally posted by ua=42 View Post
                        Ummm... you are advocating making games slower? Linux is already bad performance wise. The interface idea sounds like it will tell KDE or other window managers that a resolution change is temporary and should save the location of its widgets, so that it can restore them when the change is over. That would take 4 integers per widget, with no performance hit for gaming.

                        Windowed mode for many games, makes the game .... worse. Any game with scrolling (rts, strategy, anything with a scene bigger than the window.), menus that pop up when the cursor is at the edge of the screen (Sim games, theme hospital, etc) and any game with ui elements near the minimize and exit buttons on the window(you can accidently minimize and exit) would have serious issues with being played in a windowed mode. Not to mention its ugly (immersion matters!). Windowed mode is not an option for most games.
                        As far as I can remember, Linux generally had the performance advantage. From the recent work from Valve, who declared Linux having about a 10fps advantage to Windows, to going all the way back to say Counter Strike 1.5 and before, when the Half Life engine still had its original OpenGL renderer. Did you know that consistently, while using the OpenGL renderer via Wine, that Linux was getting 5-15+fps -more- than running the game natively in Windows/DirectX? Sorry, not meaning to go off topic, but I have seen a lot of people claiming "performance" issues for gaming in Linux, which is just not true in any way. Sure, it may have some issues with drivers, but the Nvidia blob is on par with Windows [gaming performance], AMD's blob is, well, lacking from the last time I tried it (laptop graphics, about 1-2 years ago), and Intel's OSS driver is fantastic and evolving at a crazy fast rate - just too bad their hardware is rather subpar for gaming in general

                        Comment


                        • #27
                          Originally posted by BadgerRush View Post
                          Sorry, this will be a rant:

                          -- Start Rant --



                          This whole “but changing resolution breaks our desktop icons” think is ridiculous, this is a bug on the KDE desktop and should be fixed there. His reasoning is similar to saying “some cars have bad brakes so lets forbid everyone from driving downhill”.



                          In other words, he don't play games therefore something essential to games is not important. Come on, “run in windowed mode”? Since he doesn't play, I would encourage him to only watch videos on the video's native resolution (no maximize, no full-screen, even on a TV, if the source is not fullhd then it should be a tiny box in the middle of the screen) after all he hates those stretched pixels, lets see how mush he likes his windowed mode after that.

                          I hate when some developer dismiss the requirements of a huge group of users (some times majority) just because he/she don't need it. I know the FOSS motto is “if you don't like it change it yourself” but in this case (and may others) there is someone working on changing/fixing and he is pressing against.

                          -- End Rant --

                          Sorry, I needed to take this out of my chest.
                          +1
                          I had this feeling about this particular problem for a long time.
                          Fullscreen native Linux games just doesn't work properly, it sucks so hard in a dual-screen setup that I had to install that other operating system where games work properly.

                          Comment


                          • #28
                            Originally posted by gamerk2 View Post
                            I know on Windows, theres a hidden file somewhere that saves the desktop icon setup. Thats why running a fullscreen application at a low resolution won't re-order your desktop applications. Thats probably the way Linux should go, since theres no performance impact, aside from the space to store the location of each widget on the desktop.
                            Icon positions are saved/restored per resolution.
                            Source: http://www.xfce.org/download/changelogs/4.10pre1

                            Comment


                            • #29
                              Originally posted by Kazade View Post
                              I actually started a very similar thread on the Wayland mailing list a couple of years ago: http://lists.freedesktop.org/archive...er/000080.html

                              The general concensus there was that games shouldn't be changing resolution, but instead, if the game requests a fullscreen resolution - the WM should provide the game a surface of the size it requested but then upscale that to fullscreen, perhaps even with sensible black-barring if the aspect ratio doesn't match the native resolution.

                              I have no idea if this got implemented in Wayland. If someone is on the wm-spec-list it might be useful to post the above link on that thread.
                              That sounds needlessly inefficient. Applications should be able to request a screen change (then create a surface to match that resolution)... even if the WM doesn't respect that request, there should still be a protocol in place (though I agree direct access to change the resolution shouldn't be given or promoted). It's mind-boggling to think that Windows/Mac have been working with resolution-change for years while Linux just can't handle it bug-free, on part because the core WM developers don't have enough perspective to see why such a thing is useful. It's to unrealistic to simply expect no application to change the resolution, so the WM should be working towards handling the situation bug-free.

                              Comment


                              • #30
                                uneven monitor sizes

                                If you have multiple monitors and they aren't the same size, there is a "blank spot" on your desktop that won't appear on either screen.

                                Some programs are smart about this, they don't display stuff in the part you can't see

                                and then there are programs that have no idea, they just use the whole desktop rectangle and they are oblivious to the fact that you can't see everything.

                                Honestly I think "full screen" sucks on every platform. My computer is not an Apple II, it can run more than one program at once. There should be a "virtual full screen" that may or may not be the actual full screen. This way I can full-screen a program that wants to be full-screen and I can still get to other stuff on my desktop. I can do this now with vmware but it would be nice if I didn't have to use a virtual machine.
                                Last edited by frantaylor; 10-25-2012, 12:17 PM.

                                Comment

                                Working...
                                X