pan/bi: Add nir_fuse_io pass

This pass fuses var loads + float conversions into the loads, it somehow
slightly improves mediump precision and helps angle tests pass

Signed-off-by: Lorenzo Rossi <lorenzo.rossi@collabora.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
This commit is contained in:
Lorenzo Rossi 2026-04-28 17:23:48 +02:00
parent c92853198e
commit 084417fd9d
5 changed files with 132 additions and 762 deletions

View file

@ -7,765 +7,3 @@ angle-KHR-GLES31.core.texture_cube_map_array.sampling,Fail
# ANGLE now exposes paletted textures to ES2+, and there's a CTS bug caught by this
# https://gitlab.khronos.org/opengl/API/-/issues/278
angle-dEQP-GLES2.functional.negative_api.texture.generatemipmap_zero_level_array_compressed,Fail
# These fail when we enable mediump
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10.clamp_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10.clamp_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10.clamp_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10.clamp_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10.clamp_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10.clamp_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10.clamp_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10.clamp_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10.mirror_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10.mirror_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10.mirror_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10.mirror_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10.mirror_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10.mirror_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10.mirror_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10.mirror_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10.repeat_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10.repeat_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10.repeat_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10.repeat_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10.repeat_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10.repeat_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10.repeat_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10.repeat_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10_srgb.clamp_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10_srgb.clamp_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10_srgb.clamp_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10_srgb.clamp_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10_srgb.clamp_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10_srgb.clamp_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10_srgb.clamp_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10_srgb.clamp_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10_srgb.mirror_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10_srgb.mirror_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10_srgb.mirror_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10_srgb.mirror_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10_srgb.mirror_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10_srgb.mirror_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10_srgb.mirror_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10_srgb.mirror_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10_srgb.repeat_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10_srgb.repeat_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10_srgb.repeat_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10_srgb.repeat_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10_srgb.repeat_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10_srgb.repeat_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10_srgb.repeat_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x10_srgb.repeat_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x5.clamp_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x5.clamp_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x5.clamp_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x5.clamp_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x5.mirror_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x5.mirror_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x5.mirror_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x5.mirror_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x5.repeat_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x5.repeat_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x5.repeat_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x5.repeat_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x5_srgb.clamp_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x5_srgb.clamp_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x5_srgb.clamp_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x5_srgb.clamp_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x5_srgb.mirror_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x5_srgb.mirror_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x5_srgb.mirror_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x5_srgb.mirror_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x5_srgb.repeat_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x5_srgb.repeat_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x5_srgb.repeat_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x5_srgb.repeat_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x6.clamp_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x6.clamp_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x6.clamp_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x6.clamp_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x6.clamp_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x6.clamp_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x6.mirror_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x6.mirror_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x6.mirror_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x6.mirror_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x6.mirror_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x6.mirror_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x6.repeat_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x6.repeat_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x6.repeat_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x6.repeat_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x6.repeat_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x6.repeat_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x6_srgb.clamp_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x6_srgb.clamp_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x6_srgb.clamp_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x6_srgb.clamp_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x6_srgb.clamp_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x6_srgb.clamp_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x6_srgb.mirror_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x6_srgb.mirror_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x6_srgb.mirror_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x6_srgb.mirror_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x6_srgb.mirror_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x6_srgb.mirror_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x6_srgb.repeat_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x6_srgb.repeat_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x6_srgb.repeat_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x6_srgb.repeat_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x6_srgb.repeat_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x6_srgb.repeat_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8.clamp_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8.clamp_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8.clamp_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8.clamp_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8.clamp_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8.clamp_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8.clamp_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8.clamp_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8.mirror_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8.mirror_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8.mirror_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8.mirror_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8.mirror_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8.mirror_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8.mirror_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8.mirror_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8.repeat_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8.repeat_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8.repeat_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8.repeat_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8.repeat_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8.repeat_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8.repeat_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8.repeat_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8_srgb.clamp_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8_srgb.clamp_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8_srgb.clamp_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8_srgb.clamp_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8_srgb.clamp_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8_srgb.clamp_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8_srgb.clamp_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8_srgb.clamp_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8_srgb.mirror_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8_srgb.mirror_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8_srgb.mirror_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8_srgb.mirror_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8_srgb.mirror_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8_srgb.mirror_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8_srgb.mirror_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8_srgb.mirror_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8_srgb.repeat_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8_srgb.repeat_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8_srgb.repeat_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8_srgb.repeat_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8_srgb.repeat_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8_srgb.repeat_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8_srgb.repeat_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_10x8_srgb.repeat_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10.clamp_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10.clamp_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10.clamp_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10.clamp_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10.clamp_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10.clamp_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10.clamp_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10.clamp_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10.mirror_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10.mirror_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10.mirror_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10.mirror_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10.mirror_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10.mirror_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10.mirror_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10.mirror_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10.repeat_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10.repeat_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10.repeat_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10.repeat_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10.repeat_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10.repeat_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10.repeat_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10.repeat_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10_srgb.clamp_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10_srgb.clamp_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10_srgb.clamp_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10_srgb.clamp_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10_srgb.clamp_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10_srgb.clamp_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10_srgb.clamp_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10_srgb.clamp_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10_srgb.mirror_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10_srgb.mirror_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10_srgb.mirror_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10_srgb.mirror_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10_srgb.mirror_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10_srgb.mirror_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10_srgb.mirror_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10_srgb.mirror_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10_srgb.repeat_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10_srgb.repeat_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10_srgb.repeat_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10_srgb.repeat_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10_srgb.repeat_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10_srgb.repeat_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10_srgb.repeat_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x10_srgb.repeat_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12.clamp_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12.clamp_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12.clamp_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12.clamp_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12.clamp_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12.clamp_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12.clamp_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12.clamp_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12.mirror_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12.mirror_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12.mirror_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12.mirror_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12.mirror_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12.mirror_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12.mirror_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12.mirror_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12.repeat_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12.repeat_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12.repeat_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12.repeat_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12.repeat_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12.repeat_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12.repeat_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12.repeat_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12_srgb.clamp_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12_srgb.clamp_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12_srgb.clamp_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12_srgb.clamp_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12_srgb.clamp_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12_srgb.clamp_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12_srgb.clamp_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12_srgb.clamp_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12_srgb.mirror_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12_srgb.mirror_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12_srgb.mirror_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12_srgb.mirror_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12_srgb.mirror_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12_srgb.mirror_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12_srgb.mirror_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12_srgb.mirror_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12_srgb.repeat_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12_srgb.repeat_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12_srgb.repeat_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12_srgb.repeat_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12_srgb.repeat_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12_srgb.repeat_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12_srgb.repeat_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_12x12_srgb.repeat_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_4x4.clamp_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_4x4.clamp_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_4x4.clamp_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_4x4.clamp_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_4x4.mirror_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_4x4.mirror_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_4x4.mirror_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_4x4.mirror_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_4x4.repeat_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_4x4.repeat_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_4x4.repeat_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_4x4.repeat_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_4x4_srgb.clamp_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_4x4_srgb.clamp_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_4x4_srgb.clamp_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_4x4_srgb.clamp_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_4x4_srgb.mirror_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_4x4_srgb.mirror_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_4x4_srgb.mirror_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_4x4_srgb.mirror_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_4x4_srgb.repeat_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_4x4_srgb.repeat_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_4x4_srgb.repeat_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_4x4_srgb.repeat_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x4.clamp_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x4.clamp_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x4.clamp_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x4.clamp_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x4.mirror_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x4.mirror_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x4.mirror_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x4.mirror_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x4.repeat_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x4.repeat_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x4.repeat_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x4.repeat_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x4_srgb.clamp_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x4_srgb.clamp_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x4_srgb.clamp_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x4_srgb.clamp_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x4_srgb.mirror_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x4_srgb.mirror_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x4_srgb.mirror_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x4_srgb.mirror_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x4_srgb.repeat_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x4_srgb.repeat_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x4_srgb.repeat_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x4_srgb.repeat_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x5.clamp_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x5.clamp_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x5.clamp_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x5.clamp_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x5.mirror_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x5.mirror_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x5.mirror_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x5.mirror_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x5.repeat_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x5.repeat_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x5.repeat_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x5.repeat_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x5_srgb.clamp_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x5_srgb.clamp_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x5_srgb.clamp_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x5_srgb.clamp_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x5_srgb.mirror_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x5_srgb.mirror_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x5_srgb.mirror_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x5_srgb.mirror_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x5_srgb.repeat_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x5_srgb.repeat_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x5_srgb.repeat_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_5x5_srgb.repeat_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x5.clamp_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x5.clamp_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x5.clamp_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x5.clamp_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x5.mirror_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x5.mirror_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x5.mirror_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x5.mirror_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x5.repeat_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x5.repeat_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x5.repeat_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x5.repeat_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x5_srgb.clamp_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x5_srgb.clamp_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x5_srgb.clamp_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x5_srgb.clamp_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x5_srgb.mirror_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x5_srgb.mirror_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x5_srgb.mirror_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x5_srgb.mirror_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x5_srgb.repeat_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x5_srgb.repeat_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x5_srgb.repeat_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x5_srgb.repeat_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x6.clamp_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x6.clamp_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x6.clamp_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x6.clamp_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x6.clamp_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x6.clamp_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x6.mirror_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x6.mirror_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x6.mirror_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x6.mirror_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x6.mirror_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x6.mirror_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x6.repeat_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x6.repeat_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x6.repeat_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x6.repeat_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x6.repeat_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x6.repeat_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x6_srgb.clamp_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x6_srgb.clamp_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x6_srgb.clamp_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x6_srgb.clamp_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x6_srgb.clamp_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x6_srgb.clamp_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x6_srgb.mirror_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x6_srgb.mirror_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x6_srgb.mirror_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x6_srgb.mirror_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x6_srgb.mirror_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x6_srgb.mirror_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x6_srgb.repeat_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x6_srgb.repeat_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x6_srgb.repeat_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x6_srgb.repeat_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x6_srgb.repeat_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_6x6_srgb.repeat_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x5.clamp_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x5.clamp_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x5.clamp_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x5.clamp_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x5.mirror_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x5.mirror_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x5.mirror_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x5.mirror_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x5.repeat_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x5.repeat_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x5.repeat_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x5.repeat_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x5_srgb.clamp_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x5_srgb.clamp_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x5_srgb.clamp_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x5_srgb.clamp_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x5_srgb.mirror_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x5_srgb.mirror_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x5_srgb.mirror_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x5_srgb.mirror_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x5_srgb.repeat_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x5_srgb.repeat_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x5_srgb.repeat_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x5_srgb.repeat_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x6.clamp_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x6.clamp_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x6.clamp_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x6.clamp_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x6.clamp_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x6.clamp_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x6.mirror_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x6.mirror_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x6.mirror_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x6.mirror_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x6.mirror_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x6.mirror_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x6.repeat_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x6.repeat_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x6.repeat_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x6.repeat_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x6.repeat_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x6.repeat_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x6_srgb.clamp_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x6_srgb.clamp_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x6_srgb.clamp_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x6_srgb.clamp_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x6_srgb.clamp_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x6_srgb.clamp_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x6_srgb.mirror_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x6_srgb.mirror_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x6_srgb.mirror_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x6_srgb.mirror_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x6_srgb.mirror_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x6_srgb.mirror_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x6_srgb.repeat_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x6_srgb.repeat_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x6_srgb.repeat_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x6_srgb.repeat_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x6_srgb.repeat_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x6_srgb.repeat_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8.clamp_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8.clamp_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8.clamp_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8.clamp_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8.clamp_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8.clamp_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8.clamp_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8.clamp_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8.mirror_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8.mirror_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8.mirror_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8.mirror_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8.mirror_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8.mirror_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8.mirror_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8.mirror_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8.repeat_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8.repeat_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8.repeat_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8.repeat_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8.repeat_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8.repeat_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8.repeat_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8.repeat_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8_srgb.clamp_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8_srgb.clamp_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8_srgb.clamp_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8_srgb.clamp_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8_srgb.clamp_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8_srgb.clamp_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8_srgb.clamp_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8_srgb.clamp_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8_srgb.mirror_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8_srgb.mirror_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8_srgb.mirror_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8_srgb.mirror_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8_srgb.mirror_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8_srgb.mirror_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8_srgb.mirror_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8_srgb.mirror_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8_srgb.repeat_mirror_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8_srgb.repeat_mirror_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8_srgb.repeat_mirror_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8_srgb.repeat_mirror_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8_srgb.repeat_repeat_linear_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8_srgb.repeat_repeat_linear_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8_srgb.repeat_repeat_nearest_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.astc_8x8_srgb.repeat_repeat_nearest_not_divisible,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_r11.clamp_mirror_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_r11.clamp_mirror_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_r11.clamp_mirror_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_r11.clamp_mirror_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_r11.clamp_repeat_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_r11.clamp_repeat_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_r11.clamp_repeat_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_r11.clamp_repeat_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_r11.mirror_mirror_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_r11.mirror_mirror_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_r11.mirror_mirror_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_r11.mirror_mirror_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_r11.mirror_repeat_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_r11.mirror_repeat_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_r11.mirror_repeat_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_r11.mirror_repeat_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_r11.repeat_mirror_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_r11.repeat_mirror_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_r11.repeat_mirror_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_r11.repeat_mirror_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_r11.repeat_repeat_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_r11.repeat_repeat_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_r11.repeat_repeat_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_r11.repeat_repeat_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_rg11.clamp_mirror_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_rg11.clamp_mirror_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_rg11.clamp_mirror_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_rg11.clamp_mirror_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_rg11.clamp_repeat_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_rg11.clamp_repeat_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_rg11.clamp_repeat_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_rg11.clamp_repeat_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_rg11.mirror_mirror_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_rg11.mirror_mirror_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_rg11.mirror_mirror_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_rg11.mirror_mirror_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_rg11.mirror_repeat_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_rg11.mirror_repeat_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_rg11.mirror_repeat_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_rg11.mirror_repeat_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_rg11.repeat_mirror_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_rg11.repeat_mirror_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_rg11.repeat_mirror_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_rg11.repeat_mirror_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_rg11.repeat_repeat_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_rg11.repeat_repeat_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_rg11.repeat_repeat_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_rg11.repeat_repeat_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_r11.clamp_mirror_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_r11.clamp_mirror_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_r11.clamp_mirror_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_r11.clamp_mirror_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_r11.clamp_repeat_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_r11.clamp_repeat_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_r11.clamp_repeat_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_r11.clamp_repeat_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_r11.mirror_mirror_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_r11.mirror_mirror_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_r11.mirror_mirror_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_r11.mirror_mirror_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_r11.mirror_repeat_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_r11.mirror_repeat_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_r11.mirror_repeat_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_r11.mirror_repeat_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_r11.repeat_mirror_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_r11.repeat_mirror_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_r11.repeat_mirror_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_r11.repeat_mirror_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_r11.repeat_repeat_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_r11.repeat_repeat_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_r11.repeat_repeat_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_r11.repeat_repeat_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_rg11.clamp_mirror_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_rg11.clamp_mirror_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_rg11.clamp_mirror_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_rg11.clamp_mirror_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_rg11.clamp_repeat_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_rg11.clamp_repeat_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_rg11.clamp_repeat_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_rg11.clamp_repeat_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_rg11.mirror_mirror_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_rg11.mirror_mirror_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_rg11.mirror_mirror_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_rg11.mirror_mirror_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_rg11.mirror_repeat_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_rg11.mirror_repeat_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_rg11.mirror_repeat_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_rg11.mirror_repeat_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_rg11.repeat_mirror_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_rg11.repeat_mirror_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_rg11.repeat_mirror_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_rg11.repeat_mirror_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_rg11.repeat_repeat_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_rg11.repeat_repeat_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_rg11.repeat_repeat_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.eac_signed_rg11.repeat_repeat_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc1.clamp_mirror_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc1.clamp_mirror_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc1.clamp_mirror_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc1.clamp_mirror_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc1.clamp_repeat_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc1.clamp_repeat_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc1.clamp_repeat_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc1.clamp_repeat_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc1.mirror_mirror_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc1.mirror_mirror_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc1.mirror_mirror_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc1.mirror_mirror_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc1.mirror_repeat_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc1.mirror_repeat_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc1.mirror_repeat_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc1.mirror_repeat_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc1.repeat_mirror_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc1.repeat_mirror_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc1.repeat_mirror_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc1.repeat_mirror_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc1.repeat_repeat_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc1.repeat_repeat_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc1.repeat_repeat_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc1.repeat_repeat_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_rgba8.clamp_mirror_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_rgba8.clamp_mirror_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_rgba8.clamp_mirror_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_rgba8.clamp_mirror_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_rgba8.clamp_repeat_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_rgba8.clamp_repeat_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_rgba8.clamp_repeat_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_rgba8.clamp_repeat_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_rgba8.mirror_mirror_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_rgba8.mirror_mirror_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_rgba8.mirror_mirror_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_rgba8.mirror_mirror_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_rgba8.mirror_repeat_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_rgba8.mirror_repeat_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_rgba8.mirror_repeat_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_rgba8.mirror_repeat_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_rgba8.repeat_mirror_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_rgba8.repeat_mirror_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_rgba8.repeat_mirror_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_rgba8.repeat_mirror_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_rgba8.repeat_repeat_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_rgba8.repeat_repeat_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_rgba8.repeat_repeat_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_rgba8.repeat_repeat_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_srgb8_alpha8.clamp_mirror_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_srgb8_alpha8.clamp_mirror_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_srgb8_alpha8.clamp_mirror_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_srgb8_alpha8.clamp_mirror_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_srgb8_alpha8.clamp_repeat_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_srgb8_alpha8.clamp_repeat_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_srgb8_alpha8.clamp_repeat_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_srgb8_alpha8.clamp_repeat_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_srgb8_alpha8.mirror_mirror_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_srgb8_alpha8.mirror_mirror_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_srgb8_alpha8.mirror_mirror_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_srgb8_alpha8.mirror_mirror_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_srgb8_alpha8.mirror_repeat_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_srgb8_alpha8.mirror_repeat_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_srgb8_alpha8.mirror_repeat_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_srgb8_alpha8.mirror_repeat_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_srgb8_alpha8.repeat_mirror_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_srgb8_alpha8.repeat_mirror_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_srgb8_alpha8.repeat_mirror_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_srgb8_alpha8.repeat_mirror_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_srgb8_alpha8.repeat_repeat_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_srgb8_alpha8.repeat_repeat_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_srgb8_alpha8.repeat_repeat_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_eac_srgb8_alpha8.repeat_repeat_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8.clamp_mirror_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8.clamp_mirror_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8.clamp_mirror_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8.clamp_mirror_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8.clamp_repeat_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8.clamp_repeat_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8.clamp_repeat_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8.clamp_repeat_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8.mirror_mirror_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8.mirror_mirror_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8.mirror_mirror_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8.mirror_mirror_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8.mirror_repeat_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8.mirror_repeat_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8.mirror_repeat_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8.mirror_repeat_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8.repeat_mirror_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8.repeat_mirror_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8.repeat_mirror_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8.repeat_mirror_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8.repeat_repeat_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8.repeat_repeat_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8.repeat_repeat_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8.repeat_repeat_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8_punchthrough_alpha1.clamp_mirror_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8_punchthrough_alpha1.clamp_mirror_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8_punchthrough_alpha1.clamp_mirror_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8_punchthrough_alpha1.clamp_mirror_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8_punchthrough_alpha1.clamp_repeat_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8_punchthrough_alpha1.clamp_repeat_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8_punchthrough_alpha1.clamp_repeat_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8_punchthrough_alpha1.clamp_repeat_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8_punchthrough_alpha1.mirror_mirror_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8_punchthrough_alpha1.mirror_mirror_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8_punchthrough_alpha1.mirror_mirror_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8_punchthrough_alpha1.mirror_mirror_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8_punchthrough_alpha1.mirror_repeat_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8_punchthrough_alpha1.mirror_repeat_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8_punchthrough_alpha1.mirror_repeat_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8_punchthrough_alpha1.mirror_repeat_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8_punchthrough_alpha1.repeat_mirror_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8_punchthrough_alpha1.repeat_mirror_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8_punchthrough_alpha1.repeat_mirror_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8_punchthrough_alpha1.repeat_mirror_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8_punchthrough_alpha1.repeat_repeat_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8_punchthrough_alpha1.repeat_repeat_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8_punchthrough_alpha1.repeat_repeat_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_rgb8_punchthrough_alpha1.repeat_repeat_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8.clamp_mirror_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8.clamp_mirror_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8.clamp_mirror_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8.clamp_mirror_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8.clamp_repeat_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8.clamp_repeat_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8.clamp_repeat_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8.clamp_repeat_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8.mirror_mirror_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8.mirror_mirror_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8.mirror_mirror_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8.mirror_mirror_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8.mirror_repeat_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8.mirror_repeat_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8.mirror_repeat_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8.mirror_repeat_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8.repeat_mirror_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8.repeat_mirror_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8.repeat_mirror_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8.repeat_mirror_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8.repeat_repeat_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8.repeat_repeat_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8.repeat_repeat_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8.repeat_repeat_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8_punchthrough_alpha1.clamp_mirror_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8_punchthrough_alpha1.clamp_mirror_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8_punchthrough_alpha1.clamp_mirror_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8_punchthrough_alpha1.clamp_mirror_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8_punchthrough_alpha1.clamp_repeat_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8_punchthrough_alpha1.clamp_repeat_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8_punchthrough_alpha1.clamp_repeat_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8_punchthrough_alpha1.clamp_repeat_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8_punchthrough_alpha1.mirror_mirror_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8_punchthrough_alpha1.mirror_mirror_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8_punchthrough_alpha1.mirror_mirror_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8_punchthrough_alpha1.mirror_mirror_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8_punchthrough_alpha1.mirror_repeat_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8_punchthrough_alpha1.mirror_repeat_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8_punchthrough_alpha1.mirror_repeat_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8_punchthrough_alpha1.mirror_repeat_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8_punchthrough_alpha1.repeat_mirror_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8_punchthrough_alpha1.repeat_mirror_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8_punchthrough_alpha1.repeat_mirror_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8_punchthrough_alpha1.repeat_mirror_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8_punchthrough_alpha1.repeat_repeat_linear_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8_punchthrough_alpha1.repeat_repeat_linear_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8_punchthrough_alpha1.repeat_repeat_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.etc2_srgb8_punchthrough_alpha1.repeat_repeat_nearest_pot,Fail
angle-dEQP-GLES3.functional.texture.wrap.rgba8.clamp_repeat_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.rgba8.mirror_repeat_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.rgba8.repeat_mirror_nearest_npot,Fail
angle-dEQP-GLES3.functional.texture.wrap.rgba8.repeat_repeat_nearest_npot,Fail

