MCPcopy Create free account
hub / github.com/crownengine/crown / init

Method init

3rdparty/bgfx/src/nvapi.cpp:107–178  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

105 }
106
107 void NvApi::init()
108 {
109 m_nvGpu = NULL;
110 m_nvApiDll = bx::dlopen(
111 "nvapi"
112#if BX_ARCH_64BIT
113 "64"
114#endif // BX_ARCH_32BIT
115 ".dll"
116 );
117
118 if (NULL != m_nvApiDll)
119 {
120 nvApiQueryInterface = (PFN_NVAPI_QUERYINTERFACE)bx::dlsym(m_nvApiDll, "nvapi_QueryInterface");
121
122 bool initialized = NULL != nvApiQueryInterface;
123
124 if (initialized)
125 {
126 nvApiInitialize = (PFN_NVAPI_INITIALIZE )nvApiQueryInterface(NVAPI_INITIALIZE);
127 nvApiUnload = (PFN_NVAPI_UNLOAD )nvApiQueryInterface(NVAPI_UNLOAD);
128 nvApiEnumPhysicalGPUs = (PFN_NVAPI_ENUMPHYSICALGPUS)nvApiQueryInterface(NVAPI_ENUMPHYSICALGPUS);
129 nvApiGpuGetMemoryInfo = (PFN_NVAPI_GPUGETMEMORYINFO)nvApiQueryInterface(NVAPI_GPUGETMEMORYINFO);
130 nvApiGpuGetFullName = (PFN_NVAPI_GPUGETFULLNAME )nvApiQueryInterface(NVAPI_GPUGETFULLNAME);
131
132 nvApiD3D11MultiDrawInstancedIndirect = (PFN_NVAPI_MULTIDRAWINDIRECT)nvApiQueryInterface(NVAPI_MULTIDRAWINSTANCEDINDIRECT);
133 nvApiD3D11MultiDrawIndexedInstancedIndirect = (PFN_NVAPI_MULTIDRAWINDIRECT)nvApiQueryInterface(NVAPI_MULTIDRAWINDEXEDINSTANCEDINDIRECT);
134
135 initialized = true
136 && NULL != nvApiInitialize
137 && NULL != nvApiUnload
138 && NULL != nvApiEnumPhysicalGPUs
139 && NULL != nvApiGpuGetMemoryInfo
140 && NULL != nvApiGpuGetFullName
141 && NVAPI_OK == nvApiInitialize()
142 ;
143
144 if (initialized)
145 {
146 NvPhysicalGpuHandle* physicalGpus[NVAPI_MAX_PHYSICAL_GPUS];
147 uint32_t numGpus = 0;
148 nvApiEnumPhysicalGPUs(physicalGpus, &numGpus);
149
150 initialized = 0 < numGpus;
151 if (initialized)
152 {
153 m_nvGpu = physicalGpus[0];
154
155 initialized = NULL != m_nvGpu;
156 if (initialized)
157 {
158 char name[64];
159 nvApiGpuGetFullName(m_nvGpu, name);
160 BX_TRACE("%s", name);
161 }
162 else
163 {
164 nvApiUnload();

Callers

nothing calls this directly

Calls 3

dlopenFunction · 0.85
dlsymFunction · 0.85
dlcloseFunction · 0.85

Tested by

no test coverage detected