OptiX  3.9
NVIDIA OptiX Acceleration Engine
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
optix_declarations_private.h
1 /*
2  * Copyright (c) 2008 - 2009 NVIDIA Corporation. All rights reserved.
3  *
4  * NVIDIA Corporation and its licensors retain all intellectual property and proprietary
5  * rights in and to this software, related documentation and any modifications thereto.
6  * Any use, reproduction, disclosure or distribution of this software and related
7  * documentation without an express license agreement from NVIDIA Corporation is strictly
8  * prohibited.
9  *
10  * TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THIS SOFTWARE IS PROVIDED *AS IS*
11  * AND NVIDIA AND ITS SUPPLIERS DISCLAIM ALL WARRANTIES, EITHER EXPRESS OR IMPLIED,
12  * INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
13  * PARTICULAR PURPOSE. IN NO EVENT SHALL NVIDIA OR ITS SUPPLIERS BE LIABLE FOR ANY
14  * SPECIAL, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, WITHOUT
15  * LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF
16  * BUSINESS INFORMATION, OR ANY OTHER PECUNIARY LOSS) ARISING OUT OF THE USE OF OR
17  * INABILITY TO USE THIS SOFTWARE, EVEN IF NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF
18  * SUCH DAMAGES
19  */
20 
21 
22 /******************************************************************************\
23  *
24  * Contains declarations used internally. This file is never to be released.
25  *
26 \******************************************************************************/
27 
28 #ifndef __optix_optix_declarations_private_h__
29 #define __optix_optix_declarations_private_h__
30 
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34 
35 typedef enum
36 {
37  RT_BUFFER_PARTITIONED_INTERNAL = 1u << 16,
38  RT_BUFFER_PINNED_INTERNAL = 1u << 17,
39  RT_BUFFER_WRITECOMBINED_INTERNAL = 1u << 18,
40  RT_BUFFER_DEVICE_ONLY_INTERNAL = 1u << 19,
41  RT_BUFFER_FORCE_ZERO_COPY = 1u << 20,
42  RT_BUFFER_LAYERED_RESERVED = 1u << 21, // reserved here, declared in optix_declarations.h
43  RT_BUFFER_CUBEMAP_RESERVED = 1u << 22, // reserved here, declared in optix_declarations.h
44  RT_BUFFER_INTERNAL_PREFER_TEX_HEAP = 1u << 23, /* For buffers wanting to use texture heap */
45 } RTbufferflag_internal;
46 
47 namespace optix {
48  enum ObjectStorageType {
49  OBJECT_STORAGE_CONSTANT,
50  OBJECT_STORAGE_SHARED,
51  OBJECT_STORAGE_GLOBAL,
52  OBJECT_STORAGE_LINEAR_TEXTURE,
53  OBJECT_STORAGE_BLOCKED_TEXTURE
54  };
55 }
56 
57 #define RT_CONTEXT_INTERNAL_MAX_CUBIN_CACHE 128 // Precompiled CUBINS
58 #define RT_CONTEXT_INTERNAL_ATTRIBUTE_ABI_STATUS 0x2000000 /* sizeof(int) */
59 #define RT_CONTEXT_INTERNAL_ATTRIBUTE_CALLID 0x2000001 /* sizeof(long long) */
60 #define RT_CONTEXT_INTERNAL_ATTRIBUTE_ACCELERATION_BAKE_CHILD_POINTERS 0x2000002 /* sizeof(int) */
61 #define RT_CONTEXT_INTERNAL_ATTRIBUTE_COMPARE_CUBIN_HASH 0x2000003 /* sizeof(int) */
62 #define RT_CONTEXT_INTERNAL_ATTRIBUTE_ALLOW_32BITBUFFER_OPTIMIZATION 0x2000004 /* sizeof(int) */
63 #define RT_CONTEXT_INTERNAL_ATTRIBUTE_LIMIT_RESIDENT_DEVICE_MEMORY 0x2000005 /* sizeof(size_t) */
64 #define RT_CONTEXT_INTERNAL_ATTRIBUTE_SUBFRAME_INDEX 0x2000006 /* sizeof(int) */
65 #define RT_CONTEXT_INTERNAL_ATTRIBUTE_CUBIN_HASH 0x3000000 /* 2*sizeof(long long) */
66 #define RT_CONTEXT_INTERNAL_ATTRIBUTE_CUBIN_SMVERSION (0x3000000 + RT_CONTEXT_INTERNAL_MAX_CUBIN_CACHE) /* sizeof(int) */
67 #define RT_CONTEXT_INTERNAL_ATTRIBUTE_CUBIN_DATA (0x3000000 + 2*RT_CONTEXT_INTERNAL_MAX_CUBIN_CACHE) /* chars */
68 
69 
70 #ifdef __cplusplus
71 } /* extern "C" */
72 #endif
73 
74 #endif /* __optix_optix_declarations_private_h__ */