Newton Dynamics  4.00
ndCudaSceneInfo.h
1 /* Copyright (c) <2003-2021> <Julio Jerez, Newton Game Dynamics>
2 *
3 * This software is provided 'as-is', without any express or implied
4 * warranty. In no event will the authors be held liable for any damages
5 * arising from the use of this software.
6 *
7 * Permission is granted to anyone to use this software for any purpose,
8 * including commercial applications, and to alter it and redistribute it
9 * freely, subject to the following restrictions:
10 *
11 * 1. The origin of this software must not be misrepresented; you must not
12 * claim that you wrote the original software. If you use this software
13 * in a product, an acknowledgment in the product documentation would be
14 * appreciated but is not required.
15 *
16 * 2. Altered source versions must be plainly marked as such, and must not be
17 * misrepresented as being the original software.
18 *
19 * 3. This notice may not be removed or altered from any source distribution.
20 */
21 
22 #ifndef __ND_CUDA_SCENE_INFO_H__
23 #define __ND_CUDA_SCENE_INFO_H__
24 
25 #include <cuda.h>
26 #include <vector_types.h>
27 #include <cuda_runtime.h>
28 #include "ndCudaTypes.h"
29 
30 
32 {
33  public:
35  :m_worldBox()
36  ,m_histogram()
37  ,m_bodyArray()
38  ,m_sceneGraph()
39  ,m_bodyAabbCell()
40  ,m_bodyAabbCellScratch()
41  ,m_transformBuffer0()
42  ,m_transformBuffer1()
43  ,m_frameCount(0)
44  ,m_frameIsValid(0)
45  ,m_startFrameTime(0)
46  ,m_frameTimeInNanosecunds(0)
47  {
48  }
49 
50  ndCudaBoundingBox m_worldBox;
51  ndCudaBuffer<unsigned> m_histogram;
53  ndCudaBuffer<ndCudaSceneNode> m_sceneGraph;
54  ndCudaBuffer<ndCudaBodyAabbCell> m_bodyAabbCell;
55  ndCudaBuffer<ndCudaBodyAabbCell> m_bodyAabbCellScratch;
56  ndCudaBuffer<ndCudaSpatialVector> m_transformBuffer0;
57  ndCudaBuffer<ndCudaSpatialVector> m_transformBuffer1;
58 
59  unsigned m_frameCount;
60  unsigned m_frameIsValid;
61  long long m_startFrameTime;
62  long long m_frameTimeInNanosecunds;
63 };
64 
65 inline void __device__ cuInvalidateFrame(ndCudaSceneInfo& info, const char* functionName, unsigned lineNumber)
66 {
67  //cudaDeviceSynchronize();
68  info.m_frameIsValid = 0;
69  printf("skipping frame %d function %s line %d\n", info.m_frameCount, functionName, lineNumber);
70 }
71 
72 
73 #endif
ndCudaSceneInfo
Definition: ndCudaSceneInfo.h:32
ndCudaBuffer< unsigned >
ndCudaBoundingBox
Definition: ndCudaTypes.h:33