aboutsummaryrefslogtreecommitdiff

SDK and Highlights (NVH) Developer FAQ

This document is a collection of common questions, information or issues that can come up during an integration of NVH. It is not conclusive, but should provide leads to common problems.

Testing Error Codes

  • Be warned that there are non-zero success codes in the SPH SDK. We recommend developers to use the macro below (defined already in sdk_types_ipc.h FYI)
inline bool NVGSDK_SUCCEEDED(NVGSDK_RetCode r) {return r >= 0;}

NVH Paths

Here are some ujseful paths for various files that NVH (and/or GFE) uses

What Where
User permissions C:\Users\\AppData\Local\NVIDIA Corporation\GfeSDK\\permissions.json
Config & MetaData json C:\Users\\AppData\Local\NVIDIA Corporation\NVIDIA Share\Highlights\
NVH debug logs C:\Users\\AppData\Local\NVIDIA Corporation\GfeSDK
Default Temp Videos C:\Users\\AppData\Local\Temp\Highlights*
Note that this is a setting in GFE client for Highlights. Local users can easily change the default.
Note, some titles may be under "Base Profile", if you have enabled beta experimental features or app is not recognized by GFE.

Does Shadow Play Highlights support OGL/Vulcan/DX9/DX10?

  • The GFE back-end to capture video for Highlights is not using a particular graphics API, and neither is the Highlights SDK. Thus, there is no dependency and all graphics APIs are supported.

Can I avoid the notification overlay banner when capturing a highlight?

  • Yes. You can make use of NVGSDK_HighlightType::NVGSDK_HIGHLIGHT_TYPE_UNANNOUNCED which will disable the notification overlay
  • Note that this value is a bitfield, so you should logical OR it with your existing type value

UWP Support?

  • UWP is not yet supported in NVIDIA Highlights.

Is SPH SDK DLL signed?

  • Yes. It's recommended to securely load the DLL by verifying the location and signature of the DLL.

Maximum or minimum for the values NVGSDK_VideoHighlightParams.startDelta and NVGSDK_VideoHighlightParams.endDelta?

  • There is no numeric limit on the startDelta. Anything outside the bounds of the current capture session start point just cuts at the capture session start. The endDelta time is limited to 60 seconds into the future from the request timestamp. This is an arbitrary limit inside ShadowPlay, which could be adjusted to be longer if a developer needed, howerver, such a request can be handled by asking the developer to move their call later with a longer startDelta.

  • Note: Large positive values for endDelta will mean that notifications will not appear until that delta is reached. Even if the match will have ended.

Why does my windowed or borderless window game minimizes/pause when the any GFE dialogs come up?

  • This is a product of game design and Share Overlay design. When a game is windowed or running borderless window, the GFE overlay UIs are drawn as a UI window at the top of the Z-order stack. This means the game actually loses focus in such cases. Different games are implemented differently to handle this; some minimize, some pause, some continue to play but drop sound. Our guideless to Highlight-enabled games is to not behave different when they lose focus, so that the GFE UI coming up is not a jarring experience.

Unable to user mouse to click Yes button to accept permissions to user NVH in game

  • This issue is when you run a game on a machine for the first time enabling NVH. We will bring up a permissions dialog to ask the user if they would like to enable NVH for the game. However, the user is unable to click the button and/or the dialog disappears before they can interact.
  • The reason this happens is that the game called to NVGSDK_RequestPermissionsAsync before it had initialized the input system(mouse, keybd, etc). This causes the input hooking that GFE deos to fail and it is unable to recognize mouse clicks. Please ensure that you initialize GFE SDK after any relevant input or graphics

My captures highlight videos are too short! I expected N seconds and only got M seconds.

  • There is a known issue if you call NVGSDK_Highlights_SetVideoHighlightAsync too soon after calling NVGSDK_Highlights_OpenGroupAsync. The reason is that the call to OpenGroup needs to initialize a recording buffer which is an async operation; that takes a few seconds.
  • Thus please do not call those calls back to back. A good design would be to open a group at start of a logical play session, etc.

Why does NVH not capture my game in windowed (or borderless) mode?

  • For games that have not been registered to GFE, NVH on windowed mode will not work by default. This is because the Shadowplay back-end cannot detect the application window without a GFE profile. However, locally you can enable capture by allowing desktop capture through GFE settings. Note this will result in the entire primary display being captured with the highlight.

  • Share Overlay → Settings → Privacy Control → Desktop Capture

Miscellaneous/General Questions

Highlights_Share_Settings.png

Can I limit how much HDD space highlights will take up?

  • Yes, this is controlled via the GeForce Experience settings menu. they will appear in the GFE share overlay (Alt-Z to open). They appear in the settings under "Highlights". See the image above.

How can a user filter specific highlights on/off?

  • After a game has initialized the SPH SDK and created highlights, they will appear in the GFE share overlay (Alt-Z to open). They appear in the settings under "Highlights". See image above.

How are highlights managed in the temporary files location?

  • Highlights are added to the temp location until the maximum disk space allocated is hit. Once that happens, then space is reclaimed by deleting oldest first, deleting just enough to get the new highlight(s) saved into that folder under the allowed limit. Note the location on HDD where temp videos are stored is configured in the Share Overay settings menu. See image above.

  • If the user reduces the maximum disk space (for example, dragging it from 5GB to 2GB), then there is a delete option to delete all the oldest ones first to get under the 2GB limit.

  • If the user sets a small enough max limit that not even a single long highlight can be saved in that location, then the highlight will skip being saved. This means its important that game developers keep their highlight lengths concise. A boss battle is not a highlight. A boss kill is a highlight.

Where does highlights saves temporary video files?

  • This is a setting in the GFE settings for Highlights. See above image.

  • Defaults to: C:\Users\<USER>\AppData\Local\Temp\Highlights\<Game>

  • Note, it may be under "Base Profile", if you have enabled beta experimental features.

Can we still access the clip meta data after the game session? How long does it persist?

  • Highlight meta-data is stored as long as the highlight is. Note that highlights are removed in FIFO order to maintain user-defined disk space limits. In practice this means a game can bring up a highlights summary (referencing the relevant highlight group) well after those highlights are captured. The typical use case for this is the game maintaining a history of matches and allowing the user to review per-match highlights.

Resetting Permission Dialog

  • The permissions dialog should be displayed anytime GFE fails to find the file C:\Users\<user>\AppData\Local\NVIDIA Corporation\GfeSDK\<GameName>\permissions.json. This can be due to the game changing title or the file being deleted. The later can be used to reset the game's permissions and to visualize the permissions dialog again.

Resetting User Interest Overrides

  • You can delete your local user interest overrides by deleting:
  • C:\Users\<user>\AppData\Local\NVIDIA Corporation\NVIDIA Share\Highlights\<Game>