mirror of
https://github.com/Xaymar/obs-StreamFX
synced 2024-12-29 11:01:23 +00:00
nvidia/cuda: Log extra information when built for Debug
This commit is contained in:
parent
9332d9377c
commit
7b38114469
5 changed files with 80 additions and 5 deletions
|
@ -19,6 +19,21 @@
|
||||||
|
|
||||||
#include "nvidia-cuda-context.hpp"
|
#include "nvidia-cuda-context.hpp"
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
|
#include "util/util-logging.hpp"
|
||||||
|
|
||||||
|
#ifdef _DEBUG
|
||||||
|
#define ST_PREFIX "<%s> "
|
||||||
|
#define D_LOG_ERROR(x, ...) P_LOG_ERROR(ST_PREFIX##x, __FUNCTION_SIG__, __VA_ARGS__)
|
||||||
|
#define D_LOG_WARNING(x, ...) P_LOG_WARN(ST_PREFIX##x, __FUNCTION_SIG__, __VA_ARGS__)
|
||||||
|
#define D_LOG_INFO(x, ...) P_LOG_INFO(ST_PREFIX##x, __FUNCTION_SIG__, __VA_ARGS__)
|
||||||
|
#define D_LOG_DEBUG(x, ...) P_LOG_DEBUG(ST_PREFIX##x, __FUNCTION_SIG__, __VA_ARGS__)
|
||||||
|
#else
|
||||||
|
#define ST_PREFIX "<nvidia::cuda::context> "
|
||||||
|
#define D_LOG_ERROR(...) P_LOG_ERROR(ST_PREFIX __VA_ARGS__)
|
||||||
|
#define D_LOG_WARNING(...) P_LOG_WARN(ST_PREFIX __VA_ARGS__)
|
||||||
|
#define D_LOG_INFO(...) P_LOG_INFO(ST_PREFIX __VA_ARGS__)
|
||||||
|
#define D_LOG_DEBUG(...) P_LOG_DEBUG(ST_PREFIX __VA_ARGS__)
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
|
@ -31,9 +46,14 @@
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
nvidia::cuda::context::context() : _cuda(::nvidia::cuda::cuda::get()), _ctx(), _has_device(false), _device() {}
|
nvidia::cuda::context::context() : _cuda(::nvidia::cuda::cuda::get()), _ctx(), _has_device(false), _device()
|
||||||
|
{
|
||||||
|
D_LOG_DEBUG("Initializating... (Addr: 0x%" PRIuPTR ")", this);
|
||||||
|
}
|
||||||
nvidia::cuda::context::~context()
|
nvidia::cuda::context::~context()
|
||||||
{
|
{
|
||||||
|
D_LOG_DEBUG("Finalizing... (Addr: 0x%" PRIuPTR ")", this);
|
||||||
|
|
||||||
if (_has_device) {
|
if (_has_device) {
|
||||||
_cuda->cuDevicePrimaryCtxRelease(_device);
|
_cuda->cuDevicePrimaryCtxRelease(_device);
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,10 +25,8 @@ namespace nvidia::cuda {
|
||||||
class context {
|
class context {
|
||||||
std::shared_ptr<::nvidia::cuda::cuda> _cuda;
|
std::shared_ptr<::nvidia::cuda::cuda> _cuda;
|
||||||
::nvidia::cuda::context_t _ctx;
|
::nvidia::cuda::context_t _ctx;
|
||||||
|
bool _has_device;
|
||||||
// Primary Device Context
|
::nvidia::cuda::device_t _device;
|
||||||
bool _has_device;
|
|
||||||
::nvidia::cuda::device_t _device;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
context();
|
context();
|
||||||
|
|
|
@ -19,10 +19,27 @@
|
||||||
|
|
||||||
#include "nvidia-cuda-gs-texture.hpp"
|
#include "nvidia-cuda-gs-texture.hpp"
|
||||||
#include "obs/gs/gs-helper.hpp"
|
#include "obs/gs/gs-helper.hpp"
|
||||||
|
#include "util/util-logging.hpp"
|
||||||
|
|
||||||
|
#ifdef _DEBUG
|
||||||
|
#define ST_PREFIX "<%s> "
|
||||||
|
#define D_LOG_ERROR(x, ...) P_LOG_ERROR(ST_PREFIX##x, __FUNCTION_SIG__, __VA_ARGS__)
|
||||||
|
#define D_LOG_WARNING(x, ...) P_LOG_WARN(ST_PREFIX##x, __FUNCTION_SIG__, __VA_ARGS__)
|
||||||
|
#define D_LOG_INFO(x, ...) P_LOG_INFO(ST_PREFIX##x, __FUNCTION_SIG__, __VA_ARGS__)
|
||||||
|
#define D_LOG_DEBUG(x, ...) P_LOG_DEBUG(ST_PREFIX##x, __FUNCTION_SIG__, __VA_ARGS__)
|
||||||
|
#else
|
||||||
|
#define ST_PREFIX "<nvidia::cuda::gstexture> "
|
||||||
|
#define D_LOG_ERROR(...) P_LOG_ERROR(ST_PREFIX __VA_ARGS__)
|
||||||
|
#define D_LOG_WARNING(...) P_LOG_WARN(ST_PREFIX __VA_ARGS__)
|
||||||
|
#define D_LOG_INFO(...) P_LOG_INFO(ST_PREFIX __VA_ARGS__)
|
||||||
|
#define D_LOG_DEBUG(...) P_LOG_DEBUG(ST_PREFIX __VA_ARGS__)
|
||||||
|
#endif
|
||||||
|
|
||||||
nvidia::cuda::gstexture::gstexture(std::shared_ptr<gs::texture> texture)
|
nvidia::cuda::gstexture::gstexture(std::shared_ptr<gs::texture> texture)
|
||||||
: _cuda(::nvidia::cuda::cuda::get()), _texture(texture), _resource(), _is_mapped(false), _pointer()
|
: _cuda(::nvidia::cuda::cuda::get()), _texture(texture), _resource(), _is_mapped(false), _pointer()
|
||||||
{
|
{
|
||||||
|
D_LOG_DEBUG("Initializating... (Addr: 0x%" PRIuPTR ")", this);
|
||||||
|
|
||||||
if (!texture)
|
if (!texture)
|
||||||
throw std::invalid_argument("texture");
|
throw std::invalid_argument("texture");
|
||||||
|
|
||||||
|
@ -63,6 +80,8 @@ nvidia::cuda::gstexture::gstexture(std::shared_ptr<gs::texture> texture)
|
||||||
|
|
||||||
nvidia::cuda::gstexture::~gstexture()
|
nvidia::cuda::gstexture::~gstexture()
|
||||||
{
|
{
|
||||||
|
D_LOG_DEBUG("Finalizing... (Addr: 0x%" PRIuPTR ")", this);
|
||||||
|
|
||||||
unmap();
|
unmap();
|
||||||
_cuda->cuGraphicsUnregisterResource(_resource);
|
_cuda->cuGraphicsUnregisterResource(_resource);
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,9 +19,26 @@
|
||||||
|
|
||||||
#include "nvidia-cuda-memory.hpp"
|
#include "nvidia-cuda-memory.hpp"
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
|
#include "util/util-logging.hpp"
|
||||||
|
|
||||||
|
#ifdef _DEBUG
|
||||||
|
#define ST_PREFIX "<%s> "
|
||||||
|
#define D_LOG_ERROR(x, ...) P_LOG_ERROR(ST_PREFIX##x, __FUNCTION_SIG__, __VA_ARGS__)
|
||||||
|
#define D_LOG_WARNING(x, ...) P_LOG_WARN(ST_PREFIX##x, __FUNCTION_SIG__, __VA_ARGS__)
|
||||||
|
#define D_LOG_INFO(x, ...) P_LOG_INFO(ST_PREFIX##x, __FUNCTION_SIG__, __VA_ARGS__)
|
||||||
|
#define D_LOG_DEBUG(x, ...) P_LOG_DEBUG(ST_PREFIX##x, __FUNCTION_SIG__, __VA_ARGS__)
|
||||||
|
#else
|
||||||
|
#define ST_PREFIX "<nvidia::cuda::memory> "
|
||||||
|
#define D_LOG_ERROR(...) P_LOG_ERROR(ST_PREFIX __VA_ARGS__)
|
||||||
|
#define D_LOG_WARNING(...) P_LOG_WARN(ST_PREFIX __VA_ARGS__)
|
||||||
|
#define D_LOG_INFO(...) P_LOG_INFO(ST_PREFIX __VA_ARGS__)
|
||||||
|
#define D_LOG_DEBUG(...) P_LOG_DEBUG(ST_PREFIX __VA_ARGS__)
|
||||||
|
#endif
|
||||||
|
|
||||||
nvidia::cuda::memory::memory(size_t size) : _cuda(::nvidia::cuda::cuda::get()), _pointer(), _size(size)
|
nvidia::cuda::memory::memory(size_t size) : _cuda(::nvidia::cuda::cuda::get()), _pointer(), _size(size)
|
||||||
{
|
{
|
||||||
|
D_LOG_DEBUG("Initializating... (Addr: 0x%" PRIuPTR ")", this);
|
||||||
|
|
||||||
::nvidia::cuda::result res = _cuda->cuMemAlloc(&_pointer, _size);
|
::nvidia::cuda::result res = _cuda->cuMemAlloc(&_pointer, _size);
|
||||||
switch (res) {
|
switch (res) {
|
||||||
case ::nvidia::cuda::result::SUCCESS:
|
case ::nvidia::cuda::result::SUCCESS:
|
||||||
|
@ -33,6 +50,8 @@ nvidia::cuda::memory::memory(size_t size) : _cuda(::nvidia::cuda::cuda::get()),
|
||||||
|
|
||||||
nvidia::cuda::memory::~memory()
|
nvidia::cuda::memory::~memory()
|
||||||
{
|
{
|
||||||
|
D_LOG_DEBUG("Finalizing... (Addr: 0x%" PRIuPTR ")", this);
|
||||||
|
|
||||||
_cuda->cuMemFree(_pointer);
|
_cuda->cuMemFree(_pointer);
|
||||||
}
|
}
|
||||||
nvidia::cuda::device_ptr_t nvidia::cuda::memory::get()
|
nvidia::cuda::device_ptr_t nvidia::cuda::memory::get()
|
||||||
|
|
|
@ -19,9 +19,26 @@
|
||||||
|
|
||||||
#include "nvidia-cuda-stream.hpp"
|
#include "nvidia-cuda-stream.hpp"
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
|
#include "util/util-logging.hpp"
|
||||||
|
|
||||||
|
#ifdef _DEBUG
|
||||||
|
#define ST_PREFIX "<%s> "
|
||||||
|
#define D_LOG_ERROR(x, ...) P_LOG_ERROR(ST_PREFIX##x, __FUNCTION_SIG__, __VA_ARGS__)
|
||||||
|
#define D_LOG_WARNING(x, ...) P_LOG_WARN(ST_PREFIX##x, __FUNCTION_SIG__, __VA_ARGS__)
|
||||||
|
#define D_LOG_INFO(x, ...) P_LOG_INFO(ST_PREFIX##x, __FUNCTION_SIG__, __VA_ARGS__)
|
||||||
|
#define D_LOG_DEBUG(x, ...) P_LOG_DEBUG(ST_PREFIX##x, __FUNCTION_SIG__, __VA_ARGS__)
|
||||||
|
#else
|
||||||
|
#define ST_PREFIX "<nvidia::cuda::stream> "
|
||||||
|
#define D_LOG_ERROR(...) P_LOG_ERROR(ST_PREFIX __VA_ARGS__)
|
||||||
|
#define D_LOG_WARNING(...) P_LOG_WARN(ST_PREFIX __VA_ARGS__)
|
||||||
|
#define D_LOG_INFO(...) P_LOG_INFO(ST_PREFIX __VA_ARGS__)
|
||||||
|
#define D_LOG_DEBUG(...) P_LOG_DEBUG(ST_PREFIX __VA_ARGS__)
|
||||||
|
#endif
|
||||||
|
|
||||||
nvidia::cuda::stream::stream(::nvidia::cuda::stream_flags flags, int32_t priority) : _cuda(::nvidia::cuda::cuda::get())
|
nvidia::cuda::stream::stream(::nvidia::cuda::stream_flags flags, int32_t priority) : _cuda(::nvidia::cuda::cuda::get())
|
||||||
{
|
{
|
||||||
|
D_LOG_DEBUG("Initializating... (Addr: 0x%" PRIuPTR ")", this);
|
||||||
|
|
||||||
nvidia::cuda::result res;
|
nvidia::cuda::result res;
|
||||||
if (priority == 0) {
|
if (priority == 0) {
|
||||||
res = _cuda->cuStreamCreate(&_stream, flags);
|
res = _cuda->cuStreamCreate(&_stream, flags);
|
||||||
|
@ -38,6 +55,8 @@ nvidia::cuda::stream::stream(::nvidia::cuda::stream_flags flags, int32_t priorit
|
||||||
|
|
||||||
nvidia::cuda::stream::~stream()
|
nvidia::cuda::stream::~stream()
|
||||||
{
|
{
|
||||||
|
D_LOG_DEBUG("Finalizing... (Addr: 0x%" PRIuPTR ")", this);
|
||||||
|
|
||||||
_cuda->cuStreamDestroy(_stream);
|
_cuda->cuStreamDestroy(_stream);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue