Hash :
43acf3ba
Author :
Date :
2020-07-31T15:43:57
GL: Compiler changes for GL_OES_texture_buffer This extension is core in GLES 3.2 This CL enables the extension, added 412 new dEQP tests for texture buffer. 410 of these tests pass, but there are two tests that fail, detailed in anglebug.com/4933 Also includes a fix for completeness checks. Based on a CL by Jonah Ryan-Davis. Bug: angleproject:3573 Bug: angleproject:4933 Change-Id: I45759d765c88c64f21b592eab01d910dc4bc8da3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2521239 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
//
// Copyright 2002 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.
//
// ExtensionBehavior.h: Extension name enumeration and data structures for storing extension
// behavior.
#ifndef COMPILER_TRANSLATOR_EXTENSIONBEHAVIOR_H_
#define COMPILER_TRANSLATOR_EXTENSIONBEHAVIOR_H_
#include <cstdint>
#include <map>
namespace sh
{
enum class TExtension : uint8_t
{
UNDEFINED, // Special value used to indicate no extension.
ANGLE_base_vertex_base_instance,
ANGLE_multi_draw,
ANGLE_texture_multisample,
APPLE_clip_distance,
ARB_texture_rectangle,
ARM_shader_framebuffer_fetch,
EXT_blend_func_extended,
EXT_draw_buffers,
EXT_frag_depth,
EXT_geometry_shader,
EXT_gpu_shader5,
EXT_shader_framebuffer_fetch,
EXT_shader_non_constant_global_initializers,
EXT_shader_texture_lod,
EXT_shadow_samplers,
EXT_texture_buffer,
EXT_texture_cube_map_array,
EXT_YUV_target,
NV_EGL_stream_consumer_external,
NV_shader_framebuffer_fetch,
NV_shader_noperspective_interpolation,
OES_EGL_image_external,
OES_EGL_image_external_essl3,
OES_shader_multisample_interpolation,
OES_shader_image_atomic,
OES_standard_derivatives,
OES_texture_3D,
OES_texture_buffer,
OES_texture_cube_map_array,
OES_texture_storage_multisample_2d_array,
OVR_multiview,
OVR_multiview2,
WEBGL_video_texture,
};
enum TBehavior : uint8_t
{
EBhRequire,
EBhEnable,
EBhWarn,
EBhDisable,
EBhUndefined
};
const char *GetExtensionNameString(TExtension extension);
TExtension GetExtensionByName(const char *extension);
const char *GetBehaviorString(TBehavior b);
// Mapping between extension id and behavior.
typedef std::map<TExtension, TBehavior> TExtensionBehavior;
bool IsExtensionEnabled(const TExtensionBehavior &extBehavior, TExtension extension);
} // namespace sh
#endif // COMPILER_TRANSLATOR_EXTENSIONBEHAVIOR_H_