mirror of
https://github.com/blawar/GLideN64.git
synced 2024-07-04 10:03:36 +00:00
Disable usage of *_fragment_shader_interlock with tegra
It causes lockups with at least Tegra X1.
This commit is contained in:
parent
7bad64ce70
commit
e958eca3ed
|
@ -40,6 +40,8 @@ void GLInfo::init() {
|
|||
renderer = Renderer::Intel;
|
||||
else if (strstr((const char*)strRenderer, "PowerVR") != nullptr)
|
||||
renderer = Renderer::PowerVR;
|
||||
else if (strstr((const char*)strRenderer, "NVIDIA Tegra") != nullptr)
|
||||
renderer = Renderer::Tegra;
|
||||
LOG(LOG_VERBOSE, "OpenGL renderer: %s\n", strRenderer);
|
||||
|
||||
int numericVersion = majorVersion * 10 + minorVersion;
|
||||
|
@ -55,8 +57,10 @@ void GLInfo::init() {
|
|||
msaa = true;
|
||||
}
|
||||
|
||||
fragment_interlock = Utils::isExtensionSupported(*this, "GL_ARB_fragment_shader_interlock");
|
||||
fragment_interlockNV = Utils::isExtensionSupported(*this, "GL_NV_fragment_shader_interlock") && !fragment_interlock;
|
||||
//Tegra has a buggy implementation of fragment_shader_interlock that causes graphics lockups
|
||||
bool hasBuggyFragmentShaderInterlock = renderer == Renderer::Tegra;
|
||||
fragment_interlock = Utils::isExtensionSupported(*this, "GL_ARB_fragment_shader_interlock") && !hasBuggyFragmentShaderInterlock;
|
||||
fragment_interlockNV = Utils::isExtensionSupported(*this, "GL_NV_fragment_shader_interlock") && !fragment_interlock && !hasBuggyFragmentShaderInterlock;
|
||||
fragment_ordering = Utils::isExtensionSupported(*this, "GL_INTEL_fragment_shader_ordering") && !fragment_interlock && !fragment_interlockNV;
|
||||
|
||||
imageTextures = imageTextures && (fragment_interlock || fragment_interlockNV || fragment_ordering);
|
||||
|
|
|
@ -10,6 +10,7 @@ enum class Renderer {
|
|||
VideoCore,
|
||||
Intel,
|
||||
PowerVR,
|
||||
Tegra,
|
||||
Other
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user