Commit 679ae771 authored by Corentin Wallez's avatar Corentin Wallez Committed by Commit Bot

Add more FBO passthrough command decoder unittests

BUG=602737

Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;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
Change-Id: Icd8e5a4c6d1c7ccddbbd591ef22326d2719084f5
Reviewed-on: https://chromium-review.googlesource.com/700989
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: default avatarAntoine Labour <piman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#506853}
parent 78d5a96d
......@@ -363,5 +363,58 @@ TEST_F(GLES2DecoderPassthroughTest, ReadPixelsAsyncError) {
EXPECT_TRUE(GetPendingReadPixels().empty());
}
TEST_F(GLES2DecoderPassthroughTest,
RenderbufferStorageMultisampleEXTNotSupported) {
DoBindRenderbuffer(GL_RENDERBUFFER, kClientRenderbufferId);
// GL_EXT_framebuffer_multisample uses RenderbufferStorageMultisampleCHROMIUM.
RenderbufferStorageMultisampleEXT cmd;
cmd.Init(GL_RENDERBUFFER, 1, GL_RGBA4, 1, 1);
EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd));
}
TEST_F(GLES2DecoderPassthroughTest,
GetFramebufferAttachmentParameterivWithRenderbuffer) {
DoBindFramebuffer(GL_FRAMEBUFFER, kClientFramebufferId);
DoBindRenderbuffer(GL_RENDERBUFFER, kClientRenderbufferId);
DoFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
GL_RENDERBUFFER, kClientRenderbufferId);
GetFramebufferAttachmentParameteriv::Result* result =
static_cast<GetFramebufferAttachmentParameteriv::Result*>(
shared_memory_address_);
result->size = 0;
const GLint* result_value = result->GetData();
GetFramebufferAttachmentParameteriv cmd;
cmd.Init(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME, shared_memory_id_,
shared_memory_offset_);
EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
EXPECT_EQ(GL_NO_ERROR, GetGLError());
EXPECT_EQ(kClientRenderbufferId, static_cast<GLuint>(*result_value));
}
TEST_F(GLES2DecoderPassthroughTest,
GetFramebufferAttachmentParameterivWithTexture) {
DoBindFramebuffer(GL_FRAMEBUFFER, kClientFramebufferId);
DoBindTexture(GL_TEXTURE_2D, kClientTextureId);
DoFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
kClientTextureId, 0);
GetFramebufferAttachmentParameteriv::Result* result =
static_cast<GetFramebufferAttachmentParameteriv::Result*>(
shared_memory_address_);
result->size = 0;
const GLint* result_value = result->GetData();
GetFramebufferAttachmentParameteriv cmd;
cmd.Init(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME, shared_memory_id_,
shared_memory_offset_);
EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
EXPECT_EQ(GL_NO_ERROR, GetGLError());
EXPECT_EQ(kClientTextureId, static_cast<GLuint>(*result_value));
}
} // namespace gles2
} // namespace gpu
......@@ -2395,6 +2395,23 @@ void GLES2DecoderPassthroughTestBase::DoFramebufferTexture2D(
EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
}
void GLES2DecoderPassthroughTestBase::DoFramebufferRenderbuffer(
GLenum target,
GLenum attachment,
GLenum renderbuffertarget,
GLuint renderbuffer) {
cmds::FramebufferRenderbuffer cmd;
cmd.Init(target, attachment, renderbuffertarget, renderbuffer);
EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
}
void GLES2DecoderPassthroughTestBase::DoBindRenderbuffer(GLenum target,
GLuint client_id) {
cmds::BindRenderbuffer cmd;
cmd.Init(target, client_id);
EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
}
// GCC requires these declarations, but MSVC requires they not be present
#ifndef COMPILER_MSVC
const size_t GLES2DecoderPassthroughTestBase::kSharedBufferSize;
......@@ -2406,6 +2423,7 @@ const uint32_t GLES2DecoderPassthroughTestBase::kNewClientId;
const GLuint GLES2DecoderPassthroughTestBase::kClientBufferId;
const GLuint GLES2DecoderPassthroughTestBase::kClientTextureId;
const GLuint GLES2DecoderPassthroughTestBase::kClientFramebufferId;
const GLuint GLES2DecoderPassthroughTestBase::kClientRenderbufferId;
#endif
} // namespace gles2
......
......@@ -934,6 +934,12 @@ class GLES2DecoderPassthroughTestBase : public testing::Test,
GLenum textarget,
GLuint texture_client_id,
GLint level);
void DoFramebufferRenderbuffer(GLenum target,
GLenum attachment,
GLenum renderbuffertarget,
GLuint renderbuffer);
void DoBindRenderbuffer(GLenum target, GLuint client_id);
static const size_t kSharedBufferSize = 2048;
static const uint32_t kSharedMemoryOffset = 132;
......@@ -945,6 +951,7 @@ class GLES2DecoderPassthroughTestBase : public testing::Test,
static const GLuint kClientBufferId = 100;
static const GLuint kClientTextureId = 101;
static const GLuint kClientFramebufferId = 102;
static const GLuint kClientRenderbufferId = 103;
int32_t shared_memory_id_;
uint32_t shared_memory_offset_;
......
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