Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit daed369

Browse files
Mohan MaiyaCommit Bot
authored andcommitted
EGL: Add support for GL_EXT_EGL_image_array extension
Add support for creating 2D array EGLImages. 2D array textures are core in GLES3.0. Enable the eglImageArray bool that controls exposure of the extension for all contexts >= GLES3.0 Bug: angleproject:4604 Tests: angle_end2end_tests --gtest_filter=ImageTest.*2DArray* Change-Id: Iebc1ad184fe7209ca89d620290337438ac251c56 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2176109 Commit-Queue: Mohan Maiya <[email protected]> Reviewed-by: Geoff Lang <[email protected]>
1 parent 930b264 commit daed369

25 files changed

+163
-17
lines changed

scripts/code_generation_hashes/GL_EGL_WGL_loader.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"scripts/gl_angle_ext.xml":
1111
"079cc4829de7ce638faf7bbf66e141ad",
1212
"scripts/registry_xml.py":
13-
"d48b9fcf30e2f98210f0b98824e7bd49",
13+
"b2902e02f495a9cc85082c47e7b73ac9",
1414
"scripts/wgl.xml":
1515
"aa96419c582af2f6673430e2847693f4",
1616
"src/libEGL/egl_loader_autogen.cpp":

scripts/code_generation_hashes/GL_EGL_entry_points.json

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"scripts/gl_angle_ext.xml":
1313
"079cc4829de7ce638faf7bbf66e141ad",
1414
"scripts/registry_xml.py":
15-
"d48b9fcf30e2f98210f0b98824e7bd49",
15+
"b2902e02f495a9cc85082c47e7b73ac9",
1616
"scripts/wgl.xml":
1717
"aa96419c582af2f6673430e2847693f4",
1818
"src/libANGLE/Context_gl_1_0_autogen.h":
@@ -64,7 +64,7 @@
6464
"src/libANGLE/Context_gles_3_2_autogen.h":
6565
"e26f7ee7b59a89a4f5337171816b8336",
6666
"src/libANGLE/Context_gles_ext_autogen.h":
67-
"c4882553e6cef2a53b922ebe9ec88556",
67+
"70b088f16d539f1fe7f3ec39a2fd2c34",
6868
"src/libANGLE/capture_gles_1_0_autogen.cpp":
6969
"96fc0f501e2e696ab911dad8b400dfb2",
7070
"src/libANGLE/capture_gles_1_0_autogen.h":
@@ -88,7 +88,7 @@
8888
"src/libANGLE/capture_gles_ext_autogen.cpp":
8989
"96cb5043ebfce349c89ece3afec6d9f8",
9090
"src/libANGLE/capture_gles_ext_autogen.h":
91-
"f6604f279558cf5d965e3dce61e0dc91",
91+
"2993ff4c127fb3dca52c96b4a86d7f69",
9292
"src/libANGLE/entry_points_enum_autogen.cpp":
9393
"66f09d4f9e6f8e83f2f6f0cf8fc3f3d9",
9494
"src/libANGLE/entry_points_enum_autogen.h":
@@ -110,7 +110,7 @@
110110
"src/libANGLE/validationES3_autogen.h":
111111
"86ba503835328438158d9a464943f3bd",
112112
"src/libANGLE/validationESEXT_autogen.h":
113-
"a48272ec357016df88899f85ad33d0ef",
113+
"9a7f7c129e12ab2660f1ef5d6dd73cd5",
114114
"src/libANGLE/validationGL11_autogen.h":
115115
"aadd145c1404de9c34d6b7c00404f10f",
116116
"src/libANGLE/validationGL12_autogen.h":
@@ -250,15 +250,15 @@
250250
"src/libGLESv2/entry_points_gles_3_2_autogen.h":
251251
"5798aa0a73af1d4ba5dfe99b6217a247",
252252
"src/libGLESv2/entry_points_gles_ext_autogen.cpp":
253-
"b10a0a6c1becd3bfc8149c29dfc268b1",
253+
"f24b9311081f4307a4b02cec669753b9",
254254
"src/libGLESv2/entry_points_gles_ext_autogen.h":
255-
"b564ae1ca4e312bd9d8138f593d8110c",
255+
"97bdf48e620471b21e3d250254ac847f",
256256
"src/libGLESv2/libGLESv2_autogen.cpp":
257-
"0f02d0cef8752453648ea10862a63535",
257+
"0d79a167f0e86a7adcdebfe26ed331a9",
258258
"src/libGLESv2/libGLESv2_autogen.def":
259-
"266fc07e2657fc96eabb4ae29f330e07",
259+
"ff7562ae9bdf8763fea7ba09e5cbb1b4",
260260
"src/libGLESv2/libGLESv2_no_capture_autogen.def":
261-
"f67114b49f9dcd1b7f9d5abaf0dfe190",
261+
"affecd039c50674887d6c7bd9b06d4ce",
262262
"src/libGLESv2/libGLESv2_with_capture_autogen.def":
263-
"5e272fd38bfe01cf0a31def20d9b70e8"
263+
"5a9fce5f01b3b2150cbce447f02e7873"
264264
}

