Add missing attribute to eglGetConfigAttrib

EGL_ANGLE_iosurface_client_buffer added a new attribute to the config:
EGL_BIND_TO_TEXTURE_TARGET_ANGLE, which needed to be properly exposed
in the EGL frontend.

Bug: chromium:1015454
Change-Id: I58881df18d711ed7974a0a06e53fed42b1f28638
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/41709
Presubmit-Ready: Alexis Hétu <sugoi@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Tested-by: Alexis Hétu <sugoi@google.com>
diff --git a/src/OpenGL/libEGL/Config.cpp b/src/OpenGL/libEGL/Config.cpp
index 1af9229..62dc92f 100644
--- a/src/OpenGL/libEGL/Config.cpp
+++ b/src/OpenGL/libEGL/Config.cpp
@@ -18,6 +18,7 @@
 
 #include "Config.h"
 
+#include "Display.h"
 #include "common/debug.h"
 
 #include <EGL/eglext.h>
@@ -192,6 +193,7 @@
 	// the intent of EGL_ANDROID_framebuffer_target is to prevent any copies or conversions.
 	mFramebufferTargetAndroid = (displayFormat == renderTargetFormat) ? EGL_TRUE : EGL_FALSE;
 	mRecordableAndroid = EGL_TRUE;
+	mBindToTextureTargetANGLE = EGL_TEXTURE_RECTANGLE_ANGLE;
 }
 
 EGLConfig Config::getHandle() const
@@ -398,6 +400,7 @@
 				case EGL_CONFORMANT:                 match = (config->mConformant & attribIt->second) == attribIt->second;      break;
 				case EGL_RECORDABLE_ANDROID:         match = config->mRecordableAndroid == (EGLBoolean)attribIt->second;        break;
 				case EGL_FRAMEBUFFER_TARGET_ANDROID: match = config->mFramebufferTargetAndroid == (EGLBoolean)attribIt->second; break;
+				case EGL_BIND_TO_TEXTURE_TARGET_ANGLE: match = config->mBindToTextureTargetANGLE == (EGLBoolean)attribIt->second; break;
 
 				// Ignored attributes
 				case EGL_MAX_PBUFFER_WIDTH:
diff --git a/src/OpenGL/libEGL/Config.h b/src/OpenGL/libEGL/Config.h
index 46719e1..d173b51 100644
--- a/src/OpenGL/libEGL/Config.h
+++ b/src/OpenGL/libEGL/Config.h
@@ -76,6 +76,7 @@
 
 	EGLBoolean mRecordableAndroid;          // EGL_ANDROID_recordable
 	EGLBoolean mFramebufferTargetAndroid;   // EGL_ANDROID_framebuffer_target
+	EGLenum mBindToTextureTargetANGLE;      // EGL_ANGLE_iosurface_client_buffer
 };
 
 struct CompareConfig
diff --git a/src/OpenGL/libEGL/Display.cpp b/src/OpenGL/libEGL/Display.cpp
index eeb44e5..426769e 100644
--- a/src/OpenGL/libEGL/Display.cpp
+++ b/src/OpenGL/libEGL/Display.cpp
@@ -279,6 +279,7 @@
 	case EGL_MAX_PBUFFER_PIXELS:         *value = configuration->mMaxPBufferPixels;         break;
 	case EGL_RECORDABLE_ANDROID:         *value = configuration->mRecordableAndroid;        break;
 	case EGL_FRAMEBUFFER_TARGET_ANDROID: *value = configuration->mFramebufferTargetAndroid; break;
+	case EGL_BIND_TO_TEXTURE_TARGET_ANGLE: *value = configuration->mBindToTextureTargetANGLE; break;
 	default:
 		return false;
 	}
diff --git a/src/OpenGL/libEGL/Display.h b/src/OpenGL/libEGL/Display.h
index a187e21..106a4e0 100644
--- a/src/OpenGL/libEGL/Display.h
+++ b/src/OpenGL/libEGL/Display.h
@@ -33,6 +33,7 @@
 #define EGL_TEXTURE_RECTANGLE_ANGLE 0x345B
 #define EGL_TEXTURE_TYPE_ANGLE 0x345C
 #define EGL_TEXTURE_INTERNAL_FORMAT_ANGLE 0x345D
+#define EGL_BIND_TO_TEXTURE_TARGET_ANGLE 0x348D
 #endif // EGL_ANGLE_iosurface_client_buffer
 
 namespace egl