dEQP-GLES2.functional.texture.specification.basic_teximage2d.rgba5551_cube
dEQP-GLES2.functional.texture.specification.basic_teximage2d.rgba8888_2d
dEQP-GLES2.functional.texture.specification.basic_teximage2d.rgba8888_cube
+dEQP-GLES2.functional.texture.specification.basic_teximage2d.rgba16f_2d
+dEQP-GLES2.functional.texture.specification.basic_teximage2d.rgba16f_cube
+dEQP-GLES2.functional.texture.specification.basic_teximage2d.rgb16f_2d
+dEQP-GLES2.functional.texture.specification.basic_teximage2d.rgb16f_cube
+dEQP-GLES2.functional.texture.specification.basic_teximage2d.la16f_2d
+dEQP-GLES2.functional.texture.specification.basic_teximage2d.la16f_cube
+dEQP-GLES2.functional.texture.specification.basic_teximage2d.l16f_2d
+dEQP-GLES2.functional.texture.specification.basic_teximage2d.l16f_cube
+dEQP-GLES2.functional.texture.specification.basic_teximage2d.a16f_2d
+dEQP-GLES2.functional.texture.specification.basic_teximage2d.a16f_cube
dEQP-GLES2.functional.texture.specification.random_teximage2d.2d_0
dEQP-GLES2.functional.texture.specification.random_teximage2d.2d_1
dEQP-GLES2.functional.texture.specification.random_teximage2d.2d_2
dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.rgba5551_cube
dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.rgba8888_2d
dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.rgba8888_cube
+dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.rgba16f_2d
+dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.rgba16f_cube
+dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.rgb16f_2d
+dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.rgb16f_cube
+dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.la16f_2d
+dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.la16f_cube
+dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.l16f_2d
+dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.l16f_cube
+dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.a16f_2d
+dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.a16f_cube
dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.a8_2d
dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.a8_cube
dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.l8_2d
dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.rgba5551_cube
dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.rgba8888_2d
dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.rgba8888_cube
+dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.rgba16f_2d
+dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.rgba16f_cube
+dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.rgb16f_2d
+dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.rgb16f_cube
+dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.la16f_2d
+dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.la16f_cube
+dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.l16f_2d
+dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.l16f_cube
+dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.a16f_2d
+dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.a16f_cube
dEQP-GLES2.functional.texture.specification.texsubimage2d_align.2d_l8_1_1
dEQP-GLES2.functional.texture.specification.texsubimage2d_align.2d_l8_1_2
dEQP-GLES2.functional.texture.specification.texsubimage2d_align.2d_l8_1_4
dEQP-GLES2.functional.texture.specification.basic_teximage2d.rgba5551_cube
dEQP-GLES2.functional.texture.specification.basic_teximage2d.rgba8888_2d
dEQP-GLES2.functional.texture.specification.basic_teximage2d.rgba8888_cube
+dEQP-GLES2.functional.texture.specification.basic_teximage2d.rgba16f_2d
+dEQP-GLES2.functional.texture.specification.basic_teximage2d.rgba16f_cube
+dEQP-GLES2.functional.texture.specification.basic_teximage2d.rgb16f_2d
+dEQP-GLES2.functional.texture.specification.basic_teximage2d.rgb16f_cube
+dEQP-GLES2.functional.texture.specification.basic_teximage2d.la16f_2d
+dEQP-GLES2.functional.texture.specification.basic_teximage2d.la16f_cube
+dEQP-GLES2.functional.texture.specification.basic_teximage2d.l16f_2d
+dEQP-GLES2.functional.texture.specification.basic_teximage2d.l16f_cube
+dEQP-GLES2.functional.texture.specification.basic_teximage2d.a16f_2d
+dEQP-GLES2.functional.texture.specification.basic_teximage2d.a16f_cube
dEQP-GLES2.functional.texture.specification.random_teximage2d.2d_0
dEQP-GLES2.functional.texture.specification.random_teximage2d.2d_1
dEQP-GLES2.functional.texture.specification.random_teximage2d.2d_2
dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.rgba5551_cube
dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.rgba8888_2d
dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.rgba8888_cube
+dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.rgba16f_2d
+dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.rgba16f_cube
+dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.rgb16f_2d
+dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.rgb16f_cube
+dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.la16f_2d
+dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.la16f_cube
+dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.l16f_2d
+dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.l16f_cube
+dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.a16f_2d
+dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.a16f_cube
dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.a8_2d
dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.a8_cube
dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.l8_2d
dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.rgba5551_cube
dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.rgba8888_2d
dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.rgba8888_cube
+dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.rgba16f_2d
+dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.rgba16f_cube
+dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.rgb16f_2d
+dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.rgb16f_cube
+dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.la16f_2d
+dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.la16f_cube
+dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.l16f_2d
+dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.l16f_cube
+dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.a16f_2d
+dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.a16f_cube
dEQP-GLES2.functional.texture.specification.texsubimage2d_align.2d_l8_1_1
dEQP-GLES2.functional.texture.specification.texsubimage2d_align.2d_l8_1_2
dEQP-GLES2.functional.texture.specification.texsubimage2d_align.2d_l8_1_4
dEQP-GLES2.functional.texture.specification.basic_teximage2d.rgba5551_cube
dEQP-GLES2.functional.texture.specification.basic_teximage2d.rgba8888_2d
dEQP-GLES2.functional.texture.specification.basic_teximage2d.rgba8888_cube
+dEQP-GLES2.functional.texture.specification.basic_teximage2d.rgba16f_2d
+dEQP-GLES2.functional.texture.specification.basic_teximage2d.rgba16f_cube
+dEQP-GLES2.functional.texture.specification.basic_teximage2d.rgb16f_2d
+dEQP-GLES2.functional.texture.specification.basic_teximage2d.rgb16f_cube
+dEQP-GLES2.functional.texture.specification.basic_teximage2d.la16f_2d
+dEQP-GLES2.functional.texture.specification.basic_teximage2d.la16f_cube
+dEQP-GLES2.functional.texture.specification.basic_teximage2d.l16f_2d
+dEQP-GLES2.functional.texture.specification.basic_teximage2d.l16f_cube
+dEQP-GLES2.functional.texture.specification.basic_teximage2d.a16f_2d
+dEQP-GLES2.functional.texture.specification.basic_teximage2d.a16f_cube
dEQP-GLES2.functional.texture.specification.random_teximage2d.2d_0
dEQP-GLES2.functional.texture.specification.random_teximage2d.2d_1
dEQP-GLES2.functional.texture.specification.random_teximage2d.2d_2
dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.rgba5551_cube
dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.rgba8888_2d
dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.rgba8888_cube
+dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.rgba16f_2d
+dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.rgba16f_cube
+dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.rgb16f_2d
+dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.rgb16f_cube
+dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.la16f_2d
+dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.la16f_cube
+dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.l16f_2d
+dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.l16f_cube
+dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.a16f_2d
+dEQP-GLES2.functional.texture.specification.basic_texsubimage2d.a16f_cube
dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.a8_2d
dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.a8_cube
dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.l8_2d
dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.rgba5551_cube
dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.rgba8888_2d
dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.rgba8888_cube
+dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.rgba16f_2d
+dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.rgba16f_cube
+dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.rgb16f_2d
+dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.rgb16f_cube
+dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.la16f_2d
+dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.la16f_cube
+dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.l16f_2d
+dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.l16f_cube
+dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.a16f_2d
+dEQP-GLES2.functional.texture.specification.texsubimage2d_empty_tex.a16f_cube
dEQP-GLES2.functional.texture.specification.texsubimage2d_align.2d_l8_1_1
dEQP-GLES2.functional.texture.specification.texsubimage2d_align.2d_l8_1_2
dEQP-GLES2.functional.texture.specification.texsubimage2d_align.2d_l8_1_4
if __name__ == "__main__":
gtfCMakeLists = os.path.join(DEQP_DIR, "external", "kc-cts", "src", "GTF_ES", "CMakeLists.txt")
if os.path.isfile(gtfCMakeLists) == False:
- raise Exception("GTF sources not found. GTF module is required to build the mustpass files")
+ raise Exception("GTF sources not found. GTF module is required to build the mustpass files. 'cd external && python fetch_kc_cts.py'")
genMustpassLists(ES_MUSTPASS_LISTS, ANY_GENERATOR, ES_BUILD_CONFIG)
gl_mustpass_lists = generateGLMustpass()
genMustpassLists(gl_mustpass_lists, ANY_GENERATOR, GL_BUILD_CONFIG)
case GL_FLOAT_32_UNSIGNED_INT_24_8_REV: return TextureFormat::FLOAT_UNSIGNED_INT_24_8_REV;
case GL_UNSIGNED_INT_5_9_9_9_REV: return TextureFormat::UNSIGNED_INT_999_E5_REV;
+ // GL_OES_texture_half_float
+ case GL_HALF_FLOAT_OES: return TextureFormat::HALF_FLOAT;
+
default:
DE_ASSERT(false);
return TextureFormat::CHANNELTYPE_LAST;
const int m_width;
const int m_height;
+ bool m_half_float_oes;
+
private:
TextureSpecCase (const TextureSpecCase& other);
TextureSpecCase& operator= (const TextureSpecCase& other);
, m_texCubeNegZShader (tcu::CUBEFACE_NEGATIVE_Z)
, m_texCubePosZShader (tcu::CUBEFACE_POSITIVE_Z)
{
+ const glw::Functions& gl = m_context.getRenderContext().getFunctions();
+ m_half_float_oes = glu::hasExtension(gl, glu::ApiType::es(2, 0), "GL_OES_texture_half_float");
}
TextureSpecCase::~TextureSpecCase (void)
tcu::TextureLevel levelData (fmt);
de::Random rnd (deStringHash(getName()));
+ if (m_dataType == GL_HALF_FLOAT_OES && !m_half_float_oes)
+ throw tcu::NotSupportedError("GL_OES_texture_half_float is not supported", "", __FILE__, __LINE__);
+
glGenTextures(1, &tex);
glBindTexture(GL_TEXTURE_2D, tex);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
DE_ASSERT(m_width == m_height); // Non-square cubemaps are not supported by GLES2.
+ if (m_dataType == GL_HALF_FLOAT_OES && !m_half_float_oes)
+ throw tcu::NotSupportedError("GL_OES_texture_half_float is not supported", "", __FILE__, __LINE__);
+
glGenTextures(1, &tex);
glBindTexture(GL_TEXTURE_CUBE_MAP, tex);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
tcu::TextureLevel levelData (fmt);
de::Random rnd (deStringHash(getName()));
+ if (m_dataType == GL_HALF_FLOAT_OES && !m_half_float_oes)
+ throw tcu::NotSupportedError("GL_OES_texture_half_float is not supported", "", __FILE__, __LINE__);
+
glGenTextures(1, &tex);
glBindTexture(GL_TEXTURE_2D, tex);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
DE_ASSERT(m_width == m_height); // Non-square cubemaps are not supported by GLES2.
+ if (m_dataType == GL_HALF_FLOAT_OES && !m_half_float_oes)
+ throw tcu::NotSupportedError("GL_OES_texture_half_float is not supported", "", __FILE__, __LINE__);
+
glGenTextures(1, &tex);
glBindTexture(GL_TEXTURE_CUBE_MAP, tex);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
deUint32 tex = 0;
vector<deUint8> data;
+ if (m_dataType == GL_HALF_FLOAT_OES && !m_half_float_oes)
+ throw tcu::NotSupportedError("GL_OES_texture_half_float is not supported", "", __FILE__, __LINE__);
+
glGenTextures(1, &tex);
glBindTexture(GL_TEXTURE_2D, tex);
glPixelStorei(GL_UNPACK_ALIGNMENT, m_alignment);
DE_ASSERT(m_width == m_height); // Non-square cubemaps are not supported by GLES2.
+ if (m_dataType == GL_HALF_FLOAT_OES && !m_half_float_oes)
+ throw tcu::NotSupportedError("GL_OES_texture_half_float is not supported", "", __FILE__, __LINE__);
+
glGenTextures(1, &tex);
glBindTexture(GL_TEXTURE_CUBE_MAP, tex);
glPixelStorei(GL_UNPACK_ALIGNMENT, m_alignment);
tcu::TextureLevel data (fmt);
de::Random rnd (deStringHash(getName()));
+ if (m_dataType == GL_HALF_FLOAT_OES && !m_half_float_oes)
+ throw tcu::NotSupportedError("GL_OES_texture_half_float is not supported", "", __FILE__, __LINE__);
+
glGenTextures(1, &tex);
glBindTexture(GL_TEXTURE_2D, tex);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
DE_ASSERT(m_width == m_height); // Non-square cubemaps are not supported by GLES2.
+ if (m_dataType == GL_HALF_FLOAT_OES && !m_half_float_oes)
+ throw tcu::NotSupportedError("GL_OES_texture_half_float is not supported", "", __FILE__, __LINE__);
+
glGenTextures(1, &tex);
glBindTexture(GL_TEXTURE_CUBE_MAP, tex);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
tcu::TextureLevel data (fmt);
de::Random rnd (deStringHash(getName()));
+ if (m_dataType == GL_HALF_FLOAT_OES && !m_half_float_oes)
+ throw tcu::NotSupportedError("GL_OES_texture_half_float is not supported", "", __FILE__, __LINE__);
+
glGenTextures(1, &tex);
glBindTexture(GL_TEXTURE_2D, tex);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
DE_ASSERT(m_width == m_height); // Non-square cubemaps are not supported by GLES2.
+ if (m_dataType == GL_HALF_FLOAT_OES && !m_half_float_oes)
+ throw tcu::NotSupportedError("GL_OES_texture_half_float is not supported", "", __FILE__, __LINE__);
+
glGenTextures(1, &tex);
glBindTexture(GL_TEXTURE_CUBE_MAP, tex);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
deUint32 tex = 0;
vector<deUint8> data;
+ if (m_dataType == GL_HALF_FLOAT_OES && !m_half_float_oes)
+ throw tcu::NotSupportedError("GL_OES_texture_half_float is not supported", "", __FILE__, __LINE__);
+
glGenTextures(1, &tex);
glBindTexture(GL_TEXTURE_2D, tex);
DE_ASSERT(m_width == m_height);
+ if (m_dataType == GL_HALF_FLOAT_OES && !m_half_float_oes)
+ throw tcu::NotSupportedError("GL_OES_texture_half_float is not supported", "", __FILE__, __LINE__);
+
glGenTextures(1, &tex);
glBindTexture(GL_TEXTURE_CUBE_MAP, tex);
if ((texHasRGB && !targetHasRGB) || (texHasAlpha && !targetHasAlpha))
throw tcu::NotSupportedError("Copying from current framebuffer is not supported", "", __FILE__, __LINE__);
+ if (m_dataType == GL_HALF_FLOAT_OES && !m_half_float_oes)
+ throw tcu::NotSupportedError("GL_OES_texture_half_float is not supported", "", __FILE__, __LINE__);
+
glGenTextures(1, &tex);
glBindTexture(GL_TEXTURE_2D, tex);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
if ((texHasRGB && !targetHasRGB) || (texHasAlpha && !targetHasAlpha))
throw tcu::NotSupportedError("Copying from current framebuffer is not supported", "", __FILE__, __LINE__);
+ if (m_dataType == GL_HALF_FLOAT_OES && !m_half_float_oes)
+ throw tcu::NotSupportedError("GL_OES_texture_half_float is not supported", "", __FILE__, __LINE__);
+
glGenTextures(1, &tex);
glBindTexture(GL_TEXTURE_CUBE_MAP, tex);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
{ "rgb888", GL_RGB, GL_UNSIGNED_BYTE },
{ "rgba4444", GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4 },
{ "rgba5551", GL_RGBA, GL_UNSIGNED_SHORT_5_5_5_1 },
- { "rgba8888", GL_RGBA, GL_UNSIGNED_BYTE }
+ { "rgba8888", GL_RGBA, GL_UNSIGNED_BYTE },
+ { "rgba16f", GL_RGBA, GL_HALF_FLOAT_OES },
+ { "rgb16f", GL_RGB, GL_HALF_FLOAT_OES },
+ { "la16f", GL_LUMINANCE_ALPHA, GL_HALF_FLOAT_OES },
+ { "l16f", GL_LUMINANCE, GL_HALF_FLOAT_OES },
+ { "a16f", GL_ALPHA, GL_HALF_FLOAT_OES }
};
// Basic TexImage2D usage.