Implement GL_OES_vertex_half_float.
This enables using half-float vertex data for OpenGL ES 2.0.
Note that GL_HALF_FLOAT_OES does not have the same value as
GL_HALF_FLOAT.
Change-Id: I0a7a55b7904fe797cdbb86627c8d0a1cc07d2d0a
Reviewed-on: https://swiftshader-review.googlesource.com/1500
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Tested-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/src/OpenGL/libGLESv2/Context.cpp b/src/OpenGL/libGLESv2/Context.cpp
index aa68523..3cd11af 100644
--- a/src/OpenGL/libGLESv2/Context.cpp
+++ b/src/OpenGL/libGLESv2/Context.cpp
@@ -4314,6 +4314,7 @@
"GL_OES_texture_half_float_linear",
"GL_OES_texture_npot",
"GL_OES_texture_3D",
+ "GL_OES_vertex_half_float",
"GL_EXT_blend_minmax",
"GL_EXT_color_buffer_half_float",
"GL_EXT_draw_buffers",
diff --git a/src/OpenGL/libGLESv2/VertexDataManager.cpp b/src/OpenGL/libGLESv2/VertexDataManager.cpp
index 2fff628..59062f7 100644
--- a/src/OpenGL/libGLESv2/VertexDataManager.cpp
+++ b/src/OpenGL/libGLESv2/VertexDataManager.cpp
@@ -193,6 +193,7 @@
case GL_FIXED: translated[i].type = sw::STREAMTYPE_FIXED; break;
case GL_FLOAT: translated[i].type = sw::STREAMTYPE_FLOAT; break;
case GL_HALF_FLOAT: translated[i].type = sw::STREAMTYPE_HALF; break;
+ case GL_HALF_FLOAT_OES: translated[i].type = sw::STREAMTYPE_HALF; break;
case GL_INT_2_10_10_10_REV: translated[i].type = sw::STREAMTYPE_2_10_10_10_INT; break;
case GL_UNSIGNED_INT_2_10_10_10_REV: translated[i].type = sw::STREAMTYPE_2_10_10_10_UINT; break;
default: UNREACHABLE(attrib.mType); translated[i].type = sw::STREAMTYPE_FLOAT; break;
diff --git a/src/OpenGL/libGLESv2/libGLESv2.cpp b/src/OpenGL/libGLESv2/libGLESv2.cpp
index 3b687fb..f486982 100644
--- a/src/OpenGL/libGLESv2/libGLESv2.cpp
+++ b/src/OpenGL/libGLESv2/libGLESv2.cpp
@@ -6146,6 +6146,7 @@
case GL_UNSIGNED_SHORT:
case GL_FIXED:
case GL_FLOAT:
+ case GL_HALF_FLOAT_OES: // GL_OES_vertex_half_float
break;
case GL_INT_2_10_10_10_REV:
case GL_UNSIGNED_INT_2_10_10_10_REV: