NOTE: This document applies to non-production, development builds only. JSON configuration is disabled in production builds. Additionally, you will need to turn off any checks for signed libraries when loading Streamline libraries in order to be able to load the non-production libraries.
Note that the sl.interposer.json
file is loaded by finding the first copy in the following ordered list of paths:
- The directory containing the application's executable.
- The application's current working directory at the point at which the app calls
slInit
.
Note that the example configuration JSON files (located in ./scripts/
) include some tags that are disabled, but visible as a form of "comment"; this is done by prefixing the correct/expected tag name with underscore (_):
Functional:
{
"enableInterposer": false,
}
Non-functional "comment":
{
"_enableInterposer": false,
}
Place the sl.interposer.json
file (located in ./scripts/
) in the game's working directory. Edit the following line(s):
{
"enableInterposer": false,
}
When the game starts, if the flag is set to off, interposing will be completely disabled. This can be used to check for added CPU overhead in games.
Place the sl.interposer.json
file (located in ./scripts/
) in the game's working directory. Edit the following line(s):
{
"forceProxies": true
}
NOTE: This effectively forces
slGetNativeInterface
to return proxies all the time. Useful for debugging and redirecting/changing behavior by intercepting all APIs for command queues, lists, devices etc.
Place the sl.interposer.json
file (located in ./scripts/
) in the game's working directory. Edit the following line(s):
{
"trackEngineAllocations": true
}
NOTE: This only works for D3D12 at the moment.
Place the sl.interposer.json
file (located in ./scripts/
) in the game's working directory. Edit the following line(s):
{
"pathToPlugins": "N:/My/Plugin/Path"
}
By default SL looks for plugins next to the executable or in the paths provided by the host application (see sl::Preferences). If pathToPlugins
is provided in JSON it overrides all these settings.
NOTE: The
sl.interposer.dll
still needs to reside in the game's working directory in order to be found and loaded properly. All other SL plugin dlls should reside in the path referenced in thepathToPlugins
setting.
Place the sl.interposer.json
file (located in ./scripts/
) in the game's working directory. Edit the following line(s):
{
"showConsole": true,
"logLevel": 2,
"logPath": "N:/My/Log/Path"
}
To modify NGX logging, place sl.common.json
file (located in ./scripts/
) in the game's working directory. Edit the following line(s):
{
"logLevelNGX": 2,
}
Log levels are off
(0), on
(1) and verbose
(2). Default values come from the sl::Preferences
structure set by the app.
NOTE: NGX logging gets redirected to SL so NGX log files will NOT be generated.
Place the sl.interposer.json
file (located in ./scripts/
) in the game's working directory. Edit the following line(s):
{
"loadAllFeatures": true,
"loadSpecificFeatures": [0,1],
}
NOTE: This entry tells the interposer to load all features or a specific subset using the unique Ids from
sl.h
.loadAllFeatures
supersedesloadSpecificFeatures
if set to true.
Place the sl.common.json
file (located in ./scripts/
) in the game's working directory. Edit the following line(s):
{
"keys": [
{
"alt": false,
"ctrl": true,
"shift": true,
"key": 36,
"id": "stats"
},
{
"alt": false,
"ctrl": true,
"shift": true,
"key": 45,
"id": "debug"
}
]
}
Note that "key"
lines specify the decimal number of the Windows Virtual Key Code (VK_*
) for the desired key.
Place the sl.dlss_g.json
file (located in ./scripts/
) in the game's working directory. Edit the following line(s):
{
"_comment_compute" : "use compute queue or not, if game crashes set this back to false since some drivers might be buggy",
"useCompute": true,
"_comment_frames" : "optimal defaults - 1 @4K, 2 @1440p, 3 @1080p",
"numFramesToGenerate": 1,
"_comment_mode" : "possible modes cur, prev, auto - async flush current or previous frame or decide automatically",
"mode" : "auto",
"showDebugText" : true
}