scripts/code_generation_hashes/GLenum_value_to_string_map.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"scripts/gl_angle_ext.xml":
77
"079cc4829de7ce638faf7bbf66e141ad",
88
"scripts/registry_xml.py":
9-
"d48b9fcf30e2f98210f0b98824e7bd49",
9+
"b2902e02f495a9cc85082c47e7b73ac9",
1010
"src/libANGLE/gl_enum_utils_autogen.cpp":
1111
"48627c0865d15bf4014327de5858d3c5",
1212
"src/libANGLE/gl_enum_utils_autogen.h":

scripts/code_generation_hashes/proc_table.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"scripts/gl_angle_ext.xml":
1111
"079cc4829de7ce638faf7bbf66e141ad",
1212
"scripts/registry_xml.py":
13-
"d48b9fcf30e2f98210f0b98824e7bd49",
13+
"b2902e02f495a9cc85082c47e7b73ac9",
1414
"scripts/wgl.xml":
1515
"aa96419c582af2f6673430e2847693f4",
1616
"src/libGL/proc_table_wgl_autogen.cpp":

scripts/registry_xml.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@
6868
"GL_EXT_draw_buffers",
6969
"GL_EXT_draw_buffers_indexed",
7070
"GL_EXT_draw_elements_base_vertex",
71+
"GL_EXT_EGL_image_array",
7172
"GL_EXT_geometry_shader",
7273
"GL_EXT_instanced_arrays",
7374
"GL_EXT_map_buffer_range",

src/libANGLE/Caps.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1012,6 +1012,7 @@ const ExtensionInfoMap &GetExtensionInfoMap()
10121012
map["GL_EXT_draw_elements_base_vertex"] = enableableExtension(&Extensions::drawElementsBaseVertexEXT);
10131013
map["GL_EXT_gpu_shader5"] = enableableExtension(&Extensions::gpuShader5EXT);
10141014
map["GL_APPLE_clip_distance"] = enableableExtension(&Extensions::clipDistanceAPPLE);
1015+
map["GL_EXT_EGL_image_array"] = enableableExtension(&Extensions::eglImageArray);
10151016
// GLES1 extensions
10161017
map["GL_OES_point_size_array"] = enableableExtension(&Extensions::pointSizeArrayOES);
10171018
map["GL_OES_texture_cube_map"] = enableableExtension(&Extensions::textureCubeMapOES);

src/libANGLE/Caps.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -501,6 +501,9 @@ struct Extensions
501501
// GL_CHROMIUM_color_buffer_float_rgba
502502
bool colorBufferFloatRGBA = false;
503503

504+
// GL_EXT_EGL_image_array
505+
bool eglImageArray = false;
506+
504507
// ES3 Extension support
505508

506509
// GL_EXT_color_buffer_float

src/libANGLE/Context.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3099,6 +3099,7 @@ Extensions Context::generateSupportedExtensions() const
30993099
supportedExtensions.textureMultisample = false;
31003100
supportedExtensions.drawBuffersIndexedEXT = false;
31013101
supportedExtensions.drawBuffersIndexedOES = false;
3102+
supportedExtensions.eglImageArray = false;
31023103

31033104
// Requires glCompressedTexImage3D
31043105
supportedExtensions.textureCompressionASTCOES = false;

src/libANGLE/Context_gles_ext_autogen.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,7 @@
273273
/* GL_ANGLE_translated_shader_source */ \
274274
void getTranslatedShaderSource(ShaderProgramID shaderPacked, GLsizei bufsize, GLsizei *length, \
275275
GLchar *source); \
276+
/* GL_EXT_EGL_image_array */ \
276277
/* GL_EXT_blend_func_extended */ \
277278
void bindFragDataLocation(ShaderProgramID programPacked, GLuint color, const GLchar *name); \
278279
void bindFragDataLocationIndexed(ShaderProgramID programPacked, GLuint colorNumber, \

src/libANGLE/Image.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -388,6 +388,11 @@ size_t Image::getHeight() const
388388
return mState.size.height;
389389
}
390390

391+
bool Image::isLayered() const
392+
{
393+
return mState.imageIndex.isLayered();
394+
}
395+
391396
size_t Image::getSamples() const
392397
{
393398
return mState.samples;

0 commit comments

Comments
 (0)