| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 <GLES2/gl2.h> | 7 #include <GLES2/gl2.h> |
| 8 #include <GLES2/gl2ext.h> | 8 #include <GLES2/gl2ext.h> |
| 9 | 9 |
| 10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
| (...skipping 16 matching lines...) Expand all Loading... |
| 27 util_.set_num_compressed_texture_formats(1); | 27 util_.set_num_compressed_texture_formats(1); |
| 28 util_.set_num_shader_binary_formats(2); | 28 util_.set_num_shader_binary_formats(2); |
| 29 | 29 |
| 30 EXPECT_EQ(1, util_.GLGetNumValuesReturned(GL_COMPRESSED_TEXTURE_FORMATS)); | 30 EXPECT_EQ(1, util_.GLGetNumValuesReturned(GL_COMPRESSED_TEXTURE_FORMATS)); |
| 31 EXPECT_EQ(2, util_.GLGetNumValuesReturned(GL_SHADER_BINARY_FORMATS)); | 31 EXPECT_EQ(2, util_.GLGetNumValuesReturned(GL_SHADER_BINARY_FORMATS)); |
| 32 | 32 |
| 33 EXPECT_EQ(1, util_.num_compressed_texture_formats()); | 33 EXPECT_EQ(1, util_.num_compressed_texture_formats()); |
| 34 EXPECT_EQ(2, util_.num_shader_binary_formats()); | 34 EXPECT_EQ(2, util_.num_shader_binary_formats()); |
| 35 } | 35 } |
| 36 | 36 |
| 37 TEST_F(GLES2UtilTest, ComputeImageDataSizeFormats) { | 37 TEST_F(GLES2UtilTest, ComputeImageDataSizesFormats) { |
| 38 const uint32 kWidth = 16; | 38 const uint32 kWidth = 16; |
| 39 const uint32 kHeight = 12; | 39 const uint32 kHeight = 12; |
| 40 uint32 size; | 40 uint32 size; |
| 41 EXPECT_TRUE(GLES2Util::ComputeImageDataSize( | 41 uint32 unpadded_row_size; |
| 42 kWidth, kHeight, GL_RGB, GL_UNSIGNED_BYTE, 1, &size)); | 42 uint32 padded_row_size; |
| 43 EXPECT_TRUE(GLES2Util::ComputeImageDataSizes( |
| 44 kWidth, kHeight, GL_RGB, GL_UNSIGNED_BYTE, 1, &size, &unpadded_row_size, |
| 45 &padded_row_size)); |
| 43 EXPECT_EQ(kWidth * kHeight * 3, size); | 46 EXPECT_EQ(kWidth * kHeight * 3, size); |
| 44 EXPECT_TRUE(GLES2Util::ComputeImageDataSize( | 47 EXPECT_EQ(kWidth * 3, padded_row_size); |
| 45 kWidth, kHeight, GL_RGBA, GL_UNSIGNED_BYTE, 1, &size)); | 48 EXPECT_EQ(padded_row_size, unpadded_row_size); |
| 49 EXPECT_TRUE(GLES2Util::ComputeImageDataSizes( |
| 50 kWidth, kHeight, GL_RGBA, GL_UNSIGNED_BYTE, 1, &size, &unpadded_row_size, |
| 51 &padded_row_size)); |
| 46 EXPECT_EQ(kWidth * kHeight * 4, size); | 52 EXPECT_EQ(kWidth * kHeight * 4, size); |
| 47 EXPECT_TRUE(GLES2Util::ComputeImageDataSize( | 53 EXPECT_EQ(kWidth * 4, padded_row_size); |
| 48 kWidth, kHeight, GL_LUMINANCE, GL_UNSIGNED_BYTE, 1, &size)); | 54 EXPECT_EQ(padded_row_size, unpadded_row_size); |
| 55 EXPECT_TRUE(GLES2Util::ComputeImageDataSizes( |
| 56 kWidth, kHeight, GL_LUMINANCE, GL_UNSIGNED_BYTE, 1, &size, |
| 57 &unpadded_row_size, &padded_row_size)); |
| 49 EXPECT_EQ(kWidth * kHeight * 1, size); | 58 EXPECT_EQ(kWidth * kHeight * 1, size); |
| 50 EXPECT_TRUE(GLES2Util::ComputeImageDataSize( | 59 EXPECT_EQ(kWidth * 1, padded_row_size); |
| 51 kWidth, kHeight, GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE, 1, &size)); | 60 EXPECT_EQ(padded_row_size, unpadded_row_size); |
| 61 EXPECT_TRUE(GLES2Util::ComputeImageDataSizes( |
| 62 kWidth, kHeight, GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE, 1, &size, |
| 63 &unpadded_row_size, &padded_row_size)); |
| 52 EXPECT_EQ(kWidth * kHeight * 2, size); | 64 EXPECT_EQ(kWidth * kHeight * 2, size); |
| 53 EXPECT_TRUE(GLES2Util::ComputeImageDataSize( | 65 EXPECT_EQ(kWidth * 2, padded_row_size); |
| 54 kWidth, kHeight, GL_BGRA_EXT, GL_UNSIGNED_BYTE, 1, &size)); | 66 EXPECT_EQ(padded_row_size, unpadded_row_size); |
| 67 EXPECT_TRUE(GLES2Util::ComputeImageDataSizes( |
| 68 kWidth, kHeight, GL_BGRA_EXT, GL_UNSIGNED_BYTE, 1, &size, |
| 69 &unpadded_row_size, &padded_row_size)); |
| 55 EXPECT_EQ(kWidth * kHeight * 4, size); | 70 EXPECT_EQ(kWidth * kHeight * 4, size); |
| 56 EXPECT_TRUE(GLES2Util::ComputeImageDataSize( | 71 EXPECT_EQ(kWidth * 4, padded_row_size); |
| 57 kWidth, kHeight, GL_ALPHA, GL_UNSIGNED_BYTE, 1, &size)); | 72 EXPECT_EQ(padded_row_size, unpadded_row_size); |
| 73 EXPECT_TRUE(GLES2Util::ComputeImageDataSizes( |
| 74 kWidth, kHeight, GL_ALPHA, GL_UNSIGNED_BYTE, 1, &size, &unpadded_row_size, |
| 75 &padded_row_size)); |
| 58 EXPECT_EQ(kWidth * kHeight * 1, size); | 76 EXPECT_EQ(kWidth * kHeight * 1, size); |
| 59 EXPECT_TRUE(GLES2Util::ComputeImageDataSize( | 77 EXPECT_EQ(kWidth * 1, padded_row_size); |
| 60 kWidth, kHeight, GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT, 1, &size)); | 78 EXPECT_EQ(padded_row_size, unpadded_row_size); |
| 79 EXPECT_TRUE(GLES2Util::ComputeImageDataSizes( |
| 80 kWidth, kHeight, GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT, 1, &size, |
| 81 &unpadded_row_size, &padded_row_size)); |
| 61 EXPECT_EQ(kWidth * kHeight * 2, size); | 82 EXPECT_EQ(kWidth * kHeight * 2, size); |
| 62 EXPECT_TRUE(GLES2Util::ComputeImageDataSize( | 83 EXPECT_EQ(kWidth * 2, padded_row_size); |
| 84 EXPECT_EQ(padded_row_size, unpadded_row_size); |
| 85 EXPECT_TRUE(GLES2Util::ComputeImageDataSizes( |
| 63 kWidth, kHeight, GL_DEPTH_STENCIL_OES, GL_UNSIGNED_INT_24_8_OES, 1, | 86 kWidth, kHeight, GL_DEPTH_STENCIL_OES, GL_UNSIGNED_INT_24_8_OES, 1, |
| 64 &size)); | 87 &size, &unpadded_row_size, |
| 88 &padded_row_size)); |
| 65 EXPECT_EQ(kWidth * kHeight * 4, size); | 89 EXPECT_EQ(kWidth * kHeight * 4, size); |
| 90 EXPECT_EQ(kWidth * 4, padded_row_size); |
| 91 EXPECT_EQ(padded_row_size, unpadded_row_size); |
| 66 } | 92 } |
| 67 | 93 |
| 68 TEST_F(GLES2UtilTest, ComputeImageDataSizeTypes) { | 94 TEST_F(GLES2UtilTest, ComputeImageDataSizeTypes) { |
| 69 const uint32 kWidth = 16; | 95 const uint32 kWidth = 16; |
| 70 const uint32 kHeight = 12; | 96 const uint32 kHeight = 12; |
| 71 uint32 size; | 97 uint32 size; |
| 72 EXPECT_TRUE(GLES2Util::ComputeImageDataSize( | 98 uint32 unpadded_row_size; |
| 73 kWidth, kHeight, GL_RGBA, GL_UNSIGNED_BYTE, 1, &size)); | 99 uint32 padded_row_size; |
| 100 EXPECT_TRUE(GLES2Util::ComputeImageDataSizes( |
| 101 kWidth, kHeight, GL_RGBA, GL_UNSIGNED_BYTE, 1, &size, &unpadded_row_size, |
| 102 &padded_row_size)); |
| 74 EXPECT_EQ(kWidth * kHeight * 4, size); | 103 EXPECT_EQ(kWidth * kHeight * 4, size); |
| 75 EXPECT_TRUE(GLES2Util::ComputeImageDataSize( | 104 EXPECT_EQ(kWidth * 4, padded_row_size); |
| 76 kWidth, kHeight, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4, 1, &size)); | 105 EXPECT_EQ(padded_row_size, unpadded_row_size); |
| 106 EXPECT_TRUE(GLES2Util::ComputeImageDataSizes( |
| 107 kWidth, kHeight, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4, 1, &size, |
| 108 &unpadded_row_size, &padded_row_size)); |
| 77 EXPECT_EQ(kWidth * kHeight * 2, size); | 109 EXPECT_EQ(kWidth * kHeight * 2, size); |
| 78 EXPECT_TRUE(GLES2Util::ComputeImageDataSize( | 110 EXPECT_EQ(kWidth * 2, padded_row_size); |
| 79 kWidth, kHeight, GL_RGBA, GL_UNSIGNED_SHORT_5_5_5_1, 1, &size)); | 111 EXPECT_EQ(padded_row_size, unpadded_row_size); |
| 112 EXPECT_TRUE(GLES2Util::ComputeImageDataSizes( |
| 113 kWidth, kHeight, GL_RGBA, GL_UNSIGNED_SHORT_5_5_5_1, 1, &size, |
| 114 &unpadded_row_size, &padded_row_size)); |
| 80 EXPECT_EQ(kWidth * kHeight * 2, size); | 115 EXPECT_EQ(kWidth * kHeight * 2, size); |
| 81 EXPECT_TRUE(GLES2Util::ComputeImageDataSize( | 116 EXPECT_EQ(kWidth * 2, padded_row_size); |
| 82 kWidth, kHeight, GL_RGB, GL_UNSIGNED_SHORT_5_6_5, 1, &size)); | 117 EXPECT_EQ(padded_row_size, unpadded_row_size); |
| 118 EXPECT_TRUE(GLES2Util::ComputeImageDataSizes( |
| 119 kWidth, kHeight, GL_RGB, GL_UNSIGNED_SHORT_5_6_5, 1, &size, |
| 120 &unpadded_row_size, &padded_row_size)); |
| 83 EXPECT_EQ(kWidth * kHeight * 2, size); | 121 EXPECT_EQ(kWidth * kHeight * 2, size); |
| 84 EXPECT_TRUE(GLES2Util::ComputeImageDataSize( | 122 EXPECT_EQ(kWidth * 2, padded_row_size); |
| 85 kWidth, kHeight, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, 1, &size)); | 123 EXPECT_EQ(padded_row_size, unpadded_row_size); |
| 124 EXPECT_TRUE(GLES2Util::ComputeImageDataSizes( |
| 125 kWidth, kHeight, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, 1, &size, |
| 126 &unpadded_row_size, &padded_row_size)); |
| 86 EXPECT_EQ(kWidth * kHeight * 4, size); | 127 EXPECT_EQ(kWidth * kHeight * 4, size); |
| 128 EXPECT_EQ(kWidth * 4, padded_row_size); |
| 129 EXPECT_EQ(padded_row_size, unpadded_row_size); |
| 87 } | 130 } |
| 88 | 131 |
| 89 TEST_F(GLES2UtilTest, ComputeImageDataSizeUnpackAlignment) { | 132 TEST_F(GLES2UtilTest, ComputeImageDataSizesUnpackAlignment) { |
| 90 const uint32 kWidth = 19; | 133 const uint32 kWidth = 19; |
| 91 const uint32 kHeight = 12; | 134 const uint32 kHeight = 12; |
| 92 uint32 size; | 135 uint32 size; |
| 93 EXPECT_TRUE(GLES2Util::ComputeImageDataSize( | 136 uint32 unpadded_row_size; |
| 94 kWidth, kHeight, GL_RGB, GL_UNSIGNED_BYTE, 1, &size)); | 137 uint32 padded_row_size; |
| 138 EXPECT_TRUE(GLES2Util::ComputeImageDataSizes( |
| 139 kWidth, kHeight, GL_RGB, GL_UNSIGNED_BYTE, 1, &size, &unpadded_row_size, |
| 140 &padded_row_size)); |
| 95 EXPECT_EQ(kWidth * kHeight * 3, size); | 141 EXPECT_EQ(kWidth * kHeight * 3, size); |
| 96 EXPECT_TRUE(GLES2Util::ComputeImageDataSize( | 142 EXPECT_EQ(kWidth * 3, unpadded_row_size); |
| 97 kWidth, kHeight, GL_RGB, GL_UNSIGNED_BYTE, 2, &size)); | 143 EXPECT_EQ(kWidth * 3, padded_row_size); |
| 144 EXPECT_TRUE(GLES2Util::ComputeImageDataSizes( |
| 145 kWidth, kHeight, GL_RGB, GL_UNSIGNED_BYTE, 2, &size, &unpadded_row_size, |
| 146 &padded_row_size)); |
| 98 EXPECT_EQ((kWidth * 3 + 1) * (kHeight - 1) + | 147 EXPECT_EQ((kWidth * 3 + 1) * (kHeight - 1) + |
| 99 kWidth * 3, size); | 148 kWidth * 3, size); |
| 100 EXPECT_TRUE(GLES2Util::ComputeImageDataSize( | 149 EXPECT_EQ(kWidth * 3, unpadded_row_size); |
| 101 kWidth, kHeight, GL_RGB, GL_UNSIGNED_BYTE, 4, &size)); | 150 EXPECT_EQ(kWidth * 3 + 1, padded_row_size); |
| 151 EXPECT_TRUE(GLES2Util::ComputeImageDataSizes( |
| 152 kWidth, kHeight, GL_RGB, GL_UNSIGNED_BYTE, 4, &size, &unpadded_row_size, |
| 153 &padded_row_size)); |
| 102 EXPECT_EQ((kWidth * 3 + 3) * (kHeight - 1) + | 154 EXPECT_EQ((kWidth * 3 + 3) * (kHeight - 1) + |
| 103 kWidth * 3, size); | 155 kWidth * 3, size); |
| 104 EXPECT_TRUE(GLES2Util::ComputeImageDataSize( | 156 EXPECT_EQ(kWidth * 3, unpadded_row_size); |
| 105 kWidth, kHeight, GL_RGB, GL_UNSIGNED_BYTE, 8, &size)); | 157 EXPECT_EQ(kWidth * 3 + 3, padded_row_size); |
| 158 EXPECT_TRUE(GLES2Util::ComputeImageDataSizes( |
| 159 kWidth, kHeight, GL_RGB, GL_UNSIGNED_BYTE, 8, &size, &unpadded_row_size, |
| 160 &padded_row_size)); |
| 106 EXPECT_EQ((kWidth * 3 + 7) * (kHeight - 1) + | 161 EXPECT_EQ((kWidth * 3 + 7) * (kHeight - 1) + |
| 107 kWidth * 3, size); | 162 kWidth * 3, size); |
| 163 EXPECT_EQ(kWidth * 3, unpadded_row_size); |
| 164 EXPECT_EQ(kWidth * 3 + 7, padded_row_size); |
| 108 } | 165 } |
| 109 | 166 |
| 110 TEST_F(GLES2UtilTest, RenderbufferBytesPerPixel) { | 167 TEST_F(GLES2UtilTest, RenderbufferBytesPerPixel) { |
| 111 EXPECT_EQ(1u, GLES2Util::RenderbufferBytesPerPixel(GL_STENCIL_INDEX8)); | 168 EXPECT_EQ(1u, GLES2Util::RenderbufferBytesPerPixel(GL_STENCIL_INDEX8)); |
| 112 EXPECT_EQ(2u, GLES2Util::RenderbufferBytesPerPixel(GL_RGBA4)); | 169 EXPECT_EQ(2u, GLES2Util::RenderbufferBytesPerPixel(GL_RGBA4)); |
| 113 EXPECT_EQ(2u, GLES2Util::RenderbufferBytesPerPixel(GL_RGB565)); | 170 EXPECT_EQ(2u, GLES2Util::RenderbufferBytesPerPixel(GL_RGB565)); |
| 114 EXPECT_EQ(2u, GLES2Util::RenderbufferBytesPerPixel(GL_RGB5_A1)); | 171 EXPECT_EQ(2u, GLES2Util::RenderbufferBytesPerPixel(GL_RGB5_A1)); |
| 115 EXPECT_EQ(2u, GLES2Util::RenderbufferBytesPerPixel(GL_DEPTH_COMPONENT16)); | 172 EXPECT_EQ(2u, GLES2Util::RenderbufferBytesPerPixel(GL_DEPTH_COMPONENT16)); |
| 116 EXPECT_EQ(4u, GLES2Util::RenderbufferBytesPerPixel(GL_RGB)); | 173 EXPECT_EQ(4u, GLES2Util::RenderbufferBytesPerPixel(GL_RGB)); |
| 117 EXPECT_EQ(4u, GLES2Util::RenderbufferBytesPerPixel(GL_RGBA)); | 174 EXPECT_EQ(4u, GLES2Util::RenderbufferBytesPerPixel(GL_RGBA)); |
| 118 EXPECT_EQ( | 175 EXPECT_EQ( |
| 119 4u, GLES2Util::RenderbufferBytesPerPixel(GL_DEPTH24_STENCIL8_OES)); | 176 4u, GLES2Util::RenderbufferBytesPerPixel(GL_DEPTH24_STENCIL8_OES)); |
| 120 EXPECT_EQ(4u, GLES2Util::RenderbufferBytesPerPixel(GL_RGB8_OES)); | 177 EXPECT_EQ(4u, GLES2Util::RenderbufferBytesPerPixel(GL_RGB8_OES)); |
| 121 EXPECT_EQ(4u, GLES2Util::RenderbufferBytesPerPixel(GL_RGBA8_OES)); | 178 EXPECT_EQ(4u, GLES2Util::RenderbufferBytesPerPixel(GL_RGBA8_OES)); |
| 122 EXPECT_EQ( | 179 EXPECT_EQ( |
| 123 4u, GLES2Util::RenderbufferBytesPerPixel(GL_DEPTH_COMPONENT24_OES)); | 180 4u, GLES2Util::RenderbufferBytesPerPixel(GL_DEPTH_COMPONENT24_OES)); |
| 124 EXPECT_EQ(0u, GLES2Util::RenderbufferBytesPerPixel(-1)); | 181 EXPECT_EQ(0u, GLES2Util::RenderbufferBytesPerPixel(-1)); |
| 125 } | 182 } |
| 126 | 183 |
| 127 } // namespace gles2 | 184 } // namespace gles2 |
| 128 } // namespace gpu | 185 } // namespace gpu |
| 129 | 186 |
| OLD | NEW |