Add support for EGL_EXT_pixel_format_float
authorMark Adams <marka@nvidia.com>
Wed, 14 Dec 2016 22:02:52 +0000 (17:02 -0500)
committerPyry Haulos <phaulos@google.com>
Wed, 4 Jan 2017 17:16:28 +0000 (09:16 -0800)
This updates the egl.xml version and identifies/skips the float configs

Bug: 32969314
Change-Id: Iacfdf6b1c32c86ea0e6f80ca7ebaaeef583d1135
Merged-In: Iadeb0d4a76a06b2be716f3e76a1cc9fb69aff16a

26 files changed:
android/cts/master/com.drawelements.deqp.egl.xml
android/cts/master/egl-master.txt
framework/egl/egluCallLogWrapper.inl
framework/egl/egluCallLogWrapperApi.inl
framework/egl/egluConfigFilter.cpp
framework/egl/egluConfigFilter.hpp
framework/egl/egluConfigInfo.cpp
framework/egl/egluConfigInfo.hpp
framework/egl/egluStrUtil.inl
framework/egl/egluStrUtilPrototypes.inl
framework/egl/wrapper/eglwEnums.inl
framework/egl/wrapper/eglwFuncPtrLibraryDecl.inl
framework/egl/wrapper/eglwFuncPtrLibraryImpl.inl
framework/egl/wrapper/eglwFunctionTypes.inl
framework/egl/wrapper/eglwFunctions.inl
framework/egl/wrapper/eglwInitCore.inl
framework/egl/wrapper/eglwInitExtensions.inl
framework/egl/wrapper/eglwLibrary.inl
framework/egl/wrapper/eglwStaticLibrary14.inl
framework/egl/wrapper/eglwStaticLibrary15.inl
modules/egl/teglChooseConfigReference.cpp
modules/egl/teglGetProcAddressTests.inl
modules/egl/teglRenderCase.cpp
modules/egl/teglSimpleConfigCase.cpp
scripts/egl/common.py
scripts/egl/str_util.py

index 82622de..3cf885a 100644 (file)
                                        <Test name="egl_android_blob_cache">
                                                <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
                                        </Test>
+                                       <Test name="egl_android_create_native_client_buffer">
+                                               <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+                                       </Test>
                                        <Test name="egl_android_native_fence_sync">
                                                <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
                                        </Test>
+                                       <Test name="egl_android_presentation_time">
+                                               <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+                                       </Test>
                                        <Test name="egl_angle_query_surface_pointer">
                                                <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
                                        </Test>
                                        <Test name="egl_ext_device_query">
                                                <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
                                        </Test>
+                                       <Test name="egl_ext_image_dma_buf_import_modifiers">
+                                               <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+                                       </Test>
                                        <Test name="egl_ext_output_base">
                                                <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
                                        </Test>
                                        <Test name="egl_khr_cl_event2">
                                                <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
                                        </Test>
+                                       <Test name="egl_khr_debug">
+                                               <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+                                       </Test>
                                        <Test name="egl_khr_fence_sync">
                                                <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
                                        </Test>
                                        <Test name="egl_khr_stream">
                                                <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
                                        </Test>
+                                       <Test name="egl_khr_stream_attrib">
+                                               <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+                                       </Test>
                                        <Test name="egl_khr_stream_consumer_gltexture">
                                                <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
                                        </Test>
                                        <Test name="egl_nv_post_sub_buffer">
                                                <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
                                        </Test>
+                                       <Test name="egl_nv_stream_consumer_gltexture_yuv">
+                                               <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+                                       </Test>
+                                       <Test name="egl_nv_stream_metadata">
+                                               <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+                                       </Test>
+                                       <Test name="egl_nv_stream_reset">
+                                               <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+                                       </Test>
                                        <Test name="egl_nv_stream_sync">
                                                <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
                                        </Test>
                                        <Test name="gl_ext_base_instance">
                                                <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
                                        </Test>
+                                       <Test name="gl_ext_blend_func_extended">
+                                               <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+                                       </Test>
+                                       <Test name="gl_ext_buffer_storage">
+                                               <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+                                       </Test>
                                        <Test name="gl_ext_copy_image">
                                                <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
                                        </Test>
                                        <Test name="gl_ext_primitive_bounding_box">
                                                <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
                                        </Test>
+                                       <Test name="gl_ext_raster_multisample">
+                                               <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+                                       </Test>
                                        <Test name="gl_ext_separate_shader_objects">
                                                <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
                                        </Test>
+                                       <Test name="gl_ext_sparse_texture">
+                                               <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+                                       </Test>
                                        <Test name="gl_ext_tessellation_shader">
                                                <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
                                        </Test>
                                        <Test name="gl_ext_texture_buffer">
                                                <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
                                        </Test>
+                                       <Test name="gl_ext_texture_filter_minmax">
+                                               <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+                                       </Test>
                                        <Test name="gl_ext_texture_view">
                                                <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
                                        </Test>
+                                       <Test name="gl_intel_framebuffer_cmaa">
+                                               <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+                                       </Test>
                                        <Test name="gl_intel_performance_query">
                                                <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
                                        </Test>
                                        <Test name="gl_nv_conditional_render">
                                                <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
                                        </Test>
+                                       <Test name="gl_nv_conservative_raster">
+                                               <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+                                       </Test>
                                        <Test name="gl_nv_copy_buffer">
                                                <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
                                        </Test>
                                        <Test name="gl_nv_draw_instanced">
                                                <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
                                        </Test>
+                                       <Test name="gl_nv_fragment_coverage_to_color">
+                                               <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+                                       </Test>
                                        <Test name="gl_nv_framebuffer_blit">
                                                <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
                                        </Test>
+                                       <Test name="gl_nv_framebuffer_mixed_samples">
+                                               <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+                                       </Test>
                                        <Test name="gl_nv_framebuffer_multisample">
                                                <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
                                        </Test>
                                        <Test name="gl_nv_path_rendering">
                                                <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
                                        </Test>
+                                       <Test name="gl_nv_polygon_mode">
+                                               <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+                                       </Test>
                                        <Test name="gl_nv_read_buffer">
                                                <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
                                        </Test>
+                                       <Test name="gl_nv_sample_locations">
+                                               <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+                                       </Test>
                                        <Test name="gl_nv_viewport_array">
                                                <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
                                        </Test>
                                        <Test name="gl_oes_texture_view">
                                                <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
                                        </Test>
+                                       <Test name="gl_ovr_multiview">
+                                               <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
+                                       </Test>
                                        <Test name="gl_qcom_alpha_test">
                                                <TestInstance glconfig="rgba8888d24s8ms0" rotation="unspecified" surfacetype="window"/>
                                        </Test>
index a43d137..9485b15 100644 (file)
@@ -2364,17 +2364,21 @@ dEQP-EGL.functional.multithread.pbuffer_context
 dEQP-EGL.functional.multithread.single_window_context
 dEQP-EGL.functional.multithread.pbuffer_single_window_context
 dEQP-EGL.functional.get_proc_address.extension.egl_android_blob_cache
+dEQP-EGL.functional.get_proc_address.extension.egl_android_create_native_client_buffer
 dEQP-EGL.functional.get_proc_address.extension.egl_android_native_fence_sync
+dEQP-EGL.functional.get_proc_address.extension.egl_android_presentation_time
 dEQP-EGL.functional.get_proc_address.extension.egl_angle_query_surface_pointer
 dEQP-EGL.functional.get_proc_address.extension.egl_ext_device_base
 dEQP-EGL.functional.get_proc_address.extension.egl_ext_device_enumeration
 dEQP-EGL.functional.get_proc_address.extension.egl_ext_device_query
