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

Side by Side Diff: gpu/command_buffer/tests/gl_texture_mailbox_unittest.cc

Issue 1542513002: Switch to standard integer types in gpu/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix Created 4 years, 12 months 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
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 <GLES2/gl2.h> 5 #include <GLES2/gl2.h>
6 #include <GLES2/gl2ext.h> 6 #include <GLES2/gl2ext.h>
7 #include <GLES2/gl2extchromium.h> 7 #include <GLES2/gl2extchromium.h>
8 #include <stddef.h>
9 #include <stdint.h>
8 10
9 #include "gpu/command_buffer/client/gles2_lib.h" 11 #include "gpu/command_buffer/client/gles2_lib.h"
10 #include "gpu/command_buffer/common/mailbox.h" 12 #include "gpu/command_buffer/common/mailbox.h"
11 #include "gpu/command_buffer/service/gles2_cmd_decoder.h" 13 #include "gpu/command_buffer/service/gles2_cmd_decoder.h"
12 #include "gpu/command_buffer/service/mailbox_manager.h" 14 #include "gpu/command_buffer/service/mailbox_manager.h"
13 #include "gpu/command_buffer/tests/gl_manager.h" 15 #include "gpu/command_buffer/tests/gl_manager.h"
14 #include "testing/gmock/include/gmock/gmock.h" 16 #include "testing/gmock/include/gmock/gmock.h"
15 #include "testing/gtest/include/gtest/gtest.h" 17 #include "testing/gtest/include/gtest/gtest.h"
16 #include "ui/gl/gl_share_group.h" 18 #include "ui/gl/gl_share_group.h"
17 19
18 namespace gpu { 20 namespace gpu {
19 21
20 namespace { 22 namespace {
21 uint32 ReadTexel(GLuint id, GLint x, GLint y) { 23 uint32_t ReadTexel(GLuint id, GLint x, GLint y) {
22 GLint old_fbo = 0; 24 GLint old_fbo = 0;
23 glGetIntegerv(GL_FRAMEBUFFER_BINDING, &old_fbo); 25 glGetIntegerv(GL_FRAMEBUFFER_BINDING, &old_fbo);
24 26
25 GLuint fbo; 27 GLuint fbo;
26 glGenFramebuffers(1, &fbo); 28 glGenFramebuffers(1, &fbo);
27 glBindFramebuffer(GL_FRAMEBUFFER, fbo); 29 glBindFramebuffer(GL_FRAMEBUFFER, fbo);
28 glFramebufferTexture2D(GL_FRAMEBUFFER, 30 glFramebufferTexture2D(GL_FRAMEBUFFER,
29 GL_COLOR_ATTACHMENT0, 31 GL_COLOR_ATTACHMENT0,
30 GL_TEXTURE_2D, 32 GL_TEXTURE_2D,
31 id, 33 id,
32 0); 34 0);
33 // Some drivers (NVidia/SGX) require texture settings to be a certain way or 35 // Some drivers (NVidia/SGX) require texture settings to be a certain way or
34 // they won't report FRAMEBUFFER_COMPLETE. 36 // they won't report FRAMEBUFFER_COMPLETE.
35 glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); 37 glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
36 glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); 38 glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
37 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); 39 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
38 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); 40 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
39 41
40 EXPECT_EQ(static_cast<GLenum>(GL_FRAMEBUFFER_COMPLETE), 42 EXPECT_EQ(static_cast<GLenum>(GL_FRAMEBUFFER_COMPLETE),
41 glCheckFramebufferStatus(GL_FRAMEBUFFER)); 43 glCheckFramebufferStatus(GL_FRAMEBUFFER));
42 44
43 uint32 texel = 0; 45 uint32_t texel = 0;
44 glReadPixels(x, y, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, &texel); 46 glReadPixels(x, y, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, &texel);
45 EXPECT_EQ(static_cast<GLenum>(GL_NO_ERROR), glGetError()); 47 EXPECT_EQ(static_cast<GLenum>(GL_NO_ERROR), glGetError());
46 48
47 glBindFramebuffer(GL_FRAMEBUFFER, old_fbo); 49 glBindFramebuffer(GL_FRAMEBUFFER, old_fbo);
48 50
49 glDeleteFramebuffers(1, &fbo); 51 glDeleteFramebuffers(1, &fbo);
50 52
51 return texel; 53 return texel;
52 } 54 }
53 } 55 }
(...skipping 22 matching lines...) Expand all
76 GLbyte mailbox1[GL_MAILBOX_SIZE_CHROMIUM]; 78 GLbyte mailbox1[GL_MAILBOX_SIZE_CHROMIUM];
77 glGenMailboxCHROMIUM(mailbox1); 79 glGenMailboxCHROMIUM(mailbox1);
78 80
79 GLbyte mailbox2[GL_MAILBOX_SIZE_CHROMIUM]; 81 GLbyte mailbox2[GL_MAILBOX_SIZE_CHROMIUM];
80 glGenMailboxCHROMIUM(mailbox2); 82 glGenMailboxCHROMIUM(mailbox2);
81 83
82 GLuint tex1; 84 GLuint tex1;
83 glGenTextures(1, &tex1); 85 glGenTextures(1, &tex1);
84 86
85 glBindTexture(GL_TEXTURE_2D, tex1); 87 glBindTexture(GL_TEXTURE_2D, tex1);
86 uint32 source_pixel = 0xFF0000FF; 88 uint32_t source_pixel = 0xFF0000FF;
87 glTexImage2D(GL_TEXTURE_2D, 89 glTexImage2D(GL_TEXTURE_2D,
88 0, 90 0,
89 GL_RGBA, 91 GL_RGBA,
90 1, 1, 92 1, 1,
91 0, 93 0,
92 GL_RGBA, 94 GL_RGBA,
93 GL_UNSIGNED_BYTE, 95 GL_UNSIGNED_BYTE,
94 &source_pixel); 96 &source_pixel);
95 97
96 glProduceTextureCHROMIUM(GL_TEXTURE_2D, mailbox1); 98 glProduceTextureCHROMIUM(GL_TEXTURE_2D, mailbox1);
(...skipping 23 matching lines...) Expand all
120 GLbyte mailbox1[GL_MAILBOX_SIZE_CHROMIUM]; 122 GLbyte mailbox1[GL_MAILBOX_SIZE_CHROMIUM];
121 glGenMailboxCHROMIUM(mailbox1); 123 glGenMailboxCHROMIUM(mailbox1);
122 124
123 GLbyte mailbox2[GL_MAILBOX_SIZE_CHROMIUM]; 125 GLbyte mailbox2[GL_MAILBOX_SIZE_CHROMIUM];
124 glGenMailboxCHROMIUM(mailbox2); 126 glGenMailboxCHROMIUM(mailbox2);
125 127
126 GLuint tex1; 128 GLuint tex1;
127 glGenTextures(1, &tex1); 129 glGenTextures(1, &tex1);
128 130
129 glBindTexture(GL_TEXTURE_2D, tex1); 131 glBindTexture(GL_TEXTURE_2D, tex1);
130 uint32 source_pixel = 0xFF000000; 132 uint32_t source_pixel = 0xFF000000;
131 glTexImage2D(GL_TEXTURE_2D, 133 glTexImage2D(GL_TEXTURE_2D,
132 0, 134 0,
133 GL_RGB, 135 GL_RGB,
134 1, 1, 136 1, 1,
135 0, 137 0,
136 GL_RGB, 138 GL_RGB,
137 GL_UNSIGNED_BYTE, 139 GL_UNSIGNED_BYTE,
138 &source_pixel); 140 &source_pixel);
139 141
140 glProduceTextureCHROMIUM(GL_TEXTURE_2D, mailbox1); 142 glProduceTextureCHROMIUM(GL_TEXTURE_2D, mailbox1);
(...skipping 23 matching lines...) Expand all
164 GLbyte mailbox1[GL_MAILBOX_SIZE_CHROMIUM]; 166 GLbyte mailbox1[GL_MAILBOX_SIZE_CHROMIUM];
165 glGenMailboxCHROMIUM(mailbox1); 167 glGenMailboxCHROMIUM(mailbox1);
166 168
167 GLbyte mailbox2[GL_MAILBOX_SIZE_CHROMIUM]; 169 GLbyte mailbox2[GL_MAILBOX_SIZE_CHROMIUM];
168 glGenMailboxCHROMIUM(mailbox2); 170 glGenMailboxCHROMIUM(mailbox2);
169 171
170 GLuint tex1; 172 GLuint tex1;
171 glGenTextures(1, &tex1); 173 glGenTextures(1, &tex1);
172 174
173 glBindTexture(GL_TEXTURE_2D, tex1); 175 glBindTexture(GL_TEXTURE_2D, tex1);
174 uint32 source_pixel = 0xFF0000FF; 176 uint32_t source_pixel = 0xFF0000FF;
175 glTexImage2D(GL_TEXTURE_2D, 177 glTexImage2D(GL_TEXTURE_2D,
176 0, 178 0,
177 GL_RGBA, 179 GL_RGBA,
178 1, 1, 180 1, 1,
179 0, 181 0,
180 GL_RGBA, 182 GL_RGBA,
181 GL_UNSIGNED_BYTE, 183 GL_UNSIGNED_BYTE,
182 &source_pixel); 184 &source_pixel);
183 185
184 glProduceTextureDirectCHROMIUM(tex1, GL_TEXTURE_2D, mailbox1); 186 glProduceTextureDirectCHROMIUM(tex1, GL_TEXTURE_2D, mailbox1);
(...skipping 12 matching lines...) Expand all
197 GLuint tex3 = glCreateAndConsumeTextureCHROMIUM(GL_TEXTURE_2D, mailbox2); 199 GLuint tex3 = glCreateAndConsumeTextureCHROMIUM(GL_TEXTURE_2D, mailbox2);
198 glBindTexture(GL_TEXTURE_2D, tex3); 200 glBindTexture(GL_TEXTURE_2D, tex3);
199 EXPECT_EQ(source_pixel, ReadTexel(tex3, 0, 0)); 201 EXPECT_EQ(source_pixel, ReadTexel(tex3, 0, 0));
200 } 202 }
201 203
202 TEST_F(GLTextureMailboxTest, ConsumeTextureValidatesKey) { 204 TEST_F(GLTextureMailboxTest, ConsumeTextureValidatesKey) {
203 GLuint tex; 205 GLuint tex;
204 glGenTextures(1, &tex); 206 glGenTextures(1, &tex);
205 207
206 glBindTexture(GL_TEXTURE_2D, tex); 208 glBindTexture(GL_TEXTURE_2D, tex);
207 uint32 source_pixel = 0xFF0000FF; 209 uint32_t source_pixel = 0xFF0000FF;
208 glTexImage2D(GL_TEXTURE_2D, 210 glTexImage2D(GL_TEXTURE_2D,
209 0, 211 0,
210 GL_RGBA, 212 GL_RGBA,
211 1, 1, 213 1, 1,
212 0, 214 0,
213 GL_RGBA, 215 GL_RGBA,
214 GL_UNSIGNED_BYTE, 216 GL_UNSIGNED_BYTE,
215 &source_pixel); 217 &source_pixel);
216 218
217 GLbyte invalid_mailbox[GL_MAILBOX_SIZE_CHROMIUM]; 219 GLbyte invalid_mailbox[GL_MAILBOX_SIZE_CHROMIUM];
218 glGenMailboxCHROMIUM(invalid_mailbox); 220 glGenMailboxCHROMIUM(invalid_mailbox);
219 221
220 EXPECT_EQ(static_cast<GLenum>(GL_NO_ERROR), glGetError()); 222 EXPECT_EQ(static_cast<GLenum>(GL_NO_ERROR), glGetError());
221 glConsumeTextureCHROMIUM(GL_TEXTURE_2D, invalid_mailbox); 223 glConsumeTextureCHROMIUM(GL_TEXTURE_2D, invalid_mailbox);
222 EXPECT_EQ(static_cast<GLenum>(GL_INVALID_OPERATION), glGetError()); 224 EXPECT_EQ(static_cast<GLenum>(GL_INVALID_OPERATION), glGetError());
223 225
224 // Ensure level 0 is still intact after glConsumeTextureCHROMIUM fails. 226 // Ensure level 0 is still intact after glConsumeTextureCHROMIUM fails.
225 EXPECT_EQ(static_cast<GLenum>(GL_NO_ERROR), glGetError()); 227 EXPECT_EQ(static_cast<GLenum>(GL_NO_ERROR), glGetError());
226 EXPECT_EQ(source_pixel, ReadTexel(tex, 0, 0)); 228 EXPECT_EQ(source_pixel, ReadTexel(tex, 0, 0));
227 EXPECT_EQ(static_cast<GLenum>(GL_NO_ERROR), glGetError()); 229 EXPECT_EQ(static_cast<GLenum>(GL_NO_ERROR), glGetError());
228 } 230 }
229 231
230 TEST_F(GLTextureMailboxTest, SharedTextures) { 232 TEST_F(GLTextureMailboxTest, SharedTextures) {
231 gl1_.MakeCurrent(); 233 gl1_.MakeCurrent();
232 GLuint tex1; 234 GLuint tex1;
233 glGenTextures(1, &tex1); 235 glGenTextures(1, &tex1);
234 236
235 glBindTexture(GL_TEXTURE_2D, tex1); 237 glBindTexture(GL_TEXTURE_2D, tex1);
236 uint32 source_pixel = 0xFF0000FF; 238 uint32_t source_pixel = 0xFF0000FF;
237 glTexImage2D(GL_TEXTURE_2D, 239 glTexImage2D(GL_TEXTURE_2D,
238 0, 240 0,
239 GL_RGBA, 241 GL_RGBA,
240 1, 1, 242 1, 1,
241 0, 243 0,
242 GL_RGBA, 244 GL_RGBA,
243 GL_UNSIGNED_BYTE, 245 GL_UNSIGNED_BYTE,
244 &source_pixel); 246 &source_pixel);
245 GLbyte mailbox[GL_MAILBOX_SIZE_CHROMIUM]; 247 GLbyte mailbox[GL_MAILBOX_SIZE_CHROMIUM];
246 glGenMailboxCHROMIUM(mailbox); 248 glGenMailboxCHROMIUM(mailbox);
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
377 TEST_F(GLTextureMailboxTest, ProduceTextureDirectInvalidTarget) { 379 TEST_F(GLTextureMailboxTest, ProduceTextureDirectInvalidTarget) {
378 gl1_.MakeCurrent(); 380 gl1_.MakeCurrent();
379 381
380 GLbyte mailbox1[GL_MAILBOX_SIZE_CHROMIUM]; 382 GLbyte mailbox1[GL_MAILBOX_SIZE_CHROMIUM];
381 glGenMailboxCHROMIUM(mailbox1); 383 glGenMailboxCHROMIUM(mailbox1);
382 384
383 GLuint tex1; 385 GLuint tex1;
384 glGenTextures(1, &tex1); 386 glGenTextures(1, &tex1);
385 387
386 glBindTexture(GL_TEXTURE_CUBE_MAP, tex1); 388 glBindTexture(GL_TEXTURE_CUBE_MAP, tex1);
387 uint32 source_pixel = 0xFF0000FF; 389 uint32_t source_pixel = 0xFF0000FF;
388 glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X, 390 glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X,
389 0, 391 0,
390 GL_RGBA, 392 GL_RGBA,
391 1, 1, 393 1, 1,
392 0, 394 0,
393 GL_RGBA, 395 GL_RGBA,
394 GL_UNSIGNED_BYTE, 396 GL_UNSIGNED_BYTE,
395 &source_pixel); 397 &source_pixel);
396 398
397 glProduceTextureDirectCHROMIUM(tex1, GL_TEXTURE_2D, mailbox1); 399 glProduceTextureDirectCHROMIUM(tex1, GL_TEXTURE_2D, mailbox1);
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
445 other_gl[i].Destroy(); 447 other_gl[i].Destroy();
446 } 448 }
447 449
448 gl1_.MakeCurrent(); 450 gl1_.MakeCurrent();
449 glDeleteTextures(2, tex); 451 glDeleteTextures(2, tex);
450 } 452 }
451 #endif 453 #endif
452 454
453 } // namespace gpu 455 } // namespace gpu
454 456
OLDNEW
« no previous file with comments | « gpu/command_buffer/tests/gl_test_utils.cc ('k') | gpu/command_buffer/tests/gl_texture_storage_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698