66 void wrapGL (GLuint glBuffer);
72 void setHintsAndAlign (
U32 hints,
int align) { realloc(m_size, validateHints(hints, align, m_original), align); }
76 void reset (
U32 hints,
int align) { deinit(); init(0, hints, align); }
124 static void memcpyHtoD (CUdeviceptr dst,
const void* src,
S64 size,
bool async =
false, CUstream cudaStream =
NULL) { memcpyXtoX(
NULL, dst, src,
NULL, size, async, cudaStream); }
125 static void memcpyDtoH (
void* dst, CUdeviceptr src,
S64 size,
bool async =
false, CUstream cudaStream =
NULL) { memcpyXtoX(dst,
NULL,
NULL, src, size, async, cudaStream); }
126 static void memcpyDtoD (CUdeviceptr dst, CUdeviceptr src,
S64 size,
bool async =
false, CUstream cudaStream =
NULL) { memcpyXtoX(
NULL, dst,
NULL, src, size, async, cudaStream); }
129 static U32 validateHints (
U32 hints,
int align,
Module original);
134 void realloc (
S64 size,
U32 hints,
int align);
135 void validateCPU (
bool async, CUstream cudaStream,
S64 validSize);
137 static void cpuAlloc (
U8*& cpuPtr,
U8*& cpuBase,
S64 size,
U32 hints,
int align);
138 static void cpuFree (
U8*& cpuPtr,
U8*& cpuBase,
U32 hints);
139 static void glAlloc (GLuint& glBuffer,
S64 size,
const void*
data);
140 static void glFree (GLuint& glBuffer,
bool& cudaGLReg);
141 static void cudaAlloc (CUdeviceptr& cudaPtr, CUdeviceptr& cudaBase,
bool& cudaGLReg,
S64 size, GLuint glBuffer,
U32 hints,
int align);
142 static void cudaFree (CUdeviceptr& cudaPtr, CUdeviceptr& cudaBase, GLuint glBuffer,
U32 hints);
144 static void checkSize (
S64 size,
int bits,
const String& funcName);
160 CUdeviceptr m_cudaPtr;
161 CUdeviceptr m_cudaBase;
CUdevice int ordinal char int CUdevice dev CUdevprop CUdevice dev CUcontext ctx CUcontext ctx CUcontext pctx CUmodule const void image CUmodule const void fatCubin CUfunction CUmodule const char name void p CUfunction unsigned int bytes CUtexref pTexRef CUtexref CUarray unsigned int Flags CUtexref int CUaddress_mode am CUtexref unsigned int Flags CUaddress_mode CUtexref int dim CUarray_format int CUtexref hTexRef CUfunction unsigned int numbytes CUfunction int float value CUfunction int CUtexref hTexRef CUfunction int int grid_height CUevent unsigned int Flags CUevent hEvent CUevent hEvent CUstream unsigned int Flags CUstream hStream GLuint bufferobj unsigned int CUdevice dev CUdeviceptr unsigned int CUmodule const char name CUdeviceptr unsigned int bytesize CUdeviceptr dptr void unsigned int bytesize void CUdeviceptr unsigned int ByteCount CUarray unsigned int CUdeviceptr unsigned int ByteCount CUarray unsigned int const void unsigned int ByteCount CUarray unsigned int CUarray unsigned int unsigned int ByteCount void CUarray unsigned int unsigned int CUstream hStream const CUDA_MEMCPY2D pCopy CUdeviceptr const void * srcHost
void set(const void *ptr)
void setRange(S64 dstOfs, const void *src, S64 size, bool async=false, CUstream cudaStream=NULL)
GLuint getMutableGLBuffer(void)
Buffer(const Array< T > &data, U32 hints=Hint_None, int align=1)
Buffer(const Array< T > &data, int start, int end, U32 hints=Hint_None, int align=1)
void reset(const void *ptr, S64 size)
virtual void writeToStream(OutputStream &s) const
CUdevice int ordinal char int CUdevice dev CUdevprop CUdevice dev CUcontext ctx CUcontext ctx CUcontext pctx CUmodule const void image CUmodule const void fatCubin CUfunction CUmodule const char name void p CUfunction unsigned int bytes CUtexref pTexRef CUtexref CUarray unsigned int Flags CUtexref int CUaddress_mode am CUtexref unsigned int Flags CUaddress_mode CUtexref int dim CUarray_format int CUtexref hTexRef CUfunction unsigned int numbytes CUfunction int float value CUfunction int CUtexref hTexRef CUfunction int int grid_height CUevent unsigned int Flags CUevent hEvent CUevent hEvent CUstream unsigned int Flags CUstream hStream GLuint bufferobj unsigned int CUdevice dev CUdeviceptr unsigned int CUmodule const char name CUdeviceptr unsigned int bytesize CUdeviceptr dptr void unsigned int bytesize void CUdeviceptr unsigned int ByteCount CUarray unsigned int CUdeviceptr unsigned int ByteCount CUarray unsigned int const void unsigned int ByteCount CUarray unsigned int CUarray unsigned int unsigned int ByteCount void CUarray unsigned int unsigned int CUstream hStream const CUDA_MEMCPY2D pCopy CUdeviceptr dstDevice
void reset(const void *ptr, S64 size, U32 hints)
CUdevice int ordinal char int CUdevice dev CUdevprop CUdevice dev CUcontext ctx CUcontext ctx CUcontext pctx CUmodule * module
CUdevice int ordinal char int CUdevice dev CUdevprop CUdevice dev CUcontext ctx CUcontext ctx CUcontext pctx CUmodule const void image CUmodule const void fatCubin CUfunction CUmodule const char name void p CUfunction unsigned int bytes CUtexref pTexRef CUtexref CUarray unsigned int Flags CUtexref int CUaddress_mode am CUtexref unsigned int Flags CUaddress_mode CUtexref int dim CUarray_format int CUtexref hTexRef CUfunction unsigned int numbytes CUfunction int float value CUfunction int CUtexref hTexRef CUfunction int int grid_height CUevent unsigned int Flags CUevent hEvent CUevent hEvent CUstream unsigned int Flags CUstream hStream GLuint bufferobj unsigned int CUdevice dev CUdeviceptr unsigned int CUmodule const char name CUdeviceptr unsigned int bytesize CUdeviceptr dptr void unsigned int bytesize void * dstHost
CUdevice int ordinal char int CUdevice dev CUdevprop CUdevice dev CUcontext ctx CUcontext ctx CUcontext pctx CUmodule const void image CUmodule const void fatCubin CUfunction CUmodule const char name void p CUfunction unsigned int bytes CUtexref pTexRef CUtexref CUarray unsigned int Flags CUtexref int CUaddress_mode am CUtexref unsigned int Flags CUaddress_mode CUtexref int dim CUarray_format int CUtexref hTexRef CUfunction unsigned int numbytes CUfunction int float value CUfunction int CUtexref hTexRef CUfunction int int grid_height CUevent unsigned int Flags CUevent hEvent CUevent hEvent CUstream unsigned int Flags CUstream hStream GLuint bufferobj unsigned int CUdevice dev CUdeviceptr unsigned int CUmodule const char name CUdeviceptr unsigned int bytesize CUdeviceptr dptr void unsigned int bytesize void CUdeviceptr unsigned int ByteCount CUarray unsigned int CUdeviceptr unsigned int ByteCount CUarray unsigned int const void unsigned int ByteCount CUarray unsigned int CUarray unsigned int unsigned int ByteCount void CUarray unsigned int unsigned int CUstream hStream const CUDA_MEMCPY2D pCopy CUdeviceptr const void unsigned int CUstream hStream const CUDA_MEMCPY2D CUstream hStream CUdeviceptr unsigned char unsigned int N CUdeviceptr unsigned int unsigned int N CUdeviceptr unsigned int unsigned short unsigned int unsigned int Height CUarray const CUDA_ARRAY_DESCRIPTOR pAllocateArray CUarray const CUDA_ARRAY3D_DESCRIPTOR pAllocateArray unsigned int CUtexref CUdeviceptr unsigned int bytes CUcontext unsigned int CUdevice device GLenum texture GLenum GLuint buffer GLenum GLuint renderbuffer GLenum GLsizeiptr const GLvoid * data
U8 * getMutablePtrDiscard(S64 ofs=0)
void wrapCuda(CUdeviceptr cudaPtr, S64 size)
virtual void readFromStream(InputStream &s)
CUdeviceptr getCudaPtr(S64 ofs=0)
void set(const Array< T > &data)
const U8 * getPtr(S64 ofs=0)
void setOwner(Module module, bool modify, bool async=false, CUstream cudaStream=NULL, S64 validSize=-1)
void set(const Array< T > &data, int start, int end)
S32 getNumBytes(void) const
void reset(const void *ptr, S64 size, U32 hints, int align)
void wrapCPU(void *cpuPtr, S64 size)
Buffer(U32 hints=Hint_None)
static void memcpyHtoD(CUdeviceptr dst, const void *src, S64 size, bool async=false, CUstream cudaStream=NULL)
CUdeviceptr getMutableCudaPtr(S64 ofs=0)
U8 * getMutablePtr(S64 ofs=0)
void set(const void *ptr, S64 size)
void getRange(void *dst, S64 srcOfs, S64 size, bool async=false, CUstream cudaStream=NULL) const
void wrapGL(GLuint glBuffer)
static void memcpyDtoD(CUdeviceptr dst, CUdeviceptr src, S64 size, bool async=false, CUstream cudaStream=NULL)
void clearRange(S64 dstOfs, int value, S64 size, bool async=false, CUstream cudaStream=NULL)
CUdevice int ordinal char int CUdevice dev CUdevprop CUdevice dev CUcontext ctx CUcontext ctx CUcontext pctx CUmodule const void image CUmodule const void fatCubin CUfunction CUmodule const char name void p CUfunction unsigned int bytes CUtexref pTexRef CUtexref CUarray unsigned int Flags CUtexref int CUaddress_mode am CUtexref unsigned int Flags CUaddress_mode CUtexref int dim CUarray_format int CUtexref hTexRef CUfunction unsigned int numbytes CUfunction int float value
Module getOwner(void) const
GLuint getMutableGLBufferDiscard(void)
static void memcpyDtoH(void *dst, CUdeviceptr src, S64 size, bool async=false, CUstream cudaStream=NULL)
CUdevice int ordinal char int CUdevice dev CUdevprop CUdevice dev CUcontext ctx CUcontext ctx CUcontext pctx CUmodule const void image CUmodule const void fatCubin CUfunction CUmodule const char name void p CUfunction unsigned int bytes CUtexref pTexRef CUtexref CUarray unsigned int Flags CUtexref int CUaddress_mode am CUtexref unsigned int Flags CUaddress_mode CUtexref int dim CUarray_format int CUtexref hTexRef CUfunction unsigned int numbytes CUfunction int float value CUfunction int CUtexref hTexRef CUfunction int int grid_height CUevent unsigned int Flags CUevent hEvent CUevent hEvent CUstream unsigned int Flags CUstream hStream GLuint bufferobj unsigned int CUdevice dev CUdeviceptr unsigned int CUmodule const char name CUdeviceptr unsigned int bytesize CUdeviceptr dptr void unsigned int bytesize void CUdeviceptr srcDevice
Buffer & operator=(Buffer &other)
void setHintsAndAlign(U32 hints, int align)
const T * getPtr(S32idx=0) const
void resizeDiscard(S64 size)
CUdevice int ordinal char int CUdevice dev CUdevprop CUdevice dev CUcontext ctx CUcontext ctx CUcontext pctx CUmodule const void image CUmodule const void fatCubin CUfunction CUmodule const char name void p CUfunction unsigned int bytes CUtexref pTexRef CUtexref CUarray unsigned int Flags CUtexref int CUaddress_mode am CUtexref unsigned int Flags CUaddress_mode CUtexref int dim CUarray_format int CUtexref hTexRef CUfunction unsigned int numbytes CUfunction int float value CUfunction int CUtexref hTexRef CUfunction int int grid_height CUevent unsigned int Flags CUevent hEvent CUevent hEvent CUstream unsigned int Flags CUstream hStream GLuint bufferobj unsigned int CUdevice dev CUdeviceptr unsigned int CUmodule const char name CUdeviceptr unsigned int bytesize CUdeviceptr dptr void unsigned int bytesize void CUdeviceptr unsigned int ByteCount CUarray unsigned int CUdeviceptr unsigned int ByteCount CUarray unsigned int const void unsigned int ByteCount CUarray unsigned int CUarray unsigned int unsigned int ByteCount void CUarray unsigned int unsigned int CUstream hStream const CUDA_MEMCPY2D pCopy CUdeviceptr const void unsigned int CUstream hStream const CUDA_MEMCPY2D CUstream hStream CUdeviceptr unsigned char unsigned int N CUdeviceptr unsigned int unsigned int N CUdeviceptr unsigned int unsigned short unsigned int unsigned int Height CUarray const CUDA_ARRAY_DESCRIPTOR pAllocateArray CUarray const CUDA_ARRAY3D_DESCRIPTOR pAllocateArray unsigned int CUtexref CUdeviceptr unsigned int bytes CUcontext unsigned int CUdevice device GLenum texture GLenum GLuint buffer GLenum GLuint renderbuffer GLenum GLsizeiptr size
void reset(U32 hints, int align)
CUdeviceptr getMutableCudaPtrDiscard(S64 ofs=0)
Buffer(const void *ptr, S64 size, U32 hints=Hint_None, int align=1)