+dEQP-EGL.functional.get_proc_address.extension.egl_ext_image_dma_buf_import_modifiers
 dEQP-EGL.functional.get_proc_address.extension.egl_ext_output_base
 dEQP-EGL.functional.get_proc_address.extension.egl_ext_platform_base
 dEQP-EGL.functional.get_proc_address.extension.egl_ext_stream_consumer_egloutput
 dEQP-EGL.functional.get_proc_address.extension.egl_ext_swap_buffers_with_damage
 dEQP-EGL.functional.get_proc_address.extension.egl_hi_clientpixmap
 dEQP-EGL.functional.get_proc_address.extension.egl_khr_cl_event2
+dEQP-EGL.functional.get_proc_address.extension.egl_khr_debug
 dEQP-EGL.functional.get_proc_address.extension.egl_khr_fence_sync
 dEQP-EGL.functional.get_proc_address.extension.egl_khr_image
 dEQP-EGL.functional.get_proc_address.extension.egl_khr_image_base
@@ -2383,6 +2387,7 @@ dEQP-EGL.functional.get_proc_address.extension.egl_khr_lock_surface3
 dEQP-EGL.functional.get_proc_address.extension.egl_khr_partial_update
 dEQP-EGL.functional.get_proc_address.extension.egl_khr_reusable_sync
 dEQP-EGL.functional.get_proc_address.extension.egl_khr_stream
+dEQP-EGL.functional.get_proc_address.extension.egl_khr_stream_attrib
 dEQP-EGL.functional.get_proc_address.extension.egl_khr_stream_consumer_gltexture
 dEQP-EGL.functional.get_proc_address.extension.egl_khr_stream_cross_process_fd
 dEQP-EGL.functional.get_proc_address.extension.egl_khr_stream_fifo
@@ -2395,6 +2400,9 @@ dEQP-EGL.functional.get_proc_address.extension.egl_nok_swap_region
 dEQP-EGL.functional.get_proc_address.extension.egl_nok_swap_region2
 dEQP-EGL.functional.get_proc_address.extension.egl_nv_native_query
 dEQP-EGL.functional.get_proc_address.extension.egl_nv_post_sub_buffer
+dEQP-EGL.functional.get_proc_address.extension.egl_nv_stream_consumer_gltexture_yuv
+dEQP-EGL.functional.get_proc_address.extension.egl_nv_stream_metadata
+dEQP-EGL.functional.get_proc_address.extension.egl_nv_stream_reset
 dEQP-EGL.functional.get_proc_address.extension.egl_nv_stream_sync
 dEQP-EGL.functional.get_proc_address.extension.egl_nv_sync
 dEQP-EGL.functional.get_proc_address.extension.egl_nv_system_time
@@ -2434,6 +2442,8 @@ dEQP-EGL.functional.get_proc_address.extension.gl_angle_framebuffer_multisample
 dEQP-EGL.functional.get_proc_address.extension.gl_angle_instanced_arrays
 dEQP-EGL.functional.get_proc_address.extension.gl_angle_translated_shader_source
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_base_instance
+dEQP-EGL.functional.get_proc_address.extension.gl_ext_blend_func_extended
+dEQP-EGL.functional.get_proc_address.extension.gl_ext_buffer_storage
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_copy_image
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_debug_label
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_debug_marker
@@ -2448,11 +2458,15 @@ dEQP-EGL.functional.get_proc_address.extension.gl_ext_multi_draw_indirect
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_multiview_draw_buffers
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_occlusion_query_boolean
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_primitive_bounding_box
+dEQP-EGL.functional.get_proc_address.extension.gl_ext_raster_multisample
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_separate_shader_objects
+dEQP-EGL.functional.get_proc_address.extension.gl_ext_sparse_texture
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_tessellation_shader
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_texture_border_clamp
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_texture_buffer
+dEQP-EGL.functional.get_proc_address.extension.gl_ext_texture_filter_minmax
 dEQP-EGL.functional.get_proc_address.extension.gl_ext_texture_view
+dEQP-EGL.functional.get_proc_address.extension.gl_intel_framebuffer_cmaa
 dEQP-EGL.functional.get_proc_address.extension.gl_intel_performance_query
 dEQP-EGL.functional.get_proc_address.extension.gl_khr_blend_equation_advanced
 dEQP-EGL.functional.get_proc_address.extension.gl_khr_debug
@@ -2460,17 +2474,22 @@ dEQP-EGL.functional.get_proc_address.extension.gl_khr_robustness
 dEQP-EGL.functional.get_proc_address.extension.gl_nv_bindless_texture
 dEQP-EGL.functional.get_proc_address.extension.gl_nv_blend_equation_advanced
 dEQP-EGL.functional.get_proc_address.extension.gl_nv_conditional_render
+dEQP-EGL.functional.get_proc_address.extension.gl_nv_conservative_raster
 dEQP-EGL.functional.get_proc_address.extension.gl_nv_copy_buffer
 dEQP-EGL.functional.get_proc_address.extension.gl_nv_coverage_sample
 dEQP-EGL.functional.get_proc_address.extension.gl_nv_draw_buffers
 dEQP-EGL.functional.get_proc_address.extension.gl_nv_draw_instanced
+dEQP-EGL.functional.get_proc_address.extension.gl_nv_fragment_coverage_to_color
 dEQP-EGL.functional.get_proc_address.extension.gl_nv_framebuffer_blit
+dEQP-EGL.functional.get_proc_address.extension.gl_nv_framebuffer_mixed_samples
 dEQP-EGL.functional.get_proc_address.extension.gl_nv_framebuffer_multisample
 dEQP-EGL.functional.get_proc_address.extension.gl_nv_instanced_arrays
 dEQP-EGL.functional.get_proc_address.extension.gl_nv_internalformat_sample_query
 dEQP-EGL.functional.get_proc_address.extension.gl_nv_non_square_matrices
 dEQP-EGL.functional.get_proc_address.extension.gl_nv_path_rendering
+dEQP-EGL.functional.get_proc_address.extension.gl_nv_polygon_mode
 dEQP-EGL.functional.get_proc_address.extension.gl_nv_read_buffer
+dEQP-EGL.functional.get_proc_address.extension.gl_nv_sample_locations
 dEQP-EGL.functional.get_proc_address.extension.gl_nv_viewport_array
 dEQP-EGL.functional.get_proc_address.extension.gl_oes_copy_image
 dEQP-EGL.functional.get_proc_address.extension.gl_oes_draw_buffers_indexed
@@ -2485,6 +2504,7 @@ dEQP-EGL.functional.get_proc_address.extension.gl_oes_texture_border_clamp
 dEQP-EGL.functional.get_proc_address.extension.gl_oes_texture_buffer
 dEQP-EGL.functional.get_proc_address.extension.gl_oes_texture_storage_multisample_2d_array
 dEQP-EGL.functional.get_proc_address.extension.gl_oes_texture_view
+dEQP-EGL.functional.get_proc_address.extension.gl_ovr_multiview
 dEQP-EGL.functional.get_proc_address.extension.gl_qcom_alpha_test
 dEQP-EGL.functional.get_proc_address.core.egl
 dEQP-EGL.functional.get_proc_address.core.gles
index fa4f5e7..ee49459 100644 (file)
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos EGL API description (egl.xml) revision 31042.
+ * Generated from Khronos EGL API description (egl.xml) revision 33315.
  */
 
 eglw::EGLBoolean CallLogWrapper::eglBindAPI (eglw::EGLenum api)
