OLD | NEW |
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/common/gles2_cmd_utils.h" | 5 #include "gpu/command_buffer/common/gles2_cmd_utils.h" |
6 | 6 |
7 #include <limits> | 7 #include <limits> |
8 #include <GLES2/gl2.h> | 8 #include <GLES2/gl2.h> |
9 #include <GLES2/gl2ext.h> | 9 #include <GLES2/gl2ext.h> |
10 #include <GLES2/gl2extchromium.h> | 10 #include <GLES2/gl2extchromium.h> |
11 | 11 |
12 #include "testing/gtest/include/gtest/gtest.h" | 12 #include "testing/gtest/include/gtest/gtest.h" |
13 | 13 |
14 namespace gpu { | 14 namespace gpu { |
15 namespace gles2 { | 15 namespace gles2 { |
16 | 16 |
17 class GLES2UtilTest : public testing:: Test { | 17 class GLES2UtilTest : public testing:: Test { |
18 protected: | 18 protected: |
19 GLES2Util util_; | 19 GLES2Util util_; |
20 }; | 20 }; |
21 | 21 |
22 TEST_F(GLES2UtilTest, SafeMultiplyUint32) { | 22 TEST_F(GLES2UtilTest, SafeMultiplyUint32) { |
23 uint32 result = 0; | 23 uint32_t result = 0; |
24 EXPECT_TRUE(SafeMultiplyUint32(2u, 3u, &result)); | 24 EXPECT_TRUE(SafeMultiplyUint32(2u, 3u, &result)); |
25 EXPECT_EQ(6u, result); | 25 EXPECT_EQ(6u, result); |
26 EXPECT_FALSE(SafeMultiplyUint32(0x80000000u, 2u, &result)); | 26 EXPECT_FALSE(SafeMultiplyUint32(0x80000000u, 2u, &result)); |
27 EXPECT_EQ(0u, result); | 27 EXPECT_EQ(0u, result); |
28 EXPECT_TRUE(SafeMultiplyUint32(0x2u, 0x7FFFFFFFu, &result)); | 28 EXPECT_TRUE(SafeMultiplyUint32(0x2u, 0x7FFFFFFFu, &result)); |
29 EXPECT_EQ(0xFFFFFFFEu, result); | 29 EXPECT_EQ(0xFFFFFFFEu, result); |
30 EXPECT_FALSE(SafeMultiplyUint32(2u, 0x80000000u, &result)); | 30 EXPECT_FALSE(SafeMultiplyUint32(2u, 0x80000000u, &result)); |
31 EXPECT_EQ(0u, result); | 31 EXPECT_EQ(0u, result); |
32 } | 32 } |
33 | 33 |
34 TEST_F(GLES2UtilTest, SafeAddUint32) { | 34 TEST_F(GLES2UtilTest, SafeAddUint32) { |
35 uint32 result = 0; | 35 uint32_t result = 0; |
36 EXPECT_TRUE(SafeAddUint32(2u, 3u, &result)); | 36 EXPECT_TRUE(SafeAddUint32(2u, 3u, &result)); |
37 EXPECT_EQ(5u, result); | 37 EXPECT_EQ(5u, result); |
38 EXPECT_FALSE(SafeAddUint32(0x80000000u, 0x80000000u, &result)); | 38 EXPECT_FALSE(SafeAddUint32(0x80000000u, 0x80000000u, &result)); |
39 EXPECT_EQ(0u, result); | 39 EXPECT_EQ(0u, result); |
40 EXPECT_TRUE(SafeAddUint32(0xFFFFFFFEu, 0x1u, &result)); | 40 EXPECT_TRUE(SafeAddUint32(0xFFFFFFFEu, 0x1u, &result)); |
41 EXPECT_EQ(0xFFFFFFFFu, result); | 41 EXPECT_EQ(0xFFFFFFFFu, result); |
42 EXPECT_FALSE(SafeAddUint32(0xFFFFFFFEu, 0x2u, &result)); | 42 EXPECT_FALSE(SafeAddUint32(0xFFFFFFFEu, 0x2u, &result)); |
43 EXPECT_EQ(0u, result); | 43 EXPECT_EQ(0u, result); |
44 EXPECT_TRUE(SafeAddUint32(0x1u, 0xFFFFFFFEu, &result)); | 44 EXPECT_TRUE(SafeAddUint32(0x1u, 0xFFFFFFFEu, &result)); |
45 EXPECT_EQ(0xFFFFFFFFu, result); | 45 EXPECT_EQ(0xFFFFFFFFu, result); |
46 EXPECT_FALSE(SafeAddUint32(0x2u, 0xFFFFFFFEu, &result)); | 46 EXPECT_FALSE(SafeAddUint32(0x2u, 0xFFFFFFFEu, &result)); |
47 EXPECT_EQ(0u, result); | 47 EXPECT_EQ(0u, result); |
48 } | 48 } |
49 | 49 |
50 TEST_F(GLES2UtilTest, SafeAddInt32) { | 50 TEST_F(GLES2UtilTest, SafeAddInt32) { |
51 int32 result = 0; | 51 int32_t result = 0; |
52 const int32 kMax = std::numeric_limits<int32>::max(); | 52 const int32_t kMax = std::numeric_limits<int32_t>::max(); |
53 const int32 kMin = std::numeric_limits<int32>::min(); | 53 const int32_t kMin = std::numeric_limits<int32_t>::min(); |
54 EXPECT_TRUE(SafeAddInt32(2, 3, &result)); | 54 EXPECT_TRUE(SafeAddInt32(2, 3, &result)); |
55 EXPECT_EQ(5, result); | 55 EXPECT_EQ(5, result); |
56 EXPECT_FALSE(SafeAddInt32(kMax, 1, &result)); | 56 EXPECT_FALSE(SafeAddInt32(kMax, 1, &result)); |
57 EXPECT_EQ(0, result); | 57 EXPECT_EQ(0, result); |
58 EXPECT_TRUE(SafeAddInt32(kMin + 1, -1, &result)); | 58 EXPECT_TRUE(SafeAddInt32(kMin + 1, -1, &result)); |
59 EXPECT_EQ(kMin, result); | 59 EXPECT_EQ(kMin, result); |
60 EXPECT_FALSE(SafeAddInt32(kMin, -1, &result)); | 60 EXPECT_FALSE(SafeAddInt32(kMin, -1, &result)); |
61 EXPECT_EQ(0, result); | 61 EXPECT_EQ(0, result); |
62 EXPECT_TRUE(SafeAddInt32(kMax - 1, 1, &result)); | 62 EXPECT_TRUE(SafeAddInt32(kMax - 1, 1, &result)); |
63 EXPECT_EQ(kMax, result); | 63 EXPECT_EQ(kMax, result); |
(...skipping 18 matching lines...) Expand all Loading... |
82 util_.set_num_shader_binary_formats(2); | 82 util_.set_num_shader_binary_formats(2); |
83 | 83 |
84 EXPECT_EQ(1, util_.GLGetNumValuesReturned(GL_COMPRESSED_TEXTURE_FORMATS)); | 84 EXPECT_EQ(1, util_.GLGetNumValuesReturned(GL_COMPRESSED_TEXTURE_FORMATS)); |
85 EXPECT_EQ(2, util_.GLGetNumValuesReturned(GL_SHADER_BINARY_FORMATS)); | 85 EXPECT_EQ(2, util_.GLGetNumValuesReturned(GL_SHADER_BINARY_FORMATS)); |
86 | 86 |
87 EXPECT_EQ(1, util_.num_compressed_texture_formats()); | 87 EXPECT_EQ(1, util_.num_compressed_texture_formats()); |
88 EXPECT_EQ(2, util_.num_shader_binary_formats()); | 88 EXPECT_EQ(2, util_.num_shader_binary_formats()); |
89 } | 89 } |
90 | 90 |
91 TEST_F(GLES2UtilTest, ComputeImageDataSizesFormats) { | 91 TEST_F(GLES2UtilTest, ComputeImageDataSizesFormats) { |
92 const uint32 kWidth = 16; | 92 const uint32_t kWidth = 16; |
93 const uint32 kHeight = 12; | 93 const uint32_t kHeight = 12; |
94 uint32 size; | 94 uint32_t size; |
95 uint32 unpadded_row_size; | 95 uint32_t unpadded_row_size; |
96 uint32 padded_row_size; | 96 uint32_t padded_row_size; |
97 EXPECT_TRUE(GLES2Util::ComputeImageDataSizes( | 97 EXPECT_TRUE(GLES2Util::ComputeImageDataSizes( |
98 kWidth, kHeight, GL_RGB, GL_UNSIGNED_BYTE, 1, &size, &unpadded_row_size, | 98 kWidth, kHeight, GL_RGB, GL_UNSIGNED_BYTE, 1, &size, &unpadded_row_size, |
99 &padded_row_size)); | 99 &padded_row_size)); |
100 EXPECT_EQ(kWidth * kHeight * 3, size); | 100 EXPECT_EQ(kWidth * kHeight * 3, size); |
101 EXPECT_EQ(kWidth * 3, padded_row_size); | 101 EXPECT_EQ(kWidth * 3, padded_row_size); |
102 EXPECT_EQ(padded_row_size, unpadded_row_size); | 102 EXPECT_EQ(padded_row_size, unpadded_row_size); |
103 EXPECT_TRUE(GLES2Util::ComputeImageDataSizes( | 103 EXPECT_TRUE(GLES2Util::ComputeImageDataSizes( |
104 kWidth, kHeight, GL_RGBA, GL_UNSIGNED_BYTE, 1, &size, &unpadded_row_size, | 104 kWidth, kHeight, GL_RGBA, GL_UNSIGNED_BYTE, 1, &size, &unpadded_row_size, |
105 &padded_row_size)); | 105 &padded_row_size)); |
106 EXPECT_EQ(kWidth * kHeight * 4, size); | 106 EXPECT_EQ(kWidth * kHeight * 4, size); |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
139 EXPECT_TRUE(GLES2Util::ComputeImageDataSizes( | 139 EXPECT_TRUE(GLES2Util::ComputeImageDataSizes( |
140 kWidth, kHeight, GL_DEPTH_STENCIL_OES, GL_UNSIGNED_INT_24_8_OES, 1, | 140 kWidth, kHeight, GL_DEPTH_STENCIL_OES, GL_UNSIGNED_INT_24_8_OES, 1, |
141 &size, &unpadded_row_size, | 141 &size, &unpadded_row_size, |
142 &padded_row_size)); | 142 &padded_row_size)); |
143 EXPECT_EQ(kWidth * kHeight * 4, size); | 143 EXPECT_EQ(kWidth * kHeight * 4, size); |
144 EXPECT_EQ(kWidth * 4, padded_row_size); | 144 EXPECT_EQ(kWidth * 4, padded_row_size); |
145 EXPECT_EQ(padded_row_size, unpadded_row_size); | 145 EXPECT_EQ(padded_row_size, unpadded_row_size); |
146 } | 146 } |
147 | 147 |
148 TEST_F(GLES2UtilTest, ComputeImageDataSizeTypes) { | 148 TEST_F(GLES2UtilTest, ComputeImageDataSizeTypes) { |
149 const uint32 kWidth = 16; | 149 const uint32_t kWidth = 16; |
150 const uint32 kHeight = 12; | 150 const uint32_t kHeight = 12; |
151 uint32 size; | 151 uint32_t size; |
152 uint32 unpadded_row_size; | 152 uint32_t unpadded_row_size; |
153 uint32 padded_row_size; | 153 uint32_t padded_row_size; |
154 EXPECT_TRUE(GLES2Util::ComputeImageDataSizes( | 154 EXPECT_TRUE(GLES2Util::ComputeImageDataSizes( |
155 kWidth, kHeight, GL_RGBA, GL_UNSIGNED_BYTE, 1, &size, &unpadded_row_size, | 155 kWidth, kHeight, GL_RGBA, GL_UNSIGNED_BYTE, 1, &size, &unpadded_row_size, |
156 &padded_row_size)); | 156 &padded_row_size)); |
157 EXPECT_EQ(kWidth * kHeight * 4, size); | 157 EXPECT_EQ(kWidth * kHeight * 4, size); |
158 EXPECT_EQ(kWidth * 4, padded_row_size); | 158 EXPECT_EQ(kWidth * 4, padded_row_size); |
159 EXPECT_EQ(padded_row_size, unpadded_row_size); | 159 EXPECT_EQ(padded_row_size, unpadded_row_size); |
160 EXPECT_TRUE(GLES2Util::ComputeImageDataSizes( | 160 EXPECT_TRUE(GLES2Util::ComputeImageDataSizes( |
161 kWidth, kHeight, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4, 1, &size, | 161 kWidth, kHeight, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4, 1, &size, |
162 &unpadded_row_size, &padded_row_size)); | 162 &unpadded_row_size, &padded_row_size)); |
163 EXPECT_EQ(kWidth * kHeight * 2, size); | 163 EXPECT_EQ(kWidth * kHeight * 2, size); |
(...skipping 13 matching lines...) Expand all Loading... |
177 EXPECT_EQ(padded_row_size, unpadded_row_size); | 177 EXPECT_EQ(padded_row_size, unpadded_row_size); |
178 EXPECT_TRUE(GLES2Util::ComputeImageDataSizes( | 178 EXPECT_TRUE(GLES2Util::ComputeImageDataSizes( |
179 kWidth, kHeight, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, 1, &size, | 179 kWidth, kHeight, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, 1, &size, |
180 &unpadded_row_size, &padded_row_size)); | 180 &unpadded_row_size, &padded_row_size)); |
181 EXPECT_EQ(kWidth * kHeight * 4, size); | 181 EXPECT_EQ(kWidth * kHeight * 4, size); |
182 EXPECT_EQ(kWidth * 4, padded_row_size); | 182 EXPECT_EQ(kWidth * 4, padded_row_size); |
183 EXPECT_EQ(padded_row_size, unpadded_row_size); | 183 EXPECT_EQ(padded_row_size, unpadded_row_size); |
184 } | 184 } |
185 | 185 |
186 TEST_F(GLES2UtilTest, ComputeImageDataSizesUnpackAlignment) { | 186 TEST_F(GLES2UtilTest, ComputeImageDataSizesUnpackAlignment) { |
187 const uint32 kWidth = 19; | 187 const uint32_t kWidth = 19; |
188 const uint32 kHeight = 12; | 188 const uint32_t kHeight = 12; |
189 uint32 size; | 189 uint32_t size; |
190 uint32 unpadded_row_size; | 190 uint32_t unpadded_row_size; |
191 uint32 padded_row_size; | 191 uint32_t padded_row_size; |
192 EXPECT_TRUE(GLES2Util::ComputeImageDataSizes( | 192 EXPECT_TRUE(GLES2Util::ComputeImageDataSizes( |
193 kWidth, kHeight, GL_RGB, GL_UNSIGNED_BYTE, 1, &size, &unpadded_row_size, | 193 kWidth, kHeight, GL_RGB, GL_UNSIGNED_BYTE, 1, &size, &unpadded_row_size, |
194 &padded_row_size)); | 194 &padded_row_size)); |
195 EXPECT_EQ(kWidth * kHeight * 3, size); | 195 EXPECT_EQ(kWidth * kHeight * 3, size); |
196 EXPECT_EQ(kWidth * 3, unpadded_row_size); | 196 EXPECT_EQ(kWidth * 3, unpadded_row_size); |
197 EXPECT_EQ(kWidth * 3, padded_row_size); | 197 EXPECT_EQ(kWidth * 3, padded_row_size); |
198 EXPECT_TRUE(GLES2Util::ComputeImageDataSizes( | 198 EXPECT_TRUE(GLES2Util::ComputeImageDataSizes( |
199 kWidth, kHeight, GL_RGB, GL_UNSIGNED_BYTE, 2, &size, &unpadded_row_size, | 199 kWidth, kHeight, GL_RGB, GL_UNSIGNED_BYTE, 2, &size, &unpadded_row_size, |
200 &padded_row_size)); | 200 &padded_row_size)); |
201 EXPECT_EQ((kWidth * 3 + 1) * (kHeight - 1) + | 201 EXPECT_EQ((kWidth * 3 + 1) * (kHeight - 1) + |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
297 CheckParseUniformName("u_name[020]", true, 6u, 20, true); | 297 CheckParseUniformName("u_name[020]", true, 6u, 20, true); |
298 CheckParseUniformName("u_name[0][0]", true, 9u, 0, true); | 298 CheckParseUniformName("u_name[0][0]", true, 9u, 0, true); |
299 CheckParseUniformName("u_name[3][2]", true, 9u, 2, true); | 299 CheckParseUniformName("u_name[3][2]", true, 9u, 2, true); |
300 CheckParseUniformName("u_name[03][02]", true, 10u, 2, true); | 300 CheckParseUniformName("u_name[03][02]", true, 10u, 2, true); |
301 CheckParseUniformName("u_name[30][20]", true, 10u, 20, true); | 301 CheckParseUniformName("u_name[30][20]", true, 10u, 20, true); |
302 CheckParseUniformName("u_name[030][020]", true, 11u, 20, true); | 302 CheckParseUniformName("u_name[030][020]", true, 11u, 20, true); |
303 } | 303 } |
304 | 304 |
305 } // namespace gles2 | 305 } // namespace gles2 |
306 } // namespace gpu | 306 } // namespace gpu |
OLD | NEW |