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

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

Issue 12210129: gpu: Add the ability to wait on upload completion. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix logging. Created 7 years, 9 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/atomicops.h" 7 #include "base/atomicops.h"
8 #include "gpu/command_buffer/common/gles2_cmd_format.h" 8 #include "gpu/command_buffer/common/gles2_cmd_format.h"
9 #include "gpu/command_buffer/common/gles2_cmd_utils.h" 9 #include "gpu/command_buffer/common/gles2_cmd_utils.h"
10 #include "gpu/command_buffer/common/id_allocator.h" 10 #include "gpu/command_buffer/common/id_allocator.h"
(...skipping 7961 matching lines...) Expand 10 before | Expand all | Expand 10 after
7972 decoder_->SetAsyncPixelTransferDelegate(delegate); 7972 decoder_->SetAsyncPixelTransferDelegate(delegate);
7973 StrictMock<gfx::MockAsyncPixelTransferState>* state = NULL; 7973 StrictMock<gfx::MockAsyncPixelTransferState>* state = NULL;
7974 7974
7975 // Tex(Sub)Image2D upload commands. 7975 // Tex(Sub)Image2D upload commands.
7976 AsyncTexImage2DCHROMIUM teximage_cmd; 7976 AsyncTexImage2DCHROMIUM teximage_cmd;
7977 teximage_cmd.Init(GL_TEXTURE_2D, 0, GL_RGBA, 8, 8, 0, GL_RGBA, 7977 teximage_cmd.Init(GL_TEXTURE_2D, 0, GL_RGBA, 8, 8, 0, GL_RGBA,
7978 GL_UNSIGNED_BYTE, kSharedMemoryId, kSharedMemoryOffset); 7978 GL_UNSIGNED_BYTE, kSharedMemoryId, kSharedMemoryOffset);
7979 AsyncTexSubImage2DCHROMIUM texsubimage_cmd; 7979 AsyncTexSubImage2DCHROMIUM texsubimage_cmd;
7980 texsubimage_cmd.Init(GL_TEXTURE_2D, 0, 0, 0, 8, 8, GL_RGBA, 7980 texsubimage_cmd.Init(GL_TEXTURE_2D, 0, 0, 0, 8, 8, GL_RGBA,
7981 GL_UNSIGNED_BYTE, kSharedMemoryId, kSharedMemoryOffset); 7981 GL_UNSIGNED_BYTE, kSharedMemoryId, kSharedMemoryOffset);
7982 WaitAsyncTexImage2DCHROMIUM wait_cmd;
7983 wait_cmd.Init(GL_TEXTURE_2D);
7982 gfx::AsyncTexImage2DParams teximage_params = 7984 gfx::AsyncTexImage2DParams teximage_params =
7983 {GL_TEXTURE_2D, 0, GL_RGBA, 8, 8, 0, GL_RGBA, GL_UNSIGNED_BYTE}; 7985 {GL_TEXTURE_2D, 0, GL_RGBA, 8, 8, 0, GL_RGBA, GL_UNSIGNED_BYTE};
7984 7986
7985 // No transfer state exists initially. 7987 // No transfer state exists initially.
7986 EXPECT_FALSE(info->GetAsyncTransferState()); 7988 EXPECT_FALSE(info->GetAsyncTransferState());
7987 7989
7988 // AsyncTexImage2D 7990 // AsyncTexImage2D
7989 { 7991 {
7990 // Create transfer state since it doesn't exist. 7992 // Create transfer state since it doesn't exist.
7991 EXPECT_CALL(*delegate, CreateRawPixelTransferState(kServiceTextureId)) 7993 EXPECT_CALL(*delegate, CreateRawPixelTransferState(kServiceTextureId))
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
8078 .WillOnce(Return(true)) 8080 .WillOnce(Return(true))
8079 .RetiresOnSaturation(); 8081 .RetiresOnSaturation();
8080 // No async call, command fails. 8082 // No async call, command fails.
8081 EXPECT_EQ(error::kNoError, ExecuteCmd(texsubimage_cmd)); 8083 EXPECT_EQ(error::kNoError, ExecuteCmd(texsubimage_cmd));
8082 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); 8084 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
8083 EXPECT_TRUE(info->GetAsyncTransferState()); 8085 EXPECT_TRUE(info->GetAsyncTransferState());
8084 EXPECT_TRUE(info->IsImmutable()); 8086 EXPECT_TRUE(info->IsImmutable());
8085 EXPECT_TRUE(info->SafeToRenderFrom()); 8087 EXPECT_TRUE(info->SafeToRenderFrom());
8086 } 8088 }
8087 8089
8090 // WaitAsyncTexSubImage2D
8091 {
8092 // Command succeeds.
8093 EXPECT_CALL(*delegate, WaitForTransferCompletion(state));
8094 EXPECT_EQ(error::kNoError, ExecuteCmd(wait_cmd));
8095 EXPECT_EQ(GL_NO_ERROR, GetGLError());
8096 }
8097
8088 decoder_->SetAsyncPixelTransferDelegate(NULL); 8098 decoder_->SetAsyncPixelTransferDelegate(NULL);
8089 info->SetAsyncTransferState(scoped_ptr<gfx::AsyncPixelTransferState>()); 8099 info->SetAsyncTransferState(scoped_ptr<gfx::AsyncPixelTransferState>());
8090 } 8100 }
8091 8101
8092 namespace { 8102 namespace {
8093 8103
8094 class SizeOnlyMemoryTracker : public MemoryTracker { 8104 class SizeOnlyMemoryTracker : public MemoryTracker {
8095 public: 8105 public:
8096 SizeOnlyMemoryTracker() { 8106 SizeOnlyMemoryTracker() {
8097 // These are the default textures. 1 for TEXTURE_2D and 6 faces for 8107 // These are the default textures. 1 for TEXTURE_2D and 6 faces for
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after
8372 // TODO(gman): TexImage2DImmediate 8382 // TODO(gman): TexImage2DImmediate
8373 8383
8374 // TODO(gman): TexSubImage2DImmediate 8384 // TODO(gman): TexSubImage2DImmediate
8375 8385
8376 // TODO(gman): UseProgram 8386 // TODO(gman): UseProgram
8377 8387
8378 // TODO(gman): SwapBuffers 8388 // TODO(gman): SwapBuffers
8379 8389
8380 } // namespace gles2 8390 } // namespace gles2
8381 } // namespace gpu 8391 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/gles2_cmd_decoder.cc ('k') | gpu/command_buffer/service/gles2_cmd_decoder_unittest_3_autogen.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698