opengl: disable ClearTexture on Intel drivers (#6879)
This commit is contained in:
parent
bc0bf4d3d2
commit
1a6860f35c
@ -188,6 +188,10 @@ void Driver::FindBugs() {
|
|||||||
if (vendor == Vendor::AMD || (vendor == Vendor::Intel && !is_linux)) {
|
if (vendor == Vendor::AMD || (vendor == Vendor::Intel && !is_linux)) {
|
||||||
bugs |= DriverBug::BrokenTextureView;
|
bugs |= DriverBug::BrokenTextureView;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (vendor == Vendor::Intel && !is_linux) {
|
||||||
|
bugs |= DriverBug::BrokenClearTexture;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace OpenGL
|
} // namespace OpenGL
|
||||||
|
@ -38,6 +38,8 @@ enum class DriverBug {
|
|||||||
VertexArrayOutOfBound = 1 << 1,
|
VertexArrayOutOfBound = 1 << 1,
|
||||||
// On AMD and Intel drivers on Windows glTextureView produces incorrect results
|
// On AMD and Intel drivers on Windows glTextureView produces incorrect results
|
||||||
BrokenTextureView = 1 << 2,
|
BrokenTextureView = 1 << 2,
|
||||||
|
// On Haswell and Broadwell Intel drivers glClearTexSubImage produces a black screen
|
||||||
|
BrokenClearTexture = 1 << 3,
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -189,7 +189,7 @@ bool TextureRuntime::Reinterpret(Surface& source, Surface& dest,
|
|||||||
|
|
||||||
bool TextureRuntime::ClearTextureWithoutFbo(Surface& surface,
|
bool TextureRuntime::ClearTextureWithoutFbo(Surface& surface,
|
||||||
const VideoCore::TextureClear& clear) {
|
const VideoCore::TextureClear& clear) {
|
||||||
if (!driver.HasArbClearTexture()) {
|
if (!driver.HasArbClearTexture() || driver.HasBug(DriverBug::BrokenClearTexture)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
GLenum format{};
|
GLenum format{};
|
||||||
|
Loading…
Reference in New Issue
Block a user