Commit graph

48 commits

Author SHA1 Message Date
Michael Fabian 'Xaymar' Dirks
05363706ca nvidia/vfx/superresolution: Round to nearest instead of truncate
Slightly improves the accuracy of the scaled size calculations.
2021-09-28 03:59:42 +02:00
Michael Fabian 'Xaymar' Dirks
9e992b27b8 nvidia/cuda: Add cuMemsetD# functions 2021-09-28 03:59:42 +02:00
Michael Fabian 'Xaymar' Dirks
3902672095 project: Fix various warnings 2021-09-07 05:22:15 +02:00
Michael Fabian 'Xaymar' Dirks
b2d635aa0b nvidia/vfx/superresolution: Use resize instead of reallocate 2021-06-24 13:40:14 +02:00
Michael Fabian 'Xaymar' Dirks
4beeda2713 nvidia/cv/image: Store alignment for later use 2021-06-24 13:40:14 +02:00
Michael Fabian 'Xaymar' Dirks
0d9ecce8d6 nvidia/cv: NvCVImage_Dealloc returns void 2021-06-24 13:40:14 +02:00
Michael Fabian 'Xaymar' Dirks
b3ca0ce684 nvidia/vfx/superresolution: Add wrapper for Super-Resolution effect 2021-06-23 16:27:04 +02:00
Michael Fabian 'Xaymar' Dirks
dd31be9a37 nvidia/vfx: Add wrapper for NVIDIA Video Effects SDK 2021-06-23 16:27:04 +02:00
Michael Fabian 'Xaymar' Dirks
4dfefa66f1 nvidia/cv/texture: Wrapper for gs::texture Images 2021-06-23 16:27:04 +02:00
Michael Fabian 'Xaymar' Dirks
412af66564 nvidia/cv/image: Wrapper for Images 2021-06-23 16:27:04 +02:00
Michael Fabian 'Xaymar' Dirks
e52dc58bdc nvidia/cv: Add NVIDIA Computer Vision wrapper 2021-06-23 16:27:04 +02:00
Michael Fabian 'Xaymar' Dirks
d5bd34da08 nvidia/cuda: Don't be so extremely spammy 2021-06-23 16:27:04 +02:00
Michael Fabian 'Xaymar' Dirks
23ccec8b62 nvidia/cuda/obs: Release stream before context 2021-06-17 13:48:29 +02:00
Michael Fabian 'Xaymar' Dirks
6b2c7869ff nvidia/cuda/context: Don't try to destroy device contexts 2021-06-17 13:48:29 +02:00
Michael Fabian 'Xaymar' Dirks
69d0aa9746 nvidia/cuda/context: Log the current device name, UUId und LUId 2021-06-17 13:48:29 +02:00
Michael Fabian 'Xaymar' Dirks
90194ade6f nvidia/cuda: Add functions to get device name, UUId and LUId 2021-06-17 13:48:29 +02:00
Michael Fabian 'Xaymar' Dirks
2ef2425a02 nvidia/ar: Adjust to match coding guidelines 2021-06-16 13:34:47 +02:00
Michael Fabian 'Xaymar' Dirks
ebbe5e92a8 nvidia/cuda: Adjust to match coding guidelines 2021-06-16 13:34:47 +02:00
Michael Fabian 'Xaymar' Dirks
f7d8758465 nvidia/cuda: Apply coding guidelines 2021-06-08 05:44:22 +02:00
Michael Fabian 'Xaymar' Dirks
bf91ed7ba7 obs/gs: Apply coding guidelines 2021-06-08 05:44:22 +02:00
Michael Fabian 'Xaymar' Dirks
a54f1a144b util: Apply coding guidelines 2021-06-08 05:44:22 +02:00
Michael Fabian 'Xaymar' Dirks
ba32632110 nvidia/ar: Fix NVIDIA Trademark 2021-06-08 05:44:22 +02:00
Michael Fabian 'Xaymar' Dirks
cdca069b2a filters/nvidia-face-tracking: Update for new SDK and OBS 27.x 2021-05-01 19:14:57 +02:00
Michael Fabian 'Xaymar' Dirks
132bdaf542 nvidia/cuda: Add function to query version directly 2021-04-27 03:12:59 +02:00
Michael Fabian 'Xaymar' Dirks
2501afff3b nvidia/cuda: Update to match CUDA 11.1 and later
Adds several new functions that may be required for operation
2021-04-27 03:12:59 +02:00
Michael Fabian 'Xaymar' Dirks
21f2c7fdc5 nvidia/cuda: Print the Driver CUDA version to the log 2021-04-27 03:12:59 +02:00
Michael Fabian 'Xaymar' Dirks
fbd5c956a5 nvidia/ar: Fix bad function definition 2021-04-27 03:12:59 +02:00
Michael Fabian 'Xaymar' Dirks
cfbc7833f3 project: Apply formatting 2021-04-27 03:12:59 +02:00
Michael Fabian 'Xaymar' Dirks
ac967cadae nvidia/cuda/obs: Add simple CUDA manager for OBS 2021-04-27 03:12:59 +02:00
Michael Fabian 'Xaymar' Dirks
e4996cdc80 nvidia/cuda/stream: Add synchronize function 2021-04-27 03:12:59 +02:00
Michael Fabian 'Xaymar' Dirks
ebdda0162f nvidia/cuda/gs-texture: Add accessors for internals 2021-04-27 03:12:59 +02:00
Michael Fabian 'Xaymar' Dirks
e678570bba nvidia/cuda/context: Merge context-stack into context header 2021-04-27 03:12:59 +02:00
Michael Fabian 'Xaymar' Dirks
e75986f0a8 nvidia/cuda: Log extra information when built for Debug 2021-04-27 03:12:59 +02:00
Michael Fabian 'Xaymar' Dirks
be7a0d9a5e nvidia/cuda: Add custom exception for CUDA 2021-04-27 03:12:59 +02:00
Michael Fabian 'Xaymar' Dirks
c7f517e206 nvidia/cuda: Use util::library and remove CUDA library argument
The CUDA library is always available as a singleton, so it does not make sense for it to be passed in. Instead we can simply grab it from the singleton and use it as it is, which makes the code easier to maintain and automates certain code.
2021-04-27 03:12:59 +02:00
Michael Fabian 'Xaymar' Dirks
31b7b06af1 nvidia/cuda: Use reinterpret_case instead of static_cast 2021-02-14 13:33:53 +01:00
Michael Fabian 'Xaymar' Dirks
a53518cdb9 project: Remove non-standard std:: prefix from types 2020-08-10 19:51:21 +02:00
Michael Fabian 'Xaymar' Dirks
d332007ae0 project: Code cleanup and reapply formatting
Changes applied:

