SmartEngine  1.6.0
Settings.h
1 // Copyright (C) Entropy Software LLC - All Rights Reserved
2 
3 #pragma once
4 
5 namespace SmartEngine
6 {
7 
8 #pragma pack(push, 4)
9 enum class MatrixInitializationSetting : byte
13 {
17  None,
18 
22  Zero,
23 
28  NaN
29 };
30 
36 enum class CheckForNaNFlags : byte
37 {
41  Nowhere = 0x00,
42 
46  GraphModelInput = 0x01
47 };
48 
52 struct EngineSettings
53 {
54 public:
59  int threadCount = 4;
60 
83  int64 maxGpuWorkloadSize = 14 * 1024 * 1024;
84 
88  MatrixInitializationSetting matrixInitialization = MatrixInitializationSetting::None;
89 
93  CheckForNaNFlags checkForNaNs = CheckForNaNFlags::Nowhere;
94 };
95 #pragma pack(pop)
96 
100 SMARTENGINE_EXPORT const EngineSettings& GetEngineSettings();
101 
105 SMARTENGINE_EXPORT void UpdateEngineSettings(const EngineSettings& settings);
106 
108 extern "C"
109 {
110  SMARTENGINE_EXPORT void Settings_GetEngineSettings(EngineSettings* settings);
111  SMARTENGINE_EXPORT void Settings_UpdateEngineSettings(EngineSettings* settings);
112 }
113 
114 } // namespace SmartEngine
SmartEngine
Definition: A2CTrainer.h:10