index ba90ce8..99df24b 100644 (file)
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos EGL API description (egl.xml) revision 31042.
+ * Generated from Khronos EGL API description (egl.xml) revision 33315.
  */
 eglw::EGLBoolean                                                               eglBindAPI                                                      (eglw::EGLenum api);
 eglw::EGLBoolean                                                               eglBindTexImage                                         (eglw::EGLDisplay dpy, eglw::EGLSurface surface, eglw::EGLint buffer);
index c6d06ad..bd1a5c7 100644 (file)
@@ -25,6 +25,7 @@
 #include "egluUtil.hpp"
 #include "egluConfigInfo.hpp"
 #include "eglwEnums.hpp"
+#include "deSTLUtil.hpp"
 
 #include <algorithm>
 
@@ -55,19 +56,32 @@ int CandidateConfig::get (deUint32 attrib) const
        if (m_type == TYPE_CONFIG_INFO)
                return m_cfg.configInfo->getAttribute(attrib);
        else
-               return getConfigAttribInt(*m_cfg.object.egl, m_cfg.object.display, m_cfg.object.config, attrib);
+       {
+               if (attrib == EGL_COLOR_COMPONENT_TYPE_EXT)
+               {
+                       const std::vector<std::string>  extensions      = getDisplayExtensions(*m_cfg.object.egl, m_cfg.object.display);
+
+                       if (de::contains(extensions.begin(), extensions.end(), "EGL_EXT_pixel_format_float"))
+                               return getConfigAttribInt(*m_cfg.object.egl, m_cfg.object.display, m_cfg.object.config, attrib);
+                       else
+                               return EGL_COLOR_COMPONENT_TYPE_FIXED_EXT;
+               }
+               else
+                       return getConfigAttribInt(*m_cfg.object.egl, m_cfg.object.display, m_cfg.object.config, attrib);
+       }
 }
 
-int                    CandidateConfig::id                             (void) const { return get(EGL_CONFIG_ID);                                       }
-int                    CandidateConfig::redSize                (void) const { return get(EGL_RED_SIZE);                                        }
-int                    CandidateConfig::greenSize              (void) const { return get(EGL_GREEN_SIZE);                                      }
-int                    CandidateConfig::blueSize               (void) const { return get(EGL_BLUE_SIZE);                                       }
-int                    CandidateConfig::alphaSize              (void) const { return get(EGL_ALPHA_SIZE);                                      }
-int                    CandidateConfig::depthSize              (void) const { return get(EGL_DEPTH_SIZE);                                      }
-int                    CandidateConfig::stencilSize    (void) const { return get(EGL_STENCIL_SIZE);                            }
-int                    CandidateConfig::samples                (void) const { return get(EGL_SAMPLES);                                         }
-deUint32       CandidateConfig::renderableType (void) const { return (deUint32)get(EGL_RENDERABLE_TYPE);       }
-deUint32       CandidateConfig::surfaceType    (void) const { return (deUint32)get(EGL_SURFACE_TYPE);          }
+int                    CandidateConfig::id                                     (void) const { return get(EGL_CONFIG_ID);                                                       }
+int                    CandidateConfig::redSize                        (void) const { return get(EGL_RED_SIZE);                                                        }
+int                    CandidateConfig::greenSize                      (void) const { return get(EGL_GREEN_SIZE);                                                      }
+int                    CandidateConfig::blueSize                       (void) const { return get(EGL_BLUE_SIZE);                                                       }
+int                    CandidateConfig::alphaSize                      (void) const { return get(EGL_ALPHA_SIZE);                                                      }
+int                    CandidateConfig::depthSize                      (void) const { return get(EGL_DEPTH_SIZE);                                                      }
+int                    CandidateConfig::stencilSize            (void) const { return get(EGL_STENCIL_SIZE);                                            }
+int                    CandidateConfig::samples                        (void) const { return get(EGL_SAMPLES);                                                         }
+deUint32       CandidateConfig::renderableType         (void) const { return (deUint32)get(EGL_RENDERABLE_TYPE);                       }
+deUint32       CandidateConfig::surfaceType            (void) const { return (deUint32)get(EGL_SURFACE_TYPE);                          }
+deUint32       CandidateConfig::colorComponentType     (void) const { return (deUint32)get(EGL_COLOR_COMPONENT_TYPE_EXT);      }
 
 FilterList& FilterList::operator<< (ConfigFilter filter)
 {
index 2f316fe..baddad5 100644 (file)
@@ -59,6 +59,7 @@ public:
 
        deUint32                renderableType          (void) const;
        deUint32                surfaceType                     (void) const;
+       deUint32                colorComponentType      (void) const;
 
        tcu::RGBA               colorBits                       (void) const { return tcu::RGBA(redSize(), greenSize(), blueSize(), alphaSize());       }
 
index aed08f3..ab6081c 100644 (file)
@@ -77,6 +77,9 @@ deInt32 ConfigInfo::getAttribute (deUint32 attribute) const
                case EGL_YUV_CSC_STANDARD_EXT:          return yuvCscStandard;
                case EGL_YUV_PLANE_BPP_EXT:                     return yuvPlaneBpp;
 
+               // EGL_EXT_pixel_format_float
+               case EGL_COLOR_COMPONENT_TYPE_EXT:      return colorComponentType;
+
                default:                                                        TCU_THROW(InternalError, "Unknown attribute");
        }
 }
@@ -132,6 +135,15 @@ void queryExtConfigInfo (const eglw::Library& egl, eglw::EGLDisplay display, egl
 
                EGLU_CHECK_MSG(egl, "Failed to query EGL_EXT_yuv_surface config attribs");
        }
+
+       if (de::contains(extensions.begin(), extensions.end(), "EGL_EXT_pixel_format_float"))
+       {
+               egl.getConfigAttrib(display, config, EGL_COLOR_COMPONENT_TYPE_EXT,      (EGLint*)&dst->colorComponentType);
+
+               EGLU_CHECK_MSG(egl, "Failed to query EGL_EXT_pixel_format_float config attribs");
+       }
+       else
+               dst->colorComponentType = EGL_COLOR_COMPONENT_TYPE_FIXED_EXT;
 }
 
 } // eglu
index 356c50a..2c0ae24 100644 (file)
@@ -81,6 +81,9 @@ public:
        deUint32                yuvCscStandard;
        deInt32                 yuvPlaneBpp;
 
+       // EGL_EXT_pixel_format_float
+       deUint32                colorComponentType;
+
        ConfigInfo (void)
                : bufferSize                    (0)
                , redSize                               (0)
@@ -119,6 +122,7 @@ public:
                , yuvDepthRange                 (EGL_NONE)
                , yuvCscStandard                (EGL_NONE)
                , yuvPlaneBpp                   (EGL_YUV_PLANE_BPP_0_EXT)
+               , colorComponentType    (EGL_NONE)
        {
        }
 
index aab161d..d01e55b 100644 (file)
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos EGL API description (egl.xml) revision 31042.
+ * Generated from Khronos EGL API description (egl.xml) revision 33315.
  */
 
 const char* getBooleanName (int value)
@@ -159,6 +159,16 @@ const char* getYuvPlaneBppName (int value)
        }
 }
 
