NTrace
GPU ray tracing framework
|
#include <Buffer.hpp>
Inherits FW::Serializable.
Public Types | |
enum | Module { CPU = 1 << 0, GL = 1 << 1, Cuda = 1 << 2, Module_None = 0, Module_All = (1 << 3) - 1 } |
enum | Hint { Hint_PageLock = 1 << 0, Hint_CudaGL = 1 << 1, Hint_None = 0, Hint_All = (1 << 2) - 1 } |
Public Member Functions | |
Buffer (U32 hints=Hint_None) | |
Buffer (const void *ptr, S64 size, U32 hints=Hint_None, int align=1) | |
template<class T > | |
Buffer (const Array< T > &data, U32 hints=Hint_None, int align=1) | |
template<class T > | |
Buffer (const Array< T > &data, int start, int end, U32 hints=Hint_None, int align=1) | |
Buffer (Buffer &other) | |
virtual | ~Buffer (void) |
void | wrapCPU (void *cpuPtr, S64 size) |
void | wrapGL (GLuint glBuffer) |
void | wrapCuda (CUdeviceptr cudaPtr, S64 size) |
S64 | getSize (void) const |
U32 | getHints (void) const |
int | getAlign (void) const |
void | setHintsAndAlign (U32 hints, int align) |
void | setHints (U32 hints) |
void | setAlign (int align) |
void | reset (U32 hints, int align) |
void | reset (U32 hints) |
void | reset (void) |
void | reset (const void *ptr, S64 size, U32 hints, int align) |
void | reset (const void *ptr, S64 size, U32 hints) |
void | reset (const void *ptr, S64 size) |
void | resize (S64 size) |
void | resizeDiscard (S64 size) |
void | free (Module module) |
void | getRange (void *dst, S64 srcOfs, S64 size, bool async=false, CUstream cudaStream=NULL) const |
void | get (void *ptr) |
template<class T > | |
void | get (Array< T > &data) |
void | setRange (S64 dstOfs, const void *src, S64 size, bool async=false, CUstream cudaStream=NULL) |
void | setRange (S64 dstOfs, Buffer &src, S64 srcOfs, S64 size, bool async=false, CUstream cudaStream=NULL) |
void | set (const void *ptr) |
void | set (const void *ptr, S64 size) |
void | set (Buffer &other) |
template<class T > | |
void | set (const Array< T > &data) |
template<class T > | |
void | set (const Array< T > &data, int start, int end) |
void | clearRange (S64 dstOfs, int value, S64 size, bool async=false, CUstream cudaStream=NULL) |
void | clear (int value=0) |
void | setOwner (Module module, bool modify, bool async=false, CUstream cudaStream=NULL, S64 validSize=-1) |
Module | getOwner (void) const |
void | discard (void) |
const U8 * | getPtr (S64 ofs=0) |
GLuint | getGLBuffer (void) |
CUdeviceptr | getCudaPtr (S64 ofs=0) |
U8 * | getMutablePtr (S64 ofs=0) |
GLuint | getMutableGLBuffer (void) |
CUdeviceptr | getMutableCudaPtr (S64 ofs=0) |
U8 * | getMutablePtrDiscard (S64 ofs=0) |
GLuint | getMutableGLBufferDiscard (void) |
CUdeviceptr | getMutableCudaPtrDiscard (S64 ofs=0) |
Buffer & | operator= (Buffer &other) |
U8 | operator[] (S64 idx) |
virtual void | readFromStream (InputStream &s) |
virtual void | writeToStream (OutputStream &s) const |
![]() | |
Serializable (void) | |
virtual | ~Serializable (void) |
Static Public Member Functions | |
static void | memcpyHtoD (CUdeviceptr dst, const void *src, S64 size, bool async=false, CUstream cudaStream=NULL) |
static void | memcpyDtoH (void *dst, CUdeviceptr src, S64 size, bool async=false, CUstream cudaStream=NULL) |
static void | memcpyDtoD (CUdeviceptr dst, CUdeviceptr src, S64 size, bool async=false, CUstream cudaStream=NULL) |
Definition at line 35 of file Buffer.hpp.
enum FW::Buffer::Hint |
Enumerator | |
---|---|
Hint_PageLock | |
Hint_CudaGL | |
Hint_None | |
Hint_All |
Definition at line 48 of file Buffer.hpp.
enum FW::Buffer::Module |
Enumerator | |
---|---|
CPU | |
GL | |
Cuda | |
Module_None | |
Module_All |
Definition at line 38 of file Buffer.hpp.
Definition at line 58 of file Buffer.hpp.
|
inlineexplicit |
Definition at line 59 of file Buffer.hpp.
|
inlineexplicit |
Definition at line 60 of file Buffer.hpp.
|
inlineexplicit |
Definition at line 61 of file Buffer.hpp.
|
inline |
Definition at line 62 of file Buffer.hpp.
|
inlinevirtual |
Definition at line 63 of file Buffer.hpp.
|
inline |
Definition at line 100 of file Buffer.hpp.
void Buffer::clearRange | ( | S64 | dstOfs, |
int | value, | ||
S64 | size, | ||
bool | async = false , |
||
CUstream | cudaStream = NULL |
||
) |
Definition at line 202 of file Buffer.cpp.
Definition at line 104 of file Buffer.hpp.
Definition at line 80 of file Buffer.cpp.
Definition at line 87 of file Buffer.hpp.
Definition at line 88 of file Buffer.hpp.
|
inline |
Definition at line 71 of file Buffer.hpp.
|
inline |
Definition at line 108 of file Buffer.hpp.
|
inline |
Definition at line 107 of file Buffer.hpp.
Definition at line 70 of file Buffer.hpp.
|
inline |
Definition at line 112 of file Buffer.hpp.
|
inline |
Definition at line 116 of file Buffer.hpp.
|
inline |
Definition at line 111 of file Buffer.hpp.
|
inline |
Definition at line 115 of file Buffer.hpp.
Definition at line 110 of file Buffer.hpp.
Definition at line 114 of file Buffer.hpp.
Definition at line 103 of file Buffer.hpp.
Definition at line 106 of file Buffer.hpp.
void Buffer::getRange | ( | void * | dst, |
S64 | srcOfs, | ||
S64 | size, | ||
bool | async = false , |
||
CUstream | cudaStream = NULL |
||
) | const |
Definition at line 114 of file Buffer.cpp.
Definition at line 69 of file Buffer.hpp.
|
inlinestatic |
Definition at line 126 of file Buffer.hpp.
|
inlinestatic |
Definition at line 125 of file Buffer.hpp.
|
inlinestatic |
Definition at line 124 of file Buffer.hpp.
Definition at line 118 of file Buffer.hpp.
Definition at line 119 of file Buffer.hpp.
|
virtual |
Implements FW::Serializable.
Definition at line 331 of file Buffer.cpp.
Definition at line 76 of file Buffer.hpp.
Definition at line 77 of file Buffer.hpp.
Definition at line 78 of file Buffer.hpp.
Definition at line 79 of file Buffer.hpp.
Definition at line 80 of file Buffer.hpp.
Definition at line 81 of file Buffer.hpp.
Definition at line 82 of file Buffer.hpp.
Definition at line 83 of file Buffer.hpp.
Definition at line 92 of file Buffer.hpp.
Definition at line 94 of file Buffer.hpp.
Definition at line 95 of file Buffer.hpp.
Definition at line 96 of file Buffer.hpp.
Definition at line 97 of file Buffer.hpp.
|
inline |
Definition at line 74 of file Buffer.hpp.
Definition at line 73 of file Buffer.hpp.
Definition at line 72 of file Buffer.hpp.
void Buffer::setOwner | ( | Module | module, |
bool | modify, | ||
bool | async = false , |
||
CUstream | cudaStream = NULL , |
||
S64 | validSize = -1 |
||
) |
Definition at line 220 of file Buffer.cpp.
void Buffer::setRange | ( | S64 | dstOfs, |
const void * | src, | ||
S64 | size, | ||
bool | async = false , |
||
CUstream | cudaStream = NULL |
||
) |
Definition at line 149 of file Buffer.cpp.
void Buffer::setRange | ( | S64 | dstOfs, |
Buffer & | src, | ||
S64 | srcOfs, | ||
S64 | size, | ||
bool | async = false , |
||
CUstream | cudaStream = NULL |
||
) |
Definition at line 183 of file Buffer.cpp.
Definition at line 39 of file Buffer.cpp.
Definition at line 70 of file Buffer.cpp.
void Buffer::wrapGL | ( | GLuint | glBuffer | ) |
Definition at line 50 of file Buffer.cpp.
|
virtual |
Implements FW::Serializable.
Definition at line 350 of file Buffer.cpp.