// Copyright 2019 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// This file contains a list of defective dEQP conformance tests. The expected
// format is:
//  {BUG#} {MODIFIERS} : {TEST_NAME} = {PASS,FAIL,FLAKY,TIMEOUT,SKIP}
//
// MODIFIERS can be a combination of the below list, combined with a logical AND:
//  WIN XP VISTA WIN7 WIN8 WIN10
//  MAC LEOPARD SNOWLEOPARD LION MOUNTAINLION MAVERICKS YOSEMITE ELCAPITAN SIERRA HIGHSIERRA MOJAVE
//  LINUX CHROMEOS ANDROID
//  NVIDIA AMD INTEL
//  DEBUG RELEASE
//  D3D9 D3D11 OPENGL GLES VULKAN
//  NEXUS5X PIXEL2
//  QUADROP400
//
//
// TEST_NAME can be a specific test name, or have a '*' in the end, which
// indicates a prefix matching.
//
// Examples:
// fails on both windows and mac (crash)
//  91530 WIN : context_lost_restored = SKIP
//  91530 MAC : context_lost_restored = SKIP
// fails on windows using NVIDIA GPUs
//  91533 WIN NVIDIA : gl_min_uniforms = FAIL
// fails on Nexus5X with GLES backend (hangs)
//  91531 NEXUS5X GLES : conformance_more_* = SKIP

// For now we only log Vulkan test expectations. More back-ends can follow as we need them.

// GL_RGB32F framebuffers should not be "complete" (may crash on Android, but only fails elsewhere):
3695 VULKAN : KHR-GLES3.packed_pixels.rectangle.rgb*32f = SKIP

// Crashes trying to load non-existent texture load function.
// The following test crashed on "android_angle_vk32_deqp_rel_ng":
3455 VULKAN ANDROID : KHR-GLES3.packed_pixels.rectangle.rgb9_e5 = SKIP
3455 VULKAN : KHR-GLES3.copy_tex_image_conversions.forbidden.* = SKIP

// PBO's are not fully implemented:
3455 VULKAN : KHR-GLES3.packed_pixels.pbo_rectangle.r* = SKIP
3455 VULKAN : KHR-GLES3.packed_pixels.pbo_rectangle.srgb8_alpha8 = SKIP

// Depth/stencil related failures.
3457 VULKAN ANDROID : KHR-GLES3.packed_depth_stencil.*.depth24_stencil8 = FAIL
3457 VULKAN : KHR-GLES3.packed_depth_stencil.verify_read_pixels.depth32f_stencil8 = FAIL
3457 VULKAN : KHR-GLES3.packed_depth_stencil.clear_buffer.depth32f_stencil8 = FAIL

// CopyTexImage conversion missing 2D Array and 3D texture support.
3458 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture_array_texture2d = SKIP
3458 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture_array_cubemap_negx = SKIP
3458 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture_array_cubemap_negy = SKIP
3458 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture_array_cubemap_negz = SKIP
3458 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture_array_cubemap_posx = SKIP
3458 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture_array_cubemap_posy = SKIP
3458 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture_array_cubemap_posz = SKIP
3458 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture3d_texture2d = SKIP
3458 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture3d_cubemap_negx = SKIP
3458 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture3d_cubemap_negy = SKIP
3458 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture3d_cubemap_negz = SKIP
3458 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture3d_cubemap_posx = SKIP
3458 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture3d_cubemap_posy = SKIP
3458 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture3d_cubemap_posz = SKIP

// The following crash under glBeginTransformFeedback, by accessing freed memory (random):
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture2d_texture2d = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture2d_cubemap_negx = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture2d_cubemap_negy = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture2d_cubemap_negz = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture2d_cubemap_posx = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture2d_cubemap_posy = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.texture2d_cubemap_posz = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negx_texture2d = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negx_cubemap_negx = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negx_cubemap_negy = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negx_cubemap_negz = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negx_cubemap_posx = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negx_cubemap_posy = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negx_cubemap_posz = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negy_texture2d = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negy_cubemap_negx = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negy_cubemap_negy = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negy_cubemap_negz = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negy_cubemap_posx = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negy_cubemap_posy = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negy_cubemap_posz = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negz_texture2d = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negz_cubemap_negx = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negz_cubemap_negy = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negz_cubemap_negz = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negz_cubemap_posx = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negz_cubemap_posy = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_negz_cubemap_posz = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posx_texture2d = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posx_cubemap_negx = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posx_cubemap_negy = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posx_cubemap_negz = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posx_cubemap_posx = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posx_cubemap_posy = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posx_cubemap_posz = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posy_texture2d = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posy_cubemap_negx = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posy_cubemap_negy = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posy_cubemap_negz = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posy_cubemap_posx = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posy_cubemap_posy = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posy_cubemap_posz = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posz_texture2d = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posz_cubemap_negx = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posz_cubemap_negy = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posz_cubemap_negz = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posz_cubemap_posx = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posz_cubemap_posy = SKIP
3674 VULKAN : KHR-GLES3.copy_tex_image_conversions.required.cubemap_posz_cubemap_posz = SKIP

// column/row_major specified on struct member:
3443 VULKAN : KHR-GLES3.shaders.uniform_block.random.all_per_block_buffers.16 = FAIL
3443 VULKAN : KHR-GLES3.shaders.uniform_block.random.all_per_block_buffers.3 = FAIL
3443 VULKAN : KHR-GLES3.shaders.uniform_block.random.all_per_block_buffers.5 = FAIL
3443 VULKAN : KHR-GLES3.shaders.uniform_block.random.all_per_block_buffers.7 = FAIL
3443 VULKAN : KHR-GLES3.shaders.uniform_block.random.all_shared_buffer.0 = FAIL
3443 VULKAN : KHR-GLES3.shaders.uniform_block.random.basic_instance_arrays.0 = FAIL
3443 VULKAN : KHR-GLES3.shaders.uniform_block.random.basic_instance_arrays.4 = FAIL
3443 VULKAN : KHR-GLES3.shaders.uniform_block.random.basic_instance_arrays.5 = FAIL
3443 VULKAN : KHR-GLES3.shaders.uniform_block.random.nested_structs_arrays.7 = FAIL
3443 VULKAN : KHR-GLES3.shaders.uniform_block.random.nested_structs_arrays_instance_arrays.3 = FAIL

// Require 3D textures.
3188 VULKAN : KHR-GLES3.packed_pixels.varied_rectangle.* = SKIP
