Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1391)

Unified Diff: gpu/command_buffer/service/test_helper.cc

Issue 1335873002: Initialize default texture for GL_TEXTURE_3D and GL_TEXTURE_2D_ARRAY (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix gpu_unittests Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: gpu/command_buffer/service/test_helper.cc
diff --git a/gpu/command_buffer/service/test_helper.cc b/gpu/command_buffer/service/test_helper.cc
index c3efa89204d5a794337be84ec63c1a6c9f54683f..5f684f37d82335703b2ff668a24c7500dde4c537 100644
--- a/gpu/command_buffer/service/test_helper.cc
+++ b/gpu/command_buffer/service/test_helper.cc
@@ -58,6 +58,10 @@ T ConstructShaderVariable(
#ifndef COMPILER_MSVC
const GLuint TestHelper::kServiceBlackTexture2dId;
const GLuint TestHelper::kServiceDefaultTexture2dId;
+const GLuint TestHelper::kServiceBlackTexture3dId;
+const GLuint TestHelper::kServiceDefaultTexture3dId;
+const GLuint TestHelper::kServiceBlackTexture2dArrayId;
+const GLuint TestHelper::kServiceDefaultTexture2dArrayId;
const GLuint TestHelper::kServiceBlackTextureCubemapId;
const GLuint TestHelper::kServiceDefaultTextureCubemapId;
const GLuint TestHelper::kServiceBlackExternalTextureId;
@@ -93,10 +97,18 @@ void TestHelper::SetupTextureInitializationExpectations(
bool needs_initialization = (target != GL_TEXTURE_EXTERNAL_OES);
bool needs_faces = (target == GL_TEXTURE_CUBE_MAP);
+ bool is_3d_or_2d_array_target = (target == GL_TEXTURE_3D ||
+ target == GL_TEXTURE_2D_ARRAY);
static GLuint texture_2d_ids[] = {
kServiceBlackTexture2dId,
kServiceDefaultTexture2dId };
+ static GLuint texture_3d_ids[] = {
+ kServiceBlackTexture3dId,
+ kServiceDefaultTexture3dId };
+ static GLuint texture_2d_array_ids[] = {
+ kServiceBlackTexture2dArrayId,
+ kServiceDefaultTexture2dArrayId };
static GLuint texture_cube_map_ids[] = {
kServiceBlackTextureCubemapId,
kServiceDefaultTextureCubemapId };
@@ -112,6 +124,12 @@ void TestHelper::SetupTextureInitializationExpectations(
case GL_TEXTURE_2D:
texture_ids = &texture_2d_ids[0];
break;
+ case GL_TEXTURE_3D:
+ texture_ids = &texture_3d_ids[0];
+ break;
+ case GL_TEXTURE_2D_ARRAY:
+ texture_ids = &texture_2d_array_ids[0];
+ break;
case GL_TEXTURE_CUBE_MAP:
texture_ids = &texture_cube_map_ids[0];
break;
@@ -152,10 +170,17 @@ void TestHelper::SetupTextureInitializationExpectations(
.RetiresOnSaturation();
}
} else {
- EXPECT_CALL(*gl, TexImage2D(target, 0, GL_RGBA, 1, 1, 0, GL_RGBA,
- GL_UNSIGNED_BYTE, _))
- .Times(1)
- .RetiresOnSaturation();
+ if (is_3d_or_2d_array_target) {
+ EXPECT_CALL(*gl, TexImage3D(target, 0, GL_RGBA, 1, 1, 1, 0, GL_RGBA,
+ GL_UNSIGNED_BYTE, _))
+ .Times(1)
+ .RetiresOnSaturation();
+ } else {
+ EXPECT_CALL(*gl, TexImage2D(target, 0, GL_RGBA, 1, 1, 0, GL_RGBA,
+ GL_UNSIGNED_BYTE, _))
+ .Times(1)
+ .RetiresOnSaturation();
+ }
}
}
}
@@ -166,15 +191,25 @@ void TestHelper::SetupTextureInitializationExpectations(
void TestHelper::SetupTextureManagerInitExpectations(
::gfx::MockGLInterface* gl,
+ const char* gl_version,
const char* extensions,
bool use_default_textures) {
InSequence sequence;
+ gfx::GLVersionInfo gl_info(gl_version, "", extensions);
+
SetupTextureInitializationExpectations(
gl, GL_TEXTURE_2D, use_default_textures);
SetupTextureInitializationExpectations(
gl, GL_TEXTURE_CUBE_MAP, use_default_textures);
+ if (gl_info.is_es3) {
Zhenyao Mo 2015/09/14 21:12:06 This is also incorrect. I assume you want to setu
qiankun 2015/09/15 09:14:59 Done.
+ SetupTextureInitializationExpectations(
+ gl, GL_TEXTURE_3D, use_default_textures);
+ SetupTextureInitializationExpectations(
+ gl, GL_TEXTURE_2D_ARRAY, use_default_textures);
+ }
+
bool ext_image_external = false;
bool arb_texture_rectangle = false;
base::CStringTokenizer t(extensions, extensions + strlen(extensions), " ");
@@ -211,6 +246,12 @@ void TestHelper::SetupTextureDestructionExpectations(
case GL_TEXTURE_2D:
texture_id = kServiceDefaultTexture2dId;
break;
+ case GL_TEXTURE_3D:
+ texture_id = kServiceDefaultTexture3dId;
+ break;
+ case GL_TEXTURE_2D_ARRAY:
+ texture_id = kServiceDefaultTexture2dArrayId;
+ break;
case GL_TEXTURE_CUBE_MAP:
texture_id = kServiceDefaultTextureCubemapId;
break;
@@ -231,12 +272,22 @@ void TestHelper::SetupTextureDestructionExpectations(
void TestHelper::SetupTextureManagerDestructionExpectations(
::gfx::MockGLInterface* gl,
+ const char* gl_version,
Zhenyao Mo 2015/09/14 21:12:06 same here.
qiankun 2015/09/15 09:14:58 Done.
const char* extensions,
bool use_default_textures) {
SetupTextureDestructionExpectations(gl, GL_TEXTURE_2D, use_default_textures);
SetupTextureDestructionExpectations(
gl, GL_TEXTURE_CUBE_MAP, use_default_textures);
+ gfx::GLVersionInfo gl_info(gl_version, "", extensions);
+
+ if (gl_info.is_es3) {
+ SetupTextureDestructionExpectations(
+ gl, GL_TEXTURE_3D, use_default_textures);
+ SetupTextureDestructionExpectations(
+ gl, GL_TEXTURE_2D_ARRAY,use_default_textures);
+ }
+
bool ext_image_external = false;
bool arb_texture_rectangle = false;
base::CStringTokenizer t(extensions, extensions + strlen(extensions), " ");
@@ -260,7 +311,7 @@ void TestHelper::SetupTextureManagerDestructionExpectations(
gl, GL_TEXTURE_RECTANGLE_ARB, use_default_textures);
}
- EXPECT_CALL(*gl, DeleteTextures(4, _))
+ EXPECT_CALL(*gl, DeleteTextures(6, _))
.Times(1)
.RetiresOnSaturation();
}
@@ -343,7 +394,8 @@ void TestHelper::SetupContextGroupInitExpectations(
}
bool use_default_textures = bind_generates_resource;
- SetupTextureManagerInitExpectations(gl, extensions, use_default_textures);
+ SetupTextureManagerInitExpectations(
+ gl, gl_version, extensions, use_default_textures);
}
void TestHelper::SetupFeatureInfoInitExpectations(

Powered by Google App Engine
This is Rietveld 408576698