1 // Copyright 2017 Dolphin Emulator Project 2 // Licensed under GPLv2+ 3 // Refer to the license.txt file included. 4 5 #include "Core/Config/GraphicsSettings.h" 6 7 #include <string> 8 9 #include "Common/Config/Config.h" 10 #include "VideoCommon/VideoConfig.h" 11 12 namespace Config 13 { 14 // Configuration Information 15 16 // Graphics.Hardware 17 18 const Info<bool> GFX_VSYNC{{System::GFX, "Hardware", "VSync"}, false}; 19 const Info<int> GFX_ADAPTER{{System::GFX, "Hardware", "Adapter"}, 0}; 20 21 // Graphics.Settings 22 23 const Info<bool> GFX_WIDESCREEN_HACK{{System::GFX, "Settings", "wideScreenHack"}, false}; 24 const Info<AspectMode> GFX_ASPECT_RATIO{{System::GFX, "Settings", "AspectRatio"}, AspectMode::Auto}; 25 const Info<AspectMode> GFX_SUGGESTED_ASPECT_RATIO{{System::GFX, "Settings", "SuggestedAspectRatio"}, 26 AspectMode::Auto}; 27 const Info<bool> GFX_CROP{{System::GFX, "Settings", "Crop"}, false}; 28 const Info<int> GFX_SAFE_TEXTURE_CACHE_COLOR_SAMPLES{ 29 {System::GFX, "Settings", "SafeTextureCacheColorSamples"}, 128}; 30 const Info<bool> GFX_SHOW_FPS{{System::GFX, "Settings", "ShowFPS"}, false}; 31 const Info<bool> GFX_SHOW_NETPLAY_PING{{System::GFX, "Settings", "ShowNetPlayPing"}, false}; 32 const Info<bool> GFX_SHOW_NETPLAY_MESSAGES{{System::GFX, "Settings", "ShowNetPlayMessages"}, false}; 33 const Info<bool> GFX_LOG_RENDER_TIME_TO_FILE{{System::GFX, "Settings", "LogRenderTimeToFile"}, 34 false}; 35 const Info<bool> GFX_OVERLAY_STATS{{System::GFX, "Settings", "OverlayStats"}, false}; 36 const Info<bool> GFX_OVERLAY_PROJ_STATS{{System::GFX, "Settings", "OverlayProjStats"}, false}; 37 const Info<bool> GFX_DUMP_TEXTURES{{System::GFX, "Settings", "DumpTextures"}, false}; 38 const Info<bool> GFX_DUMP_MIP_TEXTURES{{System::GFX, "Settings", "DumpMipTextures"}, true}; 39 const Info<bool> GFX_DUMP_BASE_TEXTURES{{System::GFX, "Settings", "DumpBaseTextures"}, true}; 40 const Info<bool> GFX_HIRES_TEXTURES{{System::GFX, "Settings", "HiresTextures"}, false}; 41 const Info<bool> GFX_CACHE_HIRES_TEXTURES{{System::GFX, "Settings", "CacheHiresTextures"}, false}; 42 const Info<bool> GFX_DUMP_EFB_TARGET{{System::GFX, "Settings", "DumpEFBTarget"}, false}; 43 const Info<bool> GFX_DUMP_XFB_TARGET{{System::GFX, "Settings", "DumpXFBTarget"}, false}; 44 const Info<bool> GFX_DUMP_FRAMES_AS_IMAGES{{System::GFX, "Settings", "DumpFramesAsImages"}, false}; 45 const Info<bool> GFX_FREE_LOOK{{System::GFX, "Settings", "FreeLook"}, false}; 46 const Info<FreelookControlType> GFX_FREE_LOOK_CONTROL_TYPE{ 47 {System::GFX, "Settings", "FreeLookControlType"}, FreelookControlType::SixAxis}; 48 const Info<bool> GFX_USE_FFV1{{System::GFX, "Settings", "UseFFV1"}, false}; 49 const Info<std::string> GFX_DUMP_FORMAT{{System::GFX, "Settings", "DumpFormat"}, "avi"}; 50 const Info<std::string> GFX_DUMP_CODEC{{System::GFX, "Settings", "DumpCodec"}, ""}; 51 const Info<std::string> GFX_DUMP_ENCODER{{System::GFX, "Settings", "DumpEncoder"}, ""}; 52 const Info<std::string> GFX_DUMP_PATH{{System::GFX, "Settings", "DumpPath"}, ""}; 53 const Info<int> GFX_BITRATE_KBPS{{System::GFX, "Settings", "BitrateKbps"}, 25000}; 54 const Info<bool> GFX_INTERNAL_RESOLUTION_FRAME_DUMPS{ 55 {System::GFX, "Settings", "InternalResolutionFrameDumps"}, false}; 56 const Info<bool> GFX_ENABLE_GPU_TEXTURE_DECODING{ 57 {System::GFX, "Settings", "EnableGPUTextureDecoding"}, false}; 58 const Info<bool> GFX_ENABLE_PIXEL_LIGHTING{{System::GFX, "Settings", "EnablePixelLighting"}, false}; 59 const Info<bool> GFX_FAST_DEPTH_CALC{{System::GFX, "Settings", "FastDepthCalc"}, true}; 60 const Info<u32> GFX_MSAA{{System::GFX, "Settings", "MSAA"}, 1}; 61 const Info<bool> GFX_SSAA{{System::GFX, "Settings", "SSAA"}, false}; 62 const Info<int> GFX_EFB_SCALE{{System::GFX, "Settings", "InternalResolution"}, 1}; 63 const Info<int> GFX_MAX_EFB_SCALE{{System::GFX, "Settings", "MaxInternalResolution"}, 8}; 64 const Info<bool> GFX_TEXFMT_OVERLAY_ENABLE{{System::GFX, "Settings", "TexFmtOverlayEnable"}, false}; 65 const Info<bool> GFX_TEXFMT_OVERLAY_CENTER{{System::GFX, "Settings", "TexFmtOverlayCenter"}, false}; 66 const Info<bool> GFX_ENABLE_WIREFRAME{{System::GFX, "Settings", "WireFrame"}, false}; 67 const Info<bool> GFX_DISABLE_FOG{{System::GFX, "Settings", "DisableFog"}, false}; 68 const Info<bool> GFX_BORDERLESS_FULLSCREEN{{System::GFX, "Settings", "BorderlessFullscreen"}, 69 false}; 70 const Info<bool> GFX_ENABLE_VALIDATION_LAYER{{System::GFX, "Settings", "EnableValidationLayer"}, 71 false}; 72 73 #if defined(ANDROID) 74 const Info<bool> GFX_BACKEND_MULTITHREADING{{System::GFX, "Settings", "BackendMultithreading"}, 75 false}; 76 const Info<int> GFX_COMMAND_BUFFER_EXECUTE_INTERVAL{ 77 {System::GFX, "Settings", "CommandBufferExecuteInterval"}, 0}; 78 #else 79 const Info<bool> GFX_BACKEND_MULTITHREADING{{System::GFX, "Settings", "BackendMultithreading"}, 80 true}; 81 const Info<int> GFX_COMMAND_BUFFER_EXECUTE_INTERVAL{ 82 {System::GFX, "Settings", "CommandBufferExecuteInterval"}, 100}; 83 #endif 84 85 const Info<bool> GFX_SHADER_CACHE{{System::GFX, "Settings", "ShaderCache"}, true}; 86 const Info<bool> GFX_WAIT_FOR_SHADERS_BEFORE_STARTING{ 87 {System::GFX, "Settings", "WaitForShadersBeforeStarting"}, false}; 88 const Info<ShaderCompilationMode> GFX_SHADER_COMPILATION_MODE{ 89 {System::GFX, "Settings", "ShaderCompilationMode"}, ShaderCompilationMode::Synchronous}; 90 const Info<int> GFX_SHADER_COMPILER_THREADS{{System::GFX, "Settings", "ShaderCompilerThreads"}, 1}; 91 const Info<int> GFX_SHADER_PRECOMPILER_THREADS{ 92 {System::GFX, "Settings", "ShaderPrecompilerThreads"}, 1}; 93 const Info<bool> GFX_SAVE_TEXTURE_CACHE_TO_STATE{ 94 {System::GFX, "Settings", "SaveTextureCacheToState"}, true}; 95 96 const Info<bool> GFX_SW_ZCOMPLOC{{System::GFX, "Settings", "SWZComploc"}, true}; 97 const Info<bool> GFX_SW_ZFREEZE{{System::GFX, "Settings", "SWZFreeze"}, true}; 98 const Info<bool> GFX_SW_DUMP_OBJECTS{{System::GFX, "Settings", "SWDumpObjects"}, false}; 99 const Info<bool> GFX_SW_DUMP_TEV_STAGES{{System::GFX, "Settings", "SWDumpTevStages"}, false}; 100 const Info<bool> GFX_SW_DUMP_TEV_TEX_FETCHES{{System::GFX, "Settings", "SWDumpTevTexFetches"}, 101 false}; 102 const Info<int> GFX_SW_DRAW_START{{System::GFX, "Settings", "SWDrawStart"}, 0}; 103 const Info<int> GFX_SW_DRAW_END{{System::GFX, "Settings", "SWDrawEnd"}, 100000}; 104 105 const Info<bool> GFX_PREFER_GLES{{System::GFX, "Settings", "PreferGLES"}, false}; 106 107 // Graphics.Enhancements 108 109 const Info<bool> GFX_ENHANCE_FORCE_FILTERING{{System::GFX, "Enhancements", "ForceFiltering"}, 110 false}; 111 const Info<int> GFX_ENHANCE_MAX_ANISOTROPY{{System::GFX, "Enhancements", "MaxAnisotropy"}, 0}; 112 const Info<std::string> GFX_ENHANCE_POST_SHADER{ 113 {System::GFX, "Enhancements", "PostProcessingShader"}, ""}; 114 const Info<bool> GFX_ENHANCE_FORCE_TRUE_COLOR{{System::GFX, "Enhancements", "ForceTrueColor"}, 115 true}; 116 const Info<bool> GFX_ENHANCE_DISABLE_COPY_FILTER{{System::GFX, "Enhancements", "DisableCopyFilter"}, 117 true}; 118 const Info<bool> GFX_ENHANCE_ARBITRARY_MIPMAP_DETECTION{ 119 {System::GFX, "Enhancements", "ArbitraryMipmapDetection"}, true}; 120 const Info<float> GFX_ENHANCE_ARBITRARY_MIPMAP_DETECTION_THRESHOLD{ 121 {System::GFX, "Enhancements", "ArbitraryMipmapDetectionThreshold"}, 14.0f}; 122 123 // Graphics.Stereoscopy 124 125 const Info<StereoMode> GFX_STEREO_MODE{{System::GFX, "Stereoscopy", "StereoMode"}, StereoMode::Off}; 126 const Info<int> GFX_STEREO_DEPTH{{System::GFX, "Stereoscopy", "StereoDepth"}, 20}; 127 const Info<int> GFX_STEREO_CONVERGENCE_PERCENTAGE{ 128 {System::GFX, "Stereoscopy", "StereoConvergencePercentage"}, 100}; 129 const Info<bool> GFX_STEREO_SWAP_EYES{{System::GFX, "Stereoscopy", "StereoSwapEyes"}, false}; 130 const Info<int> GFX_STEREO_CONVERGENCE{{System::GFX, "Stereoscopy", "StereoConvergence"}, 20}; 131 const Info<bool> GFX_STEREO_EFB_MONO_DEPTH{{System::GFX, "Stereoscopy", "StereoEFBMonoDepth"}, 132 false}; 133 const Info<int> GFX_STEREO_DEPTH_PERCENTAGE{{System::GFX, "Stereoscopy", "StereoDepthPercentage"}, 134 100}; 135 136 // Graphics.Hacks 137 138 const Info<bool> GFX_HACK_EFB_ACCESS_ENABLE{{System::GFX, "Hacks", "EFBAccessEnable"}, true}; 139 const Info<bool> GFX_HACK_EFB_DEFER_INVALIDATION{ 140 {System::GFX, "Hacks", "EFBAccessDeferInvalidation"}, false}; 141 const Info<int> GFX_HACK_EFB_ACCESS_TILE_SIZE{{System::GFX, "Hacks", "EFBAccessTileSize"}, 64}; 142 const Info<bool> GFX_HACK_BBOX_ENABLE{{System::GFX, "Hacks", "BBoxEnable"}, false}; 143 const Info<bool> GFX_HACK_FORCE_PROGRESSIVE{{System::GFX, "Hacks", "ForceProgressive"}, true}; 144 const Info<bool> GFX_HACK_SKIP_EFB_COPY_TO_RAM{{System::GFX, "Hacks", "EFBToTextureEnable"}, true}; 145 const Info<bool> GFX_HACK_SKIP_XFB_COPY_TO_RAM{{System::GFX, "Hacks", "XFBToTextureEnable"}, true}; 146 const Info<bool> GFX_HACK_DISABLE_COPY_TO_VRAM{{System::GFX, "Hacks", "DisableCopyToVRAM"}, false}; 147 const Info<bool> GFX_HACK_DEFER_EFB_COPIES{{System::GFX, "Hacks", "DeferEFBCopies"}, true}; 148 const Info<bool> GFX_HACK_IMMEDIATE_XFB{{System::GFX, "Hacks", "ImmediateXFBEnable"}, false}; 149 const Info<bool> GFX_HACK_SKIP_DUPLICATE_XFBS{{System::GFX, "Hacks", "SkipDuplicateXFBs"}, true}; 150 const Info<bool> GFX_HACK_COPY_EFB_SCALED{{System::GFX, "Hacks", "EFBScaledCopy"}, true}; 151 const Info<bool> GFX_HACK_EFB_EMULATE_FORMAT_CHANGES{ 152 {System::GFX, "Hacks", "EFBEmulateFormatChanges"}, false}; 153 const Info<bool> GFX_HACK_VERTEX_ROUDING{{System::GFX, "Hacks", "VertexRounding"}, false}; 154 155 // Graphics.GameSpecific 156 157 const Info<bool> GFX_PERF_QUERIES_ENABLE{{System::GFX, "GameSpecific", "PerfQueriesEnable"}, false}; 158 } // namespace Config 159