* Moved utility files to /util/.
* Removed unused #includes.
* Removed unused ::ffmpeg::tools function.
* Removed unused variables.
* Fixed missing parentheses in the version macro.
* Fixed missing override on virtual function overrides and removed unnecessary virtual keyword from them.
* Disabled additional warning for ATL headers on MSVC only.
* Replaced direct printf parameters with their macro equivalent.
* Replaced C-style casts with C++-style casts.
* Applied clang-format again after an earlier change to the CMake file broke the integration for it.
2020-07-29 05:17:42 +02:00
Michael Fabian 'Xaymar' Dirks
7eaaab8630 nvidia/cuda/cuda: Convert to global Singleton 2020-06-21 19:27:58 +02:00
Michael Fabian 'Xaymar' Dirks
379d96044d nvidia/cuda: Remove 'cu_' prefix from types 2020-06-21 19:27:57 +02:00
Michael Fabian 'Xaymar' Dirks
ef283d219c nvicia/cuda-context: Don't modify the primary context
Doing so could potentially cause other CUDA implementations to suddenly fail.
2020-05-13 02:30:15 +02:00
Michael Fabian 'Xaymar' Dirks
1902df524c nvidia/cuda: Add cuCtxCreate, cuCtxSynchronize 2020-05-13 02:30:15 +02:00
Michael Fabian 'Xaymar' Dirks
4d8ff417e7 nvidia-cuda: Improve usage of CUDA resources and functions
Load additional functions from CUDA and add new enumerations to support them:
* cuDevicePrimaryCtxSetFlags allows us to sched scheduling mode for the GPU.
* cuCtxgetStreamPriorityRange allows us to check which priority levels are supported.
* cuStreamCreateWithPriority allows us to create streams with non-default priority.

The scheduler mode is now set to yield so that other threads can do work when we hit an eventual stalling problem. Streams can also now be created with higher priority and different flags, if necessary. In most cases this should allow CUDA resources to execute even while the GPU is under heavy load.
2020-04-17 11:44:37 +02:00
Michael Fabian 'Xaymar' Dirks
908d1f0a20 project: Modernize code to proper C++ 2020-04-09 00:17:25 +02:00
Michael Fabian 'Xaymar' Dirks
a138f95126 cmake: Fix clang support in native OBS Studio build 2020-04-05 06:50:21 +02:00
Michael Fabian 'Xaymar' Dirks
cc9d3486b2 project: Fix Linux support by fixing errors and warnings
With this, GCC 8 and above should now be able to compile the project both in obs-studio and as a standalone install. Some features are currently still not fully supported and require extra work, but the majority of things are supported and work out of the box. Exact feature parity can be looked up here on the wiki: https://github.com/Xaymar/obs-StreamFX/wiki/Platform-Feature-Parity

Related: #119 #98 #30
2020-04-02 20:37:45 +02:00
Michael Fabian 'Xaymar' Dirks
43f1dcf205 filter-nv-face-tracking: Nvidia exclusive Face Tracking filter
Ever wished you had a professional camera operator to highlight and follow the action, ensuring the audience never misses a beat? Thanks to NVIDIA, you can now do this at home for free! The new NVIDIA AR SDK unlocks augmented reality features, including motion tracking for faces.

This allows me to provide you with an automated zoom and cropping solution for your video camera to transform your streams into a slick, polished broadcast, where you’ll always be the star of the show. Don’t forget - everything is customizable so the possibilities are endless. You can even recreate that Futurama squinting meme if you wanted to (with some scripting)!

The filter requires compatible Nvidia RTX hardware and the Nvidia AR SDK Runtime to be installed ahead of time. This filter is considered "stable" and shouldn't change much from version to version.
2020-03-31 21:46:47 +02:00
Michael Fabian 'Xaymar' Dirks
88213e81f6 nvidia-cuda: GPL compatible CUDA library interface
Due to the 'nvcuda' library being part of the driver, it falls in a clause of the GPL which allows us to load and interface with system drivers. Since we can't rely on Nvidias headers here (incompatible license), most of this was pulled from FFmpeg and other things were found out via testing.
2020-03-31 21:46:47 +02:00