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

Side by Side Diff: cc/test/layer_tree_pixel_resource_test.cc

Issue 2507963003: Pass correct texture hint for GPU raster (Closed)
Patch Set: rebase Created 4 years, 1 month 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
« no previous file with comments | « cc/test/layer_tree_pixel_resource_test.h ('k') | cc/trees/layer_tree_host_impl.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "cc/test/layer_tree_pixel_resource_test.h" 5 #include "cc/test/layer_tree_pixel_resource_test.h"
6 6
7 #include "cc/layers/layer.h" 7 #include "cc/layers/layer.h"
8 #include "cc/output/compositor_frame_sink.h" 8 #include "cc/output/compositor_frame_sink.h"
9 #include "cc/raster/bitmap_raster_buffer_provider.h" 9 #include "cc/raster/bitmap_raster_buffer_provider.h"
10 #include "cc/raster/gpu_raster_buffer_provider.h" 10 #include "cc/raster/gpu_raster_buffer_provider.h"
(...skipping 26 matching lines...) Expand all
37 NOTREACHED(); 37 NOTREACHED();
38 return false; 38 return false;
39 } 39 }
40 40
41 } // namespace 41 } // namespace
42 42
43 LayerTreeHostPixelResourceTest::LayerTreeHostPixelResourceTest( 43 LayerTreeHostPixelResourceTest::LayerTreeHostPixelResourceTest(
44 PixelResourceTestCase test_case) 44 PixelResourceTestCase test_case)
45 : draw_texture_target_(GL_INVALID_VALUE), 45 : draw_texture_target_(GL_INVALID_VALUE),
46 raster_buffer_provider_type_(RASTER_BUFFER_PROVIDER_TYPE_BITMAP), 46 raster_buffer_provider_type_(RASTER_BUFFER_PROVIDER_TYPE_BITMAP),
47 texture_hint_(ResourceProvider::TEXTURE_HINT_IMMUTABLE),
47 initialized_(false), 48 initialized_(false),
48 test_case_(test_case) { 49 test_case_(test_case) {
49 InitializeFromTestCase(test_case); 50 InitializeFromTestCase(test_case);
50 } 51 }
51 52
52 LayerTreeHostPixelResourceTest::LayerTreeHostPixelResourceTest() 53 LayerTreeHostPixelResourceTest::LayerTreeHostPixelResourceTest()
53 : draw_texture_target_(GL_INVALID_VALUE), 54 : draw_texture_target_(GL_INVALID_VALUE),
54 raster_buffer_provider_type_(RASTER_BUFFER_PROVIDER_TYPE_BITMAP), 55 raster_buffer_provider_type_(RASTER_BUFFER_PROVIDER_TYPE_BITMAP),
55 initialized_(false), 56 initialized_(false),
56 test_case_(SOFTWARE) {} 57 test_case_(SOFTWARE) {}
57 58
58 void LayerTreeHostPixelResourceTest::InitializeFromTestCase( 59 void LayerTreeHostPixelResourceTest::InitializeFromTestCase(
59 PixelResourceTestCase test_case) { 60 PixelResourceTestCase test_case) {
60 DCHECK(!initialized_); 61 DCHECK(!initialized_);
61 initialized_ = true; 62 initialized_ = true;
62 switch (test_case) { 63 switch (test_case) {
63 case SOFTWARE: 64 case SOFTWARE:
64 test_type_ = PIXEL_TEST_SOFTWARE; 65 test_type_ = PIXEL_TEST_SOFTWARE;
65 draw_texture_target_ = GL_INVALID_VALUE; 66 draw_texture_target_ = GL_INVALID_VALUE;
66 raster_buffer_provider_type_ = RASTER_BUFFER_PROVIDER_TYPE_BITMAP; 67 raster_buffer_provider_type_ = RASTER_BUFFER_PROVIDER_TYPE_BITMAP;
68 texture_hint_ = ResourceProvider::TEXTURE_HINT_IMMUTABLE;
67 return; 69 return;
68 case GL_GPU_RASTER_2D_DRAW: 70 case GL_GPU_RASTER_2D_DRAW:
69 test_type_ = PIXEL_TEST_GL; 71 test_type_ = PIXEL_TEST_GL;
70 draw_texture_target_ = GL_TEXTURE_2D; 72 draw_texture_target_ = GL_TEXTURE_2D;
71 raster_buffer_provider_type_ = RASTER_BUFFER_PROVIDER_TYPE_GPU; 73 raster_buffer_provider_type_ = RASTER_BUFFER_PROVIDER_TYPE_GPU;
74 texture_hint_ = ResourceProvider::TEXTURE_HINT_IMMUTABLE_FRAMEBUFFER;
72 return; 75 return;
73 case GL_ONE_COPY_2D_STAGING_2D_DRAW: 76 case GL_ONE_COPY_2D_STAGING_2D_DRAW:
74 test_type_ = PIXEL_TEST_GL; 77 test_type_ = PIXEL_TEST_GL;
75 draw_texture_target_ = GL_TEXTURE_2D; 78 draw_texture_target_ = GL_TEXTURE_2D;
76 raster_buffer_provider_type_ = RASTER_BUFFER_PROVIDER_TYPE_ONE_COPY; 79 raster_buffer_provider_type_ = RASTER_BUFFER_PROVIDER_TYPE_ONE_COPY;
80 texture_hint_ = ResourceProvider::TEXTURE_HINT_IMMUTABLE;
77 return; 81 return;
78 case GL_ONE_COPY_RECT_STAGING_2D_DRAW: 82 case GL_ONE_COPY_RECT_STAGING_2D_DRAW:
79 test_type_ = PIXEL_TEST_GL; 83 test_type_ = PIXEL_TEST_GL;
80 draw_texture_target_ = GL_TEXTURE_2D; 84 draw_texture_target_ = GL_TEXTURE_2D;
81 raster_buffer_provider_type_ = RASTER_BUFFER_PROVIDER_TYPE_ONE_COPY; 85 raster_buffer_provider_type_ = RASTER_BUFFER_PROVIDER_TYPE_ONE_COPY;
86 texture_hint_ = ResourceProvider::TEXTURE_HINT_IMMUTABLE;
82 return; 87 return;
83 case GL_ONE_COPY_EXTERNAL_STAGING_2D_DRAW: 88 case GL_ONE_COPY_EXTERNAL_STAGING_2D_DRAW:
84 test_type_ = PIXEL_TEST_GL; 89 test_type_ = PIXEL_TEST_GL;
85 draw_texture_target_ = GL_TEXTURE_2D; 90 draw_texture_target_ = GL_TEXTURE_2D;
86 raster_buffer_provider_type_ = RASTER_BUFFER_PROVIDER_TYPE_ONE_COPY; 91 raster_buffer_provider_type_ = RASTER_BUFFER_PROVIDER_TYPE_ONE_COPY;
92 texture_hint_ = ResourceProvider::TEXTURE_HINT_IMMUTABLE;
87 return; 93 return;
88 case GL_ZERO_COPY_2D_DRAW: 94 case GL_ZERO_COPY_2D_DRAW:
89 test_type_ = PIXEL_TEST_GL; 95 test_type_ = PIXEL_TEST_GL;
90 draw_texture_target_ = GL_TEXTURE_2D; 96 draw_texture_target_ = GL_TEXTURE_2D;
91 raster_buffer_provider_type_ = RASTER_BUFFER_PROVIDER_TYPE_ZERO_COPY; 97 raster_buffer_provider_type_ = RASTER_BUFFER_PROVIDER_TYPE_ZERO_COPY;
98 texture_hint_ = ResourceProvider::TEXTURE_HINT_IMMUTABLE;
92 return; 99 return;
93 case GL_ZERO_COPY_RECT_DRAW: 100 case GL_ZERO_COPY_RECT_DRAW:
94 test_type_ = PIXEL_TEST_GL; 101 test_type_ = PIXEL_TEST_GL;
95 draw_texture_target_ = GL_TEXTURE_RECTANGLE_ARB; 102 draw_texture_target_ = GL_TEXTURE_RECTANGLE_ARB;
96 raster_buffer_provider_type_ = RASTER_BUFFER_PROVIDER_TYPE_ZERO_COPY; 103 raster_buffer_provider_type_ = RASTER_BUFFER_PROVIDER_TYPE_ZERO_COPY;
104 texture_hint_ = ResourceProvider::TEXTURE_HINT_IMMUTABLE;
97 return; 105 return;
98 case GL_ZERO_COPY_EXTERNAL_DRAW: 106 case GL_ZERO_COPY_EXTERNAL_DRAW:
99 test_type_ = PIXEL_TEST_GL; 107 test_type_ = PIXEL_TEST_GL;
100 draw_texture_target_ = GL_TEXTURE_EXTERNAL_OES; 108 draw_texture_target_ = GL_TEXTURE_EXTERNAL_OES;
101 raster_buffer_provider_type_ = RASTER_BUFFER_PROVIDER_TYPE_ZERO_COPY; 109 raster_buffer_provider_type_ = RASTER_BUFFER_PROVIDER_TYPE_ZERO_COPY;
110 texture_hint_ = ResourceProvider::TEXTURE_HINT_IMMUTABLE;
102 return; 111 return;
103 } 112 }
104 NOTREACHED(); 113 NOTREACHED();
105 } 114 }
106 115
107 void LayerTreeHostPixelResourceTest::CreateResourceAndRasterBufferProvider( 116 void LayerTreeHostPixelResourceTest::CreateResourceAndRasterBufferProvider(
108 LayerTreeHostImpl* host_impl, 117 LayerTreeHostImpl* host_impl,
109 std::unique_ptr<RasterBufferProvider>* raster_buffer_provider, 118 std::unique_ptr<RasterBufferProvider>* raster_buffer_provider,
110 std::unique_ptr<ResourcePool>* resource_pool) { 119 std::unique_ptr<ResourcePool>* resource_pool) {
111 base::SingleThreadTaskRunner* task_runner = 120 base::SingleThreadTaskRunner* task_runner =
112 task_runner_provider()->HasImplThread() 121 task_runner_provider()->HasImplThread()
113 ? task_runner_provider()->ImplThreadTaskRunner() 122 ? task_runner_provider()->ImplThreadTaskRunner()
114 : task_runner_provider()->MainThreadTaskRunner(); 123 : task_runner_provider()->MainThreadTaskRunner();
115 DCHECK(task_runner); 124 DCHECK(task_runner);
116 DCHECK(initialized_); 125 DCHECK(initialized_);
117 126
118 ContextProvider* compositor_context_provider = 127 ContextProvider* compositor_context_provider =
119 host_impl->compositor_frame_sink()->context_provider(); 128 host_impl->compositor_frame_sink()->context_provider();
120 ContextProvider* worker_context_provider = 129 ContextProvider* worker_context_provider =
121 host_impl->compositor_frame_sink()->worker_context_provider(); 130 host_impl->compositor_frame_sink()->worker_context_provider();
122 ResourceProvider* resource_provider = host_impl->resource_provider(); 131 ResourceProvider* resource_provider = host_impl->resource_provider();
123 int max_bytes_per_copy_operation = 1024 * 1024; 132 int max_bytes_per_copy_operation = 1024 * 1024;
124 int max_staging_buffer_usage_in_bytes = 32 * 1024 * 1024; 133 int max_staging_buffer_usage_in_bytes = 32 * 1024 * 1024;
125 134
126 // Create resource pool. 135 // Create resource pool.
127 *resource_pool = ResourcePool::Create(resource_provider, task_runner, 136 *resource_pool =
128 ResourcePool::kDefaultExpirationDelay); 137 ResourcePool::Create(resource_provider, task_runner, texture_hint_,
138 ResourcePool::kDefaultExpirationDelay);
129 139
130 switch (raster_buffer_provider_type_) { 140 switch (raster_buffer_provider_type_) {
131 case RASTER_BUFFER_PROVIDER_TYPE_BITMAP: 141 case RASTER_BUFFER_PROVIDER_TYPE_BITMAP:
132 EXPECT_FALSE(compositor_context_provider); 142 EXPECT_FALSE(compositor_context_provider);
133 EXPECT_EQ(PIXEL_TEST_SOFTWARE, test_type_); 143 EXPECT_EQ(PIXEL_TEST_SOFTWARE, test_type_);
134 144
135 *raster_buffer_provider = 145 *raster_buffer_provider =
136 BitmapRasterBufferProvider::Create(resource_provider); 146 BitmapRasterBufferProvider::Create(resource_provider);
137 break; 147 break;
138 case RASTER_BUFFER_PROVIDER_TYPE_GPU: 148 case RASTER_BUFFER_PROVIDER_TYPE_GPU:
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 if (!IsTestCaseSupported(test_case_)) 181 if (!IsTestCaseSupported(test_case_))
172 return; 182 return;
173 RunPixelTest(test_type_, content_root, file_name); 183 RunPixelTest(test_type_, content_root, file_name);
174 } 184 }
175 185
176 ParameterizedPixelResourceTest::ParameterizedPixelResourceTest() 186 ParameterizedPixelResourceTest::ParameterizedPixelResourceTest()
177 : LayerTreeHostPixelResourceTest(GetParam()) { 187 : LayerTreeHostPixelResourceTest(GetParam()) {
178 } 188 }
179 189
180 } // namespace cc 190 } // namespace cc
OLDNEW
« no previous file with comments | « cc/test/layer_tree_pixel_resource_test.h ('k') | cc/trees/layer_tree_host_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698