| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 <memory> |
| 6 |
| 5 #include "gpu/vulkan/tests/native_window.h" | 7 #include "gpu/vulkan/tests/native_window.h" |
| 6 #include "gpu/vulkan/vulkan_command_buffer.h" | 8 #include "gpu/vulkan/vulkan_command_buffer.h" |
| 7 #include "gpu/vulkan/vulkan_device_queue.h" | 9 #include "gpu/vulkan/vulkan_device_queue.h" |
| 8 #include "gpu/vulkan/vulkan_render_pass.h" | 10 #include "gpu/vulkan/vulkan_render_pass.h" |
| 9 #include "gpu/vulkan/vulkan_surface.h" | 11 #include "gpu/vulkan/vulkan_surface.h" |
| 10 #include "gpu/vulkan/vulkan_swap_chain.h" | 12 #include "gpu/vulkan/vulkan_swap_chain.h" |
| 11 #include "testing/gtest/include/gtest/gtest.h" | 13 #include "testing/gtest/include/gtest/gtest.h" |
| 12 #include "ui/gfx/geometry/rect.h" | 14 #include "ui/gfx/geometry/rect.h" |
| 13 | 15 |
| 14 // This file tests basic vulkan initialization steps. | 16 // This file tests basic vulkan initialization steps. |
| (...skipping 18 matching lines...) Expand all Loading... |
| 33 | 35 |
| 34 gfx::AcceleratedWidget window() const { return window_; } | 36 gfx::AcceleratedWidget window() const { return window_; } |
| 35 VulkanDeviceQueue* GetDeviceQueue() { return &device_queue_; } | 37 VulkanDeviceQueue* GetDeviceQueue() { return &device_queue_; } |
| 36 | 38 |
| 37 private: | 39 private: |
| 38 VulkanDeviceQueue device_queue_; | 40 VulkanDeviceQueue device_queue_; |
| 39 gfx::AcceleratedWidget window_ = gfx::kNullAcceleratedWidget; | 41 gfx::AcceleratedWidget window_ = gfx::kNullAcceleratedWidget; |
| 40 }; | 42 }; |
| 41 | 43 |
| 42 TEST_F(BasicVulkanTest, BasicVulkanSurface) { | 44 TEST_F(BasicVulkanTest, BasicVulkanSurface) { |
| 43 scoped_ptr<VulkanSurface> surface = | 45 std::unique_ptr<VulkanSurface> surface = |
| 44 VulkanSurface::CreateViewSurface(window()); | 46 VulkanSurface::CreateViewSurface(window()); |
| 45 EXPECT_TRUE(surface); | 47 EXPECT_TRUE(surface); |
| 46 EXPECT_TRUE(surface->Initialize(GetDeviceQueue(), | 48 EXPECT_TRUE(surface->Initialize(GetDeviceQueue(), |
| 47 VulkanSurface::DEFAULT_SURFACE_FORMAT)); | 49 VulkanSurface::DEFAULT_SURFACE_FORMAT)); |
| 48 surface->Destroy(); | 50 surface->Destroy(); |
| 49 } | 51 } |
| 50 | 52 |
| 51 TEST_F(BasicVulkanTest, EmptyVulkanSwaps) { | 53 TEST_F(BasicVulkanTest, EmptyVulkanSwaps) { |
| 52 scoped_ptr<VulkanSurface> surface = | 54 std::unique_ptr<VulkanSurface> surface = |
| 53 VulkanSurface::CreateViewSurface(window()); | 55 VulkanSurface::CreateViewSurface(window()); |
| 54 ASSERT_TRUE(surface); | 56 ASSERT_TRUE(surface); |
| 55 ASSERT_TRUE(surface->Initialize(GetDeviceQueue(), | 57 ASSERT_TRUE(surface->Initialize(GetDeviceQueue(), |
| 56 VulkanSurface::DEFAULT_SURFACE_FORMAT)); | 58 VulkanSurface::DEFAULT_SURFACE_FORMAT)); |
| 57 | 59 |
| 58 // First swap is a special case, call it first to get better errors. | 60 // First swap is a special case, call it first to get better errors. |
| 59 EXPECT_EQ(gfx::SwapResult::SWAP_ACK, surface->SwapBuffers()); | 61 EXPECT_EQ(gfx::SwapResult::SWAP_ACK, surface->SwapBuffers()); |
| 60 | 62 |
| 61 // Also make sure we can swap multiple times. | 63 // Also make sure we can swap multiple times. |
| 62 for (int i = 0; i < 10; ++i) { | 64 for (int i = 0; i < 10; ++i) { |
| 63 EXPECT_EQ(gfx::SwapResult::SWAP_ACK, surface->SwapBuffers()); | 65 EXPECT_EQ(gfx::SwapResult::SWAP_ACK, surface->SwapBuffers()); |
| 64 } | 66 } |
| 65 surface->Finish(); | 67 surface->Finish(); |
| 66 surface->Destroy(); | 68 surface->Destroy(); |
| 67 } | 69 } |
| 68 | 70 |
| 69 TEST_F(BasicVulkanTest, BasicRenderPass) { | 71 TEST_F(BasicVulkanTest, BasicRenderPass) { |
| 70 scoped_ptr<VulkanSurface> surface = | 72 std::unique_ptr<VulkanSurface> surface = |
| 71 VulkanSurface::CreateViewSurface(window()); | 73 VulkanSurface::CreateViewSurface(window()); |
| 72 ASSERT_TRUE(surface); | 74 ASSERT_TRUE(surface); |
| 73 ASSERT_TRUE(surface->Initialize(GetDeviceQueue(), | 75 ASSERT_TRUE(surface->Initialize(GetDeviceQueue(), |
| 74 VulkanSurface::DEFAULT_SURFACE_FORMAT)); | 76 VulkanSurface::DEFAULT_SURFACE_FORMAT)); |
| 75 VulkanSwapChain* swap_chain = surface->GetSwapChain(); | 77 VulkanSwapChain* swap_chain = surface->GetSwapChain(); |
| 76 | 78 |
| 77 VulkanRenderPass::RenderPassData render_pass_data; | 79 VulkanRenderPass::RenderPassData render_pass_data; |
| 78 | 80 |
| 79 // There is a single attachment which transitions present -> color -> present. | 81 // There is a single attachment which transitions present -> color -> present. |
| 80 render_pass_data.attachments.resize(1); | 82 render_pass_data.attachments.resize(1); |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 121 | 123 |
| 122 EXPECT_EQ(gfx::SwapResult::SWAP_ACK, surface->SwapBuffers()); | 124 EXPECT_EQ(gfx::SwapResult::SWAP_ACK, surface->SwapBuffers()); |
| 123 } | 125 } |
| 124 | 126 |
| 125 surface->Finish(); | 127 surface->Finish(); |
| 126 render_pass.Destroy(); | 128 render_pass.Destroy(); |
| 127 surface->Destroy(); | 129 surface->Destroy(); |
| 128 } | 130 } |
| 129 | 131 |
| 130 } // namespace gpu | 132 } // namespace gpu |
| OLD | NEW |