+const char* getColorComponentTypeName (int value)
+{
+       switch (value)
+       {
+               case EGL_COLOR_COMPONENT_TYPE_FIXED_EXT:        return "EGL_COLOR_COMPONENT_TYPE_FIXED_EXT";
+               case EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT:        return "EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT";
+               default:                                                                        return DE_NULL;
+       }
+}
+
 const char* getSurfaceTargetName (int value)
 {
        switch (value)
index 7ceac62..839837f 100644 (file)
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos EGL API description (egl.xml) revision 31042.
+ * Generated from Khronos EGL API description (egl.xml) revision 33315.
  */
 const char*                                                    getBooleanName                          (int value);
 const char*                                                    getBoolDontCareName                     (int value);
@@ -12,6 +12,7 @@ const char*                                                   getConfigAttribName                     (int value);
 const char*                                                    getSurfaceAttribName            (int value);
 const char*                                                    getYuvOrderName                         (int value);
 const char*                                                    getYuvPlaneBppName                      (int value);
+const char*                                                    getColorComponentTypeName       (int value);
 const char*                                                    getSurfaceTargetName            (int value);
 const char*                                                    getColorBufferTypeName          (int value);
 const char*                                                    getConfigCaveatName                     (int value);
@@ -34,6 +35,7 @@ inline tcu::Format::Enum<int, 2>      getConfigAttribStr                      (int value)             { return tcu:
 inline tcu::Format::Enum<int, 2>       getSurfaceAttribStr                     (int value)             { return tcu::Format::Enum<int, 2>(getSurfaceAttribName, value); }
 inline tcu::Format::Enum<int, 2>       getYuvOrderStr                          (int value)             { return tcu::Format::Enum<int, 2>(getYuvOrderName, value); }
 inline tcu::Format::Enum<int, 2>       getYuvPlaneBppStr                       (int value)             { return tcu::Format::Enum<int, 2>(getYuvPlaneBppName, value); }
+inline tcu::Format::Enum<int, 2>       getColorComponentTypeStr        (int value)             { return tcu::Format::Enum<int, 2>(getColorComponentTypeName, value); }
 inline tcu::Format::Enum<int, 2>       getSurfaceTargetStr                     (int value)             { return tcu::Format::Enum<int, 2>(getSurfaceTargetName, value); }
 inline tcu::Format::Enum<int, 2>       getColorBufferTypeStr           (int value)             { return tcu::Format::Enum<int, 2>(getColorBufferTypeName, value); }
 inline tcu::Format::Enum<int, 2>       getConfigCaveatStr                      (int value)             { return tcu::Format::Enum<int, 2>(getConfigCaveatName, value); }
index 2e8a460..5f1dcaa 100644 (file)
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos EGL API description (egl.xml) revision 31042.
+ * Generated from Khronos EGL API description (egl.xml) revision 33315.
  */
 #define EGL_PBUFFER_BIT                                                                                0x0001
 #define EGL_PIXMAP_BIT                                                                         0x0002
 #define EGL_GL_TEXTURE_ZOFFSET                                                         0x30BD
 #define EGL_GL_TEXTURE_ZOFFSET_KHR                                                     0x30BD
 #define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT                           0x30BF
-#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT                           0x30BF
 #define EGL_FORMAT_RGB_565_EXACT_KHR                                           0x30C0
 #define EGL_FORMAT_RGB_565_KHR                                                         0x30C1
 #define EGL_FORMAT_RGBA_8888_EXACT_KHR                                         0x30C2
 #define EGL_NATIVE_BUFFER_ANDROID                                                      0x3140
 #define EGL_CONTEXT_OPENGL_DEBUG                                                       0x31B0
 #define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE                          0x31B1
+#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS                                       0x31B2
 #define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR     0x31BD
 #define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR     0x31BD
 #define EGL_NO_RESET_NOTIFICATION                                                      0x31BE
 #define EGL_YUV_PLANE_BPP_0_EXT                                                                0x331B
 #define EGL_YUV_PLANE_BPP_8_EXT                                                                0x331C
 #define EGL_YUV_PLANE_BPP_10_EXT                                                       0x331D
+#define EGL_COLOR_COMPONENT_TYPE_EXT                                           0x3339
+#define EGL_COLOR_COMPONENT_TYPE_FIXED_EXT                                     0x333A
+#define EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT                                     0x333B
index b65985c..e7d1327 100644 (file)
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos EGL API description (egl.xml) revision 31042.
+ * Generated from Khronos EGL API description (egl.xml) revision 33315.
  */
 EGLBoolean                                                                     bindAPI                                                 (EGLenum api) const;
 EGLBoolean                                                                     bindTexImage                                    (EGLDisplay dpy, EGLSurface surface, EGLint buffer) const;
index 007b950..1678c71 100644 (file)
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos EGL API description (egl.xml) revision 31042.
+ * Generated from Khronos EGL API description (egl.xml) revision 33315.
  */
 
 EGLBoolean FuncPtrLibrary::bindAPI (EGLenum api) const
index e02039a..d57105e 100644 (file)
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos EGL API description (egl.xml) revision 31042.
+ * Generated from Khronos EGL API description (egl.xml) revision 33315.
  */
 typedef EGLW_APICALL EGLBoolean                                                                        (EGLW_APIENTRY* eglBindAPIFunc)                                                 (EGLenum api);
 typedef EGLW_APICALL EGLBoolean                                                                        (EGLW_APIENTRY* eglBindTexImageFunc)                                    (EGLDisplay dpy, EGLSurface surface, EGLint buffer);
index 3ea39ba..af0d1b2 100644 (file)
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos EGL API description (egl.xml) revision 31042.
+ * Generated from Khronos EGL API description (egl.xml) revision 33315.
  */
 eglBindAPIFunc                                                 bindAPI;
 eglBindTexImageFunc                                            bindTexImage;
index 563cfbd..15f941d 100644 (file)
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos EGL API description (egl.xml) revision 31042.
+ * Generated from Khronos EGL API description (egl.xml) revision 33315.
  */
 dst->bindAPI                                           = (eglBindAPIFunc)                                                      loader->get("eglBindAPI");
 dst->bindTexImage                                      = (eglBindTexImageFunc)                                         loader->get("eglBindTexImage");
index 9488633..90d00a1 100644 (file)
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos EGL API description (egl.xml) revision 31042.
+ * Generated from Khronos EGL API description (egl.xml) revision 33315.
  */
 dst->clientWaitSyncKHR                         = (eglClientWaitSyncKHRFunc)                            loader->get("eglClientWaitSyncKHR");
 dst->createImageKHR                                    = (eglCreateImageKHRFunc)                                       loader->get("eglCreateImageKHR");
index d46e459..a3d617d 100644 (file)
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos EGL API description (egl.xml) revision 31042.
+ * Generated from Khronos EGL API description (egl.xml) revision 33315.
  */
 virtual EGLBoolean                                                                     bindAPI                                                 (EGLenum api) const                                                                                                                                                                                             = 0;
 virtual EGLBoolean                                                                     bindTexImage                                    (EGLDisplay dpy, EGLSurface surface, EGLint buffer) const                                                                                                               = 0;
index 0a02afc..22a2c5c 100644 (file)
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos EGL API description (egl.xml) revision 31042.
+ * Generated from Khronos EGL API description (egl.xml) revision 33315.
  */
        { "eglBindAPI",                                                 (deFunctionPtr)eglBindAPI },
        { "eglBindTexImage",                                    (deFunctionPtr)eglBindTexImage },
index 4ffe3e6..a44c589 100644 (file)
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos EGL API description (egl.xml) revision 31042.
+ * Generated from Khronos EGL API description (egl.xml) revision 33315.
  */
        { "eglBindAPI",                                                 (deFunctionPtr)eglBindAPI },
        { "eglBindTexImage",                                    (deFunctionPtr)eglBindTexImage },
index 50a2769..aab0156 100644 (file)
@@ -142,6 +142,17 @@ private:
                }
        }
 
+       static int getColorComponentTypeRank (EGLenum compType)
+       {
+               switch (compType)
+               {
+                       case EGL_COLOR_COMPONENT_TYPE_FIXED_EXT:        return 0;
+                       case EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT:        return 1;
+                       default:
+                               TCU_THROW(TestError, (std::string("Unknown color component type: ") + eglu::getColorComponentTypeStr(compType).toString()).c_str());
+               }
+       }
+
        typedef bool (*CompareFunc) (const SurfaceConfig& a, const SurfaceConfig& b);
 
        static bool compareCaveat (const SurfaceConfig& a, const SurfaceConfig& b)