View file

@ -949,6 +949,7 @@ bifrost_postprocess_nir(nir_shader *nir,
NIR_PASS(_, nir, pan_nir_lower_tex, gpu_id);
NIR_PASS(_, nir, pan_nir_lower_image, gpu_id);
NIR_PASS(_, nir, pan_nir_fuse_io_cvt, gpu_id, &info->varyings.formats);
/* Our OpenCL compiler (src/panfrost/clc/pan_compile.c) has a very weird and
* suboptimal optimization pipeline that results in a lot of unoptimized
* memcpys and sparse scratch space. That code is still being used for

View file

@ -5,6 +5,7 @@ libpanfrost_compiler_files = files(
'pan_compiler.c',
'pan_compiler.h',
'pan_nir_collect_varyings.c',
'pan_nir_fuse_io_cvt.c',
'pan_nir_lower_bool_to_bitsize.c',
'pan_nir_lower_var_special.c',
'pan_nir_lower_framebuffer.c',

View file

@ -262,4 +262,7 @@ uint32_t pan_nir_collect_noperspective_varyings_fs(nir_shader *s);
bool pan_nir_resize_varying_io(nir_shader *nir,
const struct pan_varying_layout *varying_layout);
bool pan_nir_fuse_io_cvt(nir_shader *nir, uint64_t gpu_id,
struct pan_varying_layout *layout);
#endif /* __PAN_NIR_H__ */

View file

@ -0,0 +1,127 @@
/*
* Copyright (C) 2026 Collabora Ltd.
* SPDX-License-Identifier: MIT
*/
#include "pan_nir.h"
static unsigned
nir_src_is_float_cvt(nir_src *use, bool *is_mp)
{
nir_instr *parent = nir_src_parent_instr(use);
if (parent->type != nir_instr_type_alu)
return 0;
nir_alu_instr *alu = nir_instr_as_alu(parent);
switch (alu->op) {
case nir_op_f2f16:
return 16;
case nir_op_f2fmp:
*is_mp |= true;
return 16;
case nir_op_f2f32:
return 32;
default:
return 0;
}
}
static bool
op_supports_cvt_fusion(nir_intrinsic_instr *instr, uint64_t gpu_id)
{
/* We might also convert LD_CVT but I haven't seen any case where it's
* useful, maybe enable it when we have a case to check it on.
*/
switch (instr->intrinsic) {
case nir_intrinsic_load_var_pan:
case nir_intrinsic_load_var_buf_pan:
/* LD_VAR[_BUF] performs conversion BEFORE interpolation, we cannot
* just change the interpolation semantics at highp. mediump on the
* other hand lets us juggle between 32 and 16 bits freely.
*/
return nir_intrinsic_io_semantics(instr).medium_precision;
case nir_intrinsic_load_var_flat_pan:
return true;
case nir_intrinsic_load_var_buf_flat_pan:
/* TODO: v14 can even fuse flat buf conversions */
return false;
default:
return false;
}
}
struct fuse_ctx {
uint64_t gpu_id;
struct pan_varying_layout *layout;
};
static bool
fuse_io_instr(struct nir_builder *b, nir_intrinsic_instr *intr, void *data)
{
const struct fuse_ctx *ctx = data;
if (!op_supports_cvt_fusion(intr, ctx->gpu_id))
return false;
unsigned orig_bit_size = intr->def.bit_size;
assert(orig_bit_size == 32 || orig_bit_size == 16);
unsigned converted_bit_size = orig_bit_size == 32 ? 16 : 32;
bool is_mp = false;
/* Check if all usages are conversions */
nir_foreach_use_including_if(src, &intr->def) {
if (nir_src_is_if(src) ||
nir_src_is_float_cvt(src, &is_mp) != converted_bit_size)
return false;
}
/* If they are, the load is always followed by conversion and we thus can
* fuse the cvt into the load.
*/
intr->def.bit_size = converted_bit_size;
/* Update the dest_type. This will not change the in-memory representation
* of _buf intrinsics as those are stored in the src_type.
*/
if (nir_intrinsic_has_dest_type(intr)) {
nir_alu_type dest_type = nir_intrinsic_dest_type(intr);
nir_alu_type base_type = nir_get_glsl_base_type_for_nir_type(dest_type);
nir_intrinsic_set_dest_type(intr, nir_type_float | converted_bit_size);
if (base_type != nir_type_float) {
const nir_io_semantics sem = nir_intrinsic_io_semantics(intr);
/* Right now we have int descriptors, but the loaded value is always
* used as a flot, no harm in just "promoting" it to float. The cast
* is to discard the const modifier, this is safe.
*/
struct pan_varying_slot *slot = (struct pan_varying_slot *)
pan_varying_layout_find_slot(ctx->layout, sem.location);
slot->alu_type = nir_alu_type_get_type_size(slot->alu_type) |
nir_type_float;
}
}
/* We don't remove conversions, nir_opt_algebraic will fold f2f16 a@16
* and f2f32 a@32 automatically, everything but f2fmp of course.
*/
if (is_mp) {
b->cursor = nir_after_instr(&intr->instr);
nir_def *up_cvt = nir_f2f32(b, &intr->def);
nir_def_rewrite_uses_after(&intr->def, up_cvt);
}
return true;
}
bool
pan_nir_fuse_io_cvt(nir_shader *nir, uint64_t gpu_id,
struct pan_varying_layout *layout)
{
struct fuse_ctx ctx = {
.gpu_id = gpu_id,
.layout = layout,
};
return nir_shader_intrinsics_pass(nir, fuse_io_instr,
nir_metadata_control_flow, (void *)&ctx);
}