diff options
| author | sschirm <[email protected]> | 2016-12-23 14:20:36 +0100 |
|---|---|---|
| committer | sschirm <[email protected]> | 2016-12-23 14:56:17 +0100 |
| commit | ef6937e69e8ee3f409cf9d460d5ad300a65d5924 (patch) | |
| tree | 710426e8daa605551ce3f34b581897011101c30f /PhysX_3.4/Documentation/PhysXAPI/files/PxCudaContextManager_8h-source.html | |
| parent | Initial commit: (diff) | |
| download | physx-3.4-ef6937e69e8ee3f409cf9d460d5ad300a65d5924.tar.xz physx-3.4-ef6937e69e8ee3f409cf9d460d5ad300a65d5924.zip | |
PhysX 3.4 / APEX 1.4 release candidate @21506124
Diffstat (limited to 'PhysX_3.4/Documentation/PhysXAPI/files/PxCudaContextManager_8h-source.html')
| -rw-r--r-- | PhysX_3.4/Documentation/PhysXAPI/files/PxCudaContextManager_8h-source.html | 300 |
1 files changed, 152 insertions, 148 deletions
diff --git a/PhysX_3.4/Documentation/PhysXAPI/files/PxCudaContextManager_8h-source.html b/PhysX_3.4/Documentation/PhysXAPI/files/PxCudaContextManager_8h-source.html index 96dacfe0..a4583e0e 100644 --- a/PhysX_3.4/Documentation/PhysXAPI/files/PxCudaContextManager_8h-source.html +++ b/PhysX_3.4/Documentation/PhysXAPI/files/PxCudaContextManager_8h-source.html @@ -62,159 +62,163 @@ <a name="l00042"></a>00042 <span class="comment">/* Forward decl to avoid inclusion of cuda.h */</span> <a name="l00043"></a>00043 <span class="keyword">typedef</span> <span class="keyword">struct </span>CUctx_st *CUcontext; <a name="l00044"></a>00044 <span class="keyword">typedef</span> <span class="keyword">struct </span>CUgraphicsResource_st *CUgraphicsResource; -<a name="l00045"></a>00045 -<a name="l00046"></a>00046 <span class="keyword">namespace </span>physx -<a name="l00047"></a>00047 { -<a name="l00048"></a>00048 -<a name="l00049"></a>00049 <span class="keyword">class </span>PxGpuDispatcher; -<a name="l00050"></a>00050 +<a name="l00045"></a>00045 <span class="keyword">typedef</span> <span class="keywordtype">int</span> CUdevice; +<a name="l00046"></a>00046 +<a name="l00047"></a>00047 <span class="keyword">namespace </span>physx +<a name="l00048"></a>00048 { +<a name="l00049"></a>00049 +<a name="l00050"></a>00050 <span class="keyword">class </span>PxGpuDispatcher; <a name="l00051"></a>00051 -<a name="l00053"></a>00053 <span class="keyword">struct </span>PxCudaInteropMode -<a name="l00054"></a>00054 { -<a name="l00058"></a>00058 <span class="keyword">enum</span> Enum -<a name="l00059"></a>00059 { -<a name="l00060"></a>00060 NO_INTEROP = 0, -<a name="l00061"></a>00061 D3D10_INTEROP, -<a name="l00062"></a>00062 D3D11_INTEROP, -<a name="l00063"></a>00063 OGL_INTEROP, -<a name="l00064"></a>00064 -<a name="l00065"></a>00065 COUNT -<a name="l00066"></a>00066 }; -<a name="l00067"></a>00067 }; -<a name="l00068"></a>00068 -<a name="l00069"></a>00069 <span class="keyword">struct </span>PxCudaInteropRegisterFlag -<a name="l00070"></a>00070 { -<a name="l00071"></a>00071 <span class="keyword">enum</span> Enum -<a name="l00072"></a>00072 { -<a name="l00073"></a>00073 eNONE = 0x00, -<a name="l00074"></a>00074 eREAD_ONLY = 0x01, -<a name="l00075"></a>00075 eWRITE_DISCARD = 0x02, -<a name="l00076"></a>00076 eSURFACE_LDST = 0x04, -<a name="l00077"></a>00077 eTEXTURE_GATHER = 0x08 -<a name="l00078"></a>00078 }; -<a name="l00079"></a>00079 }; -<a name="l00080"></a>00080 -<a name="l00086"></a>00086 <span class="keyword">typedef</span> <a class="code" href="classPxFlags.html" title="Container for bitfield flag variables associated with a specific enum type.">PxFlags<PxCudaInteropRegisterFlag::Enum, uint32_t></a> PxCudaInteropRegisterFlags; -<a name="l00087"></a>00087 <a class="code" href="group__foundation.html#g092f922a63fdc7a95ae4f4e24b3768c1">PX_FLAGS_OPERATORS</a>(PxCudaInteropRegisterFlag::Enum, uint32_t) -<a name="l00088"></a>00088 +<a name="l00052"></a>00052 +<a name="l00054"></a>00054 <span class="keyword">struct </span>PxCudaInteropMode +<a name="l00055"></a>00055 { +<a name="l00059"></a>00059 <span class="keyword">enum</span> Enum +<a name="l00060"></a>00060 { +<a name="l00061"></a>00061 NO_INTEROP = 0, +<a name="l00062"></a>00062 D3D10_INTEROP, +<a name="l00063"></a>00063 D3D11_INTEROP, +<a name="l00064"></a>00064 OGL_INTEROP, +<a name="l00065"></a>00065 +<a name="l00066"></a>00066 COUNT +<a name="l00067"></a>00067 }; +<a name="l00068"></a>00068 }; +<a name="l00069"></a>00069 +<a name="l00070"></a>00070 <span class="keyword">struct </span>PxCudaInteropRegisterFlag +<a name="l00071"></a>00071 { +<a name="l00072"></a>00072 <span class="keyword">enum</span> Enum +<a name="l00073"></a>00073 { +<a name="l00074"></a>00074 eNONE = 0x00, +<a name="l00075"></a>00075 eREAD_ONLY = 0x01, +<a name="l00076"></a>00076 eWRITE_DISCARD = 0x02, +<a name="l00077"></a>00077 eSURFACE_LDST = 0x04, +<a name="l00078"></a>00078 eTEXTURE_GATHER = 0x08 +<a name="l00079"></a>00079 }; +<a name="l00080"></a>00080 }; +<a name="l00081"></a>00081 +<a name="l00087"></a>00087 <span class="keyword">typedef</span> <a class="code" href="classPxFlags.html" title="Container for bitfield flag variables associated with a specific enum type.">PxFlags<PxCudaInteropRegisterFlag::Enum, uint32_t></a> PxCudaInteropRegisterFlags; +<a name="l00088"></a>00088 <a class="code" href="group__foundation.html#g092f922a63fdc7a95ae4f4e24b3768c1">PX_FLAGS_OPERATORS</a>(PxCudaInteropRegisterFlag::Enum, uint32_t) <a name="l00089"></a>00089 -<a name="l00090"></a>00090 class PxCudaContextManagerDesc -<a name="l00091"></a>00091 { -<a name="l00092"></a>00092 <span class="keyword">public</span>: -<a name="l00114"></a>00114 CUcontext *ctx; -<a name="l00115"></a>00115 -<a name="l00123"></a>00123 <span class="keywordtype">void</span> *graphicsDevice; -<a name="l00124"></a>00124 -<a name="l00125"></a>00125 <span class="preprocessor">#if PX_SUPPORT_GPU_PHYSX</span> -<a name="l00126"></a>00126 <span class="preprocessor"></span> -<a name="l00133"></a>00133 <span class="keyword">const</span> <span class="keywordtype">char</span>* appGUID; -<a name="l00134"></a>00134 <span class="preprocessor">#endif</span> -<a name="l00135"></a>00135 <span class="preprocessor"></span> -<a name="l00142"></a>00142 PxCudaInteropMode::Enum interopMode; -<a name="l00143"></a>00143 +<a name="l00090"></a>00090 +<a name="l00091"></a>00091 class PxCudaContextManagerDesc +<a name="l00092"></a>00092 { +<a name="l00093"></a>00093 <span class="keyword">public</span>: +<a name="l00115"></a>00115 CUcontext *ctx; +<a name="l00116"></a>00116 +<a name="l00124"></a>00124 <span class="keywordtype">void</span> *graphicsDevice; +<a name="l00125"></a>00125 +<a name="l00126"></a>00126 <span class="preprocessor">#if PX_SUPPORT_GPU_PHYSX</span> +<a name="l00127"></a>00127 <span class="preprocessor"></span> +<a name="l00134"></a>00134 <span class="keyword">const</span> <span class="keywordtype">char</span>* appGUID; +<a name="l00135"></a>00135 <span class="preprocessor">#endif</span> +<a name="l00136"></a>00136 <span class="preprocessor"></span> +<a name="l00143"></a>00143 PxCudaInteropMode::Enum interopMode; <a name="l00144"></a>00144 -<a name="l00160"></a>00160 uint32_t memoryBaseSize[PxCudaBufferMemorySpace::COUNT]; -<a name="l00161"></a>00161 -<a name="l00171"></a>00171 uint32_t memoryPageSize[PxCudaBufferMemorySpace::COUNT]; -<a name="l00172"></a>00172 -<a name="l00179"></a>00179 uint32_t maxMemorySize[PxCudaBufferMemorySpace::COUNT]; -<a name="l00180"></a>00180 -<a name="l00181"></a>00181 <a class="code" href="group__foundation.html#gcb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> PxCudaContextManagerDesc() -<a name="l00182"></a>00182 { -<a name="l00183"></a>00183 ctx = NULL; -<a name="l00184"></a>00184 interopMode = PxCudaInteropMode::NO_INTEROP; -<a name="l00185"></a>00185 graphicsDevice = 0; -<a name="l00186"></a>00186 <span class="preprocessor">#if PX_SUPPORT_GPU_PHYSX</span> -<a name="l00187"></a>00187 <span class="preprocessor"></span> appGUID = NULL; -<a name="l00188"></a>00188 <span class="preprocessor">#endif</span> -<a name="l00189"></a>00189 <span class="preprocessor"></span> <span class="keywordflow">for</span>(uint32_t i = 0; i < PxCudaBufferMemorySpace::COUNT; i++) -<a name="l00190"></a>00190 { -<a name="l00191"></a>00191 memoryBaseSize[i] = 0; -<a name="l00192"></a>00192 memoryPageSize[i] = 2 * 1024*1024; -<a name="l00193"></a>00193 maxMemorySize[i] = UINT32_MAX; -<a name="l00194"></a>00194 } -<a name="l00195"></a>00195 } -<a name="l00196"></a>00196 }; -<a name="l00197"></a>00197 +<a name="l00145"></a>00145 +<a name="l00161"></a>00161 uint32_t memoryBaseSize[PxCudaBufferMemorySpace::COUNT]; +<a name="l00162"></a>00162 +<a name="l00172"></a>00172 uint32_t memoryPageSize[PxCudaBufferMemorySpace::COUNT]; +<a name="l00173"></a>00173 +<a name="l00180"></a>00180 uint32_t maxMemorySize[PxCudaBufferMemorySpace::COUNT]; +<a name="l00181"></a>00181 +<a name="l00182"></a>00182 <a class="code" href="group__foundation.html#gcb03347b642a2a5bdea1f9b305a6fbec">PX_INLINE</a> PxCudaContextManagerDesc() +<a name="l00183"></a>00183 { +<a name="l00184"></a>00184 ctx = NULL; +<a name="l00185"></a>00185 interopMode = PxCudaInteropMode::NO_INTEROP; +<a name="l00186"></a>00186 graphicsDevice = 0; +<a name="l00187"></a>00187 <span class="preprocessor">#if PX_SUPPORT_GPU_PHYSX</span> +<a name="l00188"></a>00188 <span class="preprocessor"></span> appGUID = NULL; +<a name="l00189"></a>00189 <span class="preprocessor">#endif</span> +<a name="l00190"></a>00190 <span class="preprocessor"></span> <span class="keywordflow">for</span>(uint32_t i = 0; i < PxCudaBufferMemorySpace::COUNT; i++) +<a name="l00191"></a>00191 { +<a name="l00192"></a>00192 memoryBaseSize[i] = 0; +<a name="l00193"></a>00193 memoryPageSize[i] = 2 * 1024*1024; +<a name="l00194"></a>00194 maxMemorySize[i] = UINT32_MAX; +<a name="l00195"></a>00195 } +<a name="l00196"></a>00196 } +<a name="l00197"></a>00197 }; <a name="l00198"></a>00198 -<a name="l00216"></a>00216 <span class="keyword">class </span>PxCudaContextManager -<a name="l00217"></a>00217 { -<a name="l00218"></a>00218 <span class="keyword">public</span>: -<a name="l00234"></a>00234 <span class="keyword">virtual</span> <span class="keywordtype">void</span> acquireContext() = 0; -<a name="l00235"></a>00235 -<a name="l00243"></a>00243 <span class="keyword">virtual</span> <span class="keywordtype">void</span> releaseContext() = 0; -<a name="l00244"></a>00244 -<a name="l00251"></a>00251 <span class="keyword">virtual</span> PxCudaMemoryManager *getMemoryManager() = 0; -<a name="l00252"></a>00252 -<a name="l00257"></a>00257 <span class="keyword">virtual</span> <span class="keyword">class </span><a class="code" href="classphysx_1_1PxGpuDispatcher.html" title="A GpuTask dispatcher.">physx::PxGpuDispatcher</a> *getGpuDispatcher() = 0; +<a name="l00199"></a>00199 +<a name="l00217"></a>00217 <span class="keyword">class </span>PxCudaContextManager +<a name="l00218"></a>00218 { +<a name="l00219"></a>00219 <span class="keyword">public</span>: +<a name="l00235"></a>00235 <span class="keyword">virtual</span> <span class="keywordtype">void</span> acquireContext() = 0; +<a name="l00236"></a>00236 +<a name="l00244"></a>00244 <span class="keyword">virtual</span> <span class="keywordtype">void</span> releaseContext() = 0; +<a name="l00245"></a>00245 +<a name="l00249"></a>00249 <span class="keyword">virtual</span> CUcontext getContext() = 0; +<a name="l00250"></a>00250 +<a name="l00257"></a>00257 <span class="keyword">virtual</span> PxCudaMemoryManager *getMemoryManager() = 0; <a name="l00258"></a>00258 -<a name="l00268"></a>00268 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> contextIsValid() <span class="keyword">const</span> = 0; -<a name="l00269"></a>00269 -<a name="l00270"></a>00270 <span class="comment">/* Query CUDA context and device properties, without acquiring context */</span> -<a name="l00271"></a>00271 -<a name="l00272"></a>00272 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> supportsArchSM10() <span class="keyword">const</span> = 0; -<a name="l00273"></a>00273 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> supportsArchSM11() <span class="keyword">const</span> = 0; -<a name="l00274"></a>00274 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> supportsArchSM12() <span class="keyword">const</span> = 0; -<a name="l00275"></a>00275 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> supportsArchSM13() <span class="keyword">const</span> = 0; -<a name="l00276"></a>00276 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> supportsArchSM20() <span class="keyword">const</span> = 0; -<a name="l00277"></a>00277 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> supportsArchSM30() <span class="keyword">const</span> = 0; -<a name="l00278"></a>00278 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> supportsArchSM35() <span class="keyword">const</span> = 0; -<a name="l00279"></a>00279 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> supportsArchSM50() <span class="keyword">const</span> = 0; -<a name="l00280"></a>00280 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> supportsArchSM52() <span class="keyword">const</span> = 0; -<a name="l00281"></a>00281 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> supportsArchSM60() <span class="keyword">const</span> = 0; -<a name="l00282"></a>00282 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isIntegrated() <span class="keyword">const</span> = 0; -<a name="l00283"></a>00283 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> canMapHostMemory() <span class="keyword">const</span> = 0; -<a name="l00284"></a>00284 <span class="keyword">virtual</span> <span class="keywordtype">int</span> getDriverVersion() <span class="keyword">const</span> = 0; -<a name="l00285"></a>00285 <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> getDeviceTotalMemBytes() <span class="keyword">const</span> = 0; -<a name="l00286"></a>00286 <span class="keyword">virtual</span> <span class="keywordtype">int</span> getMultiprocessorCount() <span class="keyword">const</span> = 0; -<a name="l00287"></a>00287 <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getClockRate() <span class="keyword">const</span> = 0; -<a name="l00288"></a>00288 <span class="keyword">virtual</span> <span class="keywordtype">int</span> getSharedMemPerBlock() <span class="keyword">const</span> = 0; -<a name="l00289"></a>00289 <span class="keyword">virtual</span> <span class="keywordtype">int</span> getSharedMemPerMultiprocessor() <span class="keyword">const</span> = 0; -<a name="l00290"></a>00290 <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getMaxThreadsPerBlock() <span class="keyword">const</span> = 0; -<a name="l00291"></a>00291 <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *getDeviceName() <span class="keyword">const</span> = 0; -<a name="l00292"></a>00292 <span class="keyword">virtual</span> PxCudaInteropMode::Enum getInteropMode() <span class="keyword">const</span> = 0; -<a name="l00293"></a>00293 -<a name="l00294"></a>00294 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setUsingConcurrentStreams(<span class="keywordtype">bool</span>) = 0; -<a name="l00295"></a>00295 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> getUsingConcurrentStreams() <span class="keyword">const</span> = 0; -<a name="l00296"></a>00296 <span class="comment">/* End query methods that don't require context to be acquired */</span> -<a name="l00297"></a>00297 -<a name="l00318"></a>00318 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> registerResourceInCudaGL(CUgraphicsResource &resource, uint32_t buffer, PxCudaInteropRegisterFlags flags = PxCudaInteropRegisterFlags()) = 0; -<a name="l00319"></a>00319 -<a name="l00340"></a>00340 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> registerResourceInCudaD3D(CUgraphicsResource &resource, <span class="keywordtype">void</span> *resourcePointer, PxCudaInteropRegisterFlags flags = PxCudaInteropRegisterFlags()) = 0; -<a name="l00341"></a>00341 -<a name="l00349"></a>00349 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> unregisterResourceInCuda(CUgraphicsResource resource) = 0; -<a name="l00350"></a>00350 -<a name="l00358"></a>00358 <span class="keyword">virtual</span> <span class="keywordtype">int</span> usingDedicatedGPU() <span class="keyword">const</span> = 0; -<a name="l00359"></a>00359 -<a name="l00375"></a>00375 <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0; -<a name="l00376"></a>00376 -<a name="l00377"></a>00377 <span class="keyword">protected</span>: -<a name="l00378"></a>00378 -<a name="l00382"></a>00382 <span class="keyword">virtual</span> ~PxCudaContextManager() {} -<a name="l00383"></a>00383 }; -<a name="l00384"></a>00384 -<a name="l00388"></a>00388 <span class="keyword">class </span>PxScopedCudaLock -<a name="l00389"></a>00389 { -<a name="l00390"></a>00390 <span class="keyword">public</span>: -<a name="l00394"></a>00394 PxScopedCudaLock(PxCudaContextManager& ctx) : mCtx(&ctx) -<a name="l00395"></a>00395 { -<a name="l00396"></a>00396 mCtx->acquireContext(); -<a name="l00397"></a>00397 } -<a name="l00398"></a>00398 -<a name="l00402"></a>00402 ~PxScopedCudaLock() -<a name="l00403"></a>00403 { -<a name="l00404"></a>00404 mCtx->releaseContext(); -<a name="l00405"></a>00405 } -<a name="l00406"></a>00406 -<a name="l00407"></a>00407 <span class="keyword">protected</span>: -<a name="l00408"></a>00408 -<a name="l00412"></a>00412 PxCudaContextManager* mCtx; -<a name="l00413"></a>00413 }; -<a name="l00414"></a>00414 -<a name="l00415"></a>00415 } <span class="comment">// end physx namespace</span> -<a name="l00416"></a>00416 -<a name="l00417"></a>00417 <span class="preprocessor">#endif // PX_SUPPORT_GPU_PHYSX</span> -<a name="l00418"></a>00418 <span class="preprocessor"></span><span class="preprocessor">#endif // PXCUDACONTEXTMANAGER_PXCUDACONTEXTMANAGER_H</span> +<a name="l00263"></a>00263 <span class="keyword">virtual</span> <span class="keyword">class </span><a class="code" href="classphysx_1_1PxGpuDispatcher.html" title="A GpuTask dispatcher.">physx::PxGpuDispatcher</a> *getGpuDispatcher() = 0; +<a name="l00264"></a>00264 +<a name="l00274"></a>00274 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> contextIsValid() <span class="keyword">const</span> = 0; +<a name="l00275"></a>00275 +<a name="l00276"></a>00276 <span class="comment">/* Query CUDA context and device properties, without acquiring context */</span> +<a name="l00277"></a>00277 +<a name="l00278"></a>00278 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> supportsArchSM10() <span class="keyword">const</span> = 0; +<a name="l00279"></a>00279 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> supportsArchSM11() <span class="keyword">const</span> = 0; +<a name="l00280"></a>00280 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> supportsArchSM12() <span class="keyword">const</span> = 0; +<a name="l00281"></a>00281 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> supportsArchSM13() <span class="keyword">const</span> = 0; +<a name="l00282"></a>00282 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> supportsArchSM20() <span class="keyword">const</span> = 0; +<a name="l00283"></a>00283 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> supportsArchSM30() <span class="keyword">const</span> = 0; +<a name="l00284"></a>00284 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> supportsArchSM35() <span class="keyword">const</span> = 0; +<a name="l00285"></a>00285 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> supportsArchSM50() <span class="keyword">const</span> = 0; +<a name="l00286"></a>00286 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> supportsArchSM52() <span class="keyword">const</span> = 0; +<a name="l00287"></a>00287 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> supportsArchSM60() <span class="keyword">const</span> = 0; +<a name="l00288"></a>00288 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isIntegrated() <span class="keyword">const</span> = 0; +<a name="l00289"></a>00289 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> canMapHostMemory() <span class="keyword">const</span> = 0; +<a name="l00290"></a>00290 <span class="keyword">virtual</span> <span class="keywordtype">int</span> getDriverVersion() <span class="keyword">const</span> = 0; +<a name="l00291"></a>00291 <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> getDeviceTotalMemBytes() <span class="keyword">const</span> = 0; +<a name="l00292"></a>00292 <span class="keyword">virtual</span> <span class="keywordtype">int</span> getMultiprocessorCount() <span class="keyword">const</span> = 0; +<a name="l00293"></a>00293 <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getClockRate() <span class="keyword">const</span> = 0; +<a name="l00294"></a>00294 <span class="keyword">virtual</span> <span class="keywordtype">int</span> getSharedMemPerBlock() <span class="keyword">const</span> = 0; +<a name="l00295"></a>00295 <span class="keyword">virtual</span> <span class="keywordtype">int</span> getSharedMemPerMultiprocessor() <span class="keyword">const</span> = 0; +<a name="l00296"></a>00296 <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getMaxThreadsPerBlock() <span class="keyword">const</span> = 0; +<a name="l00297"></a>00297 <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *getDeviceName() <span class="keyword">const</span> = 0; +<a name="l00298"></a>00298 <span class="keyword">virtual</span> CUdevice getDevice() <span class="keyword">const</span> = 0; +<a name="l00299"></a>00299 <span class="keyword">virtual</span> PxCudaInteropMode::Enum getInteropMode() <span class="keyword">const</span> = 0; +<a name="l00300"></a>00300 +<a name="l00301"></a>00301 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setUsingConcurrentStreams(<span class="keywordtype">bool</span>) = 0; +<a name="l00302"></a>00302 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> getUsingConcurrentStreams() <span class="keyword">const</span> = 0; +<a name="l00303"></a>00303 <span class="comment">/* End query methods that don't require context to be acquired */</span> +<a name="l00304"></a>00304 +<a name="l00325"></a>00325 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> registerResourceInCudaGL(CUgraphicsResource &resource, uint32_t buffer, PxCudaInteropRegisterFlags flags = PxCudaInteropRegisterFlags()) = 0; +<a name="l00326"></a>00326 +<a name="l00347"></a>00347 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> registerResourceInCudaD3D(CUgraphicsResource &resource, <span class="keywordtype">void</span> *resourcePointer, PxCudaInteropRegisterFlags flags = PxCudaInteropRegisterFlags()) = 0; +<a name="l00348"></a>00348 +<a name="l00356"></a>00356 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> unregisterResourceInCuda(CUgraphicsResource resource) = 0; +<a name="l00357"></a>00357 +<a name="l00365"></a>00365 <span class="keyword">virtual</span> <span class="keywordtype">int</span> usingDedicatedGPU() <span class="keyword">const</span> = 0; +<a name="l00366"></a>00366 +<a name="l00382"></a>00382 <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0; +<a name="l00383"></a>00383 +<a name="l00384"></a>00384 <span class="keyword">protected</span>: +<a name="l00385"></a>00385 +<a name="l00389"></a>00389 <span class="keyword">virtual</span> ~PxCudaContextManager() {} +<a name="l00390"></a>00390 }; +<a name="l00391"></a>00391 +<a name="l00395"></a>00395 <span class="keyword">class </span>PxScopedCudaLock +<a name="l00396"></a>00396 { +<a name="l00397"></a>00397 <span class="keyword">public</span>: +<a name="l00401"></a>00401 PxScopedCudaLock(PxCudaContextManager& ctx) : mCtx(&ctx) +<a name="l00402"></a>00402 { +<a name="l00403"></a>00403 mCtx->acquireContext(); +<a name="l00404"></a>00404 } +<a name="l00405"></a>00405 +<a name="l00409"></a>00409 ~PxScopedCudaLock() +<a name="l00410"></a>00410 { +<a name="l00411"></a>00411 mCtx->releaseContext(); +<a name="l00412"></a>00412 } +<a name="l00413"></a>00413 +<a name="l00414"></a>00414 <span class="keyword">protected</span>: +<a name="l00415"></a>00415 +<a name="l00419"></a>00419 PxCudaContextManager* mCtx; +<a name="l00420"></a>00420 }; +<a name="l00421"></a>00421 +<a name="l00422"></a>00422 } <span class="comment">// end physx namespace</span> +<a name="l00423"></a>00423 +<a name="l00424"></a>00424 <span class="preprocessor">#endif // PX_SUPPORT_GPU_PHYSX</span> +<a name="l00425"></a>00425 <span class="preprocessor"></span><span class="preprocessor">#endif // PXCUDACONTEXTMANAGER_PXCUDACONTEXTMANAGER_H</span> </pre></div></div> <hr style="width: 100%; height: 2px;"><br> |