@@ -159,6 +170,11 @@ private:
                return getYuvOrderRank((EGLenum)a.m_info.yuvOrder) < getYuvOrderRank((EGLenum)b.m_info.yuvOrder);
        }
 
+       static bool compareColorComponentType (const SurfaceConfig& a, const SurfaceConfig& b)
+       {
+               return getColorComponentTypeRank((EGLenum)a.m_info.colorComponentType) < getColorComponentTypeRank((EGLenum)b.m_info.colorComponentType);
+       }
+
        static bool compareColorBufferBits (const SurfaceConfig& a, const SurfaceConfig& b, const tcu::BVec4& specifiedRGBColors, const tcu::BVec2& specifiedLuminanceColors, bool yuvPlaneBppSpecified)
        {
                DE_ASSERT(a.m_info.colorBufferType == b.m_info.colorBufferType);
@@ -229,6 +245,7 @@ public:
                {
                        SurfaceConfig::compareCaveat,
                        SurfaceConfig::compareColorBufferType,
+                       SurfaceConfig::compareColorComponentType,
                        DE_NULL, // SurfaceConfig::compareColorBufferBits,
                        SurfaceConfig::compareAttributeSmaller<EGL_BUFFER_SIZE>,
                        SurfaceConfig::compareAttributeSmaller<EGL_SAMPLE_BUFFERS>,
@@ -307,6 +324,9 @@ public:
                rules[EGL_YUV_CSC_STANDARD_EXT]         = AttribRule(EGL_YUV_CSC_STANDARD_EXT,          EGL_DONT_CARE,          CRITERIA_EXACT,         SORTORDER_NONE);
                rules[EGL_YUV_PLANE_BPP_EXT]            = AttribRule(EGL_YUV_PLANE_BPP_EXT,                     EGL_DONT_CARE,          CRITERIA_AT_LEAST,      SORTORDER_SPECIAL);     //      3
 
+               // EGL_EXT_pixel_format_float
+               rules[EGL_COLOR_COMPONENT_TYPE_EXT]     = AttribRule(EGL_COLOR_COMPONENT_TYPE_EXT,      EGL_COLOR_COMPONENT_TYPE_FIXED_EXT,             CRITERIA_EXACT,         SORTORDER_SPECIAL);     //      2
+
                return rules;
        }
 private:
index 23c88c4..33fde9b 100644 (file)
@@ -1,7 +1,7 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  *
- * Generated from Khronos EGL API description (egl.xml) revision 31042.
+ * Generated from Khronos EGL API description (egl.xml) revision 33315.
  */
 
 static const char* s_EGL14[] =
@@ -449,11 +449,21 @@ static const char* s_EGL_ANDROID_blob_cache[] =
        "eglSetBlobCacheFuncsANDROID",
 };
 
+static const char* s_EGL_ANDROID_create_native_client_buffer[] =
+{
+       "eglCreateNativeClientBufferANDROID",
+};
+
 static const char* s_EGL_ANDROID_native_fence_sync[] =
 {
        "eglDupNativeFenceFDANDROID",
 };
 
+static const char* s_EGL_ANDROID_presentation_time[] =
+{
+       "eglPresentationTimeANDROID",
+};
+
 static const char* s_EGL_ANGLE_query_surface_pointer[] =
 {
        "eglQuerySurfacePointerANGLE",
@@ -479,6 +489,12 @@ static const char* s_EGL_EXT_device_query[] =
        "eglQueryDisplayAttribEXT",
 };
 
+static const char* s_EGL_EXT_image_dma_buf_import_modifiers[] =
+{
+       "eglQueryDmaBufFormatsEXT",
+       "eglQueryDmaBufModifiersEXT",
+};
+
 static const char* s_EGL_EXT_output_base[] =
 {
        "eglGetOutputLayersEXT",
@@ -518,6 +534,13 @@ static const char* s_EGL_KHR_cl_event2[] =
        "eglCreateSync64KHR",
 };
 
+static const char* s_EGL_KHR_debug[] =
+{
+       "eglDebugMessageControlKHR",
+       "eglLabelObjectKHR",
+       "eglQueryDebugKHR",
+};
+
 static const char* s_EGL_KHR_fence_sync[] =
 {
        "eglClientWaitSyncKHR",
@@ -574,6 +597,15 @@ static const char* s_EGL_KHR_stream[] =
        "eglStreamAttribKHR",
 };
 
+static const char* s_EGL_KHR_stream_attrib[] =
+{
+       "eglCreateStreamAttribKHR",
+       "eglQueryStreamAttribKHR",
+       "eglSetStreamAttribKHR",
+       "eglStreamConsumerAcquireAttribKHR",
+       "eglStreamConsumerReleaseAttribKHR",
+};
+
 static const char* s_EGL_KHR_stream_consumer_gltexture[] =
 {
        "eglStreamConsumerAcquireKHR",
@@ -641,6 +673,23 @@ static const char* s_EGL_NV_post_sub_buffer[] =
        "eglPostSubBufferNV",
 };
 
+static const char* s_EGL_NV_stream_consumer_gltexture_yuv[] =
+{
+       "eglStreamConsumerGLTextureExternalAttribsNV",
+};
+
+static const char* s_EGL_NV_stream_metadata[] =
+{
+       "eglQueryDisplayAttribNV",
+       "eglQueryStreamMetadataNV",
+       "eglSetStreamMetadataNV",
+};
+
+static const char* s_EGL_NV_stream_reset[] =
+{
+       "eglResetStreamNV",
+};
+
 static const char* s_EGL_NV_stream_sync[] =
 {
        "eglCreateStreamSyncNV",
@@ -815,7 +864,6 @@ static const char* s_GL_OES_fixed_point[] =
        "glPointSizexOES",
        "glPolygonOffsetxOES",
        "glRotatexOES",
-       "glSampleCoverageOES",
        "glSampleCoveragexOES",
        "glScalexOES",
        "glTexEnvxOES",
@@ -978,6 +1026,19 @@ static const char* s_GL_EXT_base_instance[] =
        "glDrawElementsInstancedBaseVertexBaseInstanceEXT",
 };
 
+static const char* s_GL_EXT_blend_func_extended[] =
+{
+       "glBindFragDataLocationEXT",
+       "glBindFragDataLocationIndexedEXT",
+       "glGetFragDataIndexEXT",
+       "glGetProgramResourceLocationIndexEXT",
+};
+
+static const char* s_GL_EXT_buffer_storage[] =
+{
+       "glBufferStorageEXT",
+};
+
 static const char* s_GL_EXT_copy_image[] =
 {
        "glCopyImageSubDataEXT",
@@ -1083,6 +1144,11 @@ static const char* s_GL_EXT_primitive_bounding_box[] =
        "glPrimitiveBoundingBoxEXT",
 };
 
+static const char* s_GL_EXT_raster_multisample[] =
+{
+       "glRasterSamplesEXT",
+};
+
 static const char* s_GL_EXT_separate_shader_objects[] =
 {
        "glActiveShaderProgramEXT",
@@ -1131,6 +1197,11 @@ static const char* s_GL_EXT_separate_shader_objects[] =
        "glValidateProgramPipelineEXT",
 };
 
