OLD | NEW |
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 <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
11 #include "base/strings/string_number_conversions.h" | 11 #include "base/strings/string_number_conversions.h" |
12 #include "gpu/command_buffer/common/gles2_cmd_format.h" | 12 #include "gpu/command_buffer/common/gles2_cmd_format.h" |
13 #include "gpu/command_buffer/common/gles2_cmd_utils.h" | 13 #include "gpu/command_buffer/common/gles2_cmd_utils.h" |
14 #include "gpu/command_buffer/common/id_allocator.h" | 14 #include "gpu/command_buffer/common/id_allocator.h" |
15 #include "gpu/command_buffer/service/cmd_buffer_engine.h" | 15 #include "gpu/command_buffer/service/cmd_buffer_engine.h" |
16 #include "gpu/command_buffer/service/context_group.h" | 16 #include "gpu/command_buffer/service/context_group.h" |
17 #include "gpu/command_buffer/service/context_state.h" | 17 #include "gpu/command_buffer/service/context_state.h" |
18 #include "gpu/command_buffer/service/gl_surface_mock.h" | 18 #include "gpu/command_buffer/service/gl_surface_mock.h" |
19 #include "gpu/command_buffer/service/gles2_cmd_decoder_unittest.h" | 19 #include "gpu/command_buffer/service/gles2_cmd_decoder_unittest.h" |
20 #include "gpu/command_buffer/service/image_manager.h" | 20 #include "gpu/command_buffer/service/image_manager.h" |
21 #include "gpu/command_buffer/service/mailbox_manager.h" | 21 #include "gpu/command_buffer/service/mailbox_manager.h" |
22 #include "gpu/command_buffer/service/mocks.h" | 22 #include "gpu/command_buffer/service/mocks.h" |
23 #include "gpu/command_buffer/service/program_manager.h" | 23 #include "gpu/command_buffer/service/program_manager.h" |
| 24 #include "gpu/command_buffer/service/service_discardable_manager.h" |
24 #include "gpu/command_buffer/service/test_helper.h" | 25 #include "gpu/command_buffer/service/test_helper.h" |
25 #include "gpu/config/gpu_switches.h" | 26 #include "gpu/config/gpu_switches.h" |
26 #include "testing/gtest/include/gtest/gtest.h" | 27 #include "testing/gtest/include/gtest/gtest.h" |
27 #include "ui/gl/gl_image_stub.h" | 28 #include "ui/gl/gl_image_stub.h" |
28 #include "ui/gl/gl_implementation.h" | 29 #include "ui/gl/gl_implementation.h" |
29 #include "ui/gl/gl_mock.h" | 30 #include "ui/gl/gl_mock.h" |
30 #include "ui/gl/gl_surface_stub.h" | 31 #include "ui/gl/gl_surface_stub.h" |
31 | 32 |
32 #if !defined(GL_DEPTH24_STENCIL8) | 33 #if !defined(GL_DEPTH24_STENCIL8) |
33 #define GL_DEPTH24_STENCIL8 0x88F0 | 34 #define GL_DEPTH24_STENCIL8 0x88F0 |
(...skipping 4818 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4852 typedef GetTexParameteriv::Result Result; | 4853 typedef GetTexParameteriv::Result Result; |
4853 Result* result = static_cast<Result*>(shared_memory_address_); | 4854 Result* result = static_cast<Result*>(shared_memory_address_); |
4854 result->size = 0; | 4855 result->size = 0; |
4855 GetTexParameteriv cmd; | 4856 GetTexParameteriv cmd; |
4856 cmd.Init(kTarget, kSwizzleParam, shared_memory_id_, shared_memory_offset_); | 4857 cmd.Init(kTarget, kSwizzleParam, shared_memory_id_, shared_memory_offset_); |
4857 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 4858 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
4858 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); | 4859 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); |
4859 } | 4860 } |
4860 } | 4861 } |
4861 | 4862 |
| 4863 TEST_P(GLES2DecoderTest, TestInitDiscardableTexture) { |
| 4864 EXPECT_EQ(0u, group().discardable_manager()->NumCacheEntriesForTesting()); |
| 4865 DoInitializeDiscardableTextureCHROMIUM(client_texture_id_); |
| 4866 EXPECT_EQ(1u, group().discardable_manager()->NumCacheEntriesForTesting()); |
| 4867 } |
| 4868 |
| 4869 TEST_P(GLES2DecoderTest, TestInitInvalidDiscardableTexture) { |
| 4870 EXPECT_EQ(0u, group().discardable_manager()->NumCacheEntriesForTesting()); |
| 4871 DoInitializeDiscardableTextureCHROMIUM(0); |
| 4872 EXPECT_EQ(0u, group().discardable_manager()->NumCacheEntriesForTesting()); |
| 4873 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); |
| 4874 } |
| 4875 |
| 4876 TEST_P(GLES2DecoderTest, TestUnlockDiscardableTexture) { |
| 4877 const ContextGroup& context_group = group(); |
| 4878 EXPECT_EQ(0u, group().discardable_manager()->NumCacheEntriesForTesting()); |
| 4879 DoInitializeDiscardableTextureCHROMIUM(client_texture_id_); |
| 4880 EXPECT_TRUE(context_group.discardable_manager()->IsEntryLockedForTesting( |
| 4881 client_texture_id_, &context_group)); |
| 4882 DoUnlockDiscardableTextureCHROMIUM(client_texture_id_); |
| 4883 EXPECT_FALSE(context_group.discardable_manager()->IsEntryLockedForTesting( |
| 4884 client_texture_id_, &context_group)); |
| 4885 } |
| 4886 |
| 4887 TEST_P(GLES2DecoderTest, TestDeleteDiscardableTexture) { |
| 4888 EXPECT_EQ(0u, group().discardable_manager()->NumCacheEntriesForTesting()); |
| 4889 DoInitializeDiscardableTextureCHROMIUM(client_texture_id_); |
| 4890 EXPECT_EQ(1u, group().discardable_manager()->NumCacheEntriesForTesting()); |
| 4891 DoDeleteTexture(client_texture_id_, kServiceTextureId); |
| 4892 EXPECT_EQ(0u, group().discardable_manager()->NumCacheEntriesForTesting()); |
| 4893 } |
| 4894 |
4862 // TODO(gman): Complete this test. | 4895 // TODO(gman): Complete this test. |
4863 // TEST_P(GLES2DecoderTest, CompressedTexImage2DGLError) { | 4896 // TEST_P(GLES2DecoderTest, CompressedTexImage2DGLError) { |
4864 // } | 4897 // } |
4865 | 4898 |
4866 // TODO(gman): CompressedTexImage2D | 4899 // TODO(gman): CompressedTexImage2D |
4867 | 4900 |
4868 // TODO(gman): CompressedTexImage2DImmediate | 4901 // TODO(gman): CompressedTexImage2DImmediate |
4869 | 4902 |
4870 // TODO(gman): CompressedTexSubImage2DImmediate | 4903 // TODO(gman): CompressedTexSubImage2DImmediate |
4871 | 4904 |
4872 // TODO(gman): TexImage2D | 4905 // TODO(gman): TexImage2D |
4873 | 4906 |
4874 // TODO(gman): TexImage2DImmediate | 4907 // TODO(gman): TexImage2DImmediate |
4875 | 4908 |
4876 // TODO(gman): TexSubImage2DImmediate | 4909 // TODO(gman): TexSubImage2DImmediate |
4877 | 4910 |
4878 } // namespace gles2 | 4911 } // namespace gles2 |
4879 } // namespace gpu | 4912 } // namespace gpu |
OLD | NEW |