gl_rasterizer: check for GL_ARB_copy_image

This commit is contained in:
Vitor Kiguchi 2021-04-05 23:52:11 -03:00
parent 981ffb5090
commit 3fb1988b5b

View file

@ -61,6 +61,11 @@ RasterizerOpenGL::RasterizerOpenGL()
"Shadow might not be able to render because of unsupported OpenGL extensions."); "Shadow might not be able to render because of unsupported OpenGL extensions.");
} }
if (!GLAD_GL_ARB_copy_image) {
LOG_WARNING(Render_OpenGL,
"ARB_copy_image not supported. Some games might produce artifacts.");
}
// Clipping plane 0 is always enabled for PICA fixed clip plane z <= 0 // Clipping plane 0 is always enabled for PICA fixed clip plane z <= 0
state.clip_distance[0] = true; state.clip_distance[0] = true;
@ -772,7 +777,7 @@ bool RasterizerOpenGL::Draw(bool accelerate, bool is_indexed) {
} }
OGLTexture temp_tex; OGLTexture temp_tex;
if (need_duplicate_texture) { if (need_duplicate_texture && GLAD_GL_ARB_copy_image) {
// The game is trying to use a surface as a texture and framebuffer at the same time // The game is trying to use a surface as a texture and framebuffer at the same time
// which causes unpredictable behavior on the host. // which causes unpredictable behavior on the host.
// Making a copy to sample from eliminates this issue and seems to be fairly cheap. // Making a copy to sample from eliminates this issue and seems to be fairly cheap.