Fix strict ordering of EGL configs.
Change-Id: I51c1774a35706639481c030b4365ee2e5d7ccd4d
Reviewed-on: https://swiftshader-review.googlesource.com/4255
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
diff --git a/src/OpenGL/libEGL/Config.cpp b/src/OpenGL/libEGL/Config.cpp
index dd0ca47..59c897f 100644
--- a/src/OpenGL/libEGL/Config.cpp
+++ b/src/OpenGL/libEGL/Config.cpp
@@ -36,7 +36,8 @@
mBindToTextureRGB = EGL_FALSE;
mBindToTextureRGBA = EGL_FALSE;
- mNativeVisualID = 0;
+ // Initialize to a high value to lower the preference of formats for which there's no native support
+ mNativeVisualID = 0x7FFFFFFF;
switch(renderTargetFormat)
{
@@ -60,6 +61,8 @@
mBindToTextureRGBA = EGL_TRUE;
#ifdef __ANDROID__
mNativeVisualID = HAL_PIXEL_FORMAT_BGRA_8888;
+ #else
+ mNativeVisualID = 2; // Arbitrary; prefer over ABGR
#endif
break;
case sw::FORMAT_A8B8G8R8:
@@ -88,7 +91,9 @@
mAlphaSize = 0;
mBindToTextureRGB = EGL_TRUE;
#ifdef __ANDROID__
- mNativeVisualID = HAL_PIXEL_FORMAT_BGRA_8888;
+ mNativeVisualID = 0x1FF; // HAL_PIXEL_FORMAT_BGRX_8888
+ #else
+ mNativeVisualID = 1; // Arbitrary; prefer over XBGR
#endif
break;
case sw::FORMAT_X8B8G8R8:
@@ -102,7 +107,7 @@
#endif
break;
default:
- UNREACHABLE(renderTargetFormat); // Other formats should not be valid
+ UNREACHABLE(renderTargetFormat);
}
mLuminanceSize = 0;
@@ -221,6 +226,7 @@
SORT_SMALLER(mStencilSize);
SORT_SMALLER(mAlphaMaskSize);
SORT_SMALLER(mNativeVisualType);
+ SORT_SMALLER(mNativeVisualID);
#undef SORT_SMALLER