+static const char* s_GL_EXT_sparse_texture[] =
+{
+       "glTexPageCommitmentEXT",
+};
+
 static const char* s_GL_EXT_tessellation_shader[] =
 {
        "glPatchParameteriEXT",
@@ -1154,11 +1225,21 @@ static const char* s_GL_EXT_texture_buffer[] =
        "glTexBufferRangeEXT",
 };
 
+static const char* s_GL_EXT_texture_filter_minmax[] =
+{
+       "glRasterSamplesEXT",
+};
+
 static const char* s_GL_EXT_texture_view[] =
 {
        "glTextureViewEXT",
 };
 
+static const char* s_GL_INTEL_framebuffer_CMAA[] =
+{
+       "glApplyFramebufferAttachmentCMAAINTEL",
+};
+
 static const char* s_GL_INTEL_performance_query[] =
 {
        "glBeginPerfQueryINTEL",
@@ -1231,6 +1312,11 @@ static const char* s_GL_NV_conditional_render[] =
        "glEndConditionalRenderNV",
 };
 
+static const char* s_GL_NV_conservative_raster[] =
+{
+       "glSubpixelPrecisionBiasNV",
+};
+
 static const char* s_GL_NV_copy_buffer[] =
 {
        "glCopyBufferSubDataNV",
@@ -1253,11 +1339,24 @@ static const char* s_GL_NV_draw_instanced[] =
        "glDrawElementsInstancedNV",
 };
 
+static const char* s_GL_NV_fragment_coverage_to_color[] =
+{
+       "glFragmentCoverageColorNV",
+};
+
 static const char* s_GL_NV_framebuffer_blit[] =
 {
        "glBlitFramebufferNV",
 };
 
+static const char* s_GL_NV_framebuffer_mixed_samples[] =
+{
+       "glCoverageModulationNV",
+       "glCoverageModulationTableNV",
+       "glGetCoverageModulationTableNV",
+       "glRasterSamplesEXT",
+};
+
 static const char* s_GL_NV_framebuffer_multisample[] =
 {
        "glRenderbufferStorageMultisampleNV",
@@ -1344,11 +1443,23 @@ static const char* s_GL_NV_path_rendering[] =
        "glWeightPathsNV",
 };
 
+static const char* s_GL_NV_polygon_mode[] =
+{
+       "glPolygonModeNV",
+};
+
 static const char* s_GL_NV_read_buffer[] =
 {
        "glReadBufferNV",
 };
 
+static const char* s_GL_NV_sample_locations[] =
+{
+       "glFramebufferSampleLocationsfvNV",
+       "glNamedFramebufferSampleLocationsfvNV",
+       "glResolveDepthValuesNV",
+};
+
 static const char* s_GL_NV_viewport_array[] =
 {
        "glDepthRangeArrayfvNV",
@@ -1454,6 +1565,11 @@ static const char* s_GL_OES_texture_view[] =
        "glTextureViewOES",
 };
 
+static const char* s_GL_OVR_multiview[] =
+{
+       "glFramebufferTextureMultiviewOVR",
+};
+
 static const char* s_GL_QCOM_alpha_test[] =
 {
        "glAlphaFuncQCOM",
@@ -1467,17 +1583,21 @@ static const struct
 } s_extensions[] =
 {
        { "EGL_ANDROID_blob_cache",                                                     DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_blob_cache),                                           s_EGL_ANDROID_blob_cache                                                },
+       { "EGL_ANDROID_create_native_client_buffer",            DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_create_native_client_buffer),          s_EGL_ANDROID_create_native_client_buffer               },
        { "EGL_ANDROID_native_fence_sync",                                      DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_native_fence_sync),                            s_EGL_ANDROID_native_fence_sync                                 },
+       { "EGL_ANDROID_presentation_time",                                      DE_LENGTH_OF_ARRAY(s_EGL_ANDROID_presentation_time),                            s_EGL_ANDROID_presentation_time                                 },
        { "EGL_ANGLE_query_surface_pointer",                            DE_LENGTH_OF_ARRAY(s_EGL_ANGLE_query_surface_pointer),                          s_EGL_ANGLE_query_surface_pointer                               },
        { "EGL_EXT_device_base",                                                        DE_LENGTH_OF_ARRAY(s_EGL_EXT_device_base),                                                      s_EGL_EXT_device_base                                                   },
        { "EGL_EXT_device_enumeration",                                         DE_LENGTH_OF_ARRAY(s_EGL_EXT_device_enumeration),                                       s_EGL_EXT_device_enumeration                                    },
        { "EGL_EXT_device_query",                                                       DE_LENGTH_OF_ARRAY(s_EGL_EXT_device_query),                                                     s_EGL_EXT_device_query                                                  },
+       { "EGL_EXT_image_dma_buf_import_modifiers",                     DE_LENGTH_OF_ARRAY(s_EGL_EXT_image_dma_buf_import_modifiers),           s_EGL_EXT_image_dma_buf_import_modifiers                },
        { "EGL_EXT_output_base",                                                        DE_LENGTH_OF_ARRAY(s_EGL_EXT_output_base),                                                      s_EGL_EXT_output_base                                                   },
        { "EGL_EXT_platform_base",                                                      DE_LENGTH_OF_ARRAY(s_EGL_EXT_platform_base),                                            s_EGL_EXT_platform_base                                                 },
        { "EGL_EXT_stream_consumer_egloutput",                          DE_LENGTH_OF_ARRAY(s_EGL_EXT_stream_consumer_egloutput),                        s_EGL_EXT_stream_consumer_egloutput                             },
        { "EGL_EXT_swap_buffers_with_damage",                           DE_LENGTH_OF_ARRAY(s_EGL_EXT_swap_buffers_with_damage),                         s_EGL_EXT_swap_buffers_with_damage                              },
        { "EGL_HI_clientpixmap",                                                        DE_LENGTH_OF_ARRAY(s_EGL_HI_clientpixmap),                                                      s_EGL_HI_clientpixmap                                                   },
        { "EGL_KHR_cl_event2",                                                          DE_LENGTH_OF_ARRAY(s_EGL_KHR_cl_event2),                                                        s_EGL_KHR_cl_event2                                                             },
+       { "EGL_KHR_debug",                                                                      DE_LENGTH_OF_ARRAY(s_EGL_KHR_debug),                                                            s_EGL_KHR_debug                                                                 },
        { "EGL_KHR_fence_sync",                                                         DE_LENGTH_OF_ARRAY(s_EGL_KHR_fence_sync),                                                       s_EGL_KHR_fence_sync                                                    },
        { "EGL_KHR_image",                                                                      DE_LENGTH_OF_ARRAY(s_EGL_KHR_image),                                                            s_EGL_KHR_image                                                                 },
        { "EGL_KHR_image_base",                                                         DE_LENGTH_OF_ARRAY(s_EGL_KHR_image_base),                                                       s_EGL_KHR_image_base                                                    },
@@ -1486,6 +1606,7 @@ static const struct
        { "EGL_KHR_partial_update",                                                     DE_LENGTH_OF_ARRAY(s_EGL_KHR_partial_update),                                           s_EGL_KHR_partial_update                                                },
        { "EGL_KHR_reusable_sync",                                                      DE_LENGTH_OF_ARRAY(s_EGL_KHR_reusable_sync),                                            s_EGL_KHR_reusable_sync                                                 },
        { "EGL_KHR_stream",                                                                     DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream),                                                           s_EGL_KHR_stream                                                                },
+       { "EGL_KHR_stream_attrib",                                                      DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_attrib),                                            s_EGL_KHR_stream_attrib                                                 },
        { "EGL_KHR_stream_consumer_gltexture",                          DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_consumer_gltexture),                        s_EGL_KHR_stream_consumer_gltexture                             },
        { "EGL_KHR_stream_cross_process_fd",                            DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_cross_process_fd),                          s_EGL_KHR_stream_cross_process_fd                               },
        { "EGL_KHR_stream_fifo",                                                        DE_LENGTH_OF_ARRAY(s_EGL_KHR_stream_fifo),                                                      s_EGL_KHR_stream_fifo                                                   },
