feat(render3d): DLSS super resolution and Reflex through NVIDIA Streamline
streamline.ludic: slInit before the Vulkan instance, feature support per adapter, a frame token per frame, Reflex sleep and PCL latency markers, and DLSS super resolution on the lit HDR frame (Halton jitter, depth + zero motion vectors with camera motion from clipToPrevClip, matrices carrying the Vulkan path's y flip and depth remap). Bloom, tonemap and sharpen read the upscaled size. The device asks for privateData and present_id, which Streamline's hooks need. R3D_DLSS / R3D_REFLEX / R3D_SL_LOG for tests. gpu_feature_implemented: DLSS and Reflex. ludic bundle (Windows): app native "<dir>" copies native libraries beside the executable. Verified on an RTX 3070 Ti: DLSS Quality evaluates 1280x720 -> 1920x1080. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
ad8f44b78a
commit
ac539b0150
10 changed files with 529 additions and 6 deletions
|
|
@ -179,6 +179,7 @@ function r3d_frame(time: int) -> void {
|
|||
r3d_resize()
|
||||
}
|
||||
r3d_time = time
|
||||
gsl_frame_start()
|
||||
# the frame's counters close here, before any of its own work: the window each of them
|
||||
# covers is exactly one frame, from this point to the same point next time
|
||||
prof_gen_frame()
|
||||
|
|
@ -246,7 +247,9 @@ function r3d_frame(time: int) -> void {
|
|||
water_draw(post_depth_copy.depth)
|
||||
prof_end()
|
||||
}
|
||||
post_color = post_hdr.color
|
||||
post_color = post_hdr.color; post_color_w = post_w; post_color_h = post_h
|
||||
# DLSS super resolution: the lit frame up to the display's size, before anything reads it
|
||||
if gsl_dlss_live() { prof_begin("DLSS"); post_color = gsl_dlss_eval(); prof_end() }
|
||||
if not post_no_gi { prof_begin("SSAO/GI"); post_ssao_pass(); prof_end() }
|
||||
if r3d_debug_max { tex_max(post_hdr.color, post_hdr.w, post_hdr.h, "hdr") }
|
||||
prof_begin("bloom")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue