From 8c47d1335cb7dca2d3de1dc1c6dad9dd50e1c01a Mon Sep 17 00:00:00 2001 From: Piotr Byszewski Date: Thu, 31 Aug 2017 14:08:24 +0200 Subject: [PATCH] Split built_in_functions into separate test gpu_shader_fp64.built_in_functions was split into multiple tests - one per builtin function. Components: OpenGL VK-GL-CTS issue: 647 Affects: KHR-GL40.gpu_shader_fp64.* Change-Id: I66f48faeb882add083f3c5af2ecadfd55ac4b237 --- .../gl/khronos_mustpass/4.6.0.x/gl40-master.txt | 669 +++++- .../gl/khronos_mustpass/4.6.0.x/gl41-master.txt | 669 +++++- .../gl/khronos_mustpass/4.6.0.x/gl42-master.txt | 669 +++++- .../gl/khronos_mustpass/4.6.0.x/gl43-master.txt | 669 +++++- .../gl/khronos_mustpass/4.6.0.x/gl44-master.txt | 669 +++++- .../gl/khronos_mustpass/4.6.0.x/gl45-master.txt | 669 +++++- .../gl/khronos_mustpass/4.6.0.x/gl46-master.txt | 669 +++++- .../modules/gl/gl4cGPUShaderFP64Tests.cpp | 2185 +++++++++++--------- .../modules/gl/gl4cGPUShaderFP64Tests.hpp | 265 --- 9 files changed, 5835 insertions(+), 1298 deletions(-) diff --git a/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl40-master.txt b/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl40-master.txt index 58e0e8f..120cf8d 100644 --- a/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl40-master.txt +++ b/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl40-master.txt @@ -2617,16 +2617,665 @@ KHR-GL40.draw_elements_base_vertex_tests.invalid_primcount_argument KHR-GL40.draw_elements_base_vertex_tests.invalid_start_end_arguments KHR-GL40.draw_elements_base_vertex_tests.invalid_type_argument KHR-GL40.draw_elements_base_vertex_tests.invalid_mapped_bos -KHR-GL40.gpu_shader_fp64.errors -KHR-GL40.gpu_shader_fp64.max_uniform_components -KHR-GL40.gpu_shader_fp64.named_uniform_blocks -KHR-GL40.gpu_shader_fp64.state_query -KHR-GL40.gpu_shader_fp64.conversions -KHR-GL40.gpu_shader_fp64.illegal_conversions -KHR-GL40.gpu_shader_fp64.varyings -KHR-GL40.gpu_shader_fp64.valid_constructors -KHR-GL40.gpu_shader_fp64.operators -KHR-GL40.gpu_shader_fp64.built_in_functions +KHR-GL40.gpu_shader_fp64.fp64.errors +KHR-GL40.gpu_shader_fp64.fp64.max_uniform_components +KHR-GL40.gpu_shader_fp64.fp64.named_uniform_blocks +KHR-GL40.gpu_shader_fp64.fp64.state_query +KHR-GL40.gpu_shader_fp64.fp64.conversions +KHR-GL40.gpu_shader_fp64.fp64.illegal_conversions +KHR-GL40.gpu_shader_fp64.fp64.varyings +KHR-GL40.gpu_shader_fp64.fp64.valid_constructors +KHR-GL40.gpu_shader_fp64.fp64.operators +KHR-GL40.gpu_shader_fp64.builtin.abs_double +KHR-GL40.gpu_shader_fp64.builtin.abs_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.abs_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.abs_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.abs_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.abs_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.abs_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.abs_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.abs_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.abs_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.abs_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.abs_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.abs_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.ceil_double +KHR-GL40.gpu_shader_fp64.builtin.ceil_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.ceil_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.ceil_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.ceil_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.ceil_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.ceil_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.ceil_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.ceil_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.ceil_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.ceil_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.ceil_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.ceil_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.clamp_double +KHR-GL40.gpu_shader_fp64.builtin.clamp_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.clamp_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.clamp_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.clamp_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.clamp_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.clamp_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.clamp_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.clamp_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.clamp_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.clamp_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.clamp_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.clamp_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.clamp_against_scalar_double +KHR-GL40.gpu_shader_fp64.builtin.clamp_against_scalar_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.clamp_against_scalar_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.clamp_against_scalar_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.clamp_against_scalar_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.clamp_against_scalar_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.clamp_against_scalar_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.clamp_against_scalar_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.clamp_against_scalar_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.clamp_against_scalar_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.clamp_against_scalar_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.clamp_against_scalar_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.clamp_against_scalar_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.cross_double +KHR-GL40.gpu_shader_fp64.builtin.cross_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.cross_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.cross_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.cross_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.cross_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.cross_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.cross_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.cross_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.cross_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.cross_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.cross_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.cross_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.determinant_double +KHR-GL40.gpu_shader_fp64.builtin.determinant_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.determinant_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.determinant_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.determinant_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.determinant_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.determinant_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.determinant_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.determinant_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.determinant_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.determinant_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.determinant_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.determinant_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.distance_double +KHR-GL40.gpu_shader_fp64.builtin.distance_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.distance_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.distance_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.distance_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.distance_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.distance_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.distance_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.distance_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.distance_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.distance_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.distance_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.distance_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.dot_double +KHR-GL40.gpu_shader_fp64.builtin.dot_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.dot_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.dot_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.dot_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.dot_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.dot_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.dot_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.dot_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.dot_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.dot_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.dot_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.dot_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.equal_double +KHR-GL40.gpu_shader_fp64.builtin.equal_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.equal_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.equal_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.equal_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.equal_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.equal_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.equal_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.equal_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.equal_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.equal_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.equal_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.equal_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.faceforward_double +KHR-GL40.gpu_shader_fp64.builtin.faceforward_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.faceforward_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.faceforward_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.faceforward_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.faceforward_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.faceforward_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.faceforward_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.faceforward_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.faceforward_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.faceforward_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.faceforward_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.faceforward_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.floor_double +KHR-GL40.gpu_shader_fp64.builtin.floor_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.floor_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.floor_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.floor_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.floor_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.floor_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.floor_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.floor_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.floor_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.floor_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.floor_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.floor_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.fma_double +KHR-GL40.gpu_shader_fp64.builtin.fma_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.fma_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.fma_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.fma_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.fma_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.fma_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.fma_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.fma_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.fma_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.fma_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.fma_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.fma_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.fract_double +KHR-GL40.gpu_shader_fp64.builtin.fract_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.fract_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.fract_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.fract_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.fract_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.fract_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.fract_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.fract_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.fract_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.fract_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.fract_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.fract_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.frexp_double +KHR-GL40.gpu_shader_fp64.builtin.frexp_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.frexp_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.frexp_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.frexp_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.frexp_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.frexp_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.frexp_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.frexp_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.frexp_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.frexp_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.frexp_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.frexp_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.greaterthan_double +KHR-GL40.gpu_shader_fp64.builtin.greaterthan_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.greaterthan_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.greaterthan_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.greaterthan_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.greaterthan_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.greaterthan_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.greaterthan_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.greaterthan_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.greaterthan_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.greaterthan_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.greaterthan_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.greaterthan_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.greaterthanequal_double +KHR-GL40.gpu_shader_fp64.builtin.greaterthanequal_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.greaterthanequal_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.greaterthanequal_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.greaterthanequal_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.greaterthanequal_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.greaterthanequal_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.greaterthanequal_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.greaterthanequal_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.greaterthanequal_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.greaterthanequal_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.greaterthanequal_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.greaterthanequal_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.inverse_double +KHR-GL40.gpu_shader_fp64.builtin.inverse_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.inverse_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.inverse_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.inverse_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.inverse_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.inverse_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.inverse_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.inverse_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.inverse_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.inverse_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.inverse_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.inverse_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.inversesqrt_double +KHR-GL40.gpu_shader_fp64.builtin.inversesqrt_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.inversesqrt_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.inversesqrt_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.inversesqrt_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.inversesqrt_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.inversesqrt_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.inversesqrt_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.inversesqrt_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.inversesqrt_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.inversesqrt_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.inversesqrt_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.inversesqrt_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.ldexp_double +KHR-GL40.gpu_shader_fp64.builtin.ldexp_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.ldexp_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.ldexp_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.ldexp_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.ldexp_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.ldexp_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.ldexp_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.ldexp_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.ldexp_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.ldexp_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.ldexp_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.ldexp_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.lessthan_double +KHR-GL40.gpu_shader_fp64.builtin.lessthan_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.lessthan_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.lessthan_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.lessthan_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.lessthan_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.lessthan_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.lessthan_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.lessthan_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.lessthan_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.lessthan_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.lessthan_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.lessthan_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.lessthanequal_double +KHR-GL40.gpu_shader_fp64.builtin.lessthanequal_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.lessthanequal_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.lessthanequal_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.lessthanequal_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.lessthanequal_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.lessthanequal_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.lessthanequal_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.lessthanequal_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.lessthanequal_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.lessthanequal_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.lessthanequal_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.lessthanequal_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.length_double +KHR-GL40.gpu_shader_fp64.builtin.length_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.length_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.length_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.length_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.length_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.length_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.length_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.length_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.length_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.length_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.length_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.length_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.matrixcompmult_double +KHR-GL40.gpu_shader_fp64.builtin.matrixcompmult_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.matrixcompmult_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.matrixcompmult_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.matrixcompmult_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.matrixcompmult_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.matrixcompmult_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.matrixcompmult_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.matrixcompmult_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.matrixcompmult_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.matrixcompmult_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.matrixcompmult_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.matrixcompmult_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.max_double +KHR-GL40.gpu_shader_fp64.builtin.max_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.max_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.max_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.max_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.max_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.max_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.max_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.max_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.max_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.max_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.max_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.max_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.max_against_scalar_double +KHR-GL40.gpu_shader_fp64.builtin.max_against_scalar_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.max_against_scalar_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.max_against_scalar_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.max_against_scalar_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.max_against_scalar_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.max_against_scalar_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.max_against_scalar_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.max_against_scalar_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.max_against_scalar_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.max_against_scalar_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.max_against_scalar_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.max_against_scalar_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.min_double +KHR-GL40.gpu_shader_fp64.builtin.min_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.min_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.min_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.min_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.min_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.min_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.min_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.min_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.min_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.min_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.min_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.min_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.min_against_scalar_double +KHR-GL40.gpu_shader_fp64.builtin.min_against_scalar_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.min_against_scalar_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.min_against_scalar_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.min_against_scalar_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.min_against_scalar_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.min_against_scalar_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.min_against_scalar_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.min_against_scalar_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.min_against_scalar_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.min_against_scalar_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.min_against_scalar_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.min_against_scalar_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.mix_double +KHR-GL40.gpu_shader_fp64.builtin.mix_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.mix_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.mix_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.mix_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.mix_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.mix_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.mix_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.mix_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.mix_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.mix_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.mix_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.mix_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.mod_double +KHR-GL40.gpu_shader_fp64.builtin.mod_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.mod_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.mod_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.mod_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.mod_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.mod_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.mod_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.mod_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.mod_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.mod_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.mod_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.mod_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.mod_against_scalar_double +KHR-GL40.gpu_shader_fp64.builtin.mod_against_scalar_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.mod_against_scalar_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.mod_against_scalar_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.mod_against_scalar_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.mod_against_scalar_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.mod_against_scalar_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.mod_against_scalar_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.mod_against_scalar_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.mod_against_scalar_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.mod_against_scalar_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.mod_against_scalar_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.mod_against_scalar_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.modf_double +KHR-GL40.gpu_shader_fp64.builtin.modf_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.modf_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.modf_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.modf_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.modf_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.modf_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.modf_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.modf_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.modf_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.modf_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.modf_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.modf_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.normalize_double +KHR-GL40.gpu_shader_fp64.builtin.normalize_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.normalize_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.normalize_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.normalize_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.normalize_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.normalize_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.normalize_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.normalize_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.normalize_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.normalize_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.normalize_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.normalize_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.notequal_double +KHR-GL40.gpu_shader_fp64.builtin.notequal_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.notequal_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.notequal_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.notequal_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.notequal_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.notequal_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.notequal_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.notequal_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.notequal_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.notequal_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.notequal_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.notequal_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.outerproduct_double +KHR-GL40.gpu_shader_fp64.builtin.outerproduct_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.outerproduct_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.outerproduct_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.outerproduct_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.outerproduct_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.outerproduct_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.outerproduct_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.outerproduct_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.outerproduct_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.outerproduct_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.outerproduct_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.outerproduct_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.packdouble2x32_double +KHR-GL40.gpu_shader_fp64.builtin.packdouble2x32_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.packdouble2x32_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.packdouble2x32_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.packdouble2x32_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.packdouble2x32_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.packdouble2x32_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.packdouble2x32_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.packdouble2x32_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.packdouble2x32_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.packdouble2x32_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.packdouble2x32_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.packdouble2x32_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.reflect_double +KHR-GL40.gpu_shader_fp64.builtin.reflect_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.reflect_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.reflect_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.reflect_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.reflect_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.reflect_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.reflect_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.reflect_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.reflect_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.reflect_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.reflect_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.reflect_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.refract_double +KHR-GL40.gpu_shader_fp64.builtin.refract_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.refract_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.refract_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.refract_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.refract_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.refract_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.refract_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.refract_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.refract_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.refract_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.refract_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.refract_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.round_double +KHR-GL40.gpu_shader_fp64.builtin.round_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.round_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.round_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.round_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.round_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.round_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.round_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.round_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.round_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.round_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.round_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.round_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.roundeven_double +KHR-GL40.gpu_shader_fp64.builtin.roundeven_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.roundeven_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.roundeven_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.roundeven_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.roundeven_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.roundeven_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.roundeven_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.roundeven_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.roundeven_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.roundeven_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.roundeven_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.roundeven_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.sign_double +KHR-GL40.gpu_shader_fp64.builtin.sign_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.sign_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.sign_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.sign_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.sign_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.sign_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.sign_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.sign_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.sign_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.sign_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.sign_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.sign_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.smoothstep_double +KHR-GL40.gpu_shader_fp64.builtin.smoothstep_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.smoothstep_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.smoothstep_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.smoothstep_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.smoothstep_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.smoothstep_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.smoothstep_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.smoothstep_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.smoothstep_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.smoothstep_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.smoothstep_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.smoothstep_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.smoothstep_against_scalar_double +KHR-GL40.gpu_shader_fp64.builtin.smoothstep_against_scalar_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.smoothstep_against_scalar_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.smoothstep_against_scalar_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.sqrt_double +KHR-GL40.gpu_shader_fp64.builtin.sqrt_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.sqrt_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.sqrt_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.sqrt_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.sqrt_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.sqrt_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.sqrt_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.sqrt_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.sqrt_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.sqrt_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.sqrt_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.sqrt_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.step_double +KHR-GL40.gpu_shader_fp64.builtin.step_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.step_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.step_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.step_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.step_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.step_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.step_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.step_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.step_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.step_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.step_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.step_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.step_against_scalar_double +KHR-GL40.gpu_shader_fp64.builtin.step_against_scalar_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.step_against_scalar_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.step_against_scalar_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.step_against_scalar_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.step_against_scalar_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.step_against_scalar_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.step_against_scalar_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.step_against_scalar_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.step_against_scalar_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.step_against_scalar_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.step_against_scalar_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.step_against_scalar_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.transpose_double +KHR-GL40.gpu_shader_fp64.builtin.transpose_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.transpose_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.transpose_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.transpose_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.transpose_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.transpose_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.transpose_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.transpose_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.transpose_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.transpose_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.transpose_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.transpose_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.trunc_double +KHR-GL40.gpu_shader_fp64.builtin.trunc_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.trunc_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.trunc_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.trunc_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.trunc_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.trunc_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.trunc_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.trunc_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.trunc_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.trunc_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.trunc_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.trunc_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.unpackdouble2x32_double +KHR-GL40.gpu_shader_fp64.builtin.unpackdouble2x32_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.unpackdouble2x32_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.unpackdouble2x32_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.unpackdouble2x32_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.unpackdouble2x32_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.unpackdouble2x32_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.unpackdouble2x32_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.unpackdouble2x32_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.unpackdouble2x32_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.unpackdouble2x32_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.unpackdouble2x32_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.unpackdouble2x32_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.isnan_double +KHR-GL40.gpu_shader_fp64.builtin.isnan_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.isnan_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.isnan_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.isnan_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.isnan_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.isnan_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.isnan_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.isnan_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.isnan_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.isnan_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.isnan_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.isnan_dmat4 +KHR-GL40.gpu_shader_fp64.builtin.isinf_double +KHR-GL40.gpu_shader_fp64.builtin.isinf_dvec2 +KHR-GL40.gpu_shader_fp64.builtin.isinf_dvec3 +KHR-GL40.gpu_shader_fp64.builtin.isinf_dvec4 +KHR-GL40.gpu_shader_fp64.builtin.isinf_dmat2 +KHR-GL40.gpu_shader_fp64.builtin.isinf_dmat2x3 +KHR-GL40.gpu_shader_fp64.builtin.isinf_dmat2x4 +KHR-GL40.gpu_shader_fp64.builtin.isinf_dmat3x2 +KHR-GL40.gpu_shader_fp64.builtin.isinf_dmat3 +KHR-GL40.gpu_shader_fp64.builtin.isinf_dmat3x4 +KHR-GL40.gpu_shader_fp64.builtin.isinf_dmat4x2 +KHR-GL40.gpu_shader_fp64.builtin.isinf_dmat4x3 +KHR-GL40.gpu_shader_fp64.builtin.isinf_dmat4 KHR-GL40.texture_gather.api-enums KHR-GL40.texture_gather.gather-glsl-compile KHR-GL40.texture_gather.plain-gather-float-2d-rgba diff --git a/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl41-master.txt b/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl41-master.txt index 91c7f07..eed3795 100644 --- a/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl41-master.txt +++ b/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl41-master.txt @@ -2617,16 +2617,665 @@ KHR-GL41.draw_elements_base_vertex_tests.invalid_primcount_argument KHR-GL41.draw_elements_base_vertex_tests.invalid_start_end_arguments KHR-GL41.draw_elements_base_vertex_tests.invalid_type_argument KHR-GL41.draw_elements_base_vertex_tests.invalid_mapped_bos -KHR-GL41.gpu_shader_fp64.errors -KHR-GL41.gpu_shader_fp64.max_uniform_components -KHR-GL41.gpu_shader_fp64.named_uniform_blocks -KHR-GL41.gpu_shader_fp64.state_query -KHR-GL41.gpu_shader_fp64.conversions -KHR-GL41.gpu_shader_fp64.illegal_conversions -KHR-GL41.gpu_shader_fp64.varyings -KHR-GL41.gpu_shader_fp64.valid_constructors -KHR-GL41.gpu_shader_fp64.operators -KHR-GL41.gpu_shader_fp64.built_in_functions +KHR-GL41.gpu_shader_fp64.fp64.errors +KHR-GL41.gpu_shader_fp64.fp64.max_uniform_components +KHR-GL41.gpu_shader_fp64.fp64.named_uniform_blocks +KHR-GL41.gpu_shader_fp64.fp64.state_query +KHR-GL41.gpu_shader_fp64.fp64.conversions +KHR-GL41.gpu_shader_fp64.fp64.illegal_conversions +KHR-GL41.gpu_shader_fp64.fp64.varyings +KHR-GL41.gpu_shader_fp64.fp64.valid_constructors +KHR-GL41.gpu_shader_fp64.fp64.operators +KHR-GL41.gpu_shader_fp64.builtin.abs_double +KHR-GL41.gpu_shader_fp64.builtin.abs_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.abs_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.abs_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.abs_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.abs_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.abs_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.abs_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.abs_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.abs_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.abs_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.abs_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.abs_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.ceil_double +KHR-GL41.gpu_shader_fp64.builtin.ceil_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.ceil_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.ceil_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.ceil_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.ceil_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.ceil_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.ceil_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.ceil_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.ceil_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.ceil_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.ceil_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.ceil_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.clamp_double +KHR-GL41.gpu_shader_fp64.builtin.clamp_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.clamp_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.clamp_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.clamp_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.clamp_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.clamp_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.clamp_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.clamp_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.clamp_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.clamp_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.clamp_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.clamp_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.clamp_against_scalar_double +KHR-GL41.gpu_shader_fp64.builtin.clamp_against_scalar_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.clamp_against_scalar_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.clamp_against_scalar_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.clamp_against_scalar_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.clamp_against_scalar_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.clamp_against_scalar_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.clamp_against_scalar_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.clamp_against_scalar_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.clamp_against_scalar_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.clamp_against_scalar_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.clamp_against_scalar_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.clamp_against_scalar_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.cross_double +KHR-GL41.gpu_shader_fp64.builtin.cross_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.cross_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.cross_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.cross_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.cross_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.cross_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.cross_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.cross_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.cross_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.cross_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.cross_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.cross_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.determinant_double +KHR-GL41.gpu_shader_fp64.builtin.determinant_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.determinant_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.determinant_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.determinant_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.determinant_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.determinant_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.determinant_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.determinant_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.determinant_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.determinant_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.determinant_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.determinant_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.distance_double +KHR-GL41.gpu_shader_fp64.builtin.distance_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.distance_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.distance_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.distance_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.distance_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.distance_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.distance_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.distance_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.distance_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.distance_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.distance_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.distance_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.dot_double +KHR-GL41.gpu_shader_fp64.builtin.dot_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.dot_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.dot_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.dot_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.dot_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.dot_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.dot_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.dot_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.dot_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.dot_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.dot_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.dot_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.equal_double +KHR-GL41.gpu_shader_fp64.builtin.equal_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.equal_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.equal_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.equal_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.equal_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.equal_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.equal_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.equal_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.equal_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.equal_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.equal_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.equal_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.faceforward_double +KHR-GL41.gpu_shader_fp64.builtin.faceforward_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.faceforward_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.faceforward_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.faceforward_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.faceforward_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.faceforward_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.faceforward_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.faceforward_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.faceforward_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.faceforward_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.faceforward_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.faceforward_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.floor_double +KHR-GL41.gpu_shader_fp64.builtin.floor_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.floor_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.floor_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.floor_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.floor_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.floor_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.floor_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.floor_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.floor_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.floor_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.floor_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.floor_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.fma_double +KHR-GL41.gpu_shader_fp64.builtin.fma_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.fma_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.fma_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.fma_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.fma_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.fma_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.fma_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.fma_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.fma_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.fma_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.fma_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.fma_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.fract_double +KHR-GL41.gpu_shader_fp64.builtin.fract_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.fract_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.fract_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.fract_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.fract_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.fract_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.fract_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.fract_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.fract_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.fract_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.fract_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.fract_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.frexp_double +KHR-GL41.gpu_shader_fp64.builtin.frexp_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.frexp_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.frexp_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.frexp_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.frexp_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.frexp_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.frexp_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.frexp_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.frexp_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.frexp_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.frexp_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.frexp_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.greaterthan_double +KHR-GL41.gpu_shader_fp64.builtin.greaterthan_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.greaterthan_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.greaterthan_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.greaterthan_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.greaterthan_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.greaterthan_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.greaterthan_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.greaterthan_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.greaterthan_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.greaterthan_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.greaterthan_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.greaterthan_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.greaterthanequal_double +KHR-GL41.gpu_shader_fp64.builtin.greaterthanequal_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.greaterthanequal_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.greaterthanequal_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.greaterthanequal_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.greaterthanequal_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.greaterthanequal_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.greaterthanequal_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.greaterthanequal_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.greaterthanequal_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.greaterthanequal_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.greaterthanequal_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.greaterthanequal_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.inverse_double +KHR-GL41.gpu_shader_fp64.builtin.inverse_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.inverse_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.inverse_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.inverse_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.inverse_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.inverse_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.inverse_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.inverse_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.inverse_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.inverse_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.inverse_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.inverse_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.inversesqrt_double +KHR-GL41.gpu_shader_fp64.builtin.inversesqrt_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.inversesqrt_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.inversesqrt_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.inversesqrt_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.inversesqrt_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.inversesqrt_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.inversesqrt_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.inversesqrt_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.inversesqrt_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.inversesqrt_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.inversesqrt_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.inversesqrt_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.ldexp_double +KHR-GL41.gpu_shader_fp64.builtin.ldexp_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.ldexp_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.ldexp_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.ldexp_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.ldexp_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.ldexp_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.ldexp_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.ldexp_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.ldexp_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.ldexp_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.ldexp_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.ldexp_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.lessthan_double +KHR-GL41.gpu_shader_fp64.builtin.lessthan_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.lessthan_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.lessthan_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.lessthan_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.lessthan_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.lessthan_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.lessthan_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.lessthan_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.lessthan_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.lessthan_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.lessthan_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.lessthan_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.lessthanequal_double +KHR-GL41.gpu_shader_fp64.builtin.lessthanequal_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.lessthanequal_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.lessthanequal_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.lessthanequal_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.lessthanequal_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.lessthanequal_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.lessthanequal_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.lessthanequal_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.lessthanequal_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.lessthanequal_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.lessthanequal_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.lessthanequal_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.length_double +KHR-GL41.gpu_shader_fp64.builtin.length_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.length_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.length_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.length_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.length_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.length_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.length_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.length_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.length_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.length_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.length_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.length_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.matrixcompmult_double +KHR-GL41.gpu_shader_fp64.builtin.matrixcompmult_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.matrixcompmult_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.matrixcompmult_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.matrixcompmult_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.matrixcompmult_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.matrixcompmult_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.matrixcompmult_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.matrixcompmult_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.matrixcompmult_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.matrixcompmult_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.matrixcompmult_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.matrixcompmult_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.max_double +KHR-GL41.gpu_shader_fp64.builtin.max_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.max_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.max_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.max_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.max_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.max_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.max_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.max_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.max_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.max_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.max_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.max_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.max_against_scalar_double +KHR-GL41.gpu_shader_fp64.builtin.max_against_scalar_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.max_against_scalar_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.max_against_scalar_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.max_against_scalar_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.max_against_scalar_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.max_against_scalar_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.max_against_scalar_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.max_against_scalar_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.max_against_scalar_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.max_against_scalar_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.max_against_scalar_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.max_against_scalar_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.min_double +KHR-GL41.gpu_shader_fp64.builtin.min_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.min_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.min_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.min_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.min_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.min_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.min_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.min_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.min_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.min_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.min_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.min_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.min_against_scalar_double +KHR-GL41.gpu_shader_fp64.builtin.min_against_scalar_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.min_against_scalar_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.min_against_scalar_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.min_against_scalar_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.min_against_scalar_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.min_against_scalar_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.min_against_scalar_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.min_against_scalar_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.min_against_scalar_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.min_against_scalar_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.min_against_scalar_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.min_against_scalar_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.mix_double +KHR-GL41.gpu_shader_fp64.builtin.mix_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.mix_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.mix_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.mix_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.mix_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.mix_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.mix_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.mix_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.mix_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.mix_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.mix_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.mix_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.mod_double +KHR-GL41.gpu_shader_fp64.builtin.mod_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.mod_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.mod_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.mod_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.mod_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.mod_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.mod_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.mod_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.mod_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.mod_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.mod_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.mod_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.mod_against_scalar_double +KHR-GL41.gpu_shader_fp64.builtin.mod_against_scalar_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.mod_against_scalar_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.mod_against_scalar_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.mod_against_scalar_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.mod_against_scalar_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.mod_against_scalar_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.mod_against_scalar_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.mod_against_scalar_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.mod_against_scalar_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.mod_against_scalar_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.mod_against_scalar_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.mod_against_scalar_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.modf_double +KHR-GL41.gpu_shader_fp64.builtin.modf_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.modf_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.modf_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.modf_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.modf_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.modf_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.modf_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.modf_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.modf_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.modf_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.modf_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.modf_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.normalize_double +KHR-GL41.gpu_shader_fp64.builtin.normalize_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.normalize_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.normalize_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.normalize_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.normalize_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.normalize_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.normalize_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.normalize_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.normalize_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.normalize_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.normalize_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.normalize_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.notequal_double +KHR-GL41.gpu_shader_fp64.builtin.notequal_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.notequal_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.notequal_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.notequal_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.notequal_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.notequal_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.notequal_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.notequal_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.notequal_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.notequal_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.notequal_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.notequal_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.outerproduct_double +KHR-GL41.gpu_shader_fp64.builtin.outerproduct_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.outerproduct_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.outerproduct_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.outerproduct_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.outerproduct_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.outerproduct_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.outerproduct_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.outerproduct_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.outerproduct_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.outerproduct_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.outerproduct_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.outerproduct_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.packdouble2x32_double +KHR-GL41.gpu_shader_fp64.builtin.packdouble2x32_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.packdouble2x32_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.packdouble2x32_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.packdouble2x32_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.packdouble2x32_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.packdouble2x32_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.packdouble2x32_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.packdouble2x32_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.packdouble2x32_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.packdouble2x32_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.packdouble2x32_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.packdouble2x32_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.reflect_double +KHR-GL41.gpu_shader_fp64.builtin.reflect_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.reflect_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.reflect_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.reflect_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.reflect_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.reflect_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.reflect_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.reflect_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.reflect_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.reflect_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.reflect_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.reflect_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.refract_double +KHR-GL41.gpu_shader_fp64.builtin.refract_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.refract_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.refract_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.refract_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.refract_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.refract_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.refract_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.refract_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.refract_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.refract_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.refract_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.refract_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.round_double +KHR-GL41.gpu_shader_fp64.builtin.round_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.round_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.round_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.round_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.round_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.round_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.round_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.round_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.round_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.round_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.round_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.round_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.roundeven_double +KHR-GL41.gpu_shader_fp64.builtin.roundeven_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.roundeven_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.roundeven_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.roundeven_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.roundeven_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.roundeven_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.roundeven_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.roundeven_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.roundeven_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.roundeven_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.roundeven_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.roundeven_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.sign_double +KHR-GL41.gpu_shader_fp64.builtin.sign_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.sign_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.sign_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.sign_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.sign_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.sign_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.sign_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.sign_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.sign_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.sign_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.sign_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.sign_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.smoothstep_double +KHR-GL41.gpu_shader_fp64.builtin.smoothstep_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.smoothstep_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.smoothstep_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.smoothstep_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.smoothstep_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.smoothstep_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.smoothstep_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.smoothstep_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.smoothstep_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.smoothstep_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.smoothstep_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.smoothstep_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.smoothstep_against_scalar_double +KHR-GL41.gpu_shader_fp64.builtin.smoothstep_against_scalar_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.smoothstep_against_scalar_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.smoothstep_against_scalar_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.sqrt_double +KHR-GL41.gpu_shader_fp64.builtin.sqrt_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.sqrt_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.sqrt_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.sqrt_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.sqrt_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.sqrt_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.sqrt_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.sqrt_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.sqrt_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.sqrt_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.sqrt_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.sqrt_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.step_double +KHR-GL41.gpu_shader_fp64.builtin.step_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.step_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.step_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.step_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.step_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.step_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.step_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.step_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.step_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.step_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.step_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.step_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.step_against_scalar_double +KHR-GL41.gpu_shader_fp64.builtin.step_against_scalar_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.step_against_scalar_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.step_against_scalar_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.step_against_scalar_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.step_against_scalar_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.step_against_scalar_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.step_against_scalar_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.step_against_scalar_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.step_against_scalar_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.step_against_scalar_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.step_against_scalar_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.step_against_scalar_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.transpose_double +KHR-GL41.gpu_shader_fp64.builtin.transpose_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.transpose_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.transpose_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.transpose_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.transpose_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.transpose_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.transpose_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.transpose_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.transpose_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.transpose_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.transpose_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.transpose_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.trunc_double +KHR-GL41.gpu_shader_fp64.builtin.trunc_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.trunc_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.trunc_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.trunc_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.trunc_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.trunc_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.trunc_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.trunc_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.trunc_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.trunc_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.trunc_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.trunc_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.unpackdouble2x32_double +KHR-GL41.gpu_shader_fp64.builtin.unpackdouble2x32_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.unpackdouble2x32_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.unpackdouble2x32_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.unpackdouble2x32_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.unpackdouble2x32_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.unpackdouble2x32_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.unpackdouble2x32_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.unpackdouble2x32_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.unpackdouble2x32_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.unpackdouble2x32_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.unpackdouble2x32_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.unpackdouble2x32_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.isnan_double +KHR-GL41.gpu_shader_fp64.builtin.isnan_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.isnan_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.isnan_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.isnan_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.isnan_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.isnan_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.isnan_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.isnan_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.isnan_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.isnan_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.isnan_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.isnan_dmat4 +KHR-GL41.gpu_shader_fp64.builtin.isinf_double +KHR-GL41.gpu_shader_fp64.builtin.isinf_dvec2 +KHR-GL41.gpu_shader_fp64.builtin.isinf_dvec3 +KHR-GL41.gpu_shader_fp64.builtin.isinf_dvec4 +KHR-GL41.gpu_shader_fp64.builtin.isinf_dmat2 +KHR-GL41.gpu_shader_fp64.builtin.isinf_dmat2x3 +KHR-GL41.gpu_shader_fp64.builtin.isinf_dmat2x4 +KHR-GL41.gpu_shader_fp64.builtin.isinf_dmat3x2 +KHR-GL41.gpu_shader_fp64.builtin.isinf_dmat3 +KHR-GL41.gpu_shader_fp64.builtin.isinf_dmat3x4 +KHR-GL41.gpu_shader_fp64.builtin.isinf_dmat4x2 +KHR-GL41.gpu_shader_fp64.builtin.isinf_dmat4x3 +KHR-GL41.gpu_shader_fp64.builtin.isinf_dmat4 KHR-GL41.texture_gather.api-enums KHR-GL41.texture_gather.gather-glsl-compile KHR-GL41.texture_gather.plain-gather-float-2d-rgba diff --git a/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl42-master.txt b/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl42-master.txt index 299cb0f..8a6fb30 100644 --- a/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl42-master.txt +++ b/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl42-master.txt @@ -2617,16 +2617,665 @@ KHR-GL42.draw_elements_base_vertex_tests.invalid_primcount_argument KHR-GL42.draw_elements_base_vertex_tests.invalid_start_end_arguments KHR-GL42.draw_elements_base_vertex_tests.invalid_type_argument KHR-GL42.draw_elements_base_vertex_tests.invalid_mapped_bos -KHR-GL42.gpu_shader_fp64.errors -KHR-GL42.gpu_shader_fp64.max_uniform_components -KHR-GL42.gpu_shader_fp64.named_uniform_blocks -KHR-GL42.gpu_shader_fp64.state_query -KHR-GL42.gpu_shader_fp64.conversions -KHR-GL42.gpu_shader_fp64.illegal_conversions -KHR-GL42.gpu_shader_fp64.varyings -KHR-GL42.gpu_shader_fp64.valid_constructors -KHR-GL42.gpu_shader_fp64.operators -KHR-GL42.gpu_shader_fp64.built_in_functions +KHR-GL42.gpu_shader_fp64.fp64.errors +KHR-GL42.gpu_shader_fp64.fp64.max_uniform_components +KHR-GL42.gpu_shader_fp64.fp64.named_uniform_blocks +KHR-GL42.gpu_shader_fp64.fp64.state_query +KHR-GL42.gpu_shader_fp64.fp64.conversions +KHR-GL42.gpu_shader_fp64.fp64.illegal_conversions +KHR-GL42.gpu_shader_fp64.fp64.varyings +KHR-GL42.gpu_shader_fp64.fp64.valid_constructors +KHR-GL42.gpu_shader_fp64.fp64.operators +KHR-GL42.gpu_shader_fp64.builtin.abs_double +KHR-GL42.gpu_shader_fp64.builtin.abs_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.abs_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.abs_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.abs_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.abs_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.abs_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.abs_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.abs_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.abs_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.abs_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.abs_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.abs_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.ceil_double +KHR-GL42.gpu_shader_fp64.builtin.ceil_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.ceil_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.ceil_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.ceil_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.ceil_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.ceil_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.ceil_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.ceil_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.ceil_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.ceil_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.ceil_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.ceil_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.clamp_double +KHR-GL42.gpu_shader_fp64.builtin.clamp_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.clamp_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.clamp_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.clamp_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.clamp_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.clamp_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.clamp_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.clamp_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.clamp_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.clamp_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.clamp_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.clamp_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.clamp_against_scalar_double +KHR-GL42.gpu_shader_fp64.builtin.clamp_against_scalar_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.clamp_against_scalar_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.clamp_against_scalar_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.clamp_against_scalar_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.clamp_against_scalar_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.clamp_against_scalar_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.clamp_against_scalar_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.clamp_against_scalar_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.clamp_against_scalar_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.clamp_against_scalar_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.clamp_against_scalar_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.clamp_against_scalar_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.cross_double +KHR-GL42.gpu_shader_fp64.builtin.cross_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.cross_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.cross_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.cross_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.cross_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.cross_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.cross_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.cross_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.cross_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.cross_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.cross_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.cross_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.determinant_double +KHR-GL42.gpu_shader_fp64.builtin.determinant_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.determinant_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.determinant_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.determinant_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.determinant_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.determinant_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.determinant_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.determinant_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.determinant_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.determinant_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.determinant_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.determinant_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.distance_double +KHR-GL42.gpu_shader_fp64.builtin.distance_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.distance_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.distance_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.distance_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.distance_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.distance_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.distance_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.distance_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.distance_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.distance_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.distance_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.distance_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.dot_double +KHR-GL42.gpu_shader_fp64.builtin.dot_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.dot_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.dot_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.dot_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.dot_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.dot_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.dot_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.dot_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.dot_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.dot_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.dot_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.dot_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.equal_double +KHR-GL42.gpu_shader_fp64.builtin.equal_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.equal_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.equal_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.equal_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.equal_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.equal_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.equal_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.equal_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.equal_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.equal_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.equal_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.equal_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.faceforward_double +KHR-GL42.gpu_shader_fp64.builtin.faceforward_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.faceforward_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.faceforward_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.faceforward_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.faceforward_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.faceforward_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.faceforward_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.faceforward_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.faceforward_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.faceforward_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.faceforward_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.faceforward_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.floor_double +KHR-GL42.gpu_shader_fp64.builtin.floor_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.floor_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.floor_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.floor_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.floor_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.floor_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.floor_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.floor_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.floor_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.floor_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.floor_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.floor_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.fma_double +KHR-GL42.gpu_shader_fp64.builtin.fma_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.fma_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.fma_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.fma_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.fma_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.fma_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.fma_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.fma_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.fma_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.fma_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.fma_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.fma_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.fract_double +KHR-GL42.gpu_shader_fp64.builtin.fract_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.fract_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.fract_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.fract_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.fract_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.fract_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.fract_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.fract_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.fract_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.fract_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.fract_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.fract_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.frexp_double +KHR-GL42.gpu_shader_fp64.builtin.frexp_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.frexp_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.frexp_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.frexp_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.frexp_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.frexp_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.frexp_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.frexp_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.frexp_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.frexp_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.frexp_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.frexp_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.greaterthan_double +KHR-GL42.gpu_shader_fp64.builtin.greaterthan_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.greaterthan_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.greaterthan_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.greaterthan_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.greaterthan_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.greaterthan_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.greaterthan_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.greaterthan_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.greaterthan_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.greaterthan_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.greaterthan_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.greaterthan_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.greaterthanequal_double +KHR-GL42.gpu_shader_fp64.builtin.greaterthanequal_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.greaterthanequal_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.greaterthanequal_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.greaterthanequal_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.greaterthanequal_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.greaterthanequal_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.greaterthanequal_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.greaterthanequal_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.greaterthanequal_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.greaterthanequal_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.greaterthanequal_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.greaterthanequal_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.inverse_double +KHR-GL42.gpu_shader_fp64.builtin.inverse_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.inverse_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.inverse_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.inverse_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.inverse_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.inverse_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.inverse_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.inverse_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.inverse_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.inverse_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.inverse_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.inverse_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.inversesqrt_double +KHR-GL42.gpu_shader_fp64.builtin.inversesqrt_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.inversesqrt_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.inversesqrt_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.inversesqrt_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.inversesqrt_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.inversesqrt_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.inversesqrt_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.inversesqrt_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.inversesqrt_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.inversesqrt_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.inversesqrt_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.inversesqrt_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.ldexp_double +KHR-GL42.gpu_shader_fp64.builtin.ldexp_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.ldexp_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.ldexp_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.ldexp_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.ldexp_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.ldexp_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.ldexp_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.ldexp_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.ldexp_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.ldexp_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.ldexp_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.ldexp_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.lessthan_double +KHR-GL42.gpu_shader_fp64.builtin.lessthan_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.lessthan_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.lessthan_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.lessthan_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.lessthan_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.lessthan_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.lessthan_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.lessthan_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.lessthan_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.lessthan_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.lessthan_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.lessthan_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.lessthanequal_double +KHR-GL42.gpu_shader_fp64.builtin.lessthanequal_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.lessthanequal_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.lessthanequal_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.lessthanequal_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.lessthanequal_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.lessthanequal_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.lessthanequal_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.lessthanequal_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.lessthanequal_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.lessthanequal_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.lessthanequal_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.lessthanequal_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.length_double +KHR-GL42.gpu_shader_fp64.builtin.length_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.length_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.length_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.length_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.length_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.length_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.length_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.length_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.length_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.length_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.length_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.length_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.matrixcompmult_double +KHR-GL42.gpu_shader_fp64.builtin.matrixcompmult_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.matrixcompmult_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.matrixcompmult_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.matrixcompmult_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.matrixcompmult_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.matrixcompmult_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.matrixcompmult_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.matrixcompmult_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.matrixcompmult_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.matrixcompmult_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.matrixcompmult_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.matrixcompmult_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.max_double +KHR-GL42.gpu_shader_fp64.builtin.max_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.max_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.max_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.max_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.max_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.max_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.max_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.max_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.max_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.max_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.max_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.max_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.max_against_scalar_double +KHR-GL42.gpu_shader_fp64.builtin.max_against_scalar_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.max_against_scalar_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.max_against_scalar_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.max_against_scalar_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.max_against_scalar_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.max_against_scalar_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.max_against_scalar_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.max_against_scalar_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.max_against_scalar_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.max_against_scalar_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.max_against_scalar_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.max_against_scalar_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.min_double +KHR-GL42.gpu_shader_fp64.builtin.min_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.min_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.min_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.min_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.min_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.min_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.min_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.min_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.min_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.min_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.min_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.min_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.min_against_scalar_double +KHR-GL42.gpu_shader_fp64.builtin.min_against_scalar_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.min_against_scalar_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.min_against_scalar_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.min_against_scalar_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.min_against_scalar_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.min_against_scalar_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.min_against_scalar_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.min_against_scalar_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.min_against_scalar_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.min_against_scalar_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.min_against_scalar_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.min_against_scalar_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.mix_double +KHR-GL42.gpu_shader_fp64.builtin.mix_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.mix_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.mix_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.mix_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.mix_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.mix_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.mix_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.mix_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.mix_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.mix_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.mix_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.mix_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.mod_double +KHR-GL42.gpu_shader_fp64.builtin.mod_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.mod_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.mod_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.mod_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.mod_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.mod_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.mod_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.mod_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.mod_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.mod_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.mod_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.mod_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.mod_against_scalar_double +KHR-GL42.gpu_shader_fp64.builtin.mod_against_scalar_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.mod_against_scalar_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.mod_against_scalar_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.mod_against_scalar_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.mod_against_scalar_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.mod_against_scalar_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.mod_against_scalar_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.mod_against_scalar_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.mod_against_scalar_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.mod_against_scalar_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.mod_against_scalar_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.mod_against_scalar_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.modf_double +KHR-GL42.gpu_shader_fp64.builtin.modf_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.modf_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.modf_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.modf_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.modf_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.modf_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.modf_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.modf_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.modf_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.modf_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.modf_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.modf_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.normalize_double +KHR-GL42.gpu_shader_fp64.builtin.normalize_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.normalize_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.normalize_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.normalize_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.normalize_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.normalize_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.normalize_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.normalize_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.normalize_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.normalize_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.normalize_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.normalize_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.notequal_double +KHR-GL42.gpu_shader_fp64.builtin.notequal_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.notequal_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.notequal_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.notequal_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.notequal_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.notequal_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.notequal_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.notequal_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.notequal_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.notequal_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.notequal_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.notequal_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.outerproduct_double +KHR-GL42.gpu_shader_fp64.builtin.outerproduct_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.outerproduct_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.outerproduct_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.outerproduct_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.outerproduct_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.outerproduct_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.outerproduct_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.outerproduct_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.outerproduct_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.outerproduct_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.outerproduct_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.outerproduct_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.packdouble2x32_double +KHR-GL42.gpu_shader_fp64.builtin.packdouble2x32_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.packdouble2x32_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.packdouble2x32_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.packdouble2x32_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.packdouble2x32_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.packdouble2x32_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.packdouble2x32_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.packdouble2x32_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.packdouble2x32_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.packdouble2x32_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.packdouble2x32_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.packdouble2x32_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.reflect_double +KHR-GL42.gpu_shader_fp64.builtin.reflect_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.reflect_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.reflect_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.reflect_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.reflect_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.reflect_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.reflect_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.reflect_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.reflect_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.reflect_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.reflect_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.reflect_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.refract_double +KHR-GL42.gpu_shader_fp64.builtin.refract_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.refract_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.refract_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.refract_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.refract_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.refract_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.refract_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.refract_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.refract_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.refract_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.refract_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.refract_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.round_double +KHR-GL42.gpu_shader_fp64.builtin.round_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.round_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.round_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.round_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.round_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.round_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.round_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.round_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.round_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.round_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.round_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.round_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.roundeven_double +KHR-GL42.gpu_shader_fp64.builtin.roundeven_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.roundeven_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.roundeven_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.roundeven_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.roundeven_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.roundeven_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.roundeven_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.roundeven_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.roundeven_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.roundeven_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.roundeven_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.roundeven_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.sign_double +KHR-GL42.gpu_shader_fp64.builtin.sign_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.sign_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.sign_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.sign_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.sign_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.sign_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.sign_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.sign_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.sign_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.sign_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.sign_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.sign_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.smoothstep_double +KHR-GL42.gpu_shader_fp64.builtin.smoothstep_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.smoothstep_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.smoothstep_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.smoothstep_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.smoothstep_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.smoothstep_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.smoothstep_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.smoothstep_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.smoothstep_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.smoothstep_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.smoothstep_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.smoothstep_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.smoothstep_against_scalar_double +KHR-GL42.gpu_shader_fp64.builtin.smoothstep_against_scalar_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.smoothstep_against_scalar_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.smoothstep_against_scalar_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.sqrt_double +KHR-GL42.gpu_shader_fp64.builtin.sqrt_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.sqrt_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.sqrt_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.sqrt_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.sqrt_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.sqrt_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.sqrt_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.sqrt_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.sqrt_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.sqrt_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.sqrt_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.sqrt_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.step_double +KHR-GL42.gpu_shader_fp64.builtin.step_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.step_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.step_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.step_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.step_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.step_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.step_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.step_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.step_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.step_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.step_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.step_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.step_against_scalar_double +KHR-GL42.gpu_shader_fp64.builtin.step_against_scalar_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.step_against_scalar_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.step_against_scalar_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.step_against_scalar_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.step_against_scalar_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.step_against_scalar_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.step_against_scalar_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.step_against_scalar_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.step_against_scalar_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.step_against_scalar_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.step_against_scalar_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.step_against_scalar_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.transpose_double +KHR-GL42.gpu_shader_fp64.builtin.transpose_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.transpose_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.transpose_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.transpose_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.transpose_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.transpose_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.transpose_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.transpose_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.transpose_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.transpose_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.transpose_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.transpose_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.trunc_double +KHR-GL42.gpu_shader_fp64.builtin.trunc_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.trunc_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.trunc_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.trunc_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.trunc_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.trunc_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.trunc_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.trunc_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.trunc_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.trunc_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.trunc_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.trunc_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.unpackdouble2x32_double +KHR-GL42.gpu_shader_fp64.builtin.unpackdouble2x32_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.unpackdouble2x32_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.unpackdouble2x32_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.unpackdouble2x32_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.unpackdouble2x32_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.unpackdouble2x32_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.unpackdouble2x32_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.unpackdouble2x32_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.unpackdouble2x32_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.unpackdouble2x32_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.unpackdouble2x32_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.unpackdouble2x32_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.isnan_double +KHR-GL42.gpu_shader_fp64.builtin.isnan_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.isnan_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.isnan_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.isnan_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.isnan_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.isnan_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.isnan_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.isnan_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.isnan_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.isnan_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.isnan_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.isnan_dmat4 +KHR-GL42.gpu_shader_fp64.builtin.isinf_double +KHR-GL42.gpu_shader_fp64.builtin.isinf_dvec2 +KHR-GL42.gpu_shader_fp64.builtin.isinf_dvec3 +KHR-GL42.gpu_shader_fp64.builtin.isinf_dvec4 +KHR-GL42.gpu_shader_fp64.builtin.isinf_dmat2 +KHR-GL42.gpu_shader_fp64.builtin.isinf_dmat2x3 +KHR-GL42.gpu_shader_fp64.builtin.isinf_dmat2x4 +KHR-GL42.gpu_shader_fp64.builtin.isinf_dmat3x2 +KHR-GL42.gpu_shader_fp64.builtin.isinf_dmat3 +KHR-GL42.gpu_shader_fp64.builtin.isinf_dmat3x4 +KHR-GL42.gpu_shader_fp64.builtin.isinf_dmat4x2 +KHR-GL42.gpu_shader_fp64.builtin.isinf_dmat4x3 +KHR-GL42.gpu_shader_fp64.builtin.isinf_dmat4 KHR-GL42.texture_gather.api-enums KHR-GL42.texture_gather.gather-glsl-compile KHR-GL42.texture_gather.plain-gather-float-2d-rgba diff --git a/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl43-master.txt b/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl43-master.txt index 622c288..1ef15f8 100644 --- a/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl43-master.txt +++ b/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl43-master.txt @@ -2617,16 +2617,665 @@ KHR-GL43.draw_elements_base_vertex_tests.invalid_primcount_argument KHR-GL43.draw_elements_base_vertex_tests.invalid_start_end_arguments KHR-GL43.draw_elements_base_vertex_tests.invalid_type_argument KHR-GL43.draw_elements_base_vertex_tests.invalid_mapped_bos -KHR-GL43.gpu_shader_fp64.errors -KHR-GL43.gpu_shader_fp64.max_uniform_components -KHR-GL43.gpu_shader_fp64.named_uniform_blocks -KHR-GL43.gpu_shader_fp64.state_query -KHR-GL43.gpu_shader_fp64.conversions -KHR-GL43.gpu_shader_fp64.illegal_conversions -KHR-GL43.gpu_shader_fp64.varyings -KHR-GL43.gpu_shader_fp64.valid_constructors -KHR-GL43.gpu_shader_fp64.operators -KHR-GL43.gpu_shader_fp64.built_in_functions +KHR-GL43.gpu_shader_fp64.fp64.errors +KHR-GL43.gpu_shader_fp64.fp64.max_uniform_components +KHR-GL43.gpu_shader_fp64.fp64.named_uniform_blocks +KHR-GL43.gpu_shader_fp64.fp64.state_query +KHR-GL43.gpu_shader_fp64.fp64.conversions +KHR-GL43.gpu_shader_fp64.fp64.illegal_conversions +KHR-GL43.gpu_shader_fp64.fp64.varyings +KHR-GL43.gpu_shader_fp64.fp64.valid_constructors +KHR-GL43.gpu_shader_fp64.fp64.operators +KHR-GL43.gpu_shader_fp64.builtin.abs_double +KHR-GL43.gpu_shader_fp64.builtin.abs_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.abs_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.abs_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.abs_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.abs_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.abs_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.abs_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.abs_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.abs_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.abs_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.abs_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.abs_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.ceil_double +KHR-GL43.gpu_shader_fp64.builtin.ceil_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.ceil_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.ceil_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.ceil_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.ceil_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.ceil_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.ceil_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.ceil_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.ceil_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.ceil_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.ceil_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.ceil_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.clamp_double +KHR-GL43.gpu_shader_fp64.builtin.clamp_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.clamp_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.clamp_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.clamp_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.clamp_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.clamp_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.clamp_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.clamp_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.clamp_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.clamp_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.clamp_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.clamp_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.clamp_against_scalar_double +KHR-GL43.gpu_shader_fp64.builtin.clamp_against_scalar_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.clamp_against_scalar_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.clamp_against_scalar_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.clamp_against_scalar_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.clamp_against_scalar_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.clamp_against_scalar_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.clamp_against_scalar_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.clamp_against_scalar_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.clamp_against_scalar_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.clamp_against_scalar_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.clamp_against_scalar_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.clamp_against_scalar_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.cross_double +KHR-GL43.gpu_shader_fp64.builtin.cross_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.cross_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.cross_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.cross_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.cross_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.cross_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.cross_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.cross_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.cross_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.cross_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.cross_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.cross_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.determinant_double +KHR-GL43.gpu_shader_fp64.builtin.determinant_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.determinant_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.determinant_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.determinant_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.determinant_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.determinant_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.determinant_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.determinant_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.determinant_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.determinant_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.determinant_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.determinant_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.distance_double +KHR-GL43.gpu_shader_fp64.builtin.distance_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.distance_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.distance_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.distance_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.distance_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.distance_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.distance_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.distance_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.distance_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.distance_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.distance_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.distance_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.dot_double +KHR-GL43.gpu_shader_fp64.builtin.dot_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.dot_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.dot_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.dot_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.dot_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.dot_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.dot_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.dot_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.dot_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.dot_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.dot_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.dot_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.equal_double +KHR-GL43.gpu_shader_fp64.builtin.equal_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.equal_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.equal_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.equal_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.equal_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.equal_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.equal_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.equal_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.equal_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.equal_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.equal_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.equal_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.faceforward_double +KHR-GL43.gpu_shader_fp64.builtin.faceforward_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.faceforward_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.faceforward_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.faceforward_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.faceforward_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.faceforward_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.faceforward_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.faceforward_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.faceforward_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.faceforward_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.faceforward_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.faceforward_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.floor_double +KHR-GL43.gpu_shader_fp64.builtin.floor_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.floor_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.floor_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.floor_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.floor_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.floor_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.floor_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.floor_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.floor_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.floor_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.floor_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.floor_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.fma_double +KHR-GL43.gpu_shader_fp64.builtin.fma_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.fma_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.fma_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.fma_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.fma_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.fma_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.fma_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.fma_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.fma_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.fma_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.fma_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.fma_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.fract_double +KHR-GL43.gpu_shader_fp64.builtin.fract_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.fract_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.fract_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.fract_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.fract_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.fract_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.fract_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.fract_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.fract_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.fract_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.fract_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.fract_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.frexp_double +KHR-GL43.gpu_shader_fp64.builtin.frexp_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.frexp_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.frexp_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.frexp_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.frexp_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.frexp_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.frexp_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.frexp_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.frexp_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.frexp_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.frexp_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.frexp_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.greaterthan_double +KHR-GL43.gpu_shader_fp64.builtin.greaterthan_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.greaterthan_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.greaterthan_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.greaterthan_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.greaterthan_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.greaterthan_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.greaterthan_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.greaterthan_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.greaterthan_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.greaterthan_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.greaterthan_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.greaterthan_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.greaterthanequal_double +KHR-GL43.gpu_shader_fp64.builtin.greaterthanequal_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.greaterthanequal_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.greaterthanequal_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.greaterthanequal_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.greaterthanequal_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.greaterthanequal_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.greaterthanequal_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.greaterthanequal_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.greaterthanequal_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.greaterthanequal_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.greaterthanequal_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.greaterthanequal_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.inverse_double +KHR-GL43.gpu_shader_fp64.builtin.inverse_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.inverse_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.inverse_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.inverse_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.inverse_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.inverse_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.inverse_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.inverse_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.inverse_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.inverse_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.inverse_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.inverse_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.inversesqrt_double +KHR-GL43.gpu_shader_fp64.builtin.inversesqrt_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.inversesqrt_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.inversesqrt_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.inversesqrt_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.inversesqrt_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.inversesqrt_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.inversesqrt_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.inversesqrt_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.inversesqrt_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.inversesqrt_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.inversesqrt_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.inversesqrt_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.ldexp_double +KHR-GL43.gpu_shader_fp64.builtin.ldexp_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.ldexp_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.ldexp_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.ldexp_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.ldexp_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.ldexp_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.ldexp_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.ldexp_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.ldexp_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.ldexp_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.ldexp_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.ldexp_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.lessthan_double +KHR-GL43.gpu_shader_fp64.builtin.lessthan_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.lessthan_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.lessthan_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.lessthan_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.lessthan_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.lessthan_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.lessthan_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.lessthan_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.lessthan_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.lessthan_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.lessthan_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.lessthan_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.lessthanequal_double +KHR-GL43.gpu_shader_fp64.builtin.lessthanequal_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.lessthanequal_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.lessthanequal_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.lessthanequal_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.lessthanequal_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.lessthanequal_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.lessthanequal_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.lessthanequal_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.lessthanequal_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.lessthanequal_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.lessthanequal_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.lessthanequal_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.length_double +KHR-GL43.gpu_shader_fp64.builtin.length_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.length_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.length_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.length_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.length_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.length_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.length_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.length_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.length_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.length_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.length_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.length_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.matrixcompmult_double +KHR-GL43.gpu_shader_fp64.builtin.matrixcompmult_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.matrixcompmult_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.matrixcompmult_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.matrixcompmult_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.matrixcompmult_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.matrixcompmult_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.matrixcompmult_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.matrixcompmult_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.matrixcompmult_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.matrixcompmult_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.matrixcompmult_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.matrixcompmult_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.max_double +KHR-GL43.gpu_shader_fp64.builtin.max_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.max_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.max_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.max_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.max_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.max_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.max_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.max_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.max_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.max_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.max_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.max_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.max_against_scalar_double +KHR-GL43.gpu_shader_fp64.builtin.max_against_scalar_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.max_against_scalar_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.max_against_scalar_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.max_against_scalar_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.max_against_scalar_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.max_against_scalar_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.max_against_scalar_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.max_against_scalar_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.max_against_scalar_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.max_against_scalar_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.max_against_scalar_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.max_against_scalar_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.min_double +KHR-GL43.gpu_shader_fp64.builtin.min_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.min_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.min_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.min_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.min_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.min_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.min_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.min_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.min_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.min_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.min_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.min_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.min_against_scalar_double +KHR-GL43.gpu_shader_fp64.builtin.min_against_scalar_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.min_against_scalar_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.min_against_scalar_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.min_against_scalar_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.min_against_scalar_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.min_against_scalar_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.min_against_scalar_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.min_against_scalar_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.min_against_scalar_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.min_against_scalar_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.min_against_scalar_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.min_against_scalar_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.mix_double +KHR-GL43.gpu_shader_fp64.builtin.mix_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.mix_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.mix_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.mix_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.mix_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.mix_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.mix_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.mix_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.mix_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.mix_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.mix_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.mix_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.mod_double +KHR-GL43.gpu_shader_fp64.builtin.mod_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.mod_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.mod_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.mod_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.mod_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.mod_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.mod_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.mod_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.mod_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.mod_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.mod_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.mod_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.mod_against_scalar_double +KHR-GL43.gpu_shader_fp64.builtin.mod_against_scalar_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.mod_against_scalar_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.mod_against_scalar_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.mod_against_scalar_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.mod_against_scalar_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.mod_against_scalar_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.mod_against_scalar_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.mod_against_scalar_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.mod_against_scalar_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.mod_against_scalar_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.mod_against_scalar_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.mod_against_scalar_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.modf_double +KHR-GL43.gpu_shader_fp64.builtin.modf_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.modf_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.modf_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.modf_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.modf_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.modf_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.modf_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.modf_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.modf_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.modf_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.modf_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.modf_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.normalize_double +KHR-GL43.gpu_shader_fp64.builtin.normalize_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.normalize_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.normalize_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.normalize_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.normalize_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.normalize_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.normalize_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.normalize_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.normalize_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.normalize_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.normalize_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.normalize_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.notequal_double +KHR-GL43.gpu_shader_fp64.builtin.notequal_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.notequal_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.notequal_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.notequal_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.notequal_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.notequal_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.notequal_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.notequal_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.notequal_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.notequal_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.notequal_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.notequal_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.outerproduct_double +KHR-GL43.gpu_shader_fp64.builtin.outerproduct_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.outerproduct_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.outerproduct_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.outerproduct_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.outerproduct_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.outerproduct_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.outerproduct_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.outerproduct_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.outerproduct_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.outerproduct_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.outerproduct_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.outerproduct_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.packdouble2x32_double +KHR-GL43.gpu_shader_fp64.builtin.packdouble2x32_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.packdouble2x32_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.packdouble2x32_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.packdouble2x32_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.packdouble2x32_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.packdouble2x32_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.packdouble2x32_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.packdouble2x32_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.packdouble2x32_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.packdouble2x32_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.packdouble2x32_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.packdouble2x32_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.reflect_double +KHR-GL43.gpu_shader_fp64.builtin.reflect_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.reflect_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.reflect_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.reflect_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.reflect_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.reflect_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.reflect_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.reflect_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.reflect_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.reflect_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.reflect_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.reflect_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.refract_double +KHR-GL43.gpu_shader_fp64.builtin.refract_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.refract_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.refract_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.refract_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.refract_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.refract_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.refract_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.refract_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.refract_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.refract_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.refract_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.refract_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.round_double +KHR-GL43.gpu_shader_fp64.builtin.round_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.round_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.round_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.round_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.round_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.round_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.round_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.round_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.round_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.round_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.round_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.round_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.roundeven_double +KHR-GL43.gpu_shader_fp64.builtin.roundeven_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.roundeven_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.roundeven_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.roundeven_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.roundeven_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.roundeven_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.roundeven_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.roundeven_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.roundeven_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.roundeven_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.roundeven_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.roundeven_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.sign_double +KHR-GL43.gpu_shader_fp64.builtin.sign_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.sign_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.sign_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.sign_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.sign_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.sign_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.sign_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.sign_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.sign_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.sign_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.sign_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.sign_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.smoothstep_double +KHR-GL43.gpu_shader_fp64.builtin.smoothstep_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.smoothstep_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.smoothstep_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.smoothstep_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.smoothstep_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.smoothstep_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.smoothstep_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.smoothstep_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.smoothstep_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.smoothstep_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.smoothstep_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.smoothstep_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.smoothstep_against_scalar_double +KHR-GL43.gpu_shader_fp64.builtin.smoothstep_against_scalar_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.smoothstep_against_scalar_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.smoothstep_against_scalar_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.sqrt_double +KHR-GL43.gpu_shader_fp64.builtin.sqrt_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.sqrt_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.sqrt_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.sqrt_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.sqrt_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.sqrt_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.sqrt_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.sqrt_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.sqrt_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.sqrt_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.sqrt_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.sqrt_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.step_double +KHR-GL43.gpu_shader_fp64.builtin.step_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.step_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.step_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.step_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.step_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.step_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.step_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.step_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.step_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.step_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.step_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.step_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.step_against_scalar_double +KHR-GL43.gpu_shader_fp64.builtin.step_against_scalar_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.step_against_scalar_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.step_against_scalar_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.step_against_scalar_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.step_against_scalar_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.step_against_scalar_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.step_against_scalar_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.step_against_scalar_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.step_against_scalar_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.step_against_scalar_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.step_against_scalar_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.step_against_scalar_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.transpose_double +KHR-GL43.gpu_shader_fp64.builtin.transpose_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.transpose_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.transpose_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.transpose_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.transpose_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.transpose_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.transpose_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.transpose_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.transpose_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.transpose_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.transpose_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.transpose_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.trunc_double +KHR-GL43.gpu_shader_fp64.builtin.trunc_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.trunc_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.trunc_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.trunc_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.trunc_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.trunc_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.trunc_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.trunc_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.trunc_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.trunc_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.trunc_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.trunc_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.unpackdouble2x32_double +KHR-GL43.gpu_shader_fp64.builtin.unpackdouble2x32_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.unpackdouble2x32_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.unpackdouble2x32_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.unpackdouble2x32_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.unpackdouble2x32_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.unpackdouble2x32_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.unpackdouble2x32_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.unpackdouble2x32_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.unpackdouble2x32_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.unpackdouble2x32_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.unpackdouble2x32_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.unpackdouble2x32_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.isnan_double +KHR-GL43.gpu_shader_fp64.builtin.isnan_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.isnan_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.isnan_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.isnan_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.isnan_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.isnan_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.isnan_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.isnan_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.isnan_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.isnan_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.isnan_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.isnan_dmat4 +KHR-GL43.gpu_shader_fp64.builtin.isinf_double +KHR-GL43.gpu_shader_fp64.builtin.isinf_dvec2 +KHR-GL43.gpu_shader_fp64.builtin.isinf_dvec3 +KHR-GL43.gpu_shader_fp64.builtin.isinf_dvec4 +KHR-GL43.gpu_shader_fp64.builtin.isinf_dmat2 +KHR-GL43.gpu_shader_fp64.builtin.isinf_dmat2x3 +KHR-GL43.gpu_shader_fp64.builtin.isinf_dmat2x4 +KHR-GL43.gpu_shader_fp64.builtin.isinf_dmat3x2 +KHR-GL43.gpu_shader_fp64.builtin.isinf_dmat3 +KHR-GL43.gpu_shader_fp64.builtin.isinf_dmat3x4 +KHR-GL43.gpu_shader_fp64.builtin.isinf_dmat4x2 +KHR-GL43.gpu_shader_fp64.builtin.isinf_dmat4x3 +KHR-GL43.gpu_shader_fp64.builtin.isinf_dmat4 KHR-GL43.texture_gather.api-enums KHR-GL43.texture_gather.gather-glsl-compile KHR-GL43.texture_gather.plain-gather-float-2d-rgba diff --git a/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl44-master.txt b/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl44-master.txt index bbf1667..3cfe111 100644 --- a/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl44-master.txt +++ b/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl44-master.txt @@ -2617,16 +2617,665 @@ KHR-GL44.draw_elements_base_vertex_tests.invalid_primcount_argument KHR-GL44.draw_elements_base_vertex_tests.invalid_start_end_arguments KHR-GL44.draw_elements_base_vertex_tests.invalid_type_argument KHR-GL44.draw_elements_base_vertex_tests.invalid_mapped_bos -KHR-GL44.gpu_shader_fp64.errors -KHR-GL44.gpu_shader_fp64.max_uniform_components -KHR-GL44.gpu_shader_fp64.named_uniform_blocks -KHR-GL44.gpu_shader_fp64.state_query -KHR-GL44.gpu_shader_fp64.conversions -KHR-GL44.gpu_shader_fp64.illegal_conversions -KHR-GL44.gpu_shader_fp64.varyings -KHR-GL44.gpu_shader_fp64.valid_constructors -KHR-GL44.gpu_shader_fp64.operators -KHR-GL44.gpu_shader_fp64.built_in_functions +KHR-GL44.gpu_shader_fp64.fp64.errors +KHR-GL44.gpu_shader_fp64.fp64.max_uniform_components +KHR-GL44.gpu_shader_fp64.fp64.named_uniform_blocks +KHR-GL44.gpu_shader_fp64.fp64.state_query +KHR-GL44.gpu_shader_fp64.fp64.conversions +KHR-GL44.gpu_shader_fp64.fp64.illegal_conversions +KHR-GL44.gpu_shader_fp64.fp64.varyings +KHR-GL44.gpu_shader_fp64.fp64.valid_constructors +KHR-GL44.gpu_shader_fp64.fp64.operators +KHR-GL44.gpu_shader_fp64.builtin.abs_double +KHR-GL44.gpu_shader_fp64.builtin.abs_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.abs_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.abs_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.abs_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.abs_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.abs_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.abs_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.abs_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.abs_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.abs_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.abs_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.abs_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.ceil_double +KHR-GL44.gpu_shader_fp64.builtin.ceil_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.ceil_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.ceil_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.ceil_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.ceil_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.ceil_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.ceil_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.ceil_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.ceil_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.ceil_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.ceil_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.ceil_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.clamp_double +KHR-GL44.gpu_shader_fp64.builtin.clamp_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.clamp_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.clamp_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.clamp_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.clamp_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.clamp_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.clamp_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.clamp_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.clamp_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.clamp_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.clamp_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.clamp_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.clamp_against_scalar_double +KHR-GL44.gpu_shader_fp64.builtin.clamp_against_scalar_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.clamp_against_scalar_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.clamp_against_scalar_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.clamp_against_scalar_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.clamp_against_scalar_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.clamp_against_scalar_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.clamp_against_scalar_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.clamp_against_scalar_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.clamp_against_scalar_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.clamp_against_scalar_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.clamp_against_scalar_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.clamp_against_scalar_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.cross_double +KHR-GL44.gpu_shader_fp64.builtin.cross_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.cross_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.cross_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.cross_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.cross_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.cross_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.cross_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.cross_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.cross_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.cross_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.cross_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.cross_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.determinant_double +KHR-GL44.gpu_shader_fp64.builtin.determinant_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.determinant_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.determinant_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.determinant_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.determinant_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.determinant_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.determinant_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.determinant_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.determinant_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.determinant_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.determinant_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.determinant_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.distance_double +KHR-GL44.gpu_shader_fp64.builtin.distance_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.distance_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.distance_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.distance_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.distance_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.distance_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.distance_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.distance_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.distance_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.distance_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.distance_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.distance_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.dot_double +KHR-GL44.gpu_shader_fp64.builtin.dot_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.dot_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.dot_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.dot_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.dot_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.dot_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.dot_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.dot_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.dot_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.dot_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.dot_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.dot_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.equal_double +KHR-GL44.gpu_shader_fp64.builtin.equal_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.equal_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.equal_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.equal_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.equal_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.equal_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.equal_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.equal_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.equal_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.equal_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.equal_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.equal_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.faceforward_double +KHR-GL44.gpu_shader_fp64.builtin.faceforward_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.faceforward_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.faceforward_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.faceforward_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.faceforward_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.faceforward_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.faceforward_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.faceforward_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.faceforward_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.faceforward_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.faceforward_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.faceforward_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.floor_double +KHR-GL44.gpu_shader_fp64.builtin.floor_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.floor_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.floor_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.floor_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.floor_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.floor_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.floor_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.floor_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.floor_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.floor_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.floor_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.floor_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.fma_double +KHR-GL44.gpu_shader_fp64.builtin.fma_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.fma_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.fma_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.fma_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.fma_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.fma_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.fma_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.fma_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.fma_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.fma_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.fma_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.fma_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.fract_double +KHR-GL44.gpu_shader_fp64.builtin.fract_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.fract_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.fract_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.fract_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.fract_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.fract_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.fract_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.fract_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.fract_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.fract_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.fract_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.fract_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.frexp_double +KHR-GL44.gpu_shader_fp64.builtin.frexp_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.frexp_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.frexp_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.frexp_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.frexp_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.frexp_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.frexp_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.frexp_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.frexp_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.frexp_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.frexp_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.frexp_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.greaterthan_double +KHR-GL44.gpu_shader_fp64.builtin.greaterthan_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.greaterthan_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.greaterthan_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.greaterthan_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.greaterthan_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.greaterthan_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.greaterthan_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.greaterthan_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.greaterthan_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.greaterthan_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.greaterthan_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.greaterthan_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.greaterthanequal_double +KHR-GL44.gpu_shader_fp64.builtin.greaterthanequal_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.greaterthanequal_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.greaterthanequal_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.greaterthanequal_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.greaterthanequal_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.greaterthanequal_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.greaterthanequal_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.greaterthanequal_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.greaterthanequal_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.greaterthanequal_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.greaterthanequal_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.greaterthanequal_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.inverse_double +KHR-GL44.gpu_shader_fp64.builtin.inverse_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.inverse_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.inverse_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.inverse_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.inverse_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.inverse_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.inverse_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.inverse_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.inverse_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.inverse_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.inverse_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.inverse_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.inversesqrt_double +KHR-GL44.gpu_shader_fp64.builtin.inversesqrt_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.inversesqrt_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.inversesqrt_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.inversesqrt_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.inversesqrt_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.inversesqrt_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.inversesqrt_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.inversesqrt_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.inversesqrt_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.inversesqrt_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.inversesqrt_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.inversesqrt_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.ldexp_double +KHR-GL44.gpu_shader_fp64.builtin.ldexp_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.ldexp_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.ldexp_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.ldexp_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.ldexp_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.ldexp_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.ldexp_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.ldexp_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.ldexp_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.ldexp_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.ldexp_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.ldexp_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.lessthan_double +KHR-GL44.gpu_shader_fp64.builtin.lessthan_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.lessthan_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.lessthan_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.lessthan_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.lessthan_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.lessthan_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.lessthan_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.lessthan_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.lessthan_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.lessthan_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.lessthan_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.lessthan_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.lessthanequal_double +KHR-GL44.gpu_shader_fp64.builtin.lessthanequal_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.lessthanequal_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.lessthanequal_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.lessthanequal_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.lessthanequal_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.lessthanequal_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.lessthanequal_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.lessthanequal_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.lessthanequal_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.lessthanequal_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.lessthanequal_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.lessthanequal_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.length_double +KHR-GL44.gpu_shader_fp64.builtin.length_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.length_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.length_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.length_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.length_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.length_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.length_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.length_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.length_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.length_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.length_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.length_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.matrixcompmult_double +KHR-GL44.gpu_shader_fp64.builtin.matrixcompmult_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.matrixcompmult_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.matrixcompmult_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.matrixcompmult_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.matrixcompmult_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.matrixcompmult_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.matrixcompmult_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.matrixcompmult_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.matrixcompmult_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.matrixcompmult_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.matrixcompmult_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.matrixcompmult_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.max_double +KHR-GL44.gpu_shader_fp64.builtin.max_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.max_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.max_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.max_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.max_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.max_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.max_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.max_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.max_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.max_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.max_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.max_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.max_against_scalar_double +KHR-GL44.gpu_shader_fp64.builtin.max_against_scalar_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.max_against_scalar_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.max_against_scalar_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.max_against_scalar_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.max_against_scalar_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.max_against_scalar_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.max_against_scalar_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.max_against_scalar_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.max_against_scalar_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.max_against_scalar_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.max_against_scalar_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.max_against_scalar_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.min_double +KHR-GL44.gpu_shader_fp64.builtin.min_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.min_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.min_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.min_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.min_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.min_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.min_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.min_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.min_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.min_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.min_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.min_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.min_against_scalar_double +KHR-GL44.gpu_shader_fp64.builtin.min_against_scalar_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.min_against_scalar_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.min_against_scalar_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.min_against_scalar_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.min_against_scalar_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.min_against_scalar_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.min_against_scalar_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.min_against_scalar_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.min_against_scalar_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.min_against_scalar_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.min_against_scalar_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.min_against_scalar_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.mix_double +KHR-GL44.gpu_shader_fp64.builtin.mix_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.mix_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.mix_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.mix_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.mix_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.mix_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.mix_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.mix_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.mix_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.mix_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.mix_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.mix_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.mod_double +KHR-GL44.gpu_shader_fp64.builtin.mod_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.mod_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.mod_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.mod_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.mod_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.mod_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.mod_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.mod_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.mod_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.mod_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.mod_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.mod_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.mod_against_scalar_double +KHR-GL44.gpu_shader_fp64.builtin.mod_against_scalar_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.mod_against_scalar_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.mod_against_scalar_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.mod_against_scalar_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.mod_against_scalar_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.mod_against_scalar_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.mod_against_scalar_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.mod_against_scalar_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.mod_against_scalar_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.mod_against_scalar_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.mod_against_scalar_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.mod_against_scalar_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.modf_double +KHR-GL44.gpu_shader_fp64.builtin.modf_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.modf_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.modf_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.modf_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.modf_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.modf_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.modf_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.modf_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.modf_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.modf_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.modf_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.modf_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.normalize_double +KHR-GL44.gpu_shader_fp64.builtin.normalize_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.normalize_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.normalize_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.normalize_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.normalize_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.normalize_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.normalize_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.normalize_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.normalize_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.normalize_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.normalize_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.normalize_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.notequal_double +KHR-GL44.gpu_shader_fp64.builtin.notequal_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.notequal_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.notequal_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.notequal_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.notequal_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.notequal_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.notequal_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.notequal_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.notequal_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.notequal_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.notequal_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.notequal_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.outerproduct_double +KHR-GL44.gpu_shader_fp64.builtin.outerproduct_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.outerproduct_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.outerproduct_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.outerproduct_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.outerproduct_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.outerproduct_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.outerproduct_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.outerproduct_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.outerproduct_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.outerproduct_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.outerproduct_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.outerproduct_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.packdouble2x32_double +KHR-GL44.gpu_shader_fp64.builtin.packdouble2x32_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.packdouble2x32_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.packdouble2x32_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.packdouble2x32_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.packdouble2x32_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.packdouble2x32_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.packdouble2x32_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.packdouble2x32_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.packdouble2x32_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.packdouble2x32_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.packdouble2x32_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.packdouble2x32_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.reflect_double +KHR-GL44.gpu_shader_fp64.builtin.reflect_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.reflect_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.reflect_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.reflect_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.reflect_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.reflect_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.reflect_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.reflect_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.reflect_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.reflect_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.reflect_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.reflect_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.refract_double +KHR-GL44.gpu_shader_fp64.builtin.refract_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.refract_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.refract_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.refract_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.refract_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.refract_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.refract_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.refract_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.refract_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.refract_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.refract_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.refract_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.round_double +KHR-GL44.gpu_shader_fp64.builtin.round_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.round_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.round_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.round_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.round_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.round_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.round_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.round_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.round_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.round_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.round_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.round_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.roundeven_double +KHR-GL44.gpu_shader_fp64.builtin.roundeven_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.roundeven_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.roundeven_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.roundeven_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.roundeven_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.roundeven_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.roundeven_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.roundeven_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.roundeven_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.roundeven_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.roundeven_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.roundeven_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.sign_double +KHR-GL44.gpu_shader_fp64.builtin.sign_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.sign_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.sign_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.sign_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.sign_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.sign_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.sign_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.sign_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.sign_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.sign_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.sign_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.sign_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.smoothstep_double +KHR-GL44.gpu_shader_fp64.builtin.smoothstep_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.smoothstep_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.smoothstep_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.smoothstep_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.smoothstep_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.smoothstep_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.smoothstep_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.smoothstep_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.smoothstep_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.smoothstep_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.smoothstep_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.smoothstep_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.smoothstep_against_scalar_double +KHR-GL44.gpu_shader_fp64.builtin.smoothstep_against_scalar_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.smoothstep_against_scalar_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.smoothstep_against_scalar_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.sqrt_double +KHR-GL44.gpu_shader_fp64.builtin.sqrt_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.sqrt_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.sqrt_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.sqrt_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.sqrt_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.sqrt_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.sqrt_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.sqrt_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.sqrt_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.sqrt_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.sqrt_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.sqrt_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.step_double +KHR-GL44.gpu_shader_fp64.builtin.step_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.step_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.step_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.step_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.step_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.step_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.step_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.step_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.step_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.step_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.step_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.step_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.step_against_scalar_double +KHR-GL44.gpu_shader_fp64.builtin.step_against_scalar_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.step_against_scalar_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.step_against_scalar_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.step_against_scalar_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.step_against_scalar_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.step_against_scalar_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.step_against_scalar_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.step_against_scalar_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.step_against_scalar_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.step_against_scalar_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.step_against_scalar_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.step_against_scalar_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.transpose_double +KHR-GL44.gpu_shader_fp64.builtin.transpose_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.transpose_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.transpose_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.transpose_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.transpose_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.transpose_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.transpose_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.transpose_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.transpose_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.transpose_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.transpose_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.transpose_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.trunc_double +KHR-GL44.gpu_shader_fp64.builtin.trunc_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.trunc_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.trunc_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.trunc_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.trunc_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.trunc_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.trunc_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.trunc_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.trunc_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.trunc_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.trunc_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.trunc_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.unpackdouble2x32_double +KHR-GL44.gpu_shader_fp64.builtin.unpackdouble2x32_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.unpackdouble2x32_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.unpackdouble2x32_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.unpackdouble2x32_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.unpackdouble2x32_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.unpackdouble2x32_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.unpackdouble2x32_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.unpackdouble2x32_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.unpackdouble2x32_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.unpackdouble2x32_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.unpackdouble2x32_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.unpackdouble2x32_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.isnan_double +KHR-GL44.gpu_shader_fp64.builtin.isnan_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.isnan_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.isnan_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.isnan_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.isnan_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.isnan_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.isnan_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.isnan_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.isnan_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.isnan_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.isnan_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.isnan_dmat4 +KHR-GL44.gpu_shader_fp64.builtin.isinf_double +KHR-GL44.gpu_shader_fp64.builtin.isinf_dvec2 +KHR-GL44.gpu_shader_fp64.builtin.isinf_dvec3 +KHR-GL44.gpu_shader_fp64.builtin.isinf_dvec4 +KHR-GL44.gpu_shader_fp64.builtin.isinf_dmat2 +KHR-GL44.gpu_shader_fp64.builtin.isinf_dmat2x3 +KHR-GL44.gpu_shader_fp64.builtin.isinf_dmat2x4 +KHR-GL44.gpu_shader_fp64.builtin.isinf_dmat3x2 +KHR-GL44.gpu_shader_fp64.builtin.isinf_dmat3 +KHR-GL44.gpu_shader_fp64.builtin.isinf_dmat3x4 +KHR-GL44.gpu_shader_fp64.builtin.isinf_dmat4x2 +KHR-GL44.gpu_shader_fp64.builtin.isinf_dmat4x3 +KHR-GL44.gpu_shader_fp64.builtin.isinf_dmat4 KHR-GL44.texture_gather.api-enums KHR-GL44.texture_gather.gather-glsl-compile KHR-GL44.texture_gather.plain-gather-float-2d-rgba diff --git a/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl45-master.txt b/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl45-master.txt index c2f050e..68214e6 100644 --- a/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl45-master.txt +++ b/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl45-master.txt @@ -2617,16 +2617,665 @@ KHR-GL45.draw_elements_base_vertex_tests.invalid_primcount_argument KHR-GL45.draw_elements_base_vertex_tests.invalid_start_end_arguments KHR-GL45.draw_elements_base_vertex_tests.invalid_type_argument KHR-GL45.draw_elements_base_vertex_tests.invalid_mapped_bos -KHR-GL45.gpu_shader_fp64.errors -KHR-GL45.gpu_shader_fp64.max_uniform_components -KHR-GL45.gpu_shader_fp64.named_uniform_blocks -KHR-GL45.gpu_shader_fp64.state_query -KHR-GL45.gpu_shader_fp64.conversions -KHR-GL45.gpu_shader_fp64.illegal_conversions -KHR-GL45.gpu_shader_fp64.varyings -KHR-GL45.gpu_shader_fp64.valid_constructors -KHR-GL45.gpu_shader_fp64.operators -KHR-GL45.gpu_shader_fp64.built_in_functions +KHR-GL45.gpu_shader_fp64.fp64.errors +KHR-GL45.gpu_shader_fp64.fp64.max_uniform_components +KHR-GL45.gpu_shader_fp64.fp64.named_uniform_blocks +KHR-GL45.gpu_shader_fp64.fp64.state_query +KHR-GL45.gpu_shader_fp64.fp64.conversions +KHR-GL45.gpu_shader_fp64.fp64.illegal_conversions +KHR-GL45.gpu_shader_fp64.fp64.varyings +KHR-GL45.gpu_shader_fp64.fp64.valid_constructors +KHR-GL45.gpu_shader_fp64.fp64.operators +KHR-GL45.gpu_shader_fp64.builtin.abs_double +KHR-GL45.gpu_shader_fp64.builtin.abs_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.abs_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.abs_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.abs_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.abs_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.abs_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.abs_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.abs_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.abs_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.abs_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.abs_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.abs_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.ceil_double +KHR-GL45.gpu_shader_fp64.builtin.ceil_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.ceil_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.ceil_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.ceil_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.ceil_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.ceil_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.ceil_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.ceil_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.ceil_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.ceil_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.ceil_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.ceil_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.clamp_double +KHR-GL45.gpu_shader_fp64.builtin.clamp_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.clamp_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.clamp_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.clamp_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.clamp_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.clamp_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.clamp_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.clamp_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.clamp_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.clamp_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.clamp_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.clamp_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.clamp_against_scalar_double +KHR-GL45.gpu_shader_fp64.builtin.clamp_against_scalar_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.clamp_against_scalar_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.clamp_against_scalar_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.clamp_against_scalar_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.clamp_against_scalar_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.clamp_against_scalar_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.clamp_against_scalar_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.clamp_against_scalar_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.clamp_against_scalar_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.clamp_against_scalar_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.clamp_against_scalar_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.clamp_against_scalar_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.cross_double +KHR-GL45.gpu_shader_fp64.builtin.cross_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.cross_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.cross_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.cross_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.cross_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.cross_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.cross_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.cross_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.cross_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.cross_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.cross_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.cross_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.determinant_double +KHR-GL45.gpu_shader_fp64.builtin.determinant_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.determinant_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.determinant_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.determinant_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.determinant_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.determinant_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.determinant_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.determinant_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.determinant_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.determinant_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.determinant_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.determinant_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.distance_double +KHR-GL45.gpu_shader_fp64.builtin.distance_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.distance_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.distance_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.distance_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.distance_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.distance_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.distance_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.distance_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.distance_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.distance_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.distance_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.distance_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.dot_double +KHR-GL45.gpu_shader_fp64.builtin.dot_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.dot_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.dot_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.dot_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.dot_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.dot_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.dot_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.dot_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.dot_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.dot_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.dot_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.dot_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.equal_double +KHR-GL45.gpu_shader_fp64.builtin.equal_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.equal_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.equal_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.equal_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.equal_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.equal_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.equal_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.equal_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.equal_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.equal_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.equal_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.equal_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.faceforward_double +KHR-GL45.gpu_shader_fp64.builtin.faceforward_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.faceforward_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.faceforward_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.faceforward_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.faceforward_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.faceforward_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.faceforward_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.faceforward_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.faceforward_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.faceforward_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.faceforward_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.faceforward_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.floor_double +KHR-GL45.gpu_shader_fp64.builtin.floor_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.floor_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.floor_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.floor_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.floor_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.floor_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.floor_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.floor_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.floor_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.floor_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.floor_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.floor_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.fma_double +KHR-GL45.gpu_shader_fp64.builtin.fma_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.fma_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.fma_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.fma_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.fma_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.fma_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.fma_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.fma_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.fma_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.fma_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.fma_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.fma_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.fract_double +KHR-GL45.gpu_shader_fp64.builtin.fract_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.fract_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.fract_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.fract_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.fract_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.fract_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.fract_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.fract_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.fract_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.fract_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.fract_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.fract_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.frexp_double +KHR-GL45.gpu_shader_fp64.builtin.frexp_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.frexp_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.frexp_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.frexp_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.frexp_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.frexp_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.frexp_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.frexp_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.frexp_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.frexp_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.frexp_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.frexp_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.greaterthan_double +KHR-GL45.gpu_shader_fp64.builtin.greaterthan_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.greaterthan_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.greaterthan_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.greaterthan_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.greaterthan_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.greaterthan_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.greaterthan_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.greaterthan_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.greaterthan_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.greaterthan_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.greaterthan_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.greaterthan_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.greaterthanequal_double +KHR-GL45.gpu_shader_fp64.builtin.greaterthanequal_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.greaterthanequal_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.greaterthanequal_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.greaterthanequal_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.greaterthanequal_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.greaterthanequal_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.greaterthanequal_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.greaterthanequal_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.greaterthanequal_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.greaterthanequal_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.greaterthanequal_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.greaterthanequal_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.inverse_double +KHR-GL45.gpu_shader_fp64.builtin.inverse_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.inverse_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.inverse_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.inverse_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.inverse_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.inverse_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.inverse_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.inverse_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.inverse_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.inverse_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.inverse_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.inverse_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.inversesqrt_double +KHR-GL45.gpu_shader_fp64.builtin.inversesqrt_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.inversesqrt_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.inversesqrt_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.inversesqrt_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.inversesqrt_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.inversesqrt_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.inversesqrt_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.inversesqrt_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.inversesqrt_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.inversesqrt_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.inversesqrt_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.inversesqrt_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.ldexp_double +KHR-GL45.gpu_shader_fp64.builtin.ldexp_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.ldexp_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.ldexp_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.ldexp_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.ldexp_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.ldexp_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.ldexp_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.ldexp_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.ldexp_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.ldexp_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.ldexp_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.ldexp_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.lessthan_double +KHR-GL45.gpu_shader_fp64.builtin.lessthan_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.lessthan_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.lessthan_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.lessthan_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.lessthan_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.lessthan_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.lessthan_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.lessthan_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.lessthan_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.lessthan_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.lessthan_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.lessthan_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.lessthanequal_double +KHR-GL45.gpu_shader_fp64.builtin.lessthanequal_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.lessthanequal_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.lessthanequal_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.lessthanequal_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.lessthanequal_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.lessthanequal_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.lessthanequal_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.lessthanequal_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.lessthanequal_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.lessthanequal_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.lessthanequal_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.lessthanequal_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.length_double +KHR-GL45.gpu_shader_fp64.builtin.length_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.length_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.length_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.length_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.length_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.length_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.length_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.length_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.length_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.length_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.length_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.length_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.matrixcompmult_double +KHR-GL45.gpu_shader_fp64.builtin.matrixcompmult_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.matrixcompmult_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.matrixcompmult_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.matrixcompmult_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.matrixcompmult_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.matrixcompmult_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.matrixcompmult_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.matrixcompmult_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.matrixcompmult_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.matrixcompmult_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.matrixcompmult_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.matrixcompmult_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.max_double +KHR-GL45.gpu_shader_fp64.builtin.max_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.max_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.max_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.max_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.max_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.max_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.max_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.max_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.max_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.max_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.max_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.max_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.max_against_scalar_double +KHR-GL45.gpu_shader_fp64.builtin.max_against_scalar_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.max_against_scalar_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.max_against_scalar_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.max_against_scalar_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.max_against_scalar_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.max_against_scalar_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.max_against_scalar_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.max_against_scalar_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.max_against_scalar_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.max_against_scalar_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.max_against_scalar_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.max_against_scalar_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.min_double +KHR-GL45.gpu_shader_fp64.builtin.min_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.min_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.min_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.min_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.min_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.min_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.min_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.min_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.min_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.min_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.min_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.min_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.min_against_scalar_double +KHR-GL45.gpu_shader_fp64.builtin.min_against_scalar_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.min_against_scalar_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.min_against_scalar_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.min_against_scalar_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.min_against_scalar_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.min_against_scalar_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.min_against_scalar_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.min_against_scalar_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.min_against_scalar_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.min_against_scalar_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.min_against_scalar_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.min_against_scalar_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.mix_double +KHR-GL45.gpu_shader_fp64.builtin.mix_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.mix_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.mix_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.mix_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.mix_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.mix_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.mix_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.mix_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.mix_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.mix_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.mix_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.mix_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.mod_double +KHR-GL45.gpu_shader_fp64.builtin.mod_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.mod_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.mod_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.mod_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.mod_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.mod_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.mod_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.mod_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.mod_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.mod_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.mod_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.mod_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.mod_against_scalar_double +KHR-GL45.gpu_shader_fp64.builtin.mod_against_scalar_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.mod_against_scalar_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.mod_against_scalar_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.mod_against_scalar_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.mod_against_scalar_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.mod_against_scalar_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.mod_against_scalar_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.mod_against_scalar_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.mod_against_scalar_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.mod_against_scalar_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.mod_against_scalar_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.mod_against_scalar_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.modf_double +KHR-GL45.gpu_shader_fp64.builtin.modf_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.modf_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.modf_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.modf_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.modf_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.modf_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.modf_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.modf_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.modf_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.modf_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.modf_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.modf_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.normalize_double +KHR-GL45.gpu_shader_fp64.builtin.normalize_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.normalize_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.normalize_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.normalize_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.normalize_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.normalize_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.normalize_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.normalize_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.normalize_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.normalize_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.normalize_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.normalize_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.notequal_double +KHR-GL45.gpu_shader_fp64.builtin.notequal_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.notequal_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.notequal_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.notequal_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.notequal_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.notequal_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.notequal_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.notequal_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.notequal_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.notequal_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.notequal_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.notequal_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.outerproduct_double +KHR-GL45.gpu_shader_fp64.builtin.outerproduct_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.outerproduct_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.outerproduct_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.outerproduct_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.outerproduct_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.outerproduct_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.outerproduct_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.outerproduct_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.outerproduct_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.outerproduct_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.outerproduct_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.outerproduct_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.packdouble2x32_double +KHR-GL45.gpu_shader_fp64.builtin.packdouble2x32_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.packdouble2x32_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.packdouble2x32_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.packdouble2x32_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.packdouble2x32_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.packdouble2x32_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.packdouble2x32_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.packdouble2x32_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.packdouble2x32_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.packdouble2x32_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.packdouble2x32_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.packdouble2x32_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.reflect_double +KHR-GL45.gpu_shader_fp64.builtin.reflect_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.reflect_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.reflect_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.reflect_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.reflect_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.reflect_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.reflect_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.reflect_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.reflect_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.reflect_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.reflect_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.reflect_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.refract_double +KHR-GL45.gpu_shader_fp64.builtin.refract_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.refract_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.refract_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.refract_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.refract_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.refract_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.refract_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.refract_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.refract_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.refract_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.refract_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.refract_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.round_double +KHR-GL45.gpu_shader_fp64.builtin.round_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.round_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.round_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.round_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.round_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.round_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.round_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.round_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.round_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.round_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.round_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.round_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.roundeven_double +KHR-GL45.gpu_shader_fp64.builtin.roundeven_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.roundeven_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.roundeven_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.roundeven_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.roundeven_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.roundeven_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.roundeven_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.roundeven_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.roundeven_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.roundeven_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.roundeven_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.roundeven_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.sign_double +KHR-GL45.gpu_shader_fp64.builtin.sign_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.sign_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.sign_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.sign_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.sign_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.sign_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.sign_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.sign_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.sign_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.sign_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.sign_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.sign_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.smoothstep_double +KHR-GL45.gpu_shader_fp64.builtin.smoothstep_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.smoothstep_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.smoothstep_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.smoothstep_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.smoothstep_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.smoothstep_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.smoothstep_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.smoothstep_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.smoothstep_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.smoothstep_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.smoothstep_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.smoothstep_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.smoothstep_against_scalar_double +KHR-GL45.gpu_shader_fp64.builtin.smoothstep_against_scalar_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.smoothstep_against_scalar_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.smoothstep_against_scalar_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.sqrt_double +KHR-GL45.gpu_shader_fp64.builtin.sqrt_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.sqrt_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.sqrt_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.sqrt_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.sqrt_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.sqrt_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.sqrt_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.sqrt_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.sqrt_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.sqrt_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.sqrt_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.sqrt_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.step_double +KHR-GL45.gpu_shader_fp64.builtin.step_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.step_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.step_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.step_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.step_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.step_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.step_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.step_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.step_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.step_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.step_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.step_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.step_against_scalar_double +KHR-GL45.gpu_shader_fp64.builtin.step_against_scalar_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.step_against_scalar_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.step_against_scalar_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.step_against_scalar_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.step_against_scalar_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.step_against_scalar_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.step_against_scalar_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.step_against_scalar_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.step_against_scalar_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.step_against_scalar_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.step_against_scalar_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.step_against_scalar_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.transpose_double +KHR-GL45.gpu_shader_fp64.builtin.transpose_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.transpose_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.transpose_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.transpose_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.transpose_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.transpose_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.transpose_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.transpose_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.transpose_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.transpose_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.transpose_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.transpose_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.trunc_double +KHR-GL45.gpu_shader_fp64.builtin.trunc_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.trunc_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.trunc_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.trunc_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.trunc_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.trunc_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.trunc_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.trunc_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.trunc_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.trunc_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.trunc_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.trunc_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.unpackdouble2x32_double +KHR-GL45.gpu_shader_fp64.builtin.unpackdouble2x32_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.unpackdouble2x32_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.unpackdouble2x32_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.unpackdouble2x32_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.unpackdouble2x32_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.unpackdouble2x32_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.unpackdouble2x32_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.unpackdouble2x32_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.unpackdouble2x32_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.unpackdouble2x32_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.unpackdouble2x32_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.unpackdouble2x32_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.isnan_double +KHR-GL45.gpu_shader_fp64.builtin.isnan_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.isnan_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.isnan_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.isnan_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.isnan_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.isnan_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.isnan_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.isnan_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.isnan_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.isnan_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.isnan_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.isnan_dmat4 +KHR-GL45.gpu_shader_fp64.builtin.isinf_double +KHR-GL45.gpu_shader_fp64.builtin.isinf_dvec2 +KHR-GL45.gpu_shader_fp64.builtin.isinf_dvec3 +KHR-GL45.gpu_shader_fp64.builtin.isinf_dvec4 +KHR-GL45.gpu_shader_fp64.builtin.isinf_dmat2 +KHR-GL45.gpu_shader_fp64.builtin.isinf_dmat2x3 +KHR-GL45.gpu_shader_fp64.builtin.isinf_dmat2x4 +KHR-GL45.gpu_shader_fp64.builtin.isinf_dmat3x2 +KHR-GL45.gpu_shader_fp64.builtin.isinf_dmat3 +KHR-GL45.gpu_shader_fp64.builtin.isinf_dmat3x4 +KHR-GL45.gpu_shader_fp64.builtin.isinf_dmat4x2 +KHR-GL45.gpu_shader_fp64.builtin.isinf_dmat4x3 +KHR-GL45.gpu_shader_fp64.builtin.isinf_dmat4 KHR-GL45.texture_gather.api-enums KHR-GL45.texture_gather.gather-glsl-compile KHR-GL45.texture_gather.plain-gather-float-2d-rgba diff --git a/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl46-master.txt b/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl46-master.txt index ca0ccc0..5c932da 100644 --- a/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl46-master.txt +++ b/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl46-master.txt @@ -2617,16 +2617,665 @@ KHR-GL46.draw_elements_base_vertex_tests.invalid_primcount_argument KHR-GL46.draw_elements_base_vertex_tests.invalid_start_end_arguments KHR-GL46.draw_elements_base_vertex_tests.invalid_type_argument KHR-GL46.draw_elements_base_vertex_tests.invalid_mapped_bos -KHR-GL46.gpu_shader_fp64.errors -KHR-GL46.gpu_shader_fp64.max_uniform_components -KHR-GL46.gpu_shader_fp64.named_uniform_blocks -KHR-GL46.gpu_shader_fp64.state_query -KHR-GL46.gpu_shader_fp64.conversions -KHR-GL46.gpu_shader_fp64.illegal_conversions -KHR-GL46.gpu_shader_fp64.varyings -KHR-GL46.gpu_shader_fp64.valid_constructors -KHR-GL46.gpu_shader_fp64.operators -KHR-GL46.gpu_shader_fp64.built_in_functions +KHR-GL46.gpu_shader_fp64.fp64.errors +KHR-GL46.gpu_shader_fp64.fp64.max_uniform_components +KHR-GL46.gpu_shader_fp64.fp64.named_uniform_blocks +KHR-GL46.gpu_shader_fp64.fp64.state_query +KHR-GL46.gpu_shader_fp64.fp64.conversions +KHR-GL46.gpu_shader_fp64.fp64.illegal_conversions +KHR-GL46.gpu_shader_fp64.fp64.varyings +KHR-GL46.gpu_shader_fp64.fp64.valid_constructors +KHR-GL46.gpu_shader_fp64.fp64.operators +KHR-GL46.gpu_shader_fp64.builtin.abs_double +KHR-GL46.gpu_shader_fp64.builtin.abs_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.abs_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.abs_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.abs_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.abs_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.abs_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.abs_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.abs_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.abs_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.abs_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.abs_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.abs_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.ceil_double +KHR-GL46.gpu_shader_fp64.builtin.ceil_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.ceil_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.ceil_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.ceil_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.ceil_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.ceil_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.ceil_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.ceil_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.ceil_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.ceil_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.ceil_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.ceil_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.clamp_double +KHR-GL46.gpu_shader_fp64.builtin.clamp_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.clamp_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.clamp_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.clamp_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.clamp_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.clamp_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.clamp_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.clamp_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.clamp_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.clamp_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.clamp_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.clamp_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.clamp_against_scalar_double +KHR-GL46.gpu_shader_fp64.builtin.clamp_against_scalar_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.clamp_against_scalar_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.clamp_against_scalar_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.clamp_against_scalar_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.clamp_against_scalar_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.clamp_against_scalar_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.clamp_against_scalar_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.clamp_against_scalar_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.clamp_against_scalar_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.clamp_against_scalar_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.clamp_against_scalar_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.clamp_against_scalar_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.cross_double +KHR-GL46.gpu_shader_fp64.builtin.cross_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.cross_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.cross_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.cross_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.cross_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.cross_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.cross_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.cross_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.cross_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.cross_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.cross_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.cross_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.determinant_double +KHR-GL46.gpu_shader_fp64.builtin.determinant_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.determinant_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.determinant_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.determinant_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.determinant_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.determinant_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.determinant_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.determinant_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.determinant_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.determinant_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.determinant_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.determinant_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.distance_double +KHR-GL46.gpu_shader_fp64.builtin.distance_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.distance_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.distance_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.distance_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.distance_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.distance_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.distance_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.distance_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.distance_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.distance_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.distance_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.distance_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.dot_double +KHR-GL46.gpu_shader_fp64.builtin.dot_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.dot_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.dot_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.dot_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.dot_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.dot_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.dot_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.dot_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.dot_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.dot_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.dot_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.dot_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.equal_double +KHR-GL46.gpu_shader_fp64.builtin.equal_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.equal_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.equal_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.equal_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.equal_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.equal_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.equal_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.equal_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.equal_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.equal_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.equal_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.equal_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.faceforward_double +KHR-GL46.gpu_shader_fp64.builtin.faceforward_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.faceforward_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.faceforward_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.faceforward_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.faceforward_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.faceforward_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.faceforward_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.faceforward_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.faceforward_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.faceforward_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.faceforward_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.faceforward_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.floor_double +KHR-GL46.gpu_shader_fp64.builtin.floor_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.floor_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.floor_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.floor_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.floor_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.floor_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.floor_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.floor_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.floor_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.floor_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.floor_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.floor_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.fma_double +KHR-GL46.gpu_shader_fp64.builtin.fma_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.fma_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.fma_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.fma_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.fma_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.fma_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.fma_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.fma_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.fma_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.fma_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.fma_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.fma_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.fract_double +KHR-GL46.gpu_shader_fp64.builtin.fract_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.fract_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.fract_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.fract_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.fract_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.fract_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.fract_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.fract_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.fract_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.fract_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.fract_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.fract_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.frexp_double +KHR-GL46.gpu_shader_fp64.builtin.frexp_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.frexp_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.frexp_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.frexp_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.frexp_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.frexp_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.frexp_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.frexp_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.frexp_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.frexp_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.frexp_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.frexp_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.greaterthan_double +KHR-GL46.gpu_shader_fp64.builtin.greaterthan_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.greaterthan_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.greaterthan_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.greaterthan_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.greaterthan_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.greaterthan_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.greaterthan_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.greaterthan_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.greaterthan_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.greaterthan_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.greaterthan_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.greaterthan_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.greaterthanequal_double +KHR-GL46.gpu_shader_fp64.builtin.greaterthanequal_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.greaterthanequal_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.greaterthanequal_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.greaterthanequal_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.greaterthanequal_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.greaterthanequal_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.greaterthanequal_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.greaterthanequal_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.greaterthanequal_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.greaterthanequal_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.greaterthanequal_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.greaterthanequal_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.inverse_double +KHR-GL46.gpu_shader_fp64.builtin.inverse_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.inverse_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.inverse_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.inverse_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.inverse_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.inverse_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.inverse_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.inverse_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.inverse_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.inverse_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.inverse_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.inverse_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.inversesqrt_double +KHR-GL46.gpu_shader_fp64.builtin.inversesqrt_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.inversesqrt_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.inversesqrt_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.inversesqrt_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.inversesqrt_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.inversesqrt_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.inversesqrt_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.inversesqrt_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.inversesqrt_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.inversesqrt_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.inversesqrt_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.inversesqrt_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.ldexp_double +KHR-GL46.gpu_shader_fp64.builtin.ldexp_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.ldexp_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.ldexp_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.ldexp_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.ldexp_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.ldexp_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.ldexp_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.ldexp_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.ldexp_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.ldexp_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.ldexp_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.ldexp_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.lessthan_double +KHR-GL46.gpu_shader_fp64.builtin.lessthan_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.lessthan_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.lessthan_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.lessthan_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.lessthan_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.lessthan_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.lessthan_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.lessthan_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.lessthan_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.lessthan_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.lessthan_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.lessthan_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.lessthanequal_double +KHR-GL46.gpu_shader_fp64.builtin.lessthanequal_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.lessthanequal_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.lessthanequal_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.lessthanequal_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.lessthanequal_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.lessthanequal_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.lessthanequal_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.lessthanequal_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.lessthanequal_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.lessthanequal_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.lessthanequal_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.lessthanequal_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.length_double +KHR-GL46.gpu_shader_fp64.builtin.length_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.length_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.length_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.length_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.length_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.length_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.length_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.length_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.length_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.length_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.length_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.length_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.matrixcompmult_double +KHR-GL46.gpu_shader_fp64.builtin.matrixcompmult_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.matrixcompmult_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.matrixcompmult_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.matrixcompmult_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.matrixcompmult_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.matrixcompmult_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.matrixcompmult_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.matrixcompmult_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.matrixcompmult_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.matrixcompmult_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.matrixcompmult_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.matrixcompmult_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.max_double +KHR-GL46.gpu_shader_fp64.builtin.max_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.max_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.max_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.max_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.max_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.max_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.max_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.max_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.max_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.max_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.max_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.max_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.max_against_scalar_double +KHR-GL46.gpu_shader_fp64.builtin.max_against_scalar_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.max_against_scalar_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.max_against_scalar_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.max_against_scalar_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.max_against_scalar_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.max_against_scalar_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.max_against_scalar_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.max_against_scalar_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.max_against_scalar_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.max_against_scalar_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.max_against_scalar_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.max_against_scalar_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.min_double +KHR-GL46.gpu_shader_fp64.builtin.min_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.min_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.min_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.min_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.min_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.min_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.min_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.min_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.min_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.min_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.min_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.min_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.min_against_scalar_double +KHR-GL46.gpu_shader_fp64.builtin.min_against_scalar_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.min_against_scalar_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.min_against_scalar_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.min_against_scalar_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.min_against_scalar_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.min_against_scalar_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.min_against_scalar_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.min_against_scalar_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.min_against_scalar_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.min_against_scalar_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.min_against_scalar_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.min_against_scalar_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.mix_double +KHR-GL46.gpu_shader_fp64.builtin.mix_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.mix_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.mix_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.mix_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.mix_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.mix_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.mix_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.mix_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.mix_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.mix_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.mix_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.mix_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.mod_double +KHR-GL46.gpu_shader_fp64.builtin.mod_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.mod_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.mod_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.mod_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.mod_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.mod_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.mod_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.mod_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.mod_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.mod_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.mod_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.mod_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.mod_against_scalar_double +KHR-GL46.gpu_shader_fp64.builtin.mod_against_scalar_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.mod_against_scalar_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.mod_against_scalar_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.mod_against_scalar_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.mod_against_scalar_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.mod_against_scalar_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.mod_against_scalar_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.mod_against_scalar_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.mod_against_scalar_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.mod_against_scalar_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.mod_against_scalar_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.mod_against_scalar_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.modf_double +KHR-GL46.gpu_shader_fp64.builtin.modf_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.modf_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.modf_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.modf_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.modf_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.modf_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.modf_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.modf_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.modf_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.modf_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.modf_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.modf_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.normalize_double +KHR-GL46.gpu_shader_fp64.builtin.normalize_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.normalize_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.normalize_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.normalize_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.normalize_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.normalize_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.normalize_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.normalize_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.normalize_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.normalize_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.normalize_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.normalize_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.notequal_double +KHR-GL46.gpu_shader_fp64.builtin.notequal_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.notequal_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.notequal_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.notequal_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.notequal_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.notequal_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.notequal_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.notequal_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.notequal_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.notequal_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.notequal_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.notequal_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.outerproduct_double +KHR-GL46.gpu_shader_fp64.builtin.outerproduct_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.outerproduct_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.outerproduct_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.outerproduct_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.outerproduct_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.outerproduct_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.outerproduct_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.outerproduct_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.outerproduct_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.outerproduct_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.outerproduct_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.outerproduct_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.packdouble2x32_double +KHR-GL46.gpu_shader_fp64.builtin.packdouble2x32_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.packdouble2x32_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.packdouble2x32_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.packdouble2x32_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.packdouble2x32_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.packdouble2x32_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.packdouble2x32_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.packdouble2x32_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.packdouble2x32_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.packdouble2x32_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.packdouble2x32_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.packdouble2x32_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.reflect_double +KHR-GL46.gpu_shader_fp64.builtin.reflect_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.reflect_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.reflect_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.reflect_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.reflect_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.reflect_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.reflect_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.reflect_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.reflect_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.reflect_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.reflect_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.reflect_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.refract_double +KHR-GL46.gpu_shader_fp64.builtin.refract_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.refract_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.refract_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.refract_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.refract_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.refract_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.refract_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.refract_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.refract_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.refract_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.refract_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.refract_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.round_double +KHR-GL46.gpu_shader_fp64.builtin.round_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.round_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.round_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.round_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.round_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.round_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.round_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.round_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.round_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.round_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.round_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.round_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.roundeven_double +KHR-GL46.gpu_shader_fp64.builtin.roundeven_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.roundeven_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.roundeven_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.roundeven_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.roundeven_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.roundeven_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.roundeven_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.roundeven_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.roundeven_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.roundeven_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.roundeven_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.roundeven_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.sign_double +KHR-GL46.gpu_shader_fp64.builtin.sign_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.sign_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.sign_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.sign_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.sign_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.sign_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.sign_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.sign_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.sign_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.sign_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.sign_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.sign_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.smoothstep_double +KHR-GL46.gpu_shader_fp64.builtin.smoothstep_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.smoothstep_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.smoothstep_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.smoothstep_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.smoothstep_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.smoothstep_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.smoothstep_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.smoothstep_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.smoothstep_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.smoothstep_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.smoothstep_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.smoothstep_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.smoothstep_against_scalar_double +KHR-GL46.gpu_shader_fp64.builtin.smoothstep_against_scalar_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.smoothstep_against_scalar_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.smoothstep_against_scalar_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.smoothstep_against_scalar_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.sqrt_double +KHR-GL46.gpu_shader_fp64.builtin.sqrt_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.sqrt_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.sqrt_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.sqrt_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.sqrt_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.sqrt_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.sqrt_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.sqrt_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.sqrt_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.sqrt_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.sqrt_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.sqrt_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.step_double +KHR-GL46.gpu_shader_fp64.builtin.step_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.step_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.step_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.step_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.step_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.step_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.step_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.step_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.step_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.step_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.step_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.step_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.step_against_scalar_double +KHR-GL46.gpu_shader_fp64.builtin.step_against_scalar_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.step_against_scalar_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.step_against_scalar_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.step_against_scalar_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.step_against_scalar_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.step_against_scalar_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.step_against_scalar_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.step_against_scalar_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.step_against_scalar_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.step_against_scalar_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.step_against_scalar_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.step_against_scalar_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.transpose_double +KHR-GL46.gpu_shader_fp64.builtin.transpose_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.transpose_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.transpose_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.transpose_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.transpose_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.transpose_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.transpose_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.transpose_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.transpose_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.transpose_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.transpose_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.transpose_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.trunc_double +KHR-GL46.gpu_shader_fp64.builtin.trunc_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.trunc_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.trunc_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.trunc_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.trunc_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.trunc_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.trunc_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.trunc_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.trunc_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.trunc_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.trunc_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.trunc_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.unpackdouble2x32_double +KHR-GL46.gpu_shader_fp64.builtin.unpackdouble2x32_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.unpackdouble2x32_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.unpackdouble2x32_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.unpackdouble2x32_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.unpackdouble2x32_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.unpackdouble2x32_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.unpackdouble2x32_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.unpackdouble2x32_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.unpackdouble2x32_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.unpackdouble2x32_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.unpackdouble2x32_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.unpackdouble2x32_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.isnan_double +KHR-GL46.gpu_shader_fp64.builtin.isnan_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.isnan_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.isnan_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.isnan_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.isnan_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.isnan_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.isnan_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.isnan_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.isnan_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.isnan_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.isnan_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.isnan_dmat4 +KHR-GL46.gpu_shader_fp64.builtin.isinf_double +KHR-GL46.gpu_shader_fp64.builtin.isinf_dvec2 +KHR-GL46.gpu_shader_fp64.builtin.isinf_dvec3 +KHR-GL46.gpu_shader_fp64.builtin.isinf_dvec4 +KHR-GL46.gpu_shader_fp64.builtin.isinf_dmat2 +KHR-GL46.gpu_shader_fp64.builtin.isinf_dmat2x3 +KHR-GL46.gpu_shader_fp64.builtin.isinf_dmat2x4 +KHR-GL46.gpu_shader_fp64.builtin.isinf_dmat3x2 +KHR-GL46.gpu_shader_fp64.builtin.isinf_dmat3 +KHR-GL46.gpu_shader_fp64.builtin.isinf_dmat3x4 +KHR-GL46.gpu_shader_fp64.builtin.isinf_dmat4x2 +KHR-GL46.gpu_shader_fp64.builtin.isinf_dmat4x3 +KHR-GL46.gpu_shader_fp64.builtin.isinf_dmat4 KHR-GL46.texture_gather.api-enums KHR-GL46.texture_gather.gather-glsl-compile KHR-GL46.texture_gather.plain-gather-float-2d-rgba diff --git a/external/openglcts/modules/gl/gl4cGPUShaderFP64Tests.cpp b/external/openglcts/modules/gl/gl4cGPUShaderFP64Tests.cpp index 5705435..1d45bbb 100644 --- a/external/openglcts/modules/gl/gl4cGPUShaderFP64Tests.cpp +++ b/external/openglcts/modules/gl/gl4cGPUShaderFP64Tests.cpp @@ -12163,1089 +12163,1355 @@ public: }; } /* TypeHelpers */ -/** Implementations of function objects required by "GPUShaderFP64Test10" +/** Implementations of "math" functions required by "GPUShaderFP64Test10" * **/ -namespace FunctionObject +namespace Math { -/** Maps variable type with enumeration Utils::_variable_type - * - * @tparam T type - **/ template -class typeInfo -{ -public: - static const Utils::_variable_type variable_type = - TypeHelpers::typeInfo::result>::variable_type; -}; +static T clamp(T x, T minVal, T maxVal); -/** Place data from into - * - * @param buffer Buffer - * @param in Input data - **/ -template -class pack -{ -public: - static void set(glw::GLvoid* buffer, const T& in) - { - *(T*)buffer = in; - } -}; +template +static tcu::Matrix cofactors(const tcu::Matrix& matrix); -/** Place tcu::Matrix data from into - * - * @param buffer Buffer - * @param in Input data - **/ -template -class pack > -{ -public: - static void set(glw::GLvoid* buffer, const tcu::Matrix& in) - { - glw::GLdouble* data = (glw::GLdouble*)buffer; +template +static tcu::Vector convertBvecToUvec(const tcu::Vector& src); - for (glw::GLint column = 0; column < Cols; ++column) - { - for (glw::GLint row = 0; row < Rows; ++row) - { - glw::GLint index = column * Rows + row; +template +static T determinant(T val); - data[index] = in(row, column); - } - } - } -}; +template +static T determinant(const tcu::Matrix& mat); -/** Get data of from - * - * @param buffer Buffer - * @param out Output data - **/ template -class unpack -{ -public: - static void get(const glw::GLvoid* buffer, T& out) - { - out = *(T*)buffer; - } -}; +static T determinant(const tcu::Matrix& mat); -/** Get tcu::Matrix data from - * - * @param buffer Buffer - * @param out Output data - **/ -template -class unpack > -{ -public: - static void get(const glw::GLvoid* buffer, tcu::Matrix& out) - { - const glw::GLdouble* data = (glw::GLdouble*)buffer; +template +static T determinant(const tcu::Matrix& mat); - for (glw::GLint column = 0; column < Cols; ++column) - { - for (glw::GLint row = 0; row < Rows; ++row) - { - glw::GLint index = column * Rows + row; +template +static tcu::Matrix eliminate(const tcu::Matrix& matrix, + glw::GLuint column, glw::GLuint row); - out(row, column) = data[index]; - } - } - } -}; +template +static tcu::Vector equal(const tcu::Vector& left, + const tcu::Vector& right); -/** Base of unary function classes - * - **/ -class unaryBase : public GPUShaderFP64Test10::functionObject -{ -public: - unaryBase(GPUShaderFP64Test10::functionEnum function_enum, const glw::GLchar* function_name, - glw::GLvoid* function_pointer, const Utils::_variable_type res_type, const Utils::_variable_type arg_type) - : functionObject(function_enum, function_name, function_pointer, res_type), m_arg_type(arg_type) - { - } +static glw::GLdouble fma(glw::GLdouble a, glw::GLdouble b, glw::GLdouble c); - virtual glw::GLuint getArgumentCount() const - { - return 1; - } +static glw::GLdouble fract(glw::GLdouble val); - virtual Utils::_variable_type getArgumentType(glw::GLuint /* argument */) const - { - return m_arg_type; - } +template +static T frexp(T val, glw::GLint& exp); -protected: - const Utils::_variable_type m_arg_type; -}; +template +static tcu::Vector greaterThan(const tcu::Vector& left, + const tcu::Vector& right); -/** Unary function class. It treats input argument as one variable. - * - * @tparam ResT Type of result - * @tparam ArgT Type of argument - **/ -template -class unary : public unaryBase -{ -public: - typedef ResT (*functionPointer)(const ArgT&); +template +static tcu::Vector greaterThanEqual(const tcu::Vector& left, + const tcu::Vector& right); - unary(GPUShaderFP64Test10::functionEnum function_enum, const glw::GLchar* function_name, - functionPointer function_pointer) - : unaryBase(function_enum, function_name, (glw::GLvoid*)function_pointer, typeInfo::variable_type, - typeInfo::variable_type) - { - } +template +static tcu::Matrix inverse(const tcu::Matrix& matrix); - virtual void call(glw::GLvoid* result_dst, const glw::GLvoid* argument_src) const - { - ResT result; - ArgT arg; +static glw::GLdouble inverseSqrt(glw::GLdouble val); - unpack::get(argument_src, arg); +static glw::GLuint isinf_impl(glw::GLdouble val); - functionPointer p_function = (functionPointer)m_p_function; +static glw::GLuint isnan_impl(glw::GLdouble val); - result = p_function(arg); +template +static T ldexp(T val, glw::GLint exp); - pack::set(result_dst, result); - } -}; +template +static tcu::Vector lessThan(const tcu::Vector& left, + const tcu::Vector& right); -/** Unary function class. It treats input argument as separate components. - * - * @tparam ResT Type of result - **/ -template -class unaryByComponent : public unaryBase -{ -public: - typedef ResT (*functionPointer)(glw::GLdouble); +template +static tcu::Vector lessThanEqual(const tcu::Vector& left, + const tcu::Vector& right); - unaryByComponent(GPUShaderFP64Test10::functionEnum function_enum, const glw::GLchar* function_name, - functionPointer function_pointer, const Utils::_variable_type res_type, - const Utils::_variable_type arg_type) - : unaryBase(function_enum, function_name, (glw::GLvoid*)function_pointer, res_type, arg_type) - { - } +template +static T max(T left, T right); - virtual void call(glw::GLvoid* result_dst, const glw::GLvoid* argument_src) const - { - glw::GLuint n_components = Utils::getNumberOfComponentsForVariableType(m_arg_type); - ResT* p_result = (ResT*)result_dst; - glw::GLdouble* p_arg = (glw::GLdouble*)argument_src; +template +static T min(T left, T right); - functionPointer p_function = (functionPointer)m_p_function; +template +static glw::GLdouble minor_impl(const tcu::Matrix& matrix, glw::GLuint column, + glw::GLuint row); - for (glw::GLuint component = 0; component < n_components; ++component) - { - p_result[component] = p_function(p_arg[component]); - } - } -}; +template +static T mix(T left, T right, T weight); -/** Class of functions with one input and one output parameter. It treats arguments as separate components. - * - * @tparam ResT Type of result - * @tparam ArgT Type of argument - * @tparam OutT Type of output parameter - **/ -template -class unaryWithOutputByComponent : public unaryBase -{ -public: - typedef ResT (*functionPointer)(ArgT, OutT&); +template +static T mod(T left, T right); - unaryWithOutputByComponent(GPUShaderFP64Test10::functionEnum function_enum, const glw::GLchar* function_name, - functionPointer function_pointer, const Utils::_variable_type res_type, - const Utils::_variable_type arg_type, const Utils::_variable_type out_type) - : unaryBase(function_enum, function_name, (glw::GLvoid*)function_pointer, res_type, arg_type) - , m_out_type(out_type) - { - } +template +static T modf(T val, T& integer); - virtual void call(glw::GLvoid* result_dst, const glw::GLvoid* argument_src) const - { - ResT* p_result = (ResT*)result_dst; - OutT* p_out = (OutT*)((glw::GLubyte*)result_dst + getResultOffset(1)); - ArgT* p_arg = (ArgT*)argument_src; +template +static T multiply(T left, T right); - const glw::GLuint n_components_0 = getArgumentComponents(0); - const glw::GLuint n_components_1 = getResultComponents(1); - const glw::GLuint n_components = de::max(n_components_0, n_components_1); +template +static tcu::Vector notEqual(const tcu::Vector& left, + const tcu::Vector& right); - const glw::GLuint component_step_0 = (1 == n_components_0) ? 0 : 1; - const glw::GLuint component_step_1 = (1 == n_components_1) ? 0 : 1; +template +static tcu::Matrix outerProduct(const tcu::Vector& left, + const tcu::Vector& right); - functionPointer p_function = (functionPointer)m_p_function; +static glw::GLdouble packDouble2x32(const tcu::UVec2& in); - for (glw::GLuint component = 0; component < n_components; ++component) - { - const ArgT first_arg = p_arg[component * component_step_0]; - OutT& second_arg = p_out[component * component_step_1]; +template +static T round(T t); - p_result[component] = p_function(first_arg, second_arg); - } - } +template +static T roundEven(T t); - glw::GLuint getResultCount() const - { - return 2; - } +template +static T sign(T t); - Utils::_variable_type getResultType(glw::GLuint result) const - { - Utils::_variable_type type = Utils::VARIABLE_TYPE_UNKNOWN; +template +static T smoothStep(T e0, T e1, T val); - switch (result) - { - case 0: - type = m_res_type; - break; - case 1: - type = m_out_type; - break; - default: - TCU_FAIL("Not implemented"); - break; - } +template +static T step(T edge, T val); - return type; - } +template +static tcu::Matrix transpose(const tcu::Matrix& matrix); -protected: - const Utils::_variable_type m_out_type; -}; +template +static T trunc(T t); -/** Base of binary function classes. - * - **/ -class binaryBase : public GPUShaderFP64Test10::functionObject +static tcu::UVec2 unpackDouble2x32(const glw::GLdouble& val); + +template +static T clamp(T x, T minVal, T maxVal) { -public: - binaryBase(GPUShaderFP64Test10::functionEnum function_enum, const glw::GLchar* function_name, - glw::GLvoid* function_pointer, const Utils::_variable_type res_type, - const Utils::_variable_type arg_1_type, const Utils::_variable_type arg_2_type) - : functionObject(function_enum, function_name, function_pointer, res_type) - , m_arg_1_type(arg_1_type) - , m_arg_2_type(arg_2_type) - { - } + return min(max(x, minVal), maxVal); +} - virtual glw::GLuint getArgumentCount() const - { - return 2; - } +template +static tcu::Matrix cofactors(const tcu::Matrix& matrix) +{ + tcu::Matrix result; - virtual Utils::_variable_type getArgumentType(glw::GLuint argument) const + for (glw::GLuint c = 0; c < Size; ++c) { - switch (argument) + for (glw::GLuint r = 0; r < Size; ++r) { - case 0: - return m_arg_1_type; - break; - case 1: - return m_arg_2_type; - break; - default: - return Utils::VARIABLE_TYPE_UNKNOWN; - break; + const glw::GLdouble minor_value = minor_impl(matrix, c, r); + + result(r, c) = (1 == (c + r) % 2) ? -minor_value : minor_value; } } -protected: - const Utils::_variable_type m_arg_1_type; - const Utils::_variable_type m_arg_2_type; -}; + return result; +} -/** Binary function class. It treats input arguments as two variables. - * - * @param ResT Type of result - * @param Arg1T Type of first argument - * @param Arg2T Type of second argument - **/ -template -class binary : public binaryBase +template +static tcu::Vector convertBvecToUvec(const tcu::Vector& src) { -public: - typedef ResT (*functionPointer)(const Arg1T&, const Arg2T&); + tcu::Vector result; - binary(GPUShaderFP64Test10::functionEnum function_enum, const glw::GLchar* function_name, - functionPointer function_pointer) - : binaryBase(function_enum, function_name, (glw::GLvoid*)function_pointer, typeInfo::variable_type, - typeInfo::variable_type, typeInfo::variable_type) + for (glw::GLint i = 0; i < Size; ++i) { + if (GL_FALSE != src[i]) + { + result[i] = 1; + } + else + { + result[i] = 0; + } } - virtual void call(glw::GLvoid* result_dst, const glw::GLvoid* argument_src) const - { - const glw::GLuint argument_1_stride = getArgumentStride(0); - - functionPointer p_function = (functionPointer)m_p_function; - - Arg1T arg_1; - Arg2T arg_2; - ResT result; + return result; +} - unpack::get(argument_src, arg_1); - unpack::get((glw::GLubyte*)argument_src + argument_1_stride, arg_2); +template +static T det2(T _00, T _10, T _01, T _11) +{ + return _00 * _11 - _01 * _10; +} - result = p_function(arg_1, arg_2); +template +static T det3(T _00, T _10, T _20, T _01, T _11, T _21, T _02, T _12, T _22) +{ + return _00 * det2(_11, _21, _12, _22) - _10 * det2(_01, _21, _02, _22) + _20 * det2(_01, _11, _02, _12); +} - pack::set(result_dst, result); - } -}; +template +static T det4(T _00, T _10, T _20, T _30, T _01, T _11, T _21, T _31, T _02, T _12, T _22, T _32, T _03, T _13, T _23, + T _33) +{ + return _00 * det3(_11, _21, _31, _12, _22, _32, _13, _23, _33) - + _10 * det3(_01, _21, _31, _02, _22, _32, _03, _23, _33) + + _20 * det3(_01, _11, _31, _02, _12, _32, _03, _13, _33) - + _30 * det3(_01, _11, _21, _02, _12, _22, _03, _13, _23); +} -/** Binary function class. It treats input arguments as separate components. - * - * @param ResT Type of result - * @param Arg1T Type of first argument - * @param Arg2T Type of second argument - **/ -template -class binaryByComponent : public binaryBase +template +static T determinant(T val) { -public: - typedef ResT (*functionPointer)(Arg1T, Arg2T); + return val; +} - binaryByComponent(GPUShaderFP64Test10::functionEnum function_enum, const glw::GLchar* function_name, - functionPointer function_pointer, const Utils::_variable_type res_type, - const Utils::_variable_type arg_1_type, const Utils::_variable_type arg_2_type) - : binaryBase(function_enum, function_name, (glw::GLvoid*)function_pointer, res_type, arg_1_type, arg_2_type) - { - } +template +static T determinant(const tcu::Matrix& mat) +{ + return det2(mat(0, 0), mat(0, 1), mat(1, 0), mat(1, 1)); +} - virtual void call(glw::GLvoid* result_dst, const glw::GLvoid* argument_src) const - { - ResT* p_result = (ResT*)result_dst; - Arg1T* p_arg_1 = (Arg1T*)argument_src; - Arg2T* p_arg_2 = (Arg2T*)((glw::GLubyte*)argument_src + getArgumentOffset(1)); +template +static T determinant(const tcu::Matrix& mat) +{ + return det3(mat(0, 0), mat(0, 1), mat(0, 2), mat(1, 0), mat(1, 1), mat(1, 2), mat(2, 0), mat(2, 1), mat(2, 2)); +} - const glw::GLuint n_components_0 = getArgumentComponents(0); - const glw::GLuint n_components_1 = getArgumentComponents(1); - const glw::GLuint n_components = de::max(n_components_0, n_components_1); +template +static T determinant(const tcu::Matrix& mat) +{ + return det4(mat(0, 0), mat(0, 1), mat(0, 2), mat(0, 3), mat(1, 0), mat(1, 1), mat(1, 2), mat(1, 3), mat(2, 0), + mat(2, 1), mat(2, 2), mat(2, 3), mat(3, 0), mat(3, 1), mat(3, 2), mat(3, 3)); +} - const glw::GLuint component_step_0 = (1 == n_components_0) ? 0 : 1; - const glw::GLuint component_step_1 = (1 == n_components_1) ? 0 : 1; +template +static tcu::Matrix eliminate(const tcu::Matrix& matrix, + glw::GLuint column, glw::GLuint row) +{ + tcu::Matrix result; - functionPointer p_function = (functionPointer)m_p_function; + for (glw::GLuint c = 0; c < Size; ++c) + { + /* Skip eliminated column */ + if (column == c) + { + continue; + } - for (glw::GLuint component = 0; component < n_components; ++component) + for (glw::GLuint r = 0; r < Size; ++r) { - const Arg1T first_arg = p_arg_1[component * component_step_0]; - const Arg2T second_arg = p_arg_2[component * component_step_1]; + /* Skip eliminated row */ + if (row == r) + { + continue; + } - p_result[component] = p_function(first_arg, second_arg); + const glw::GLint r_offset = (r > row) ? -1 : 0; + const glw::GLint c_offset = (c > column) ? -1 : 0; + + result(r + r_offset, c + c_offset) = matrix(r, c); } } -}; -/** Base of tenary function classes. - * - **/ -class tenaryBase : public GPUShaderFP64Test10::functionObject + return result; +} + +template +static tcu::Vector equal(const tcu::Vector& left, + const tcu::Vector& right) { -public: - tenaryBase(GPUShaderFP64Test10::functionEnum function_enum, const glw::GLchar* function_name, - glw::GLvoid* function_pointer, const Utils::_variable_type res_type, - const Utils::_variable_type arg_1_type, const Utils::_variable_type arg_2_type, - const Utils::_variable_type arg_3_type) - : functionObject(function_enum, function_name, function_pointer, res_type) - , m_arg_1_type(arg_1_type) - , m_arg_2_type(arg_2_type) - , m_arg_3_type(arg_3_type) - { - } + return convertBvecToUvec(tcu::equal(left, right)); +} - virtual glw::GLuint getArgumentCount() const - { - return 3; - } +static glw::GLdouble fma(glw::GLdouble a, glw::GLdouble b, glw::GLdouble c) +{ + return a * b + c; +} - virtual Utils::_variable_type getArgumentType(glw::GLuint argument) const - { - switch (argument) - { - case 0: - return m_arg_1_type; - break; - case 1: - return m_arg_2_type; - break; - case 2: - return m_arg_3_type; - break; - default: - return Utils::VARIABLE_TYPE_UNKNOWN; - break; - } - } +static glw::GLdouble fract(glw::GLdouble val) +{ + return val - floor(val); +} -protected: - const Utils::_variable_type m_arg_1_type; - const Utils::_variable_type m_arg_2_type; - const Utils::_variable_type m_arg_3_type; -}; - -/** Tenary function class. It treats input arguments as three variables. - * - * @param ResT Type of result - * @param Arg1T Type of first argument - * @param Arg2T Type of second argument - * @param Arg3T Type of third argument - **/ -template -class tenary : public tenaryBase -{ -public: - typedef ResT (*functionPointer)(Arg1T, Arg2T, Arg3T); - typedef typename TypeHelpers::referenceToType::result arg1T; - typedef typename TypeHelpers::referenceToType::result arg2T; - typedef typename TypeHelpers::referenceToType::result arg3T; - - tenary(GPUShaderFP64Test10::functionEnum function_enum, const glw::GLchar* function_name, - functionPointer function_pointer) - : tenaryBase(function_enum, function_name, (glw::GLvoid*)function_pointer, typeInfo::variable_type, - typeInfo::variable_type, typeInfo::variable_type, typeInfo::variable_type) - { - } - - virtual void call(glw::GLvoid* result_dst, const glw::GLvoid* argument_src) const - { - const glw::GLuint argument_2_offset = getArgumentOffset(1); - const glw::GLuint argument_3_offset = getArgumentOffset(2); - - functionPointer p_function = (functionPointer)m_p_function; - - arg1T arg_1; - arg2T arg_2; - arg3T arg_3; - ResT result; - - unpack::get(argument_src, arg_1); - unpack::get((glw::GLubyte*)argument_src + argument_2_offset, arg_2); - unpack::get((glw::GLubyte*)argument_src + argument_3_offset, arg_3); - - result = p_function(arg_1, arg_2, arg_3); - - pack::set(result_dst, result); - } -}; - -/** Tenary function class. It treats input arguments as separate components. - * - - **/ -class tenaryByComponent : public tenaryBase -{ -public: - typedef glw::GLdouble (*functionPointer)(glw::GLdouble, glw::GLdouble, glw::GLdouble); - - tenaryByComponent(GPUShaderFP64Test10::functionEnum function_enum, const glw::GLchar* function_name, - functionPointer function_pointer, const Utils::_variable_type res_type, - const Utils::_variable_type arg_1_type, const Utils::_variable_type arg_2_type, - const Utils::_variable_type arg_3_type) - : tenaryBase(function_enum, function_name, (glw::GLvoid*)function_pointer, res_type, arg_1_type, arg_2_type, - arg_3_type) - { - } - - virtual void call(glw::GLvoid* result_dst, const glw::GLvoid* argument_src) const - { - glw::GLdouble* p_result = (glw::GLdouble*)result_dst; - const glw::GLdouble* p_arg = (const glw::GLdouble*)argument_src; - - const glw::GLuint n_components_0 = getArgumentComponents(0); - const glw::GLuint n_components_1 = getArgumentComponents(1); - const glw::GLuint n_components_2 = getArgumentComponents(2); - const glw::GLuint n_components = de::max(de::max(n_components_0, n_components_1), n_components_2); - - const glw::GLuint component_step_0 = (1 == n_components_0) ? 0 : 1; - const glw::GLuint component_step_1 = (1 == n_components_1) ? 0 : 1; - const glw::GLuint component_step_2 = (1 == n_components_2) ? 0 : 1; - - functionPointer p_function = (functionPointer)m_p_function; - - for (glw::GLuint component = 0; component < n_components; ++component) - { - const glw::GLdouble first_arg = p_arg[component * component_step_0]; - const glw::GLdouble second_arg = p_arg[component * component_step_1 + n_components_0]; - const glw::GLdouble third_arg = p_arg[component * component_step_2 + n_components_0 + n_components_1]; - - p_result[component] = p_function(first_arg, second_arg, third_arg); - } - } -}; -} /* FunctionObject */ - -/** Implementations of "math" functions required by "GPUShaderFP64Test10" - * - **/ -namespace Math -{ template -static T clamp(T x, T minVal, T maxVal); - -template -static tcu::Matrix cofactors(const tcu::Matrix& matrix); +static T frexp(T val, glw::GLint& exp) +{ + return ::frexp(val, &exp); +} template -static tcu::Vector convertBvecToUvec(const tcu::Vector& src); - -template -static T determinant(T val); - -template -static T determinant(const tcu::Matrix& mat); - -template -static T determinant(const tcu::Matrix& mat); - -template -static T determinant(const tcu::Matrix& mat); +static tcu::Vector greaterThan(const tcu::Vector& left, + const tcu::Vector& right) +{ + return convertBvecToUvec(tcu::greaterThan(left, right)); +} template -static tcu::Matrix eliminate(const tcu::Matrix& matrix, - glw::GLuint column, glw::GLuint row); +static tcu::Vector greaterThanEqual(const tcu::Vector& left, + const tcu::Vector& right) +{ + return convertBvecToUvec(tcu::greaterThanEqual(left, right)); +} template -static tcu::Vector equal(const tcu::Vector& left, - const tcu::Vector& right); - -static glw::GLdouble fma(glw::GLdouble a, glw::GLdouble b, glw::GLdouble c); - -static glw::GLdouble fract(glw::GLdouble val); +static tcu::Matrix inverse(const tcu::Matrix& matrix) +{ + const tcu::Matrix cof = cofactors(matrix); + const tcu::Matrix adjugate = tcu::transpose(cof); + const glw::GLdouble det = determinant(matrix); + const glw::GLdouble inv_det = 1.0 / det; -template -static T frexp(T val, glw::GLint& exp); + tcu::Matrix result = adjugate * inv_det; -template -static tcu::Vector greaterThan(const tcu::Vector& left, - const tcu::Vector& right); + return result; +} -template -static tcu::Vector greaterThanEqual(const tcu::Vector& left, - const tcu::Vector& right); +static glw::GLdouble inverseSqrt(glw::GLdouble val) +{ + const glw::GLdouble root = sqrt(val); -template -static tcu::Matrix inverse(const tcu::Matrix& matrix); + return (1.0 / root); +} -static glw::GLdouble inverseSqrt(glw::GLdouble val); +static glw::GLuint isinf_impl(glw::GLdouble val) +{ + const glw::GLdouble infinity = std::numeric_limits::infinity(); -static glw::GLuint isinf_impl(glw::GLdouble val); + return ((infinity == val) || (-infinity == val)); +} -static glw::GLuint isnan_impl(glw::GLdouble val); +static glw::GLuint isnan_impl(glw::GLdouble val) +{ + return val != val; +} template -static T ldexp(T val, glw::GLint exp); +static T ldexp(T val, glw::GLint exp) +{ + return ::ldexp(val, exp); +} template static tcu::Vector lessThan(const tcu::Vector& left, - const tcu::Vector& right); + const tcu::Vector& right) +{ + return convertBvecToUvec(tcu::lessThan(left, right)); +} template static tcu::Vector lessThanEqual(const tcu::Vector& left, - const tcu::Vector& right); + const tcu::Vector& right) +{ + return convertBvecToUvec(tcu::lessThanEqual(left, right)); +} template -static T max(T left, T right); +static T max(T left, T right) +{ + return (left >= right) ? left : right; +} template -static T min(T left, T right); +static T min(T left, T right) +{ + return (left <= right) ? left : right; +} template static glw::GLdouble minor_impl(const tcu::Matrix& matrix, glw::GLuint column, - glw::GLuint row); + glw::GLuint row) +{ + tcu::Matrix eliminated = eliminate(matrix, column, row); + + return determinant(eliminated); +} + +template <> +glw::GLdouble minor_impl<2>(const tcu::Matrix& matrix, glw::GLuint column, glw::GLuint row) +{ + const glw::GLuint r = (0 == row) ? 1 : 0; + const glw::GLuint c = (0 == column) ? 1 : 0; + + return matrix(r, c); +} template -static T mix(T left, T right, T weight); +static T mix(T left, T right, T weight) +{ + return left * (1 - weight) + right * (weight); +} template -static T mod(T left, T right); +static T mod(T left, T right) +{ + const T div_res = left / right; + const T floored = floor(div_res); + + return left - right * floored; +} template -static T modf(T val, T& integer); +static T modf(T val, T& integer) +{ + return ::modf(val, &integer); +} template -static T multiply(T left, T right); +static T multiply(T left, T right) +{ + T result = left * right; + + return result; +} template static tcu::Vector notEqual(const tcu::Vector& left, - const tcu::Vector& right); + const tcu::Vector& right) +{ + return convertBvecToUvec(tcu::notEqual(left, right)); +} template static tcu::Matrix outerProduct(const tcu::Vector& left, - const tcu::Vector& right); - -static glw::GLdouble packDouble2x32(const tcu::UVec2& in); + const tcu::Vector& right) +{ + tcu::Matrix left_mat; + tcu::Matrix right_mat; + tcu::Matrix result; -template -static T round(T t); + for (glw::GLuint i = 0; i < Rows; ++i) + { + left_mat(i, 0) = left[i]; + } -template -static T roundEven(T t); - -template -static T sign(T t); - -template -static T smoothStep(T e0, T e1, T val); - -template -static T step(T edge, T val); - -template -static tcu::Matrix transpose(const tcu::Matrix& matrix); + for (glw::GLuint i = 0; i < Cols; ++i) + { + right_mat(0, i) = right[i]; + } -template -static T trunc(T t); + result = left_mat * right_mat; -static tcu::UVec2 unpackDouble2x32(const glw::GLdouble& val); + return result; +} -template -static T clamp(T x, T minVal, T maxVal) +static glw::GLdouble packDouble2x32(const tcu::UVec2& in) { - return min(max(x, minVal), maxVal); + const glw::GLuint buffer[2] = { in[0], in[1] }; + glw::GLdouble result; + memcpy(&result, buffer, sizeof(result)); + return result; } -template -static tcu::Matrix cofactors(const tcu::Matrix& matrix) +template +static T round(T t) { - tcu::Matrix result; + T frac = fract(t); + T res = t - frac; - for (glw::GLuint c = 0; c < Size; ++c) + if (((T)0.5) < frac) { - for (glw::GLuint r = 0; r < Size; ++r) - { - const glw::GLdouble minor_value = minor_impl(matrix, c, r); - - result(r, c) = (1 == (c + r) % 2) ? -minor_value : minor_value; - } + res += ((T)1.0); } - return result; + return res; } -template -static tcu::Vector convertBvecToUvec(const tcu::Vector& src) +template +static T roundEven(T t) { - tcu::Vector result; + T frac = fract(t); + T res = t - frac; - for (glw::GLint i = 0; i < Size; ++i) + if (((T)0.5) < frac) { - if (GL_FALSE != src[i]) - { - result[i] = 1; - } - else - { - result[i] = 0; - } + res += ((T)1.0); + } + else if ((((T)0.5) == frac) && (0 != ((int)res) % 2)) + { + res += ((T)1.0); } - return result; + return res; } template -static T det2(T _00, T _10, T _01, T _11) +static T sign(T t) { - return _00 * _11 - _01 * _10; + if (0 > t) + { + return -1; + } + else if (0 == t) + { + return 0; + } + else + { + return 1; + } } template -static T det3(T _00, T _10, T _20, T _01, T _11, T _21, T _02, T _12, T _22) +static T smoothStep(T e0, T e1, T val) { - return _00 * det2(_11, _21, _12, _22) - _10 * det2(_01, _21, _02, _22) + _20 * det2(_01, _11, _02, _12); + if (e0 >= val) + { + return 0; + } + + if (e1 <= val) + { + return 1; + } + + T temp = (val - e0) / (e1 - e0); + + T result = temp * temp * (3 - 2 * temp); + + return result; } template -static T det4(T _00, T _10, T _20, T _30, T _01, T _11, T _21, T _31, T _02, T _12, T _22, T _32, T _03, T _13, T _23, - T _33) +static T step(T edge, T val) { - return _00 * det3(_11, _21, _31, _12, _22, _32, _13, _23, _33) - - _10 * det3(_01, _21, _31, _02, _22, _32, _03, _23, _33) + - _20 * det3(_01, _11, _31, _02, _12, _32, _03, _13, _33) - - _30 * det3(_01, _11, _21, _02, _12, _22, _03, _13, _23); + if (edge > val) + { + return 0; + } + else + { + return 1; + } } -template -static T determinant(T val) +template +static tcu::Matrix transpose(const tcu::Matrix& matrix) { - return val; + tcu::Matrix result = tcu::transpose(matrix); + + return result; } template -static T determinant(const tcu::Matrix& mat) +static T trunc(T t) { - return det2(mat(0, 0), mat(0, 1), mat(1, 0), mat(1, 1)); + const T abs_value = de::abs(t); + const T result_value = floor(abs_value); + + const T result = sign(t) * result_value; + + return result; } -template -static T determinant(const tcu::Matrix& mat) +static tcu::UVec2 unpackDouble2x32(const glw::GLdouble& val) { - return det3(mat(0, 0), mat(0, 1), mat(0, 2), mat(1, 0), mat(1, 1), mat(1, 2), mat(2, 0), mat(2, 1), mat(2, 2)); + glw::GLuint* ptr = (glw::GLuint*)&val; + tcu::UVec2 result(ptr[0], ptr[1]); + + return result; } +} /* Math */ -template -static T determinant(const tcu::Matrix& mat) +/** Enumeration of tested functions + * *_AGAINT_SCALAR enums are used to call glsl function with mixed scalar and genDType arguments. + * For example "max" can be called for (dvec3, double). + **/ +enum FunctionEnum +{ + FUNCTION_ABS = 0, + FUNCTION_CEIL, + FUNCTION_CLAMP, + FUNCTION_CLAMP_AGAINST_SCALAR, + FUNCTION_CROSS, + FUNCTION_DETERMINANT, + FUNCTION_DISTANCE, + FUNCTION_DOT, + FUNCTION_EQUAL, + FUNCTION_FACEFORWARD, + FUNCTION_FLOOR, + FUNCTION_FMA, + FUNCTION_FRACT, + FUNCTION_FREXP, + FUNCTION_GREATERTHAN, + FUNCTION_GREATERTHANEQUAL, + FUNCTION_INVERSE, + FUNCTION_INVERSESQRT, + FUNCTION_LDEXP, + FUNCTION_LESSTHAN, + FUNCTION_LESSTHANEQUAL, + FUNCTION_LENGTH, + FUNCTION_MATRIXCOMPMULT, + FUNCTION_MAX, + FUNCTION_MAX_AGAINST_SCALAR, + FUNCTION_MIN, + FUNCTION_MIN_AGAINST_SCALAR, + FUNCTION_MIX, + FUNCTION_MOD, + FUNCTION_MOD_AGAINST_SCALAR, + FUNCTION_MODF, + FUNCTION_NORMALIZE, + FUNCTION_NOTEQUAL, + FUNCTION_OUTERPRODUCT, + FUNCTION_PACKDOUBLE2X32, + FUNCTION_REFLECT, + FUNCTION_REFRACT, + FUNCTION_ROUND, + FUNCTION_ROUNDEVEN, + FUNCTION_SIGN, + FUNCTION_SMOOTHSTEP, + FUNCTION_SMOOTHSTEP_AGAINST_SCALAR, + FUNCTION_SQRT, + FUNCTION_STEP, + FUNCTION_STEP_AGAINST_SCALAR, + FUNCTION_TRANSPOSE, + FUNCTION_TRUNC, + FUNCTION_UNPACKDOUBLE2X32, + FUNCTION_ISNAN, + FUNCTION_ISINF, +}; + +struct TypeDefinition { - return det4(mat(0, 0), mat(0, 1), mat(0, 2), mat(0, 3), mat(1, 0), mat(1, 1), mat(1, 2), mat(1, 3), mat(2, 0), - mat(2, 1), mat(2, 2), mat(2, 3), mat(3, 0), mat(3, 1), mat(3, 2), mat(3, 3)); -} + std::string name; + glw::GLuint n_columns; + glw::GLuint n_rows; +}; -template -static tcu::Matrix eliminate(const tcu::Matrix& matrix, - glw::GLuint column, glw::GLuint row) +/** Implementation of BuiltinFunctionTest test, description follows: + * + * Verify double-precision support in common functions works correctly. + * All double-precision types that apply for particular cases should + * be tested for the following functions: + * + * - abs(); + * - ceil(); + * - clamp(); + * - cross(); + * - determinant(); + * - distance(); + * - dot(); + * - equal(); + * - faceforward(); + * - floor(); + * - fma(); + * - fract(); + * - frexp(); + * - greaterThan(); + * - greaterThanEqual(); + * - inverse(); + * - inversesqrt(); + * - ldexp(); + * - lessThan(); + * - lessThanEqual(); + * - length(); + * - matrixCompMult(); + * - max(); + * - min(); + * - mix(); + * - mod(); + * - modf(); + * - normalize(); + * - notEqual(); + * - outerProduct(); + * - packDouble2x32(); + * - reflect(); + * - refract(); + * - round(); + * - roundEven(); + * - sign(); + * - smoothstep(); + * - sqrt(); + * - step(); + * - transpose(); + * - trunc(); + * - unpackDouble2x32(); + * - isnan(); + * - isinf(); + * + * The test should work by creating a program object (for each case + * considered), to which a vertex shader should be attached. The + * shader should define input variables that should be used as + * arguments for the function in question. The result of the + * operation should then be XFBed back to the test, where the + * value should be verified. + * + * Reference function implementation from pre-DEQP CTS framework + * should be ported to C for verification purposes where available. + * + * The test should use 1024 different scalar/vector/matrix argument + * combinations. It should pass if all functions are determined + * to work correctly for all argument combinations used. + **/ +class BuiltinFunctionTest : public deqp::TestCase { - tcu::Matrix result; +public: + /* Public methods */ + BuiltinFunctionTest(deqp::Context& context, std::string caseName, FunctionEnum function, + TypeDefinition typeDefinition); - for (glw::GLuint c = 0; c < Size; ++c) + virtual void deinit(); + virtual tcu::TestNode::IterateResult iterate(); + + /** Base class of functionObject. Main goal of it is to keep function details toghether and hide calling code. + * + **/ + class functionObject + { + public: + functionObject(FunctionEnum function_enum, const glw::GLchar* function_name, glw::GLvoid* function_pointer, + Utils::_variable_type result_type); + + virtual ~functionObject() + { + } + + virtual void call(glw::GLvoid* result_dst, const glw::GLvoid* argument_src) const = 0; + + virtual glw::GLuint getArgumentCount() const = 0; + virtual Utils::_variable_type getArgumentType(glw::GLuint argument) const = 0; + glw::GLuint getArgumentComponents(glw::GLuint argument) const; + glw::GLuint getArgumentComponentSize(glw::GLuint argument) const; + glw::GLuint getArgumentOffset(glw::GLuint argument) const; + glw::GLuint getArgumentStride() const; + glw::GLuint getArgumentStride(glw::GLuint argument) const; + FunctionEnum getFunctionEnum() const; + const glw::GLchar* getName() const; + glw::GLuint getResultComponents(glw::GLuint result) const; + virtual glw::GLuint getResultCount() const; + glw::GLuint getResultOffset(glw::GLuint result) const; + virtual Utils::_variable_type getResultType(glw::GLuint result) const; + glw::GLuint getResultStride(glw::GLuint result) const; + glw::GLuint getBaseTypeSize(glw::GLuint result) const; + glw::GLuint getResultStride() const; + + protected: + const FunctionEnum m_function_enum; + const glw::GLchar* m_function_name; + const glw::GLvoid* m_p_function; + const Utils::_variable_type m_res_type; + }; + +private: + /* Private types */ + /** General type enumeration + * + **/ + enum generalType { - /* Skip eliminated column */ - if (column == c) - { - continue; - } + SCALAR = 0, + VECTOR, + MATRIX, + }; - for (glw::GLuint r = 0; r < Size; ++r) - { - /* Skip eliminated row */ - if (row == r) - { - continue; - } + /** Details of variable type + * + **/ + struct typeDetails + { + typeDetails(glw::GLuint n_columns, glw::GLuint n_rows); - const glw::GLint r_offset = (r > row) ? -1 : 0; - const glw::GLint c_offset = (c > column) ? -1 : 0; + generalType m_general_type; + glw::GLuint m_n_columns; + glw::GLuint m_n_rows; + glw::GLenum m_type; + std::string m_type_name; + }; - result(r + r_offset, c + c_offset) = matrix(r, c); - } - } + /* Typedefs for gl.uniform* function pointers */ + typedef GLW_APICALL void(GLW_APIENTRY* uniformDMatFunctionPointer)(glw::GLint, glw::GLsizei, glw::GLboolean, + const glw::GLdouble*); + typedef GLW_APICALL void(GLW_APIENTRY* uniformDVecFunctionPointer)(glw::GLint, glw::GLsizei, const glw::GLdouble*); + typedef GLW_APICALL void(GLW_APIENTRY* uniformIVecFunctionPointer)(glw::GLint, glw::GLsizei, const glw::GLint*); + typedef GLW_APICALL void(GLW_APIENTRY* uniformUVecFunctionPointer)(glw::GLint, glw::GLsizei, const glw::GLuint*); - return result; -} + /* Private methods */ + bool compare(Utils::_variable_type type, const glw::GLvoid* left, const glw::GLvoid* right); -template -static tcu::Vector equal(const tcu::Vector& left, - const tcu::Vector& right) -{ - return convertBvecToUvec(tcu::equal(left, right)); -} + functionObject* getFunctionObject(FunctionEnum function, const typeDetails& type); -static glw::GLdouble fma(glw::GLdouble a, glw::GLdouble b, glw::GLdouble c) -{ - return a * b + c; -} + uniformDMatFunctionPointer getUniformFunctionForDMat(glw::GLuint argument, + const functionObject& function_object) const; -static glw::GLdouble fract(glw::GLdouble val) -{ - return val - floor(val); -} + uniformDVecFunctionPointer getUniformFunctionForDVec(glw::GLuint argument, + const functionObject& function_object) const; -template -static T frexp(T val, glw::GLint& exp) -{ - return ::frexp(val, &exp); -} + uniformIVecFunctionPointer getUniformFunctionForIVec(glw::GLuint argument, + const functionObject& function_object) const; -template -static tcu::Vector greaterThan(const tcu::Vector& left, - const tcu::Vector& right) -{ - return convertBvecToUvec(tcu::greaterThan(left, right)); -} + uniformUVecFunctionPointer getUniformFunctionForUVec(glw::GLuint argument, + const functionObject& function_object) const; -template -static tcu::Vector greaterThanEqual(const tcu::Vector& left, - const tcu::Vector& right) -{ - return convertBvecToUvec(tcu::greaterThanEqual(left, right)); -} + const glw::GLchar* getUniformName(glw::GLuint argument) const; + const glw::GLchar* getVaryingName(glw::GLuint argument) const; -template -static tcu::Matrix inverse(const tcu::Matrix& matrix) -{ - const tcu::Matrix cof = cofactors(matrix); - const tcu::Matrix adjugate = tcu::transpose(cof); - const glw::GLdouble det = determinant(matrix); - const glw::GLdouble inv_det = 1.0 / det; + bool isFunctionImplemented(FunctionEnum function, const typeDetails& type) const; - tcu::Matrix result = adjugate * inv_det; + void logVariableType(const glw::GLvoid* buffer, const glw::GLchar* name, Utils::_variable_type type) const; - return result; -} + void prepareArgument(const functionObject& function_object, glw::GLuint vertex, glw::GLubyte* buffer); -static glw::GLdouble inverseSqrt(glw::GLdouble val) -{ - const glw::GLdouble root = sqrt(val); + void prepareComponents(const functionObject& function_object, glw::GLuint vertex, glw::GLuint argument, + glw::GLubyte* buffer); - return (1.0 / root); -} + void prepareProgram(const functionObject& function_object, Utils::programInfo& program_info); -static glw::GLuint isinf_impl(glw::GLdouble val) -{ - const glw::GLdouble infinity = std::numeric_limits::infinity(); + void prepareTestData(const functionObject& function_object); + void prepareVertexShaderCode(const functionObject& function_object); - return ((infinity == val) || (-infinity == val)); -} + bool test(FunctionEnum function, const typeDetails& type); -static glw::GLuint isnan_impl(glw::GLdouble val) -{ - return val != val; -} + void testBegin(const functionObject& function_object, glw::GLuint program_id, glw::GLuint vertex); -template -static T ldexp(T val, glw::GLint exp) -{ - return ::ldexp(val, exp); -} + void testInit(); -template -static tcu::Vector lessThan(const tcu::Vector& left, - const tcu::Vector& right) -{ - return convertBvecToUvec(tcu::lessThan(left, right)); -} + bool verifyResults(const functionObject& function_object, glw::GLuint vertex); -template -static tcu::Vector lessThanEqual(const tcu::Vector& left, - const tcu::Vector& right) + /* Private constants */ + static const glw::GLdouble m_epsilon; + static const glw::GLuint m_n_veritces; + + /* Private fields */ + glw::GLuint m_transform_feedback_buffer_id; + glw::GLuint m_vertex_array_object_id; + + std::vector m_expected_results_data; + FunctionEnum m_function; + TypeDefinition m_typeDefinition; + std::vector m_argument_data; + std::string m_vertex_shader_code; +}; + +/* Constants used by BuiltinFunctionTest */ +/** Khronos Bug #14010 + * Using an epsilon value for comparing floating points is error prone. + * Rather than writing a new floating point comparison function, I am + * increasing the epsilon value to allow greater orders of magnitude + * of floating point values. + **/ +const glw::GLdouble BuiltinFunctionTest::m_epsilon = 0.00002; +const glw::GLuint BuiltinFunctionTest::m_n_veritces = 1024; + +/** Implementations of function objects required by "BuiltinFunctionTest" + * + **/ +namespace FunctionObject { - return convertBvecToUvec(tcu::lessThanEqual(left, right)); -} +/** Maps variable type with enumeration Utils::_variable_type + * + * @tparam T type + **/ +template +class typeInfo +{ +public: + static const Utils::_variable_type variable_type = + TypeHelpers::typeInfo::result>::variable_type; +}; +/** Place data from into + * + * @param buffer Buffer + * @param in Input data + **/ template -static T max(T left, T right) +class pack { - return (left >= right) ? left : right; -} +public: + static void set(glw::GLvoid* buffer, const T& in) + { + *(T*)buffer = in; + } +}; +/** Place tcu::Matrix data from into + * + * @param buffer Buffer + * @param in Input data + **/ +template +class pack > +{ +public: + static void set(glw::GLvoid* buffer, const tcu::Matrix& in) + { + glw::GLdouble* data = (glw::GLdouble*)buffer; + + for (glw::GLint column = 0; column < Cols; ++column) + { + for (glw::GLint row = 0; row < Rows; ++row) + { + glw::GLint index = column * Rows + row; + + data[index] = in(row, column); + } + } + } +}; + +/** Get data of from + * + * @param buffer Buffer + * @param out Output data + **/ template -static T min(T left, T right) +class unpack { - return (left <= right) ? left : right; -} +public: + static void get(const glw::GLvoid* buffer, T& out) + { + out = *(T*)buffer; + } +}; -template -static glw::GLdouble minor_impl(const tcu::Matrix& matrix, glw::GLuint column, - glw::GLuint row) +/** Get tcu::Matrix data from + * + * @param buffer Buffer + * @param out Output data + **/ +template +class unpack > { - tcu::Matrix eliminated = eliminate(matrix, column, row); +public: + static void get(const glw::GLvoid* buffer, tcu::Matrix& out) + { + const glw::GLdouble* data = (glw::GLdouble*)buffer; - return determinant(eliminated); -} + for (glw::GLint column = 0; column < Cols; ++column) + { + for (glw::GLint row = 0; row < Rows; ++row) + { + glw::GLint index = column * Rows + row; -template <> -glw::GLdouble minor_impl<2>(const tcu::Matrix& matrix, glw::GLuint column, glw::GLuint row) + out(row, column) = data[index]; + } + } + } +}; + +/** Base of unary function classes + * + **/ +class unaryBase : public BuiltinFunctionTest::functionObject { - const glw::GLuint r = (0 == row) ? 1 : 0; - const glw::GLuint c = (0 == column) ? 1 : 0; +public: + unaryBase(FunctionEnum function_enum, const glw::GLchar* function_name, glw::GLvoid* function_pointer, + const Utils::_variable_type res_type, const Utils::_variable_type arg_type) + : functionObject(function_enum, function_name, function_pointer, res_type), m_arg_type(arg_type) + { + } - return matrix(r, c); -} + virtual glw::GLuint getArgumentCount() const + { + return 1; + } -template -static T mix(T left, T right, T weight) + virtual Utils::_variable_type getArgumentType(glw::GLuint /* argument */) const + { + return m_arg_type; + } + +protected: + const Utils::_variable_type m_arg_type; +}; + +/** Unary function class. It treats input argument as one variable. + * + * @tparam ResT Type of result + * @tparam ArgT Type of argument + **/ +template +class unary : public unaryBase { - return left * (1 - weight) + right * (weight); -} +public: + typedef ResT (*functionPointer)(const ArgT&); -template -static T mod(T left, T right) + unary(FunctionEnum function_enum, const glw::GLchar* function_name, functionPointer function_pointer) + : unaryBase(function_enum, function_name, (glw::GLvoid*)function_pointer, typeInfo::variable_type, + typeInfo::variable_type) + { + } + + virtual void call(glw::GLvoid* result_dst, const glw::GLvoid* argument_src) const + { + ResT result; + ArgT arg; + + unpack::get(argument_src, arg); + + functionPointer p_function = (functionPointer)m_p_function; + + result = p_function(arg); + + pack::set(result_dst, result); + } +}; + +/** Unary function class. It treats input argument as separate components. + * + * @tparam ResT Type of result + **/ +template +class unaryByComponent : public unaryBase { - const T div_res = left / right; - const T floored = floor(div_res); +public: + typedef ResT (*functionPointer)(glw::GLdouble); - return left - right * floored; -} + unaryByComponent(FunctionEnum function_enum, const glw::GLchar* function_name, functionPointer function_pointer, + const Utils::_variable_type res_type, const Utils::_variable_type arg_type) + : unaryBase(function_enum, function_name, (glw::GLvoid*)function_pointer, res_type, arg_type) + { + } -template -static T modf(T val, T& integer) + virtual void call(glw::GLvoid* result_dst, const glw::GLvoid* argument_src) const + { + glw::GLuint n_components = Utils::getNumberOfComponentsForVariableType(m_arg_type); + ResT* p_result = (ResT*)result_dst; + glw::GLdouble* p_arg = (glw::GLdouble*)argument_src; + + functionPointer p_function = (functionPointer)m_p_function; + + for (glw::GLuint component = 0; component < n_components; ++component) + { + p_result[component] = p_function(p_arg[component]); + } + } +}; + +/** Class of functions with one input and one output parameter. It treats arguments as separate components. + * + * @tparam ResT Type of result + * @tparam ArgT Type of argument + * @tparam OutT Type of output parameter + **/ +template +class unaryWithOutputByComponent : public unaryBase { - return ::modf(val, &integer); -} +public: + typedef ResT (*functionPointer)(ArgT, OutT&); -template -static T multiply(T left, T right) + unaryWithOutputByComponent(FunctionEnum function_enum, const glw::GLchar* function_name, + functionPointer function_pointer, const Utils::_variable_type res_type, + const Utils::_variable_type arg_type, const Utils::_variable_type out_type) + : unaryBase(function_enum, function_name, (glw::GLvoid*)function_pointer, res_type, arg_type) + , m_out_type(out_type) + { + } + + virtual void call(glw::GLvoid* result_dst, const glw::GLvoid* argument_src) const + { + ResT* p_result = (ResT*)result_dst; + OutT* p_out = (OutT*)((glw::GLubyte*)result_dst + getResultOffset(1)); + ArgT* p_arg = (ArgT*)argument_src; + + const glw::GLuint n_components_0 = getArgumentComponents(0); + const glw::GLuint n_components_1 = getResultComponents(1); + const glw::GLuint n_components = de::max(n_components_0, n_components_1); + + const glw::GLuint component_step_0 = (1 == n_components_0) ? 0 : 1; + const glw::GLuint component_step_1 = (1 == n_components_1) ? 0 : 1; + + functionPointer p_function = (functionPointer)m_p_function; + + for (glw::GLuint component = 0; component < n_components; ++component) + { + const ArgT first_arg = p_arg[component * component_step_0]; + OutT& second_arg = p_out[component * component_step_1]; + + p_result[component] = p_function(first_arg, second_arg); + } + } + + glw::GLuint getResultCount() const + { + return 2; + } + + Utils::_variable_type getResultType(glw::GLuint result) const + { + Utils::_variable_type type = Utils::VARIABLE_TYPE_UNKNOWN; + + switch (result) + { + case 0: + type = m_res_type; + break; + case 1: + type = m_out_type; + break; + default: + TCU_FAIL("Not implemented"); + break; + } + + return type; + } + +protected: + const Utils::_variable_type m_out_type; +}; + +/** Base of binary function classes. + * + **/ +class binaryBase : public BuiltinFunctionTest::functionObject { - T result = left * right; +public: + binaryBase(FunctionEnum function_enum, const glw::GLchar* function_name, glw::GLvoid* function_pointer, + const Utils::_variable_type res_type, const Utils::_variable_type arg_1_type, + const Utils::_variable_type arg_2_type) + : functionObject(function_enum, function_name, function_pointer, res_type) + , m_arg_1_type(arg_1_type) + , m_arg_2_type(arg_2_type) + { + } - return result; -} + virtual glw::GLuint getArgumentCount() const + { + return 2; + } -template -static tcu::Vector notEqual(const tcu::Vector& left, - const tcu::Vector& right) + virtual Utils::_variable_type getArgumentType(glw::GLuint argument) const + { + switch (argument) + { + case 0: + return m_arg_1_type; + break; + case 1: + return m_arg_2_type; + break; + default: + return Utils::VARIABLE_TYPE_UNKNOWN; + break; + } + } + +protected: + const Utils::_variable_type m_arg_1_type; + const Utils::_variable_type m_arg_2_type; +}; + +/** Binary function class. It treats input arguments as two variables. + * + * @param ResT Type of result + * @param Arg1T Type of first argument + * @param Arg2T Type of second argument + **/ +template +class binary : public binaryBase { - return convertBvecToUvec(tcu::notEqual(left, right)); -} +public: + typedef ResT (*functionPointer)(const Arg1T&, const Arg2T&); -template -static tcu::Matrix outerProduct(const tcu::Vector& left, - const tcu::Vector& right) + binary(FunctionEnum function_enum, const glw::GLchar* function_name, functionPointer function_pointer) + : binaryBase(function_enum, function_name, (glw::GLvoid*)function_pointer, typeInfo::variable_type, + typeInfo::variable_type, typeInfo::variable_type) + { + } + + virtual void call(glw::GLvoid* result_dst, const glw::GLvoid* argument_src) const + { + const glw::GLuint argument_1_stride = getArgumentStride(0); + + functionPointer p_function = (functionPointer)m_p_function; + + Arg1T arg_1; + Arg2T arg_2; + ResT result; + + unpack::get(argument_src, arg_1); + unpack::get((glw::GLubyte*)argument_src + argument_1_stride, arg_2); + + result = p_function(arg_1, arg_2); + + pack::set(result_dst, result); + } +}; + +/** Binary function class. It treats input arguments as separate components. + * + * @param ResT Type of result + * @param Arg1T Type of first argument + * @param Arg2T Type of second argument + **/ +template +class binaryByComponent : public binaryBase { - tcu::Matrix left_mat; - tcu::Matrix right_mat; - tcu::Matrix result; +public: + typedef ResT (*functionPointer)(Arg1T, Arg2T); - for (glw::GLuint i = 0; i < Rows; ++i) + binaryByComponent(FunctionEnum function_enum, const glw::GLchar* function_name, functionPointer function_pointer, + const Utils::_variable_type res_type, const Utils::_variable_type arg_1_type, + const Utils::_variable_type arg_2_type) + : binaryBase(function_enum, function_name, (glw::GLvoid*)function_pointer, res_type, arg_1_type, arg_2_type) { - left_mat(i, 0) = left[i]; } - for (glw::GLuint i = 0; i < Cols; ++i) + virtual void call(glw::GLvoid* result_dst, const glw::GLvoid* argument_src) const { - right_mat(0, i) = right[i]; - } + ResT* p_result = (ResT*)result_dst; + Arg1T* p_arg_1 = (Arg1T*)argument_src; + Arg2T* p_arg_2 = (Arg2T*)((glw::GLubyte*)argument_src + getArgumentOffset(1)); - result = left_mat * right_mat; + const glw::GLuint n_components_0 = getArgumentComponents(0); + const glw::GLuint n_components_1 = getArgumentComponents(1); + const glw::GLuint n_components = de::max(n_components_0, n_components_1); - return result; -} + const glw::GLuint component_step_0 = (1 == n_components_0) ? 0 : 1; + const glw::GLuint component_step_1 = (1 == n_components_1) ? 0 : 1; -static glw::GLdouble packDouble2x32(const tcu::UVec2& in) -{ - const glw::GLuint buffer[2] = { in[0], in[1] }; - glw::GLdouble result; - memcpy(&result, buffer, sizeof(result)); - return result; -} + functionPointer p_function = (functionPointer)m_p_function; -template -static T round(T t) -{ - T frac = fract(t); - T res = t - frac; + for (glw::GLuint component = 0; component < n_components; ++component) + { + const Arg1T first_arg = p_arg_1[component * component_step_0]; + const Arg2T second_arg = p_arg_2[component * component_step_1]; - if (((T)0.5) < frac) - { - res += ((T)1.0); + p_result[component] = p_function(first_arg, second_arg); + } } +}; - return res; -} - -template -static T roundEven(T t) +/** Base of tenary function classes. + * + **/ +class tenaryBase : public BuiltinFunctionTest::functionObject { - T frac = fract(t); - T res = t - frac; - - if (((T)0.5) < frac) - { - res += ((T)1.0); - } - else if ((((T)0.5) == frac) && (0 != ((int)res) % 2)) +public: + tenaryBase(FunctionEnum function_enum, const glw::GLchar* function_name, glw::GLvoid* function_pointer, + const Utils::_variable_type res_type, const Utils::_variable_type arg_1_type, + const Utils::_variable_type arg_2_type, const Utils::_variable_type arg_3_type) + : functionObject(function_enum, function_name, function_pointer, res_type) + , m_arg_1_type(arg_1_type) + , m_arg_2_type(arg_2_type) + , m_arg_3_type(arg_3_type) { - res += ((T)1.0); } - return res; -} - -template -static T sign(T t) -{ - if (0 > t) - { - return -1; - } - else if (0 == t) + virtual glw::GLuint getArgumentCount() const { - return 0; + return 3; } - else + + virtual Utils::_variable_type getArgumentType(glw::GLuint argument) const { - return 1; + switch (argument) + { + case 0: + return m_arg_1_type; + break; + case 1: + return m_arg_2_type; + break; + case 2: + return m_arg_3_type; + break; + default: + return Utils::VARIABLE_TYPE_UNKNOWN; + break; + } } -} -template -static T smoothStep(T e0, T e1, T val) +protected: + const Utils::_variable_type m_arg_1_type; + const Utils::_variable_type m_arg_2_type; + const Utils::_variable_type m_arg_3_type; +}; + +/** Tenary function class. It treats input arguments as three variables. + * + * @param ResT Type of result + * @param Arg1T Type of first argument + * @param Arg2T Type of second argument + * @param Arg3T Type of third argument + **/ +template +class tenary : public tenaryBase { - if (e0 >= val) +public: + typedef ResT (*functionPointer)(Arg1T, Arg2T, Arg3T); + typedef typename TypeHelpers::referenceToType::result arg1T; + typedef typename TypeHelpers::referenceToType::result arg2T; + typedef typename TypeHelpers::referenceToType::result arg3T; + + tenary(FunctionEnum function_enum, const glw::GLchar* function_name, functionPointer function_pointer) + : tenaryBase(function_enum, function_name, (glw::GLvoid*)function_pointer, typeInfo::variable_type, + typeInfo::variable_type, typeInfo::variable_type, typeInfo::variable_type) { - return 0; } - if (e1 <= val) + virtual void call(glw::GLvoid* result_dst, const glw::GLvoid* argument_src) const { - return 1; - } + const glw::GLuint argument_2_offset = getArgumentOffset(1); + const glw::GLuint argument_3_offset = getArgumentOffset(2); - T temp = (val - e0) / (e1 - e0); + functionPointer p_function = (functionPointer)m_p_function; - T result = temp * temp * (3 - 2 * temp); + arg1T arg_1; + arg2T arg_2; + arg3T arg_3; + ResT result; - return result; -} + unpack::get(argument_src, arg_1); + unpack::get((glw::GLubyte*)argument_src + argument_2_offset, arg_2); + unpack::get((glw::GLubyte*)argument_src + argument_3_offset, arg_3); -template -static T step(T edge, T val) -{ - if (edge > val) - { - return 0; - } - else - { - return 1; + result = p_function(arg_1, arg_2, arg_3); + + pack::set(result_dst, result); } -} +}; -template -static tcu::Matrix transpose(const tcu::Matrix& matrix) +/** Tenary function class. It treats input arguments as separate components. + * + + **/ +class tenaryByComponent : public tenaryBase { - tcu::Matrix result = tcu::transpose(matrix); +public: + typedef glw::GLdouble (*functionPointer)(glw::GLdouble, glw::GLdouble, glw::GLdouble); - return result; -} + tenaryByComponent(FunctionEnum function_enum, const glw::GLchar* function_name, functionPointer function_pointer, + const Utils::_variable_type res_type, const Utils::_variable_type arg_1_type, + const Utils::_variable_type arg_2_type, const Utils::_variable_type arg_3_type) + : tenaryBase(function_enum, function_name, (glw::GLvoid*)function_pointer, res_type, arg_1_type, arg_2_type, + arg_3_type) + { + } -template -static T trunc(T t) -{ - const T abs_value = de::abs(t); - const T result_value = floor(abs_value); + virtual void call(glw::GLvoid* result_dst, const glw::GLvoid* argument_src) const + { + glw::GLdouble* p_result = (glw::GLdouble*)result_dst; + const glw::GLdouble* p_arg = (const glw::GLdouble*)argument_src; - const T result = sign(t) * result_value; + const glw::GLuint n_components_0 = getArgumentComponents(0); + const glw::GLuint n_components_1 = getArgumentComponents(1); + const glw::GLuint n_components_2 = getArgumentComponents(2); + const glw::GLuint n_components = de::max(de::max(n_components_0, n_components_1), n_components_2); - return result; -} + const glw::GLuint component_step_0 = (1 == n_components_0) ? 0 : 1; + const glw::GLuint component_step_1 = (1 == n_components_1) ? 0 : 1; + const glw::GLuint component_step_2 = (1 == n_components_2) ? 0 : 1; -static tcu::UVec2 unpackDouble2x32(const glw::GLdouble& val) -{ - glw::GLuint* ptr = (glw::GLuint*)&val; - tcu::UVec2 result(ptr[0], ptr[1]); + functionPointer p_function = (functionPointer)m_p_function; - return result; -} -} /* Math */ + for (glw::GLuint component = 0; component < n_components; ++component) + { + const glw::GLdouble first_arg = p_arg[component * component_step_0]; + const glw::GLdouble second_arg = p_arg[component * component_step_1 + n_components_0]; + const glw::GLdouble third_arg = p_arg[component * component_step_2 + n_components_0 + n_components_1]; -/* Constants used by GPUShaderFP64Test10 */ -/** Khronos Bug #14010 - * Using an epsilon value for comparing floating points is error prone. - * Rather than writing a new floating point comparison function, I am - * increasing the epsilon value to allow greater orders of magnitude - * of floating point values. - **/ -const glw::GLdouble GPUShaderFP64Test10::m_epsilon = 0.00002; -const glw::GLuint GPUShaderFP64Test10::m_n_veritces = 1024; + p_result[component] = p_function(first_arg, second_arg, third_arg); + } + } +}; +} /* FunctionObject */ /** Constructor. * * @param context Rendering context. **/ -GPUShaderFP64Test10::GPUShaderFP64Test10(deqp::Context& context) - : TestCase(context, "built_in_functions", "Verify that built-in functions support double-precision types") +BuiltinFunctionTest::BuiltinFunctionTest(deqp::Context& context, std::string caseName, FunctionEnum function, + TypeDefinition typeDefinition) + : TestCase(context, caseName.c_str(), "Verify that built-in functions support double-precision types") , m_transform_feedback_buffer_id(0) , m_vertex_array_object_id(0) + , m_function(function) + , m_typeDefinition(typeDefinition) { /* Nothing to be done here */ } @@ -13253,7 +13519,7 @@ GPUShaderFP64Test10::GPUShaderFP64Test10(deqp::Context& context) /** Deinitializes all GL objects that may have been created during test execution. * **/ -void GPUShaderFP64Test10::deinit() +void BuiltinFunctionTest::deinit() { const glw::Functions& gl = m_context.getRenderContext().getFunctions(); @@ -13278,10 +13544,8 @@ void GPUShaderFP64Test10::deinit() * * @return tcu::TestNode::STOP **/ -tcu::TestNode::IterateResult GPUShaderFP64Test10::iterate() +tcu::TestNode::IterateResult BuiltinFunctionTest::iterate() { - bool result = true; - /* Check if extension is supported */ if (false == m_context.getContextInfo().isExtensionSupported("GL_ARB_gpu_shader_fp64")) { @@ -13290,21 +13554,9 @@ tcu::TestNode::IterateResult GPUShaderFP64Test10::iterate() testInit(); - /* For each combination of function and type */ - for (std::vector::const_iterator type = m_types.begin(); m_types.end() != type; ++type) - { - for (std::vector::const_iterator function = m_functions.begin(); m_functions.end() != function; - ++function) - { - if (false == test(*function, *type)) - { - result = false; - } - } - } - - /* Set result */ - if (true == result) + /* Verify result */ + typeDetails type(m_typeDefinition.n_columns, m_typeDefinition.n_rows); + if (test(m_function, type)) { m_context.getTestContext().setTestResult(QP_TEST_RESULT_PASS, "Pass"); } @@ -13324,7 +13576,7 @@ tcu::TestNode::IterateResult GPUShaderFP64Test10::iterate() * @param function_pointer Pointer to routine that wiil be executed * @param result_type Type of result **/ -GPUShaderFP64Test10::functionObject::functionObject(functionEnum function_enum, const glw::GLchar* function_name, +BuiltinFunctionTest::functionObject::functionObject(FunctionEnum function_enum, const glw::GLchar* function_name, glw::GLvoid* function_pointer, Utils::_variable_type result_type) : m_function_enum(function_enum) , m_function_name(function_name) @@ -13340,7 +13592,7 @@ GPUShaderFP64Test10::functionObject::functionObject(functionEnum function_enum, * * @return Number of components **/ -glw::GLuint GPUShaderFP64Test10::functionObject::getArgumentComponents(glw::GLuint argument) const +glw::GLuint BuiltinFunctionTest::functionObject::getArgumentComponents(glw::GLuint argument) const { const Utils::_variable_type type = getArgumentType(argument); const glw::GLuint n_components = Utils::getNumberOfComponentsForVariableType(type); @@ -13354,7 +13606,7 @@ glw::GLuint GPUShaderFP64Test10::functionObject::getArgumentComponents(glw::GLui * * @return Size of component **/ -glw::GLuint GPUShaderFP64Test10::functionObject::getArgumentComponentSize(glw::GLuint argument) const +glw::GLuint BuiltinFunctionTest::functionObject::getArgumentComponentSize(glw::GLuint argument) const { const Utils::_variable_type type = getArgumentType(argument); const Utils::_variable_type base_type = Utils::getBaseVariableType(type); @@ -13369,7 +13621,7 @@ glw::GLuint GPUShaderFP64Test10::functionObject::getArgumentComponentSize(glw::G * * @return Offset of arguemnt's data **/ -glw::GLuint GPUShaderFP64Test10::functionObject::getArgumentOffset(glw::GLuint argument) const +glw::GLuint BuiltinFunctionTest::functionObject::getArgumentOffset(glw::GLuint argument) const { glw::GLuint result = 0; @@ -13385,7 +13637,7 @@ glw::GLuint GPUShaderFP64Test10::functionObject::getArgumentOffset(glw::GLuint a * * @return Stride of all arguments **/ -glw::GLuint GPUShaderFP64Test10::functionObject::getArgumentStride() const +glw::GLuint BuiltinFunctionTest::functionObject::getArgumentStride() const { const glw::GLuint n_args = getArgumentCount(); glw::GLuint result = 0; @@ -13404,7 +13656,7 @@ glw::GLuint GPUShaderFP64Test10::functionObject::getArgumentStride() const * * @return Stride of argument **/ -glw::GLuint GPUShaderFP64Test10::functionObject::getArgumentStride(glw::GLuint argument) const +glw::GLuint BuiltinFunctionTest::functionObject::getArgumentStride(glw::GLuint argument) const { const glw::GLuint component_size = getArgumentComponentSize(argument); const glw::GLuint n_components = getArgumentComponents(argument); @@ -13416,7 +13668,7 @@ glw::GLuint GPUShaderFP64Test10::functionObject::getArgumentStride(glw::GLuint a * * @return Function enumeration **/ -GPUShaderFP64Test10::functionEnum GPUShaderFP64Test10::functionObject::getFunctionEnum() const +FunctionEnum BuiltinFunctionTest::functionObject::getFunctionEnum() const { return m_function_enum; } @@ -13425,7 +13677,7 @@ GPUShaderFP64Test10::functionEnum GPUShaderFP64Test10::functionObject::getFuncti * * @return Function name **/ -const glw::GLchar* GPUShaderFP64Test10::functionObject::getName() const +const glw::GLchar* BuiltinFunctionTest::functionObject::getName() const { return m_function_name; } @@ -13436,7 +13688,7 @@ const glw::GLchar* GPUShaderFP64Test10::functionObject::getName() const * * @return Number of components **/ -glw::GLuint GPUShaderFP64Test10::functionObject::getResultComponents(glw::GLuint result) const +glw::GLuint BuiltinFunctionTest::functionObject::getResultComponents(glw::GLuint result) const { const Utils::_variable_type type = getResultType(result); const glw::GLuint n_components = Utils::getNumberOfComponentsForVariableType(type); @@ -13448,7 +13700,7 @@ glw::GLuint GPUShaderFP64Test10::functionObject::getResultComponents(glw::GLuint * * @return Number of results **/ -glw::GLuint GPUShaderFP64Test10::functionObject::getResultCount() const +glw::GLuint BuiltinFunctionTest::functionObject::getResultCount() const { return 1; } @@ -13459,7 +13711,7 @@ glw::GLuint GPUShaderFP64Test10::functionObject::getResultCount() const * * @return Offset **/ -glw::GLuint GPUShaderFP64Test10::functionObject::getResultOffset(glw::GLuint result) const +glw::GLuint BuiltinFunctionTest::functionObject::getResultOffset(glw::GLuint result) const { glw::GLuint offset = 0; @@ -13478,7 +13730,7 @@ glw::GLuint GPUShaderFP64Test10::functionObject::getResultOffset(glw::GLuint res * * @return Stride **/ -glw::GLuint GPUShaderFP64Test10::functionObject::getResultStride(glw::GLuint result) const +glw::GLuint BuiltinFunctionTest::functionObject::getResultStride(glw::GLuint result) const { const Utils::_variable_type type = getResultType(result); const glw::GLuint n_components = Utils::getNumberOfComponentsForVariableType(type); @@ -13492,7 +13744,7 @@ glw::GLuint GPUShaderFP64Test10::functionObject::getResultStride(glw::GLuint res * * @return Alignment **/ -glw::GLuint GPUShaderFP64Test10::functionObject::getBaseTypeSize(glw::GLuint result) const +glw::GLuint BuiltinFunctionTest::functionObject::getBaseTypeSize(glw::GLuint result) const { const Utils::_variable_type type = getResultType(result); const Utils::_variable_type base_type = Utils::getBaseVariableType(type); @@ -13505,7 +13757,7 @@ glw::GLuint GPUShaderFP64Test10::functionObject::getBaseTypeSize(glw::GLuint res * * @return Stride **/ -glw::GLuint GPUShaderFP64Test10::functionObject::getResultStride() const +glw::GLuint BuiltinFunctionTest::functionObject::getResultStride() const { const glw::GLuint n_results = getResultCount(); glw::GLuint stride = 0; @@ -13530,7 +13782,7 @@ glw::GLuint GPUShaderFP64Test10::functionObject::getResultStride() const * * @return Type **/ -Utils::_variable_type GPUShaderFP64Test10::functionObject::getResultType(glw::GLuint /* result */) const +Utils::_variable_type BuiltinFunctionTest::functionObject::getResultType(glw::GLuint /* result */) const { return m_res_type; } @@ -13540,7 +13792,7 @@ Utils::_variable_type GPUShaderFP64Test10::functionObject::getResultType(glw::GL * @param n_columns Number of columns * @param n_rows Number of rows **/ -GPUShaderFP64Test10::typeDetails::typeDetails(glw::GLuint n_columns, glw::GLuint n_rows) +BuiltinFunctionTest::typeDetails::typeDetails(glw::GLuint n_columns, glw::GLuint n_rows) : m_n_columns(n_columns), m_n_rows(n_rows) { Utils::_variable_type type = Utils::getDoubleVariableType(n_columns, n_rows); @@ -13572,7 +13824,7 @@ GPUShaderFP64Test10::typeDetails::typeDetails(glw::GLuint n_columns, glw::GLuint * * @return true if values are equal, false otherwise **/ -bool GPUShaderFP64Test10::compare(Utils::_variable_type type, const glw::GLvoid* left, const glw::GLvoid* right) +bool BuiltinFunctionTest::compare(Utils::_variable_type type, const glw::GLvoid* left, const glw::GLvoid* right) { bool result = true; @@ -13662,7 +13914,7 @@ bool GPUShaderFP64Test10::compare(Utils::_variable_type type, const glw::GLvoid* * * @return Create object **/ -GPUShaderFP64Test10::functionObject* GPUShaderFP64Test10::getFunctionObject(functionEnum function, +BuiltinFunctionTest::functionObject* BuiltinFunctionTest::getFunctionObject(FunctionEnum function, const typeDetails& type) { typedef tcu::Matrix DMat2; @@ -14383,7 +14635,7 @@ GPUShaderFP64Test10::functionObject* GPUShaderFP64Test10::getFunctionObject(func * * @return Function pointer **/ -GPUShaderFP64Test10::uniformDMatFunctionPointer GPUShaderFP64Test10::getUniformFunctionForDMat( +BuiltinFunctionTest::uniformDMatFunctionPointer BuiltinFunctionTest::getUniformFunctionForDMat( glw::GLuint argument, const functionObject& function_object) const { const Utils::_variable_type argument_type = function_object.getArgumentType(argument); @@ -14433,7 +14685,7 @@ GPUShaderFP64Test10::uniformDMatFunctionPointer GPUShaderFP64Test10::getUniformF * * @return Function pointer **/ -GPUShaderFP64Test10::uniformDVecFunctionPointer GPUShaderFP64Test10::getUniformFunctionForDVec( +BuiltinFunctionTest::uniformDVecFunctionPointer BuiltinFunctionTest::getUniformFunctionForDVec( glw::GLuint argument, const functionObject& function_object) const { const Utils::_variable_type argument_type = function_object.getArgumentType(argument); @@ -14468,7 +14720,7 @@ GPUShaderFP64Test10::uniformDVecFunctionPointer GPUShaderFP64Test10::getUniformF * * @return Function pointer **/ -GPUShaderFP64Test10::uniformIVecFunctionPointer GPUShaderFP64Test10::getUniformFunctionForIVec( +BuiltinFunctionTest::uniformIVecFunctionPointer BuiltinFunctionTest::getUniformFunctionForIVec( glw::GLuint argument, const functionObject& function_object) const { const Utils::_variable_type argument_type = function_object.getArgumentType(argument); @@ -14503,7 +14755,7 @@ GPUShaderFP64Test10::uniformIVecFunctionPointer GPUShaderFP64Test10::getUniformF * * @return Function pointer **/ -GPUShaderFP64Test10::uniformUVecFunctionPointer GPUShaderFP64Test10::getUniformFunctionForUVec( +BuiltinFunctionTest::uniformUVecFunctionPointer BuiltinFunctionTest::getUniformFunctionForUVec( glw::GLuint argument, const functionObject& function_object) const { const Utils::_variable_type argument_type = function_object.getArgumentType(argument); @@ -14528,7 +14780,7 @@ GPUShaderFP64Test10::uniformUVecFunctionPointer GPUShaderFP64Test10::getUniformF * * @return Name of uniform **/ -const glw::GLchar* GPUShaderFP64Test10::getUniformName(glw::GLuint argument) const +const glw::GLchar* BuiltinFunctionTest::getUniformName(glw::GLuint argument) const { switch (argument) { @@ -14554,7 +14806,7 @@ const glw::GLchar* GPUShaderFP64Test10::getUniformName(glw::GLuint argument) con * * @return Name of varying **/ -const glw::GLchar* GPUShaderFP64Test10::getVaryingName(glw::GLuint result) const +const glw::GLchar* BuiltinFunctionTest::getVaryingName(glw::GLuint result) const { switch (result) { @@ -14581,7 +14833,7 @@ const glw::GLchar* GPUShaderFP64Test10::getVaryingName(glw::GLuint result) const * * @return true if function is available for given type, false otherwise **/ -bool GPUShaderFP64Test10::isFunctionImplemented(functionEnum function, const typeDetails& type) const +bool BuiltinFunctionTest::isFunctionImplemented(FunctionEnum function, const typeDetails& type) const { static const bool look_up_table[][3] = { /* SCALAR, VECTOR, MATRIX */ @@ -14664,7 +14916,7 @@ bool GPUShaderFP64Test10::isFunctionImplemented(functionEnum function, const typ * @param name Name of variable * @param type Type of variable **/ -void GPUShaderFP64Test10::logVariableType(const glw::GLvoid* buffer, const glw::GLchar* name, +void BuiltinFunctionTest::logVariableType(const glw::GLvoid* buffer, const glw::GLchar* name, Utils::_variable_type type) const { const Utils::_variable_type base_type = Utils::getBaseVariableType(type); @@ -14705,7 +14957,7 @@ void GPUShaderFP64Test10::logVariableType(const glw::GLvoid* buffer, const glw:: * @param vertex Vertex index * @param buffer Buffer pointer **/ -void GPUShaderFP64Test10::prepareArgument(const functionObject& function_object, glw::GLuint vertex, +void BuiltinFunctionTest::prepareArgument(const functionObject& function_object, glw::GLuint vertex, glw::GLubyte* buffer) { const glw::GLuint n_arguments = function_object.getArgumentCount(); @@ -14725,7 +14977,7 @@ void GPUShaderFP64Test10::prepareArgument(const functionObject& function_object, * @param argument Argument index * @param buffer Buffer pointer **/ -void GPUShaderFP64Test10::prepareComponents(const functionObject& function_object, glw::GLuint vertex, +void BuiltinFunctionTest::prepareComponents(const functionObject& function_object, glw::GLuint vertex, glw::GLuint argument, glw::GLubyte* buffer) { glw::GLuint argument_index[3] = { 0 }; @@ -14863,69 +15115,12 @@ void GPUShaderFP64Test10::prepareComponents(const functionObject& function_objec } } -/** Prepare collection of function enumerations - * - **/ -void GPUShaderFP64Test10::prepareFunctions() -{ - m_functions.push_back(FUNCTION_ABS); - m_functions.push_back(FUNCTION_CEIL); - m_functions.push_back(FUNCTION_CLAMP); - m_functions.push_back(FUNCTION_CLAMP_AGAINST_SCALAR); - m_functions.push_back(FUNCTION_CROSS); - m_functions.push_back(FUNCTION_DETERMINANT); - m_functions.push_back(FUNCTION_DISTANCE); - m_functions.push_back(FUNCTION_DOT); - m_functions.push_back(FUNCTION_EQUAL); - m_functions.push_back(FUNCTION_FACEFORWARD); - m_functions.push_back(FUNCTION_FLOOR); - m_functions.push_back(FUNCTION_FMA); - m_functions.push_back(FUNCTION_FRACT); - m_functions.push_back(FUNCTION_FREXP); - m_functions.push_back(FUNCTION_GREATERTHAN); - m_functions.push_back(FUNCTION_GREATERTHANEQUAL); - m_functions.push_back(FUNCTION_INVERSE); - m_functions.push_back(FUNCTION_INVERSESQRT); - m_functions.push_back(FUNCTION_LDEXP); - m_functions.push_back(FUNCTION_LESSTHAN); - m_functions.push_back(FUNCTION_LESSTHANEQUAL); - m_functions.push_back(FUNCTION_LENGTH); - m_functions.push_back(FUNCTION_MATRIXCOMPMULT); - m_functions.push_back(FUNCTION_MAX); - m_functions.push_back(FUNCTION_MAX_AGAINST_SCALAR); - m_functions.push_back(FUNCTION_MIN); - m_functions.push_back(FUNCTION_MIN_AGAINST_SCALAR); - m_functions.push_back(FUNCTION_MIX); - m_functions.push_back(FUNCTION_MOD); - m_functions.push_back(FUNCTION_MOD_AGAINST_SCALAR); - m_functions.push_back(FUNCTION_MODF); - m_functions.push_back(FUNCTION_NORMALIZE); - m_functions.push_back(FUNCTION_NOTEQUAL); - m_functions.push_back(FUNCTION_OUTERPRODUCT); - m_functions.push_back(FUNCTION_PACKDOUBLE2X32); - m_functions.push_back(FUNCTION_REFLECT); - m_functions.push_back(FUNCTION_REFRACT); - m_functions.push_back(FUNCTION_ROUND); - m_functions.push_back(FUNCTION_ROUNDEVEN); - m_functions.push_back(FUNCTION_SIGN); - m_functions.push_back(FUNCTION_SMOOTHSTEP); - m_functions.push_back(FUNCTION_SMOOTHSTEP_AGAINST_SCALAR); - m_functions.push_back(FUNCTION_SQRT); - m_functions.push_back(FUNCTION_STEP); - m_functions.push_back(FUNCTION_STEP_AGAINST_SCALAR); - m_functions.push_back(FUNCTION_TRANSPOSE); - m_functions.push_back(FUNCTION_TRUNC); - m_functions.push_back(FUNCTION_UNPACKDOUBLE2X32); - m_functions.push_back(FUNCTION_ISNAN); - m_functions.push_back(FUNCTION_ISINF); -} - /** Prepare programInfo for given functionObject * * @param function_object Function object * @param out_program_info Program info **/ -void GPUShaderFP64Test10::prepareProgram(const functionObject& function_object, Utils::programInfo& out_program_info) +void BuiltinFunctionTest::prepareProgram(const functionObject& function_object, Utils::programInfo& out_program_info) { const glw::GLuint n_varying_names = function_object.getResultCount(); static const glw::GLchar* varying_names[3] = { getVaryingName(0), getVaryingName(1), getVaryingName(2) }; @@ -14940,7 +15135,7 @@ void GPUShaderFP64Test10::prepareProgram(const functionObject& function_object, * * @param function_object Function object **/ -void GPUShaderFP64Test10::prepareTestData(const functionObject& function_object) +void BuiltinFunctionTest::prepareTestData(const functionObject& function_object) { const glw::GLuint result_stride = function_object.getResultStride(); const glw::GLuint result_buffer_size = result_stride * m_n_veritces; @@ -14965,31 +15160,11 @@ void GPUShaderFP64Test10::prepareTestData(const functionObject& function_object) } } -/** Prepare collection of types - * - **/ -void GPUShaderFP64Test10::prepareTypes() -{ - m_types.push_back(typeDetails(1 /* n_columns */, 1 /* n_rows */)); - m_types.push_back(typeDetails(1 /* n_columns */, 2 /* n_rows */)); - m_types.push_back(typeDetails(1 /* n_columns */, 3 /* n_rows */)); - m_types.push_back(typeDetails(1 /* n_columns */, 4 /* n_rows */)); - m_types.push_back(typeDetails(2 /* n_columns */, 2 /* n_rows */)); - m_types.push_back(typeDetails(2 /* n_columns */, 3 /* n_rows */)); - m_types.push_back(typeDetails(2 /* n_columns */, 4 /* n_rows */)); - m_types.push_back(typeDetails(3 /* n_columns */, 2 /* n_rows */)); - m_types.push_back(typeDetails(3 /* n_columns */, 3 /* n_rows */)); - m_types.push_back(typeDetails(3 /* n_columns */, 4 /* n_rows */)); - m_types.push_back(typeDetails(4 /* n_columns */, 2 /* n_rows */)); - m_types.push_back(typeDetails(4 /* n_columns */, 3 /* n_rows */)); - m_types.push_back(typeDetails(4 /* n_columns */, 4 /* n_rows */)); -} - /** Prepare source code of vertex shader for given function object. Result is stored in m_vertex_shader_code. * * @param function_object Function object **/ -void GPUShaderFP64Test10::prepareVertexShaderCode(const functionObject& function_object) +void BuiltinFunctionTest::prepareVertexShaderCode(const functionObject& function_object) { static const glw::GLchar* shader_template_code = "#version 400 core\n" "\n" @@ -15117,7 +15292,7 @@ void GPUShaderFP64Test10::prepareVertexShaderCode(const functionObject& function * * @return true if test pass (or function is not available for ), false otherwise **/ -bool GPUShaderFP64Test10::test(functionEnum function, const typeDetails& type) +bool BuiltinFunctionTest::test(FunctionEnum function, const typeDetails& type) { const glw::Functions& gl = m_context.getRenderContext().getFunctions(); @@ -15165,7 +15340,7 @@ bool GPUShaderFP64Test10::test(functionEnum function, const typeDetails& type) * @param program_id Program object id * @param vertex Vertex index **/ -void GPUShaderFP64Test10::testBegin(const functionObject& function_object, glw::GLuint program_id, glw::GLuint vertex) +void BuiltinFunctionTest::testBegin(const functionObject& function_object, glw::GLuint program_id, glw::GLuint vertex) { const glw::GLuint arguments_stride = function_object.getArgumentStride(); const glw::Functions& gl = m_context.getRenderContext().getFunctions(); @@ -15250,13 +15425,10 @@ void GPUShaderFP64Test10::testBegin(const functionObject& function_object, glw:: /** Init GL obejcts * **/ -void GPUShaderFP64Test10::testInit() +void BuiltinFunctionTest::testInit() { const glw::Functions& gl = m_context.getRenderContext().getFunctions(); - prepareFunctions(); - prepareTypes(); - gl.genBuffers(1, &m_transform_feedback_buffer_id); GLU_EXPECT_NO_ERROR(gl.getError(), "GenBuffers"); @@ -15273,7 +15445,7 @@ void GPUShaderFP64Test10::testInit() * * @return true if all results are as expected, false otherwise **/ -bool GPUShaderFP64Test10::verifyResults(const functionObject& function_object, glw::GLuint vertex) +bool BuiltinFunctionTest::verifyResults(const functionObject& function_object, glw::GLuint vertex) { const glw::Functions& gl = m_context.getRenderContext().getFunctions(); bool test_result = true; @@ -15361,16 +15533,103 @@ GPUShaderFP64Tests::GPUShaderFP64Tests(deqp::Context& context) **/ void GPUShaderFP64Tests::init(void) { - addChild(new GPUShaderFP64Test1(m_context)); - addChild(new GPUShaderFP64Test2(m_context)); - addChild(new GPUShaderFP64Test3(m_context)); - addChild(new GPUShaderFP64Test4(m_context)); - addChild(new GPUShaderFP64Test5(m_context)); - addChild(new GPUShaderFP64Test6(m_context)); - addChild(new GPUShaderFP64Test7(m_context)); - addChild(new GPUShaderFP64Test8(m_context)); - addChild(new GPUShaderFP64Test9(m_context)); - addChild(new GPUShaderFP64Test10(m_context)); + TestCaseGroup* fp64 = new TestCaseGroup(m_context, "fp64", ""); + fp64->addChild(new GPUShaderFP64Test1(m_context)); + fp64->addChild(new GPUShaderFP64Test2(m_context)); + fp64->addChild(new GPUShaderFP64Test3(m_context)); + fp64->addChild(new GPUShaderFP64Test4(m_context)); + fp64->addChild(new GPUShaderFP64Test5(m_context)); + fp64->addChild(new GPUShaderFP64Test6(m_context)); + fp64->addChild(new GPUShaderFP64Test7(m_context)); + fp64->addChild(new GPUShaderFP64Test8(m_context)); + fp64->addChild(new GPUShaderFP64Test9(m_context)); + addChild(fp64); + + TypeDefinition typeDefinition[] = + { + { "double", 1, 1 }, + { "dvec2", 1, 2 }, + { "dvec3", 1, 3 }, + { "dvec4", 1, 4 }, + { "dmat2", 2, 2 }, + { "dmat2x3", 2, 3 }, + { "dmat2x4", 2, 4 }, + { "dmat3x2", 3, 2 }, + { "dmat3", 3, 3 }, + { "dmat3x4", 3, 4 }, + { "dmat4x2", 4, 2 }, + { "dmat4x3", 4, 3 }, + { "dmat4", 4, 4 } + }; + + struct BuiltinFunctions + { + std::string name; + FunctionEnum function; + } builtinFunctions[] = { + { "abs", FUNCTION_ABS }, + { "ceil", FUNCTION_CEIL }, + { "clamp", FUNCTION_CLAMP }, + { "clamp_against_scalar", FUNCTION_CLAMP_AGAINST_SCALAR }, + { "cross", FUNCTION_CROSS }, + { "determinant", FUNCTION_DETERMINANT }, + { "distance", FUNCTION_DISTANCE }, + { "dot", FUNCTION_DOT }, + { "equal", FUNCTION_EQUAL }, + { "faceforward", FUNCTION_FACEFORWARD }, + { "floor", FUNCTION_FLOOR }, + { "fma", FUNCTION_FMA }, + { "fract", FUNCTION_FRACT }, + { "frexp", FUNCTION_FREXP }, + { "greaterthan", FUNCTION_GREATERTHAN }, + { "greaterthanequal", FUNCTION_GREATERTHANEQUAL }, + { "inverse", FUNCTION_INVERSE }, + { "inversesqrt", FUNCTION_INVERSESQRT }, + { "ldexp", FUNCTION_LDEXP }, + { "lessthan", FUNCTION_LESSTHAN }, + { "lessthanequal", FUNCTION_LESSTHANEQUAL }, + { "length", FUNCTION_LENGTH }, + { "matrixcompmult", FUNCTION_MATRIXCOMPMULT }, + { "max", FUNCTION_MAX }, + { "max_against_scalar", FUNCTION_MAX_AGAINST_SCALAR }, + { "min", FUNCTION_MIN }, + { "min_against_scalar", FUNCTION_MIN_AGAINST_SCALAR }, + { "mix", FUNCTION_MIX }, + { "mod", FUNCTION_MOD }, + { "mod_against_scalar", FUNCTION_MOD_AGAINST_SCALAR }, + { "modf", FUNCTION_MODF }, + { "normalize", FUNCTION_NORMALIZE }, + { "notequal", FUNCTION_NOTEQUAL }, + { "outerproduct", FUNCTION_OUTERPRODUCT }, + { "packdouble2x32", FUNCTION_PACKDOUBLE2X32 }, + { "reflect", FUNCTION_REFLECT }, + { "refract", FUNCTION_REFRACT }, + { "round", FUNCTION_ROUND }, + { "roundeven", FUNCTION_ROUNDEVEN }, + { "sign", FUNCTION_SIGN }, + { "smoothstep", FUNCTION_SMOOTHSTEP }, + { "smoothstep_against_scalar", FUNCTION_SMOOTHSTEP_AGAINST_SCALAR }, + { "sqrt", FUNCTION_SQRT }, + { "step", FUNCTION_STEP }, + { "step_against_scalar", FUNCTION_STEP_AGAINST_SCALAR }, + { "transpose", FUNCTION_TRANSPOSE }, + { "trunc", FUNCTION_TRUNC }, + { "unpackdouble2x32", FUNCTION_UNPACKDOUBLE2X32 }, + { "isnan", FUNCTION_ISNAN }, + { "isinf", FUNCTION_ISINF } + }; + + TestCaseGroup* builin = new TestCaseGroup(m_context, "builtin", ""); + for (int i = 0; i < DE_LENGTH_OF_ARRAY(builtinFunctions); ++i) + { + const BuiltinFunctions& bf = builtinFunctions[i]; + for (int j = 0; j < DE_LENGTH_OF_ARRAY(typeDefinition); ++j) + { + std::string caseName = bf.name + "_" + typeDefinition[j].name; + builin->addChild(new BuiltinFunctionTest(m_context, caseName, bf.function, typeDefinition[j])); + } + } + addChild(builin); } } /* glcts namespace */ diff --git a/external/openglcts/modules/gl/gl4cGPUShaderFP64Tests.hpp b/external/openglcts/modules/gl/gl4cGPUShaderFP64Tests.hpp index 04ec77d..5477afb 100644 --- a/external/openglcts/modules/gl/gl4cGPUShaderFP64Tests.hpp +++ b/external/openglcts/modules/gl/gl4cGPUShaderFP64Tests.hpp @@ -1481,271 +1481,6 @@ private: glw::GLuint m_vs_id; }; -/** Implementation of test 10, description follows: - * - * Verify double-precision support in common functions works correctly. - * All double-precision types that apply for particular cases should - * be tested for the following functions: - * - * - abs(); - * - ceil(); - * - clamp(); - * - cross(); - * - determinant(); - * - distance(); - * - dot(); - * - equal(); - * - faceforward(); - * - floor(); - * - fma(); - * - fract(); - * - frexp(); - * - greaterThan(); - * - greaterThanEqual(); - * - inverse(); - * - inversesqrt(); - * - ldexp(); - * - lessThan(); - * - lessThanEqual(); - * - length(); - * - matrixCompMult(); - * - max(); - * - min(); - * - mix(); - * - mod(); - * - modf(); - * - normalize(); - * - notEqual(); - * - outerProduct(); - * - packDouble2x32(); - * - reflect(); - * - refract(); - * - round(); - * - roundEven(); - * - sign(); - * - smoothstep(); - * - sqrt(); - * - step(); - * - transpose(); - * - trunc(); - * - unpackDouble2x32(); - * - isnan(); - * - isinf(); - * - * The test should work by creating a program object (for each case - * considered), to which a vertex shader should be attached. The - * shader should define input variables that should be used as - * arguments for the function in question. The result of the - * operation should then be XFBed back to the test, where the - * value should be verified. - * - * Reference function implementation from pre-DEQP CTS framework - * should be ported to C for verification purposes where available. - * - * The test should use 1024 different scalar/vector/matrix argument - * combinations. It should pass if all functions are determined - * to work correctly for all argument combinations used. - **/ -class GPUShaderFP64Test10 : public deqp::TestCase -{ -public: - /* Public methods */ - GPUShaderFP64Test10(deqp::Context& context); - - virtual void deinit(); - virtual tcu::TestNode::IterateResult iterate(); - - /* Public types */ - /** Enumeration of tested functions - * *_AGAINT_SCALAR enums are used to call glsl function with mixed scalar and genDType arguments. - * For example "max" can called for (dvec3, double). - **/ - enum functionEnum - { - FUNCTION_ABS = 0, - FUNCTION_CEIL, - FUNCTION_CLAMP, - FUNCTION_CLAMP_AGAINST_SCALAR, - FUNCTION_CROSS, - FUNCTION_DETERMINANT, - FUNCTION_DISTANCE, - FUNCTION_DOT, - FUNCTION_EQUAL, - FUNCTION_FACEFORWARD, - FUNCTION_FLOOR, - FUNCTION_FMA, - FUNCTION_FRACT, - FUNCTION_FREXP, - FUNCTION_GREATERTHAN, - FUNCTION_GREATERTHANEQUAL, - FUNCTION_INVERSE, - FUNCTION_INVERSESQRT, - FUNCTION_LDEXP, - FUNCTION_LESSTHAN, - FUNCTION_LESSTHANEQUAL, - FUNCTION_LENGTH, - FUNCTION_MATRIXCOMPMULT, - FUNCTION_MAX, - FUNCTION_MAX_AGAINST_SCALAR, - FUNCTION_MIN, - FUNCTION_MIN_AGAINST_SCALAR, - FUNCTION_MIX, - FUNCTION_MOD, - FUNCTION_MOD_AGAINST_SCALAR, - FUNCTION_MODF, - FUNCTION_NORMALIZE, - FUNCTION_NOTEQUAL, - FUNCTION_OUTERPRODUCT, - FUNCTION_PACKDOUBLE2X32, - FUNCTION_REFLECT, - FUNCTION_REFRACT, - FUNCTION_ROUND, - FUNCTION_ROUNDEVEN, - FUNCTION_SIGN, - FUNCTION_SMOOTHSTEP, - FUNCTION_SMOOTHSTEP_AGAINST_SCALAR, - FUNCTION_SQRT, - FUNCTION_STEP, - FUNCTION_STEP_AGAINST_SCALAR, - FUNCTION_TRANSPOSE, - FUNCTION_TRUNC, - FUNCTION_UNPACKDOUBLE2X32, - FUNCTION_ISNAN, - FUNCTION_ISINF, - }; - - /** Base class of functionObject. Main goal of it is to keep function details toghether and hide calling code. - * - **/ - class functionObject - { - public: - functionObject(functionEnum function_enum, const glw::GLchar* function_name, glw::GLvoid* function_pointer, - Utils::_variable_type result_type); - - virtual ~functionObject() - { - } - - virtual void call(glw::GLvoid* result_dst, const glw::GLvoid* argument_src) const = 0; - - virtual glw::GLuint getArgumentCount() const = 0; - virtual Utils::_variable_type getArgumentType(glw::GLuint argument) const = 0; - glw::GLuint getArgumentComponents(glw::GLuint argument) const; - glw::GLuint getArgumentComponentSize(glw::GLuint argument) const; - glw::GLuint getArgumentOffset(glw::GLuint argument) const; - glw::GLuint getArgumentStride() const; - glw::GLuint getArgumentStride(glw::GLuint argument) const; - functionEnum getFunctionEnum() const; - const glw::GLchar* getName() const; - glw::GLuint getResultComponents(glw::GLuint result) const; - virtual glw::GLuint getResultCount() const; - glw::GLuint getResultOffset(glw::GLuint result) const; - virtual Utils::_variable_type getResultType(glw::GLuint result) const; - glw::GLuint getResultStride(glw::GLuint result) const; - glw::GLuint getBaseTypeSize(glw::GLuint result) const; - glw::GLuint getResultStride() const; - - protected: - const functionEnum m_function_enum; - const glw::GLchar* m_function_name; - const glw::GLvoid* m_p_function; - const Utils::_variable_type m_res_type; - }; - -private: - /* Private types */ - /** General type enumeration - * - **/ - enum generalType - { - SCALAR = 0, - VECTOR, - MATRIX, - }; - - /** Details of variable type - * - **/ - struct typeDetails - { - typeDetails(glw::GLuint n_columns, glw::GLuint n_rows); - - generalType m_general_type; - glw::GLuint m_n_columns; - glw::GLuint m_n_rows; - glw::GLenum m_type; - std::string m_type_name; - }; - - /* Typedefs for gl.uniform* function pointers */ - typedef GLW_APICALL void(GLW_APIENTRY* uniformDMatFunctionPointer)(glw::GLint, glw::GLsizei, glw::GLboolean, - const glw::GLdouble*); - typedef GLW_APICALL void(GLW_APIENTRY* uniformDVecFunctionPointer)(glw::GLint, glw::GLsizei, const glw::GLdouble*); - typedef GLW_APICALL void(GLW_APIENTRY* uniformIVecFunctionPointer)(glw::GLint, glw::GLsizei, const glw::GLint*); - typedef GLW_APICALL void(GLW_APIENTRY* uniformUVecFunctionPointer)(glw::GLint, glw::GLsizei, const glw::GLuint*); - - /* Private methods */ - bool compare(Utils::_variable_type type, const glw::GLvoid* left, const glw::GLvoid* right); - - functionObject* getFunctionObject(functionEnum function, const typeDetails& type); - - uniformDMatFunctionPointer getUniformFunctionForDMat(glw::GLuint argument, - const functionObject& function_object) const; - - uniformDVecFunctionPointer getUniformFunctionForDVec(glw::GLuint argument, - const functionObject& function_object) const; - - uniformIVecFunctionPointer getUniformFunctionForIVec(glw::GLuint argument, - const functionObject& function_object) const; - - uniformUVecFunctionPointer getUniformFunctionForUVec(glw::GLuint argument, - const functionObject& function_object) const; - - const glw::GLchar* getUniformName(glw::GLuint argument) const; - const glw::GLchar* getVaryingName(glw::GLuint argument) const; - - bool isFunctionImplemented(functionEnum function, const typeDetails& type) const; - - void logVariableType(const glw::GLvoid* buffer, const glw::GLchar* name, Utils::_variable_type type) const; - - void prepareArgument(const functionObject& function_object, glw::GLuint vertex, glw::GLubyte* buffer); - - void prepareComponents(const functionObject& function_object, glw::GLuint vertex, glw::GLuint argument, - glw::GLubyte* buffer); - - void prepareFunctions(); - - void prepareProgram(const functionObject& function_object, Utils::programInfo& program_info); - - void prepareTestData(const functionObject& function_object); - void prepareTypes(); - void prepareVertexShaderCode(const functionObject& function_object); - - bool test(functionEnum function, const typeDetails& type); - - void testBegin(const functionObject& function_object, glw::GLuint program_id, glw::GLuint vertex); - - void testInit(); - - bool verifyResults(const functionObject& function_object, glw::GLuint vertex); - - /* Private constants */ - static const glw::GLdouble m_epsilon; - static const glw::GLuint m_n_veritces; - - /* Private fields */ - glw::GLuint m_transform_feedback_buffer_id; - glw::GLuint m_vertex_array_object_id; - - std::vector m_expected_results_data; - std::vector m_functions; - std::vector m_types; - std::vector m_argument_data; - std::string m_vertex_shader_code; -}; - /** Group class for GPU Shader FP64 conformance tests */ class GPUShaderFP64Tests : public deqp::TestCaseGroup { -- 2.7.4