• 0 Posts
  • 5 Comments
Joined 1 year ago
cake
Cake day: June 25th, 2023

help-circle



  • there’s a lot of stuff you can do, and you can end up with something usable, though not great, at least not in my experience. NVidia’s drivers are to blame, they don’t really work well with opengl and have lots of issues (and also regressions).

    The 550 beta driver is ok-ish, steam flickers but I can play games. Drivers before 535 also somewhat worked, though it really depends on your GPU.

    But I don’t think you will have it working acceptably without some work.

    Here’s some pointers on stuff to try:

    • check protondb for how other people got games to work, you can filter by your GPU.
    • try running through gamescope or gamemoderun
    • try the modeset=1 (and maybe fbdev) kernel parameters for nvidia drm
    • and there’s tons of env vars and other things that can help, I couldn’t summarize them all here, but as a pointer: XWAYLAND_NO_GLAMOR=1, WLR_RENDERER=vulkan, LIBVA_DRIVER_NAME=nvidia, GBM_BACKEND=nvidia-drm (for the drm above), __GLX_VENDOR_LIBRARY_NAME=nvidia
    • try the beta drivers, if those are available somehow (I’m on arch so they were easy to install), or just different driver versions in general.

    The above is meant more as hints than something to copy paste, so use at your own risk. You can of course always just install a second DE with X11 and log into that for gaming and use your regular DE for everything else


  • This would be trivial in python with something like

    from typing import overload
    from enum import Enum
    
    @overload
    def hash(password: str, algorithm: BCryptAlgorithm, options: BCryptOptions):
        ...
    
    @overload
    def hash(password: str, algorithm: Argon2Algorithm, options: Argon2Options):
        ...
    
    def hash(password: str, algorithm, options):
        [...implementation...]
    

    Of course it’s python, so at runtime it wouldn’t matter, but the static type checker would complain if you called hash with BCryptAlgorithm and Argon2Options. You could also have it return different types based on the arguments and then in call sites it’d know which type will be returned based on the type of the arguments. And only the last function has am implementation, the @overload ones are just type signatures.

    It’s documented here.