feat(vk): load NVIDIA Streamline's interposer as the Vulkan loader on request
vk_sl_prefer(1) before Vk.open() makes the Windows loader try sl.interposer.dll beside the executable and fall back to vulkan-1.dll. Thunks for the sl* exports and for calling feature functions from slGetFeatureFunction; macOS stubs. Verified on an RTX 3070 Ti: slInit eOk, DLSS, DLSS-RR, Reflex and PCL supported, DLSS-G reports no supported adapter (needs RTX 40). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
fd750f3588
commit
ad8f44b78a
3 changed files with 362 additions and 0 deletions
|
|
@ -108,3 +108,77 @@ entry:
|
|||
%r = zext i1 %there to i32
|
||||
ret i32 %r
|
||||
}
|
||||
|
||||
; ---- Streamline: Windows only. The same symbols, so a program that calls them links everywhere. ----
|
||||
define void @lvk_sl_prefer(i32 %on) {
|
||||
entry:
|
||||
ret void
|
||||
}
|
||||
define i32 @lvk_sl_active() {
|
||||
entry:
|
||||
ret i32 0
|
||||
}
|
||||
define i32 @lsl_slInit(ptr %a0, i64 %a1) {
|
||||
entry:
|
||||
ret i32 -1
|
||||
}
|
||||
define i32 @lsl_slShutdown() {
|
||||
entry:
|
||||
ret i32 -1
|
||||
}
|
||||
define i32 @lsl_slIsFeatureSupported(i32 %a0, ptr %a1) {
|
||||
entry:
|
||||
ret i32 -1
|
||||
}
|
||||
define i32 @lsl_slIsFeatureLoaded(i32 %a0, ptr %a1) {
|
||||
entry:
|
||||
ret i32 -1
|
||||
}
|
||||
define i32 @lsl_slGetFeatureRequirements(i32 %a0, ptr %a1) {
|
||||
entry:
|
||||
ret i32 -1
|
||||
}
|
||||
define i32 @lsl_slGetFeatureFunction(i32 %a0, ptr %a1, ptr %a2) {
|
||||
entry:
|
||||
ret i32 -1
|
||||
}
|
||||
define i32 @lsl_slGetNewFrameToken(ptr %a0, ptr %a1) {
|
||||
entry:
|
||||
ret i32 -1
|
||||
}
|
||||
define i32 @lsl_slSetTagForFrame(ptr %a0, ptr %a1, ptr %a2, i32 %a3, ptr %a4) {
|
||||
entry:
|
||||
ret i32 -1
|
||||
}
|
||||
define i32 @lsl_slSetConstants(ptr %a0, ptr %a1, ptr %a2) {
|
||||
entry:
|
||||
ret i32 -1
|
||||
}
|
||||
define i32 @lsl_slEvaluateFeature(i32 %a0, ptr %a1, ptr %a2, i32 %a3, ptr %a4) {
|
||||
entry:
|
||||
ret i32 -1
|
||||
}
|
||||
define i32 @lsl_slFreeResources(i32 %a0, ptr %a1) {
|
||||
entry:
|
||||
ret i32 -1
|
||||
}
|
||||
define i32 @lsl_call_p(ptr %fn, ptr %a0) {
|
||||
entry:
|
||||
%r = call i32 %fn(ptr %a0)
|
||||
ret i32 %r
|
||||
}
|
||||
define i32 @lsl_call_pp(ptr %fn, ptr %a0, ptr %a1) {
|
||||
entry:
|
||||
%r = call i32 %fn(ptr %a0, ptr %a1)
|
||||
ret i32 %r
|
||||
}
|
||||
define i32 @lsl_call_ppp(ptr %fn, ptr %a0, ptr %a1, ptr %a2) {
|
||||
entry:
|
||||
%r = call i32 %fn(ptr %a0, ptr %a1, ptr %a2)
|
||||
ret i32 %r
|
||||
}
|
||||
define i32 @lsl_call_ip(ptr %fn, i32 %a0, ptr %a1) {
|
||||
entry:
|
||||
%r = call i32 %fn(i32 %a0, ptr %a1)
|
||||
ret i32 %r
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue