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

Side by Side Diff: gpu/command_buffer/service/gles2_cmd_decoder_unittest_textures.cc

Issue 299043003: Adding bindless variants mailbox produce/consume (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed feedback Created 6 years, 6 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "gpu/command_buffer/service/gles2_cmd_decoder.h" 5 #include "gpu/command_buffer/service/gles2_cmd_decoder.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/strings/string_number_conversions.h" 8 #include "base/strings/string_number_conversions.h"
9 #include "gpu/command_buffer/common/gles2_cmd_format.h" 9 #include "gpu/command_buffer/common/gles2_cmd_format.h"
10 #include "gpu/command_buffer/common/gles2_cmd_utils.h" 10 #include "gpu/command_buffer/common/gles2_cmd_utils.h"
(...skipping 1913 matching lines...) Expand 10 before | Expand all | Expand 10 after
1924 EXPECT_EQ(2, width); 1924 EXPECT_EQ(2, width);
1925 EXPECT_EQ(4, height); 1925 EXPECT_EQ(4, height);
1926 EXPECT_TRUE(texture->GetLevelType(GL_TEXTURE_2D, 1, &type, &internal_format)); 1926 EXPECT_TRUE(texture->GetLevelType(GL_TEXTURE_2D, 1, &type, &internal_format));
1927 EXPECT_EQ(static_cast<GLenum>(GL_RGBA), internal_format); 1927 EXPECT_EQ(static_cast<GLenum>(GL_RGBA), internal_format);
1928 EXPECT_EQ(static_cast<GLenum>(GL_UNSIGNED_BYTE), type); 1928 EXPECT_EQ(static_cast<GLenum>(GL_UNSIGNED_BYTE), type);
1929 1929
1930 // Service ID is restored. 1930 // Service ID is restored.
1931 EXPECT_EQ(kServiceTextureId, texture->service_id()); 1931 EXPECT_EQ(kServiceTextureId, texture->service_id());
1932 } 1932 }
1933 1933
1934 TEST_P(GLES2DecoderTest, ProduceAndConsumeDirectTextureCHROMIUM) {
1935 Mailbox mailbox = Mailbox::Generate();
1936
1937 DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId);
1938 DoTexImage2D(
1939 GL_TEXTURE_2D, 0, GL_RGBA, 3, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0, 0);
1940 DoTexImage2D(
1941 GL_TEXTURE_2D, 1, GL_RGBA, 2, 4, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0, 0);
Ken Russell (switch to Gerrit) 2014/06/02 22:46:54 Might be worth trying to use a different type and
bajones 2014/06/02 23:31:23 Tests are fairly sparse for these APIs all around,
1942 TextureRef* texture_ref =
1943 group().texture_manager()->GetTexture(client_texture_id_);
1944 ASSERT_TRUE(texture_ref != NULL);
1945 Texture* texture = texture_ref->texture();
1946 EXPECT_EQ(kServiceTextureId, texture->service_id());
1947
1948 ProduceTextureDirectCHROMIUMImmediate& produce_cmd =
1949 *GetImmediateAs<ProduceTextureDirectCHROMIUMImmediate>();
1950 produce_cmd.Init(client_texture_id_, GL_TEXTURE_2D, mailbox.name);
1951 EXPECT_EQ(error::kNoError,
1952 ExecuteImmediateCmd(produce_cmd, sizeof(mailbox.name)));
1953 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1954
1955 // Texture didn't change.
1956 GLsizei width;
1957 GLsizei height;
1958 GLenum type;
1959 GLenum internal_format;
1960
1961 EXPECT_TRUE(texture->GetLevelSize(GL_TEXTURE_2D, 0, &width, &height));
1962 EXPECT_EQ(3, width);
1963 EXPECT_EQ(1, height);
1964 EXPECT_TRUE(texture->GetLevelType(GL_TEXTURE_2D, 0, &type, &internal_format));
1965 EXPECT_EQ(static_cast<GLenum>(GL_RGBA), internal_format);
1966 EXPECT_EQ(static_cast<GLenum>(GL_UNSIGNED_BYTE), type);
1967
1968 EXPECT_TRUE(texture->GetLevelSize(GL_TEXTURE_2D, 1, &width, &height));
1969 EXPECT_EQ(2, width);
1970 EXPECT_EQ(4, height);
1971 EXPECT_TRUE(texture->GetLevelType(GL_TEXTURE_2D, 1, &type, &internal_format));
1972 EXPECT_EQ(static_cast<GLenum>(GL_RGBA), internal_format);
1973 EXPECT_EQ(static_cast<GLenum>(GL_UNSIGNED_BYTE), type);
1974
1975 // Service ID has not changed.
1976 EXPECT_EQ(kServiceTextureId, texture->service_id());
1977
1978 // Consume the texture into a new client ID.
1979 GLuint new_texture_id = kNewClientId;
1980 CreateAndConsumeTextureCHROMIUMImmediate& consume_cmd =
1981 *GetImmediateAs<CreateAndConsumeTextureCHROMIUMImmediate>();
1982 consume_cmd.Init(GL_TEXTURE_2D, new_texture_id, mailbox.name);
1983 EXPECT_EQ(error::kNoError,
1984 ExecuteImmediateCmd(consume_cmd, sizeof(mailbox.name)));
1985 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1986
1987 // Make sure the new client ID is associated with the produced service ID.
1988 texture_ref = group().texture_manager()->GetTexture(new_texture_id);
1989 ASSERT_TRUE(texture_ref != NULL);
1990 texture = texture_ref->texture();
1991 EXPECT_EQ(kServiceTextureId, texture->service_id());
1992
1993 DoBindTexture(GL_TEXTURE_2D, kNewClientId, kServiceTextureId);
1994
1995 // Texture is redefined.
1996 EXPECT_TRUE(texture->GetLevelSize(GL_TEXTURE_2D, 0, &width, &height));
1997 EXPECT_EQ(3, width);
1998 EXPECT_EQ(1, height);
1999 EXPECT_TRUE(texture->GetLevelType(GL_TEXTURE_2D, 0, &type, &internal_format));
2000 EXPECT_EQ(static_cast<GLenum>(GL_RGBA), internal_format);
2001 EXPECT_EQ(static_cast<GLenum>(GL_UNSIGNED_BYTE), type);
2002
2003 EXPECT_TRUE(texture->GetLevelSize(GL_TEXTURE_2D, 1, &width, &height));
2004 EXPECT_EQ(2, width);
2005 EXPECT_EQ(4, height);
2006 EXPECT_TRUE(texture->GetLevelType(GL_TEXTURE_2D, 1, &type, &internal_format));
2007 EXPECT_EQ(static_cast<GLenum>(GL_RGBA), internal_format);
2008 EXPECT_EQ(static_cast<GLenum>(GL_UNSIGNED_BYTE), type);
2009 }
2010
1934 TEST_P(GLES2DecoderManualInitTest, DepthTextureBadArgs) { 2011 TEST_P(GLES2DecoderManualInitTest, DepthTextureBadArgs) {
1935 InitState init; 2012 InitState init;
1936 init.extensions = "GL_ANGLE_depth_texture"; 2013 init.extensions = "GL_ANGLE_depth_texture";
1937 init.gl_version = "opengl es 2.0"; 2014 init.gl_version = "opengl es 2.0";
1938 init.has_depth = true; 2015 init.has_depth = true;
1939 init.has_stencil = true; 2016 init.has_stencil = true;
1940 init.request_depth = true; 2017 init.request_depth = true;
1941 init.request_stencil = true; 2018 init.request_stencil = true;
1942 init.bind_generates_resource = true; 2019 init.bind_generates_resource = true;
1943 InitDecoder(init); 2020 InitDecoder(init);
(...skipping 778 matching lines...) Expand 10 before | Expand all | Expand 10 after
2722 // TODO(gman): CompressedTexSubImage2DImmediate 2799 // TODO(gman): CompressedTexSubImage2DImmediate
2723 2800
2724 // TODO(gman): TexImage2D 2801 // TODO(gman): TexImage2D
2725 2802
2726 // TODO(gman): TexImage2DImmediate 2803 // TODO(gman): TexImage2DImmediate
2727 2804
2728 // TODO(gman): TexSubImage2DImmediate 2805 // TODO(gman): TexSubImage2DImmediate
2729 2806
2730 } // namespace gles2 2807 } // namespace gles2
2731 } // namespace gpu 2808 } // namespace gpu
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698