RTSS still hooked to Vulkan no matter what I do...

Discussion in 'Rivatuner Statistics Server (RTSS) Forum' started by BlackScout, Jun 8, 2020.

  1. BlackScout

    BlackScout Active Member

    Messages:
    83
    Likes Received:
    30
    GPU:
    RTX 3060 12GB
    I am currently testing DXVK on Windows due to claims of increased performance in DX9 titles and such... (which turned out to be true so I'm really happy about it)

    What I noticed is that I'm getting crashes from an RTSS DLL which would be understandable if RTSS was in fact running.

    Turns out, it is not running but it is getting hooked to the game's EXE/DXVK Wrapper no matter what...

    Proof:
    [​IMG]
    [​IMG]

    How is it possible that RTSS still gets hooked to the Vulkan API/Game/Whatever it is even while closed??
    It makes me feel like it's hooking itself to the driver or some pseudo-parent process that is invisible to me.

    Note that DXVK gets hooked into the game once the process is executed.
     
  2. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    17,127
    Likes Received:
    6,691
    Google Vulkan implicit layers.
     
    BlackScout likes this.
  3. BlackScout

    BlackScout Active Member

    Messages:
    83
    Likes Received:
    30
    GPU:
    RTX 3060 12GB
    Thanks for the tip! Found a solution on RenderDoc's guide to Vulkan layers.
    Linking it here in case someone Googles for something similar
    https://renderdoc.org/vulkan-layer-guide.html

    EDIT:
    Edit the JSON to add the "enable_environment" thingy so it doesn't automatically hook? I guess?
    Not sure how that works but it didn't break anything for me, the overlay now works as intended and I see no crashes.

    32-Bit example
    Code:
    {
      "file_format_version" : "1.0.0",
      "layer" : {
        "name": "VK_LAYER_RTSS",
        "type": "GLOBAL",
        "library_path": ".\\RTSSVkLayer32.dll",
        "api_version": "1.1.73",
        "implementation_version": "1",
        "description": "RTSS overlay hook bootstrap",
        "functions": {
          "vkGetInstanceProcAddr": "RTSSVkLayer_GetInstanceProcAddr",
          "vkGetDeviceProcAddr": "RTSSVkLayer_GetDeviceProcAddr"
        },
        "enable_environment": {
          "ENABLE_SAMPLE_LAYER": "1"
        },
        "disable_environment": {
          "DISABLE_RTSS_LAYER": "1"
        }
      }
    }
     
    Last edited: Jun 8, 2020
  4. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    17,127
    Likes Received:
    6,691
    Wrong. This way you completely disable the layer and full vulkan overlay functionality system wide. Correct solution would be defining
    DISABLE_RTSS_LAYER for a target incompatible process only.
     
    BlackScout likes this.

  5. BlackScout

    BlackScout Active Member

    Messages:
    83
    Likes Received:
    30
    GPU:
    RTX 3060 12GB
    I see, it's strange because the overlay works now. Not sure if I somehow fixed it some other way or what...
     
  6. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    17,127
    Likes Received:
    6,691
    It doesn't work because you don’t see all usage scenarios at all, sorry. For example with killed layer it won’t be possible to start RTSS when Vulkan application is already active and get Vulkan overlay working in such case. There are multiple other dynamic Vulkan loading specific scenarios when overlay stop working without a layer too.
     

Share This Page