Use glCopyImageSubData() when it's available.

There's 4 different extensions providing this functionality.  NV is
supported on desktop and mobile, EXT/OES on mobile, and ARB on desktop.

Mostly these are only supported by desktop cards and NVIDIA mobile.

Good improvement in performance on NVIDIA when blit is called a lot, since
it doesn't need to rebind anything or change state.  Example is in desert
city in Tales of Phantasia.
This commit is contained in:
Unknown W. Brackets
2015-12-06 10:39:21 -08:00
parent a2e09eada7
commit fbc4b4e7a1
8 changed files with 59 additions and 13 deletions
+3
View File
@@ -537,6 +537,9 @@ void GLES_GPU::CheckGPUFeatures() {
if (gl_extensions.EXT_blend_minmax || gl_extensions.GLES3)
features |= GPU_SUPPORTS_BLEND_MINMAX;
if (gl_extensions.OES_copy_image || gl_extensions.NV_copy_image || gl_extensions.EXT_copy_image || gl_extensions.ARB_copy_image)
features |= GPU_SUPPORTS_ANY_COPY_IMAGE;
if (!gl_extensions.IsGLES)
features |= GPU_SUPPORTS_LOGIC_OP;