summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/VideoConfig.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/VideoCommon/VideoConfig.h')
-rw-r--r--Source/Core/VideoCommon/VideoConfig.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/Source/Core/VideoCommon/VideoConfig.h b/Source/Core/VideoCommon/VideoConfig.h
index ec79e6de48..a3a44f2ec7 100644
--- a/Source/Core/VideoCommon/VideoConfig.h
+++ b/Source/Core/VideoCommon/VideoConfig.h
@@ -114,6 +114,7 @@ struct VideoConfig final
bool bEFBAccessEnable;
bool bPerfQueriesEnable;
bool bBBoxEnable;
+ bool bBBoxPreferStencilImplementation; // OpenGL-only, to see how slow it is compared to SSBOs
bool bForceProgressive;
bool bEFBEmulateFormatChanges;
@@ -189,6 +190,7 @@ struct VideoConfig final
bool bSupportsPaletteConversion;
bool bSupportsClipControl; // Needed by VertexShaderGen, so must stay in VideoCommon
bool bSupportsSSAA;
+ bool bSupportsFragmentStoresAndAtomics; // a.k.a. OpenGL SSBOs a.k.a. Direct3D UAVs
bool bSupportsDepthClamp; // Needed by VertexShaderGen, so must stay in VideoCommon
bool bSupportsReversedDepthRange;
bool bSupportsMultithreading;
@@ -202,6 +204,12 @@ struct VideoConfig final
{
return backend_info.bSupportsExclusiveFullscreen && !bBorderlessFullscreen;
}
+ bool BBoxUseFragmentShaderImplementation() const
+ {
+ if (backend_info.api_type == APIType::OpenGL && bBBoxPreferStencilImplementation)
+ return false;
+ return backend_info.bSupportsBBox && backend_info.bSupportsFragmentStoresAndAtomics;
+ }
};
extern VideoConfig g_Config;