1bb7ef50ba
Required a decent refactor of the protocol to be more swapchain based. Tested with Dota 2 + `-vulkan -vulkan_enable_google_display_timing` Should hopefully improve latency/pacing in nested a good amount too.
26 lines
758 B
C++
26 lines
758 B
C++
#pragma once
|
|
|
|
// Try to figure out when vblank is and notify steamcompmgr to render some time before it
|
|
|
|
struct VBlankTimeInfo_t
|
|
{
|
|
uint64_t target_vblank_time;
|
|
uint64_t pipe_write_time;
|
|
};
|
|
|
|
int vblank_init( void );
|
|
|
|
void vblank_mark_possible_vblank( uint64_t nanos );
|
|
|
|
uint64_t vblank_next_target( uint64_t offset = 0 );
|
|
|
|
extern std::atomic<uint64_t> g_uVblankDrawTimeNS;
|
|
|
|
const unsigned int g_uDefaultVBlankRedZone = 1'650'000;
|
|
const unsigned int g_uDefaultMinVBlankTime = 350'000; // min vblank time for fps limiter to care about
|
|
const unsigned int g_uDefaultVBlankRateOfDecayPercentage = 980;
|
|
|
|
extern uint64_t g_uVblankDrawBufferRedZoneNS;
|
|
extern uint64_t g_uVBlankRateOfDecayPercentage;
|
|
|
|
extern std::atomic<bool> g_bCurrentlyCompositing;
|