@@ -1498,6 +1619,9 @@ static const struct
        { "EGL_NOK_swap_region2",                                                       DE_LENGTH_OF_ARRAY(s_EGL_NOK_swap_region2),                                                     s_EGL_NOK_swap_region2                                                  },
        { "EGL_NV_native_query",                                                        DE_LENGTH_OF_ARRAY(s_EGL_NV_native_query),                                                      s_EGL_NV_native_query                                                   },
        { "EGL_NV_post_sub_buffer",                                                     DE_LENGTH_OF_ARRAY(s_EGL_NV_post_sub_buffer),                                           s_EGL_NV_post_sub_buffer                                                },
+       { "EGL_NV_stream_consumer_gltexture_yuv",                       DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_consumer_gltexture_yuv),                     s_EGL_NV_stream_consumer_gltexture_yuv                  },
+       { "EGL_NV_stream_metadata",                                                     DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_metadata),                                           s_EGL_NV_stream_metadata                                                },
+       { "EGL_NV_stream_reset",                                                        DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_reset),                                                      s_EGL_NV_stream_reset                                                   },
        { "EGL_NV_stream_sync",                                                         DE_LENGTH_OF_ARRAY(s_EGL_NV_stream_sync),                                                       s_EGL_NV_stream_sync                                                    },
        { "EGL_NV_sync",                                                                        DE_LENGTH_OF_ARRAY(s_EGL_NV_sync),                                                                      s_EGL_NV_sync                                                                   },
        { "EGL_NV_system_time",                                                         DE_LENGTH_OF_ARRAY(s_EGL_NV_system_time),                                                       s_EGL_NV_system_time                                                    },
@@ -1537,6 +1661,8 @@ static const struct
        { "GL_ANGLE_instanced_arrays",                                          DE_LENGTH_OF_ARRAY(s_GL_ANGLE_instanced_arrays),                                        s_GL_ANGLE_instanced_arrays                                             },
        { "GL_ANGLE_translated_shader_source",                          DE_LENGTH_OF_ARRAY(s_GL_ANGLE_translated_shader_source),                        s_GL_ANGLE_translated_shader_source                             },
        { "GL_EXT_base_instance",                                                       DE_LENGTH_OF_ARRAY(s_GL_EXT_base_instance),                                                     s_GL_EXT_base_instance                                                  },
+       { "GL_EXT_blend_func_extended",                                         DE_LENGTH_OF_ARRAY(s_GL_EXT_blend_func_extended),                                       s_GL_EXT_blend_func_extended                                    },
+       { "GL_EXT_buffer_storage",                                                      DE_LENGTH_OF_ARRAY(s_GL_EXT_buffer_storage),                                            s_GL_EXT_buffer_storage                                                 },
        { "GL_EXT_copy_image",                                                          DE_LENGTH_OF_ARRAY(s_GL_EXT_copy_image),                                                        s_GL_EXT_copy_image                                                             },
        { "GL_EXT_debug_label",                                                         DE_LENGTH_OF_ARRAY(s_GL_EXT_debug_label),                                                       s_GL_EXT_debug_label                                                    },
        { "GL_EXT_debug_marker",                                                        DE_LENGTH_OF_ARRAY(s_GL_EXT_debug_marker),                                                      s_GL_EXT_debug_marker                                                   },
@@ -1551,11 +1677,15 @@ static const struct
        { "GL_EXT_multiview_draw_buffers",                                      DE_LENGTH_OF_ARRAY(s_GL_EXT_multiview_draw_buffers),                            s_GL_EXT_multiview_draw_buffers                                 },
        { "GL_EXT_occlusion_query_boolean",                                     DE_LENGTH_OF_ARRAY(s_GL_EXT_occlusion_query_boolean),                           s_GL_EXT_occlusion_query_boolean                                },
        { "GL_EXT_primitive_bounding_box",                                      DE_LENGTH_OF_ARRAY(s_GL_EXT_primitive_bounding_box),                            s_GL_EXT_primitive_bounding_box                                 },
+       { "GL_EXT_raster_multisample",                                          DE_LENGTH_OF_ARRAY(s_GL_EXT_raster_multisample),                                        s_GL_EXT_raster_multisample                                             },
        { "GL_EXT_separate_shader_objects",                                     DE_LENGTH_OF_ARRAY(s_GL_EXT_separate_shader_objects),                           s_GL_EXT_separate_shader_objects                                },
+       { "GL_EXT_sparse_texture",                                                      DE_LENGTH_OF_ARRAY(s_GL_EXT_sparse_texture),                                            s_GL_EXT_sparse_texture                                                 },
        { "GL_EXT_tessellation_shader",                                         DE_LENGTH_OF_ARRAY(s_GL_EXT_tessellation_shader),                                       s_GL_EXT_tessellation_shader                                    },
        { "GL_EXT_texture_border_clamp",                                        DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_border_clamp),                                      s_GL_EXT_texture_border_clamp                                   },
        { "GL_EXT_texture_buffer",                                                      DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_buffer),                                            s_GL_EXT_texture_buffer                                                 },
+       { "GL_EXT_texture_filter_minmax",                                       DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_filter_minmax),                                     s_GL_EXT_texture_filter_minmax                                  },
        { "GL_EXT_texture_view",                                                        DE_LENGTH_OF_ARRAY(s_GL_EXT_texture_view),                                                      s_GL_EXT_texture_view                                                   },
+       { "GL_INTEL_framebuffer_CMAA",                                          DE_LENGTH_OF_ARRAY(s_GL_INTEL_framebuffer_CMAA),                                        s_GL_INTEL_framebuffer_CMAA                                             },
        { "GL_INTEL_performance_query",                                         DE_LENGTH_OF_ARRAY(s_GL_INTEL_performance_query),                                       s_GL_INTEL_performance_query                                    },
        { "GL_KHR_blend_equation_advanced",                                     DE_LENGTH_OF_ARRAY(s_GL_KHR_blend_equation_advanced),                           s_GL_KHR_blend_equation_advanced                                },
        { "GL_KHR_debug",                                                                       DE_LENGTH_OF_ARRAY(s_GL_KHR_debug),                                                                     s_GL_KHR_debug                                                                  },
@@ -1563,17 +1693,22 @@ static const struct
        { "GL_NV_bindless_texture",                                                     DE_LENGTH_OF_ARRAY(s_GL_NV_bindless_texture),                                           s_GL_NV_bindless_texture                                                },
        { "GL_NV_blend_equation_advanced",                                      DE_LENGTH_OF_ARRAY(s_GL_NV_blend_equation_advanced),                            s_GL_NV_blend_equation_advanced                                 },
        { "GL_NV_conditional_render",                                           DE_LENGTH_OF_ARRAY(s_GL_NV_conditional_render),                                         s_GL_NV_conditional_render                                              },
+       { "GL_NV_conservative_raster",                                          DE_LENGTH_OF_ARRAY(s_GL_NV_conservative_raster),                                        s_GL_NV_conservative_raster                                             },
        { "GL_NV_copy_buffer",                                                          DE_LENGTH_OF_ARRAY(s_GL_NV_copy_buffer),                                                        s_GL_NV_copy_buffer                                                             },
        { "GL_NV_coverage_sample",                                                      DE_LENGTH_OF_ARRAY(s_GL_NV_coverage_sample),                                            s_GL_NV_coverage_sample                                                 },
        { "GL_NV_draw_buffers",                                                         DE_LENGTH_OF_ARRAY(s_GL_NV_draw_buffers),                                                       s_GL_NV_draw_buffers                                                    },
        { "GL_NV_draw_instanced",                                                       DE_LENGTH_OF_ARRAY(s_GL_NV_draw_instanced),                                                     s_GL_NV_draw_instanced                                                  },
