Commit 0e257558 authored by piman's avatar piman Committed by Commit bot

Enable a lot of extensions to increase fuzzer coverage

Pretend the underlying context (stub) supports most of the extensions we care
about, to make sure we exercise the code paths that are enabled by those.

Ideally we would test with arbitrary combinations of those, but this is a good
first step to increase coverage.

BUG=None
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2299413003
Cr-Commit-Position: refs/heads/master@{#416369}
parent d3918359
...@@ -44,6 +44,41 @@ const size_t kTransferBufferSize = 16384; ...@@ -44,6 +44,41 @@ const size_t kTransferBufferSize = 16384;
const size_t kSmallTransferBufferSize = 16; const size_t kSmallTransferBufferSize = 16;
const size_t kTinyTransferBufferSize = 3; const size_t kTinyTransferBufferSize = 3;
static const char kExtensions[] =
"GL_AMD_compressed_ATC_texture "
"GL_ANGLE_texture_compression_dxt3 "
"GL_ANGLE_texture_compression_dxt5 "
"GL_ANGLE_texture_usage "
"GL_APPLE_ycbcr_422 "
"GL_ARB_texture_rectangle "
"GL_EXT_blend_func_extended "
"GL_EXT_color_buffer_float "
"GL_EXT_disjoint_timer_query "
"GL_EXT_draw_buffers "
"GL_EXT_frag_depth "
"GL_EXT_multisample_compatibility "
"GL_EXT_multisampled_render_to_texture "
"GL_EXT_occlusion_query_boolean "
"GL_EXT_read_format_bgra "
"GL_EXT_shader_texture_lod "
"GL_EXT_texture_compression_s3tc "
"GL_EXT_texture_filter_anisotropic "
"GL_IMG_texture_compression_pvrtc "
"GL_KHR_blend_equation_advanced "
"GL_KHR_blend_equation_advanced_coherent "
"GL_KHR_texture_compression_astc_ldr "
"GL_NV_EGL_stream_consumer_external "
"GL_NV_framebuffer_mixed_samples "
"GL_NV_path_rendering "
"GL_OES_compressed_ETC1_RGB8_texture "
"GL_OES_depth24 "
"GL_OES_EGL_image_external "
"GL_OES_rgb8_rgba8 "
"GL_OES_texture_float "
"GL_OES_texture_float_linear "
"GL_OES_texture_half_float "
"GL_OES_texture_half_float_linear";
class CommandBufferSetup { class CommandBufferSetup {
public: public:
CommandBufferSetup() CommandBufferSetup()
...@@ -62,6 +97,9 @@ class CommandBufferSetup { ...@@ -62,6 +97,9 @@ class CommandBufferSetup {
gpu_preferences_.enable_unsafe_es3_apis = true; gpu_preferences_.enable_unsafe_es3_apis = true;
gl::GLSurfaceTestSupport::InitializeOneOffWithMockBindings(); gl::GLSurfaceTestSupport::InitializeOneOffWithMockBindings();
api_.set_version("OpenGL ES 3.0");
api_.set_extensions(kExtensions);
gl::SetStubGLApi(&api_); gl::SetStubGLApi(&api_);
sync_point_client_ = sync_point_manager_->CreateSyncPointClient( sync_point_client_ = sync_point_manager_->CreateSyncPointClient(
......
...@@ -15,6 +15,11 @@ void GenHelper(GLsizei count, GLuint* objects) { ...@@ -15,6 +15,11 @@ void GenHelper(GLsizei count, GLuint* objects) {
} // anonymous namespace } // anonymous namespace
GLStubApi::GLStubApi()
: version_("OpenGL ES 3.0"), extensions_("GL_EXT_framebuffer_object") {}
GLStubApi::~GLStubApi() = default;
GLenum GLStubApi::glCheckFramebufferStatusEXTFn(GLenum target) { GLenum GLStubApi::glCheckFramebufferStatusEXTFn(GLenum target) {
return GL_FRAMEBUFFER_COMPLETE; return GL_FRAMEBUFFER_COMPLETE;
} }
...@@ -114,6 +119,7 @@ void GLStubApi::glGetIntegervFn(GLenum pname, GLint* params) { ...@@ -114,6 +119,7 @@ void GLStubApi::glGetIntegervFn(GLenum pname, GLint* params) {
*params = 8; *params = 8;
break; break;
case GL_MAX_TEXTURE_SIZE: case GL_MAX_TEXTURE_SIZE:
case GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB:
*params = 2048; *params = 2048;
break; break;
case GL_MAX_CUBE_MAP_TEXTURE_SIZE: case GL_MAX_CUBE_MAP_TEXTURE_SIZE:
...@@ -205,9 +211,9 @@ const GLubyte* GLStubApi::glGetStringFn(GLenum name) { ...@@ -205,9 +211,9 @@ const GLubyte* GLStubApi::glGetStringFn(GLenum name) {
default: default:
return reinterpret_cast<const GLubyte*>(""); return reinterpret_cast<const GLubyte*>("");
case GL_VERSION: case GL_VERSION:
return reinterpret_cast<const GLubyte*>("OpenGL ES 3.0"); return reinterpret_cast<const GLubyte*>(version_.c_str());
case GL_EXTENSIONS: case GL_EXTENSIONS:
return reinterpret_cast<const GLubyte*>("GL_EXT_framebuffer_object"); return reinterpret_cast<const GLubyte*>(extensions_.c_str());
} }
} }
......
...@@ -5,6 +5,8 @@ ...@@ -5,6 +5,8 @@
#ifndef UI_GL_GL_STUB_API_H_ #ifndef UI_GL_GL_STUB_API_H_
#define UI_GL_GL_STUB_API_H_ #define UI_GL_GL_STUB_API_H_
#include <string>
#include "ui/gl/gl_export.h" #include "ui/gl/gl_export.h"
#include "ui/gl/gl_stub_api_base.h" #include "ui/gl/gl_stub_api_base.h"
...@@ -12,6 +14,15 @@ namespace gl { ...@@ -12,6 +14,15 @@ namespace gl {
class GL_EXPORT GLStubApi: public GLStubApiBase { class GL_EXPORT GLStubApi: public GLStubApiBase {
public: public:
GLStubApi();
~GLStubApi() override;
void set_version(std::string version) { version_ = std::move(version); }
void set_extensions(std::string extensions) {
extensions_ = std::move(extensions);
}
GLenum glCheckFramebufferStatusEXTFn(GLenum target) override; GLenum glCheckFramebufferStatusEXTFn(GLenum target) override;
GLuint glCreateProgramFn(void) override; GLuint glCreateProgramFn(void) override;
GLuint glCreateShaderFn(GLenum type) override; GLuint glCreateShaderFn(GLenum type) override;
...@@ -54,6 +65,12 @@ class GL_EXPORT GLStubApi: public GLStubApiBase { ...@@ -54,6 +65,12 @@ class GL_EXPORT GLStubApi: public GLStubApiBase {
GLenum glWaitSyncFn(GLsync sync, GLenum glWaitSyncFn(GLsync sync,
GLbitfield flags, GLbitfield flags,
GLuint64 timeout) override; GLuint64 timeout) override;
private:
std::string version_;
std::string extensions_;
DISALLOW_COPY_AND_ASSIGN(GLStubApi);
}; };
} // namespace gl } // namespace gl
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment