I am using AcquireNextFrame from the Desktop Duplication API to capture the screen. The refresh rate of the screen is 120Hz. When running a game at 120FPS, the screen capture can capture frames at 120FPS. But when increasing the frame rate of the game to 240FPS, the screen capture actually drops to around 70FPS. My guess would be that the extra frames are being accumulated which adds an overhead, but I am not sure. Is there a way to avoid this performance drop?
DXGI Desktop Duplication Screen Capture Speed
7.8k Views Asked by availn At
1
There are 1 best solutions below
Related Questions in C++
- How to immediately apply DISPLAYCONFIG_SCALING display scaling mode with SetDisplayConfig and DISPLAYCONFIG_PATH_TARGET_INFO
- Why can't I use templates members in its specialization?
- How to fix "Access violation executing location" when using GLFW and GLAD
- Dynamic array of structures in C++/ cannot fill a dynamic array of doubles in structure from dynamic array of structures
- How do I apply the interface concept with the base-class in design?
- File refuses to compile std::erase() even if using -std=g++23
- How can I do a successful map when the number of elements to be mapped is not consistent in Thrust C++
- Can std::bit_cast be applied to an empty object?
- Unexpected inter-thread happens-before relationships from relaxed memory ordering
- How i can move element of dynamic vector in argument of function push_back for dynamic vector
- Brick Breaker Ball Bounce
- Thread-safe lock-free min where both operands can change c++
- Watchdog Timer Reset on ESP32 using Webservers
- How to solve compiler error: no matching function for call to 'dmhFS::dmhFS()' in my case?
- Conda CMAKE CXX Compiler error while compiling Pytorch
Related Questions in WINAPI
- How to immediately apply DISPLAYCONFIG_SCALING display scaling mode with SetDisplayConfig and DISPLAYCONFIG_PATH_TARGET_INFO
- Changing the theme of a #32768 (menu) window class at runtime
- Issue with GetOpenFileName while debugging
- How to populate a ListBox with SendMessage?
- Is there a function to end a child process?
- HDR video publishing
- Frameless Qt + WinAPI maximized window size is bigger than the availableGeometry()
- Mount .iso file with python
- What is Win32 x86-64 CONTEXT::VectorRegister for?
- WinAPI - right mouse drag & drop and IContextMenu
- Win32 per-filesystem cache tuning?
- Client connection timeout during Android & Windows PC communication via sockets
- MessageBoxEx sometimes shows as hollow window, border only, and only on Windows 11
- Win32api send message and Pydirectinput and Powertoy (Keyboard Manager ) Not working when open the application
- Would it be possible to run an application right after csrss.exe loads? (Windows)
Related Questions in SCREEN-CAPTURE
- Screen Capture API _ Set a specific Screen
- How to capture a small screenshot (cursor included) around mouse?, with AutoHotkey
- Attempt to convert pData provided by Direct3d11 to buffer, but error when resize window
- Why is the "cursor" contraint in MediaTrackSettings for video not supported?
- How do i get my in app screenshot to work properly
- Webrtc screen capture resolution android
- Media streams capturing issue in MV3 (chrome extension) with respect to constraints
- Pillow ImageGrab not working on Steam window
- Java AWT Robot: Why doesn't a smaller screen capture equal a subimage of a capture of the entire screen?
- C# Windows.Media.Transcoding outputting video stream instead of a file
- KeePassXC blocking screen capture
- Getting full screenshot of a specific window, despite the window location
- Desktop Duplication API - DXGI_OUTDUPL_FRAME_INFO.LastPresentTime is 0 for the first 5 minutes after I restart my computer
- Is there a way to make a cv2 videoCapture, capture the whole screen of my computer?
- How to add screenshot feature in accessibility service in android studio
Related Questions in DXGI
- E_INVALIDARG when I encode the NV12 texture?
- How COM warning works? how does the device get initialized?
- Why does CreateDevice() for ID3D11Device return error 0x80070057: "The parameter is incorrect"?
- C++ capture screen using DirectX11
- RGBA vs BGRA pixel layout
- Create DXGIFactory
- How to implement SetFullscreenstate properly?
- How to distinguish a physical D3D adapter from a virtual adapter used by the Remote Desktop Protocol?
- What is the rationale of screen tearing?
- Are DirectX 12 "Full Screen Exclusive Windows" forced to run at the same refresh rate as DWM?
- RESOURCE_MANIPULATION ERROR #281 when calling ID3D11DeviceContext::CopySubresourceRegion to render video from a webcam
- Shared DirectX texture2D between UWP and win32 app
- How to change MSAA settings after creating the swap chain D3D11
- Sharing ID3D11Texture2D between processes yields invalid argument error
- How to programmatically select dedicated Intel GPU?
Related Questions in DESKTOP-DUPLICATION
- E_INVALIDARG when I encode the NV12 texture?
- ERROR_BUSY when calling Desktop Duplication API inside DLL from an OpenGL application
- Desktop Duplication API - DXGI_OUTDUPL_FRAME_INFO.LastPresentTime is 0 for the first 5 minutes after I restart my computer
- Alternatives to Desktop Duplication API that work when screen is locked
- Desktop Duplication - Limiting the Framerate
- Desktop Duplication API returns blank image inside Windows Sandbox
- (windows nvidia video codec sdk) How to set up an hevc encode session in c++ that asynchrnously encodes a dxgi surface texture and outputs to stdout?
- Windows Capture Performance (DXGI) Bug
- C#/C++ application for remote Login on Desktop like Remote Desktop does
- lDesktopResource->QueryInterface(I&lAcquiredDesktopImage); is stopping the second loop
- Errors while trying to capture HDR content with DXGI OutputDuplication
- DXGI/NvEnc YUV44 10bit format compatability
- C++ Innacessible methods of an exnternal struct within a scope resolution operator
- Is it possible to crop screenshot at gpu level
- Desktop Duplication API - Screen Capture doesnt work on 1366x768 (opencv)
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Desktop Duplication API by design accumulates monitor ("output" in DXGI terms) updates until you request them via
AcquireNextFrame. The API is not designed to capture every update in first place. Additionally, you don't specify whether you are doing anything else in theAcquireNextFrameloop or you just measuring performance (the language of the question suggest the latter though).That is, it is quite expected that with a really intensive frontend application output duplication API misses the updates. There is no much flexibility there either. Perhaps the most important hint available MSDN mentions in
ReleaseFrameRemarks section:That is, calling
ReleaseFrameearlier or later affects internal behavior of the API. It is either accumulating updates in general or also keeps replicating the actual payload data into duplicated frame resources.