+       { "GL_NV_fragment_coverage_to_color",                           DE_LENGTH_OF_ARRAY(s_GL_NV_fragment_coverage_to_color),                         s_GL_NV_fragment_coverage_to_color                              },
        { "GL_NV_framebuffer_blit",                                                     DE_LENGTH_OF_ARRAY(s_GL_NV_framebuffer_blit),                                           s_GL_NV_framebuffer_blit                                                },
+       { "GL_NV_framebuffer_mixed_samples",                            DE_LENGTH_OF_ARRAY(s_GL_NV_framebuffer_mixed_samples),                          s_GL_NV_framebuffer_mixed_samples                               },
        { "GL_NV_framebuffer_multisample",                                      DE_LENGTH_OF_ARRAY(s_GL_NV_framebuffer_multisample),                            s_GL_NV_framebuffer_multisample                                 },
        { "GL_NV_instanced_arrays",                                                     DE_LENGTH_OF_ARRAY(s_GL_NV_instanced_arrays),                                           s_GL_NV_instanced_arrays                                                },
        { "GL_NV_internalformat_sample_query",                          DE_LENGTH_OF_ARRAY(s_GL_NV_internalformat_sample_query),                        s_GL_NV_internalformat_sample_query                             },
        { "GL_NV_non_square_matrices",                                          DE_LENGTH_OF_ARRAY(s_GL_NV_non_square_matrices),                                        s_GL_NV_non_square_matrices                                             },
        { "GL_NV_path_rendering",                                                       DE_LENGTH_OF_ARRAY(s_GL_NV_path_rendering),                                                     s_GL_NV_path_rendering                                                  },
+       { "GL_NV_polygon_mode",                                                         DE_LENGTH_OF_ARRAY(s_GL_NV_polygon_mode),                                                       s_GL_NV_polygon_mode                                                    },
        { "GL_NV_read_buffer",                                                          DE_LENGTH_OF_ARRAY(s_GL_NV_read_buffer),                                                        s_GL_NV_read_buffer                                                             },
+       { "GL_NV_sample_locations",                                                     DE_LENGTH_OF_ARRAY(s_GL_NV_sample_locations),                                           s_GL_NV_sample_locations                                                },
        { "GL_NV_viewport_array",                                                       DE_LENGTH_OF_ARRAY(s_GL_NV_viewport_array),                                                     s_GL_NV_viewport_array                                                  },
        { "GL_OES_copy_image",                                                          DE_LENGTH_OF_ARRAY(s_GL_OES_copy_image),                                                        s_GL_OES_copy_image                                                             },
        { "GL_OES_draw_buffers_indexed",                                        DE_LENGTH_OF_ARRAY(s_GL_OES_draw_buffers_indexed),                                      s_GL_OES_draw_buffers_indexed                                   },
@@ -1588,5 +1723,6 @@ static const struct
        { "GL_OES_texture_buffer",                                                      DE_LENGTH_OF_ARRAY(s_GL_OES_texture_buffer),                                            s_GL_OES_texture_buffer                                                 },
        { "GL_OES_texture_storage_multisample_2d_array",        DE_LENGTH_OF_ARRAY(s_GL_OES_texture_storage_multisample_2d_array),      s_GL_OES_texture_storage_multisample_2d_array   },
        { "GL_OES_texture_view",                                                        DE_LENGTH_OF_ARRAY(s_GL_OES_texture_view),                                                      s_GL_OES_texture_view                                                   },
+       { "GL_OVR_multiview",                                                           DE_LENGTH_OF_ARRAY(s_GL_OVR_multiview),                                                         s_GL_OVR_multiview                                                              },
        { "GL_QCOM_alpha_test",                                                         DE_LENGTH_OF_ARRAY(s_GL_QCOM_alpha_test),                                                       s_GL_QCOM_alpha_test                                                    },
 };
index fc30091..a0ff8ae 100644 (file)
@@ -397,6 +397,11 @@ static bool isConformant (const eglu::CandidateConfig& c)
        return c.get(EGL_CONFIG_CAVEAT) != EGL_NON_CONFORMANT_CONFIG;
 }
 
+static bool notFloat (const eglu::CandidateConfig& c)
+{
+       return c.colorComponentType() != EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT;
+}
+
 void getDefaultRenderFilterLists (vector<RenderFilterList>& filterLists, const eglu::FilterList& baseFilters)
 {
        static const struct
@@ -450,7 +455,8 @@ void getDefaultRenderFilterLists (vector<RenderFilterList>& filterLists, const e
                                << notColorBits<4, 4, 4, 4>
                                << notColorBits<5, 5, 5, 1>
                                << notColorBits<8, 8, 8, 8>
-                               << isConformant;
+                               << isConformant
+                               << notFloat;
 
                filterLists.push_back(filters);
        }
index c528178..fc02455 100644 (file)
@@ -143,6 +143,11 @@ static bool isConformant (const eglu::CandidateConfig& c)
        return c.get(EGL_CONFIG_CAVEAT) != EGL_NON_CONFORMANT_CONFIG;
 }
 
+static bool notFloat (const eglu::CandidateConfig& c)
+{
+       return c.colorComponentType() != EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT;
+}
+
 void getDefaultFilterLists (vector<NamedFilterList>& lists, const FilterList& baseFilters)
 {
        static const struct
@@ -209,7 +214,8 @@ void getDefaultFilterLists (vector<NamedFilterList>& lists, const FilterList& ba
                                << notColorBits<4, 4, 4, 4>
                                << notColorBits<5, 5, 5, 1>
                                << notColorBits<8, 8, 8, 8>
-                               << isConformant;
+                               << isConformant
+                               << notFloat;
 
                lists.push_back(filters);
        }
index 64690dd..7e3c630 100644 (file)
@@ -39,8 +39,8 @@ EGL_WRAPPER_DIR               = os.path.normpath(os.path.join(EGL_DIR, "wrapper"))
 
 EGL_SOURCE                     = khr_util.registry_cache.RegistrySource(
                                                "egl.xml",
-                                               31042,
-                                               "f5a731f46958a7cb6a5a96c811086fbaede9cc078541a26de009228eb089ae2c")
+                                               33315,
+                                               "19f3b517f0dede56a6a94b820d08149ef5e1726f58202f47d69fa27f6f483bd2")
 
 VERSION                                = '1.5'
 
@@ -63,7 +63,8 @@ EXTENSIONS                    = [
        "EGL_EXT_yuv_surface",
        "EGL_EXT_buffer_age",
        "EGL_KHR_partial_update",
-       "EGL_KHR_swap_buffers_with_damage"
+       "EGL_KHR_swap_buffers_with_damage",
+       "EGL_EXT_pixel_format_float"
 ]
 PROTECTS                       = [
        "KHRONOS_SUPPORT_INT64"
index 4372932..b77e69b 100644 (file)
@@ -141,6 +141,7 @@ ENUM_GROUPS = [
                "YUV_PLANE_BPP_8_EXT",
                "YUV_PLANE_BPP_10_EXT",
                ]),
+       ("ColorComponentType",  ["COLOR_COMPONENT_TYPE_FIXED_EXT", "COLOR_COMPONENT_TYPE_FLOAT_EXT"]),
        ("SurfaceTarget",               ["READ", "DRAW"]),
 
        # ConfigAttrib values