gles2_cmd_format_test_autogen.h revision 4ad1aa43a48567659193a298fad74f55e00b3dd9
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 3// found in the LICENSE file. 4 5// This file is auto-generated from 6// gpu/command_buffer/build_gles2_cmd_buffer.py 7// It's formatted by clang-format using chromium coding style: 8// clang-format -i -style=chromium filename 9// DO NOT EDIT! 10 11// This file contains unit tests for gles2 commmands 12// It is included by gles2_cmd_format_test.cc 13 14#ifndef GPU_COMMAND_BUFFER_COMMON_GLES2_CMD_FORMAT_TEST_AUTOGEN_H_ 15#define GPU_COMMAND_BUFFER_COMMON_GLES2_CMD_FORMAT_TEST_AUTOGEN_H_ 16 17TEST_F(GLES2FormatTest, ActiveTexture) { 18 cmds::ActiveTexture& cmd = *GetBufferAs<cmds::ActiveTexture>(); 19 void* next_cmd = cmd.Set(&cmd, static_cast<GLenum>(11)); 20 EXPECT_EQ(static_cast<uint32>(cmds::ActiveTexture::kCmdId), 21 cmd.header.command); 22 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 23 EXPECT_EQ(static_cast<GLenum>(11), cmd.texture); 24 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 25} 26 27TEST_F(GLES2FormatTest, AttachShader) { 28 cmds::AttachShader& cmd = *GetBufferAs<cmds::AttachShader>(); 29 void* next_cmd = 30 cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<GLuint>(12)); 31 EXPECT_EQ(static_cast<uint32>(cmds::AttachShader::kCmdId), 32 cmd.header.command); 33 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 34 EXPECT_EQ(static_cast<GLuint>(11), cmd.program); 35 EXPECT_EQ(static_cast<GLuint>(12), cmd.shader); 36 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 37} 38 39TEST_F(GLES2FormatTest, BindAttribLocation) { 40 cmds::BindAttribLocation& cmd = *GetBufferAs<cmds::BindAttribLocation>(); 41 void* next_cmd = cmd.Set(&cmd, 42 static_cast<GLuint>(11), 43 static_cast<GLuint>(12), 44 static_cast<uint32>(13), 45 static_cast<uint32>(14), 46 static_cast<uint32>(15)); 47 EXPECT_EQ(static_cast<uint32>(cmds::BindAttribLocation::kCmdId), 48 cmd.header.command); 49 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 50 EXPECT_EQ(static_cast<GLuint>(11), cmd.program); 51 EXPECT_EQ(static_cast<GLuint>(12), cmd.index); 52 EXPECT_EQ(static_cast<uint32>(13), cmd.name_shm_id); 53 EXPECT_EQ(static_cast<uint32>(14), cmd.name_shm_offset); 54 EXPECT_EQ(static_cast<uint32>(15), cmd.data_size); 55 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 56} 57 58TEST_F(GLES2FormatTest, BindAttribLocationBucket) { 59 cmds::BindAttribLocationBucket& cmd = 60 *GetBufferAs<cmds::BindAttribLocationBucket>(); 61 void* next_cmd = cmd.Set(&cmd, 62 static_cast<GLuint>(11), 63 static_cast<GLuint>(12), 64 static_cast<uint32>(13)); 65 EXPECT_EQ(static_cast<uint32>(cmds::BindAttribLocationBucket::kCmdId), 66 cmd.header.command); 67 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 68 EXPECT_EQ(static_cast<GLuint>(11), cmd.program); 69 EXPECT_EQ(static_cast<GLuint>(12), cmd.index); 70 EXPECT_EQ(static_cast<uint32>(13), cmd.name_bucket_id); 71 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 72} 73 74TEST_F(GLES2FormatTest, BindBuffer) { 75 cmds::BindBuffer& cmd = *GetBufferAs<cmds::BindBuffer>(); 76 void* next_cmd = 77 cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLuint>(12)); 78 EXPECT_EQ(static_cast<uint32>(cmds::BindBuffer::kCmdId), cmd.header.command); 79 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 80 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 81 EXPECT_EQ(static_cast<GLuint>(12), cmd.buffer); 82 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 83} 84 85TEST_F(GLES2FormatTest, BindFramebuffer) { 86 cmds::BindFramebuffer& cmd = *GetBufferAs<cmds::BindFramebuffer>(); 87 void* next_cmd = 88 cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLuint>(12)); 89 EXPECT_EQ(static_cast<uint32>(cmds::BindFramebuffer::kCmdId), 90 cmd.header.command); 91 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 92 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 93 EXPECT_EQ(static_cast<GLuint>(12), cmd.framebuffer); 94 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 95} 96 97TEST_F(GLES2FormatTest, BindRenderbuffer) { 98 cmds::BindRenderbuffer& cmd = *GetBufferAs<cmds::BindRenderbuffer>(); 99 void* next_cmd = 100 cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLuint>(12)); 101 EXPECT_EQ(static_cast<uint32>(cmds::BindRenderbuffer::kCmdId), 102 cmd.header.command); 103 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 104 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 105 EXPECT_EQ(static_cast<GLuint>(12), cmd.renderbuffer); 106 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 107} 108 109TEST_F(GLES2FormatTest, BindTexture) { 110 cmds::BindTexture& cmd = *GetBufferAs<cmds::BindTexture>(); 111 void* next_cmd = 112 cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLuint>(12)); 113 EXPECT_EQ(static_cast<uint32>(cmds::BindTexture::kCmdId), cmd.header.command); 114 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 115 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 116 EXPECT_EQ(static_cast<GLuint>(12), cmd.texture); 117 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 118} 119 120TEST_F(GLES2FormatTest, BlendColor) { 121 cmds::BlendColor& cmd = *GetBufferAs<cmds::BlendColor>(); 122 void* next_cmd = cmd.Set(&cmd, 123 static_cast<GLclampf>(11), 124 static_cast<GLclampf>(12), 125 static_cast<GLclampf>(13), 126 static_cast<GLclampf>(14)); 127 EXPECT_EQ(static_cast<uint32>(cmds::BlendColor::kCmdId), cmd.header.command); 128 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 129 EXPECT_EQ(static_cast<GLclampf>(11), cmd.red); 130 EXPECT_EQ(static_cast<GLclampf>(12), cmd.green); 131 EXPECT_EQ(static_cast<GLclampf>(13), cmd.blue); 132 EXPECT_EQ(static_cast<GLclampf>(14), cmd.alpha); 133 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 134} 135 136TEST_F(GLES2FormatTest, BlendEquation) { 137 cmds::BlendEquation& cmd = *GetBufferAs<cmds::BlendEquation>(); 138 void* next_cmd = cmd.Set(&cmd, static_cast<GLenum>(11)); 139 EXPECT_EQ(static_cast<uint32>(cmds::BlendEquation::kCmdId), 140 cmd.header.command); 141 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 142 EXPECT_EQ(static_cast<GLenum>(11), cmd.mode); 143 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 144} 145 146TEST_F(GLES2FormatTest, BlendEquationSeparate) { 147 cmds::BlendEquationSeparate& cmd = 148 *GetBufferAs<cmds::BlendEquationSeparate>(); 149 void* next_cmd = 150 cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLenum>(12)); 151 EXPECT_EQ(static_cast<uint32>(cmds::BlendEquationSeparate::kCmdId), 152 cmd.header.command); 153 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 154 EXPECT_EQ(static_cast<GLenum>(11), cmd.modeRGB); 155 EXPECT_EQ(static_cast<GLenum>(12), cmd.modeAlpha); 156 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 157} 158 159TEST_F(GLES2FormatTest, BlendFunc) { 160 cmds::BlendFunc& cmd = *GetBufferAs<cmds::BlendFunc>(); 161 void* next_cmd = 162 cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLenum>(12)); 163 EXPECT_EQ(static_cast<uint32>(cmds::BlendFunc::kCmdId), cmd.header.command); 164 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 165 EXPECT_EQ(static_cast<GLenum>(11), cmd.sfactor); 166 EXPECT_EQ(static_cast<GLenum>(12), cmd.dfactor); 167 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 168} 169 170TEST_F(GLES2FormatTest, BlendFuncSeparate) { 171 cmds::BlendFuncSeparate& cmd = *GetBufferAs<cmds::BlendFuncSeparate>(); 172 void* next_cmd = cmd.Set(&cmd, 173 static_cast<GLenum>(11), 174 static_cast<GLenum>(12), 175 static_cast<GLenum>(13), 176 static_cast<GLenum>(14)); 177 EXPECT_EQ(static_cast<uint32>(cmds::BlendFuncSeparate::kCmdId), 178 cmd.header.command); 179 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 180 EXPECT_EQ(static_cast<GLenum>(11), cmd.srcRGB); 181 EXPECT_EQ(static_cast<GLenum>(12), cmd.dstRGB); 182 EXPECT_EQ(static_cast<GLenum>(13), cmd.srcAlpha); 183 EXPECT_EQ(static_cast<GLenum>(14), cmd.dstAlpha); 184 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 185} 186 187TEST_F(GLES2FormatTest, BufferData) { 188 cmds::BufferData& cmd = *GetBufferAs<cmds::BufferData>(); 189 void* next_cmd = cmd.Set(&cmd, 190 static_cast<GLenum>(11), 191 static_cast<GLsizeiptr>(12), 192 static_cast<uint32>(13), 193 static_cast<uint32>(14), 194 static_cast<GLenum>(15)); 195 EXPECT_EQ(static_cast<uint32>(cmds::BufferData::kCmdId), cmd.header.command); 196 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 197 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 198 EXPECT_EQ(static_cast<GLsizeiptr>(12), cmd.size); 199 EXPECT_EQ(static_cast<uint32>(13), cmd.data_shm_id); 200 EXPECT_EQ(static_cast<uint32>(14), cmd.data_shm_offset); 201 EXPECT_EQ(static_cast<GLenum>(15), cmd.usage); 202 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 203} 204 205TEST_F(GLES2FormatTest, BufferSubData) { 206 cmds::BufferSubData& cmd = *GetBufferAs<cmds::BufferSubData>(); 207 void* next_cmd = cmd.Set(&cmd, 208 static_cast<GLenum>(11), 209 static_cast<GLintptr>(12), 210 static_cast<GLsizeiptr>(13), 211 static_cast<uint32>(14), 212 static_cast<uint32>(15)); 213 EXPECT_EQ(static_cast<uint32>(cmds::BufferSubData::kCmdId), 214 cmd.header.command); 215 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 216 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 217 EXPECT_EQ(static_cast<GLintptr>(12), cmd.offset); 218 EXPECT_EQ(static_cast<GLsizeiptr>(13), cmd.size); 219 EXPECT_EQ(static_cast<uint32>(14), cmd.data_shm_id); 220 EXPECT_EQ(static_cast<uint32>(15), cmd.data_shm_offset); 221 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 222} 223 224TEST_F(GLES2FormatTest, CheckFramebufferStatus) { 225 cmds::CheckFramebufferStatus& cmd = 226 *GetBufferAs<cmds::CheckFramebufferStatus>(); 227 void* next_cmd = cmd.Set(&cmd, 228 static_cast<GLenum>(11), 229 static_cast<uint32>(12), 230 static_cast<uint32>(13)); 231 EXPECT_EQ(static_cast<uint32>(cmds::CheckFramebufferStatus::kCmdId), 232 cmd.header.command); 233 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 234 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 235 EXPECT_EQ(static_cast<uint32>(12), cmd.result_shm_id); 236 EXPECT_EQ(static_cast<uint32>(13), cmd.result_shm_offset); 237 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 238} 239 240TEST_F(GLES2FormatTest, Clear) { 241 cmds::Clear& cmd = *GetBufferAs<cmds::Clear>(); 242 void* next_cmd = cmd.Set(&cmd, static_cast<GLbitfield>(11)); 243 EXPECT_EQ(static_cast<uint32>(cmds::Clear::kCmdId), cmd.header.command); 244 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 245 EXPECT_EQ(static_cast<GLbitfield>(11), cmd.mask); 246 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 247} 248 249TEST_F(GLES2FormatTest, ClearColor) { 250 cmds::ClearColor& cmd = *GetBufferAs<cmds::ClearColor>(); 251 void* next_cmd = cmd.Set(&cmd, 252 static_cast<GLclampf>(11), 253 static_cast<GLclampf>(12), 254 static_cast<GLclampf>(13), 255 static_cast<GLclampf>(14)); 256 EXPECT_EQ(static_cast<uint32>(cmds::ClearColor::kCmdId), cmd.header.command); 257 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 258 EXPECT_EQ(static_cast<GLclampf>(11), cmd.red); 259 EXPECT_EQ(static_cast<GLclampf>(12), cmd.green); 260 EXPECT_EQ(static_cast<GLclampf>(13), cmd.blue); 261 EXPECT_EQ(static_cast<GLclampf>(14), cmd.alpha); 262 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 263} 264 265TEST_F(GLES2FormatTest, ClearDepthf) { 266 cmds::ClearDepthf& cmd = *GetBufferAs<cmds::ClearDepthf>(); 267 void* next_cmd = cmd.Set(&cmd, static_cast<GLclampf>(11)); 268 EXPECT_EQ(static_cast<uint32>(cmds::ClearDepthf::kCmdId), cmd.header.command); 269 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 270 EXPECT_EQ(static_cast<GLclampf>(11), cmd.depth); 271 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 272} 273 274TEST_F(GLES2FormatTest, ClearStencil) { 275 cmds::ClearStencil& cmd = *GetBufferAs<cmds::ClearStencil>(); 276 void* next_cmd = cmd.Set(&cmd, static_cast<GLint>(11)); 277 EXPECT_EQ(static_cast<uint32>(cmds::ClearStencil::kCmdId), 278 cmd.header.command); 279 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 280 EXPECT_EQ(static_cast<GLint>(11), cmd.s); 281 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 282} 283 284TEST_F(GLES2FormatTest, ColorMask) { 285 cmds::ColorMask& cmd = *GetBufferAs<cmds::ColorMask>(); 286 void* next_cmd = cmd.Set(&cmd, 287 static_cast<GLboolean>(11), 288 static_cast<GLboolean>(12), 289 static_cast<GLboolean>(13), 290 static_cast<GLboolean>(14)); 291 EXPECT_EQ(static_cast<uint32>(cmds::ColorMask::kCmdId), cmd.header.command); 292 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 293 EXPECT_EQ(static_cast<GLboolean>(11), cmd.red); 294 EXPECT_EQ(static_cast<GLboolean>(12), cmd.green); 295 EXPECT_EQ(static_cast<GLboolean>(13), cmd.blue); 296 EXPECT_EQ(static_cast<GLboolean>(14), cmd.alpha); 297 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 298} 299 300TEST_F(GLES2FormatTest, CompileShader) { 301 cmds::CompileShader& cmd = *GetBufferAs<cmds::CompileShader>(); 302 void* next_cmd = cmd.Set(&cmd, static_cast<GLuint>(11)); 303 EXPECT_EQ(static_cast<uint32>(cmds::CompileShader::kCmdId), 304 cmd.header.command); 305 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 306 EXPECT_EQ(static_cast<GLuint>(11), cmd.shader); 307 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 308} 309 310TEST_F(GLES2FormatTest, CompressedTexImage2D) { 311 cmds::CompressedTexImage2D& cmd = *GetBufferAs<cmds::CompressedTexImage2D>(); 312 void* next_cmd = cmd.Set(&cmd, 313 static_cast<GLenum>(11), 314 static_cast<GLint>(12), 315 static_cast<GLenum>(13), 316 static_cast<GLsizei>(14), 317 static_cast<GLsizei>(15), 318 static_cast<GLint>(16), 319 static_cast<GLsizei>(17), 320 static_cast<uint32>(18), 321 static_cast<uint32>(19)); 322 EXPECT_EQ(static_cast<uint32>(cmds::CompressedTexImage2D::kCmdId), 323 cmd.header.command); 324 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 325 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 326 EXPECT_EQ(static_cast<GLint>(12), cmd.level); 327 EXPECT_EQ(static_cast<GLenum>(13), cmd.internalformat); 328 EXPECT_EQ(static_cast<GLsizei>(14), cmd.width); 329 EXPECT_EQ(static_cast<GLsizei>(15), cmd.height); 330 EXPECT_EQ(static_cast<GLint>(16), cmd.border); 331 EXPECT_EQ(static_cast<GLsizei>(17), cmd.imageSize); 332 EXPECT_EQ(static_cast<uint32>(18), cmd.data_shm_id); 333 EXPECT_EQ(static_cast<uint32>(19), cmd.data_shm_offset); 334 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 335} 336 337TEST_F(GLES2FormatTest, CompressedTexImage2DBucket) { 338 cmds::CompressedTexImage2DBucket& cmd = 339 *GetBufferAs<cmds::CompressedTexImage2DBucket>(); 340 void* next_cmd = cmd.Set(&cmd, 341 static_cast<GLenum>(11), 342 static_cast<GLint>(12), 343 static_cast<GLenum>(13), 344 static_cast<GLsizei>(14), 345 static_cast<GLsizei>(15), 346 static_cast<GLint>(16), 347 static_cast<GLuint>(17)); 348 EXPECT_EQ(static_cast<uint32>(cmds::CompressedTexImage2DBucket::kCmdId), 349 cmd.header.command); 350 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 351 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 352 EXPECT_EQ(static_cast<GLint>(12), cmd.level); 353 EXPECT_EQ(static_cast<GLenum>(13), cmd.internalformat); 354 EXPECT_EQ(static_cast<GLsizei>(14), cmd.width); 355 EXPECT_EQ(static_cast<GLsizei>(15), cmd.height); 356 EXPECT_EQ(static_cast<GLint>(16), cmd.border); 357 EXPECT_EQ(static_cast<GLuint>(17), cmd.bucket_id); 358 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 359} 360 361TEST_F(GLES2FormatTest, CompressedTexSubImage2D) { 362 cmds::CompressedTexSubImage2D& cmd = 363 *GetBufferAs<cmds::CompressedTexSubImage2D>(); 364 void* next_cmd = cmd.Set(&cmd, 365 static_cast<GLenum>(11), 366 static_cast<GLint>(12), 367 static_cast<GLint>(13), 368 static_cast<GLint>(14), 369 static_cast<GLsizei>(15), 370 static_cast<GLsizei>(16), 371 static_cast<GLenum>(17), 372 static_cast<GLsizei>(18), 373 static_cast<uint32>(19), 374 static_cast<uint32>(20)); 375 EXPECT_EQ(static_cast<uint32>(cmds::CompressedTexSubImage2D::kCmdId), 376 cmd.header.command); 377 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 378 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 379 EXPECT_EQ(static_cast<GLint>(12), cmd.level); 380 EXPECT_EQ(static_cast<GLint>(13), cmd.xoffset); 381 EXPECT_EQ(static_cast<GLint>(14), cmd.yoffset); 382 EXPECT_EQ(static_cast<GLsizei>(15), cmd.width); 383 EXPECT_EQ(static_cast<GLsizei>(16), cmd.height); 384 EXPECT_EQ(static_cast<GLenum>(17), cmd.format); 385 EXPECT_EQ(static_cast<GLsizei>(18), cmd.imageSize); 386 EXPECT_EQ(static_cast<uint32>(19), cmd.data_shm_id); 387 EXPECT_EQ(static_cast<uint32>(20), cmd.data_shm_offset); 388 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 389} 390 391TEST_F(GLES2FormatTest, CompressedTexSubImage2DBucket) { 392 cmds::CompressedTexSubImage2DBucket& cmd = 393 *GetBufferAs<cmds::CompressedTexSubImage2DBucket>(); 394 void* next_cmd = cmd.Set(&cmd, 395 static_cast<GLenum>(11), 396 static_cast<GLint>(12), 397 static_cast<GLint>(13), 398 static_cast<GLint>(14), 399 static_cast<GLsizei>(15), 400 static_cast<GLsizei>(16), 401 static_cast<GLenum>(17), 402 static_cast<GLuint>(18)); 403 EXPECT_EQ(static_cast<uint32>(cmds::CompressedTexSubImage2DBucket::kCmdId), 404 cmd.header.command); 405 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 406 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 407 EXPECT_EQ(static_cast<GLint>(12), cmd.level); 408 EXPECT_EQ(static_cast<GLint>(13), cmd.xoffset); 409 EXPECT_EQ(static_cast<GLint>(14), cmd.yoffset); 410 EXPECT_EQ(static_cast<GLsizei>(15), cmd.width); 411 EXPECT_EQ(static_cast<GLsizei>(16), cmd.height); 412 EXPECT_EQ(static_cast<GLenum>(17), cmd.format); 413 EXPECT_EQ(static_cast<GLuint>(18), cmd.bucket_id); 414 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 415} 416 417TEST_F(GLES2FormatTest, CopyTexImage2D) { 418 cmds::CopyTexImage2D& cmd = *GetBufferAs<cmds::CopyTexImage2D>(); 419 void* next_cmd = cmd.Set(&cmd, 420 static_cast<GLenum>(11), 421 static_cast<GLint>(12), 422 static_cast<GLenum>(13), 423 static_cast<GLint>(14), 424 static_cast<GLint>(15), 425 static_cast<GLsizei>(16), 426 static_cast<GLsizei>(17), 427 static_cast<GLint>(18)); 428 EXPECT_EQ(static_cast<uint32>(cmds::CopyTexImage2D::kCmdId), 429 cmd.header.command); 430 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 431 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 432 EXPECT_EQ(static_cast<GLint>(12), cmd.level); 433 EXPECT_EQ(static_cast<GLenum>(13), cmd.internalformat); 434 EXPECT_EQ(static_cast<GLint>(14), cmd.x); 435 EXPECT_EQ(static_cast<GLint>(15), cmd.y); 436 EXPECT_EQ(static_cast<GLsizei>(16), cmd.width); 437 EXPECT_EQ(static_cast<GLsizei>(17), cmd.height); 438 EXPECT_EQ(static_cast<GLint>(18), cmd.border); 439 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 440} 441 442TEST_F(GLES2FormatTest, CopyTexSubImage2D) { 443 cmds::CopyTexSubImage2D& cmd = *GetBufferAs<cmds::CopyTexSubImage2D>(); 444 void* next_cmd = cmd.Set(&cmd, 445 static_cast<GLenum>(11), 446 static_cast<GLint>(12), 447 static_cast<GLint>(13), 448 static_cast<GLint>(14), 449 static_cast<GLint>(15), 450 static_cast<GLint>(16), 451 static_cast<GLsizei>(17), 452 static_cast<GLsizei>(18)); 453 EXPECT_EQ(static_cast<uint32>(cmds::CopyTexSubImage2D::kCmdId), 454 cmd.header.command); 455 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 456 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 457 EXPECT_EQ(static_cast<GLint>(12), cmd.level); 458 EXPECT_EQ(static_cast<GLint>(13), cmd.xoffset); 459 EXPECT_EQ(static_cast<GLint>(14), cmd.yoffset); 460 EXPECT_EQ(static_cast<GLint>(15), cmd.x); 461 EXPECT_EQ(static_cast<GLint>(16), cmd.y); 462 EXPECT_EQ(static_cast<GLsizei>(17), cmd.width); 463 EXPECT_EQ(static_cast<GLsizei>(18), cmd.height); 464 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 465} 466 467TEST_F(GLES2FormatTest, CreateProgram) { 468 cmds::CreateProgram& cmd = *GetBufferAs<cmds::CreateProgram>(); 469 void* next_cmd = cmd.Set(&cmd, static_cast<uint32>(11)); 470 EXPECT_EQ(static_cast<uint32>(cmds::CreateProgram::kCmdId), 471 cmd.header.command); 472 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 473 EXPECT_EQ(static_cast<uint32>(11), cmd.client_id); 474 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 475} 476 477TEST_F(GLES2FormatTest, CreateShader) { 478 cmds::CreateShader& cmd = *GetBufferAs<cmds::CreateShader>(); 479 void* next_cmd = 480 cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<uint32>(12)); 481 EXPECT_EQ(static_cast<uint32>(cmds::CreateShader::kCmdId), 482 cmd.header.command); 483 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 484 EXPECT_EQ(static_cast<GLenum>(11), cmd.type); 485 EXPECT_EQ(static_cast<uint32>(12), cmd.client_id); 486 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 487} 488 489TEST_F(GLES2FormatTest, CullFace) { 490 cmds::CullFace& cmd = *GetBufferAs<cmds::CullFace>(); 491 void* next_cmd = cmd.Set(&cmd, static_cast<GLenum>(11)); 492 EXPECT_EQ(static_cast<uint32>(cmds::CullFace::kCmdId), cmd.header.command); 493 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 494 EXPECT_EQ(static_cast<GLenum>(11), cmd.mode); 495 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 496} 497 498TEST_F(GLES2FormatTest, DeleteBuffers) { 499 cmds::DeleteBuffers& cmd = *GetBufferAs<cmds::DeleteBuffers>(); 500 void* next_cmd = cmd.Set(&cmd, 501 static_cast<GLsizei>(11), 502 static_cast<uint32>(12), 503 static_cast<uint32>(13)); 504 EXPECT_EQ(static_cast<uint32>(cmds::DeleteBuffers::kCmdId), 505 cmd.header.command); 506 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 507 EXPECT_EQ(static_cast<GLsizei>(11), cmd.n); 508 EXPECT_EQ(static_cast<uint32>(12), cmd.buffers_shm_id); 509 EXPECT_EQ(static_cast<uint32>(13), cmd.buffers_shm_offset); 510 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 511} 512 513TEST_F(GLES2FormatTest, DeleteBuffersImmediate) { 514 static GLuint ids[] = {12, 23, 34, }; 515 cmds::DeleteBuffersImmediate& cmd = 516 *GetBufferAs<cmds::DeleteBuffersImmediate>(); 517 void* next_cmd = cmd.Set(&cmd, static_cast<GLsizei>(arraysize(ids)), ids); 518 EXPECT_EQ(static_cast<uint32>(cmds::DeleteBuffersImmediate::kCmdId), 519 cmd.header.command); 520 EXPECT_EQ(sizeof(cmd) + RoundSizeToMultipleOfEntries(cmd.n * 4u), 521 cmd.header.size * 4u); 522 EXPECT_EQ(static_cast<GLsizei>(arraysize(ids)), cmd.n); 523 CheckBytesWrittenMatchesExpectedSize( 524 next_cmd, 525 sizeof(cmd) + RoundSizeToMultipleOfEntries(arraysize(ids) * 4u)); 526 // TODO(gman): Check that ids were inserted; 527} 528 529TEST_F(GLES2FormatTest, DeleteFramebuffers) { 530 cmds::DeleteFramebuffers& cmd = *GetBufferAs<cmds::DeleteFramebuffers>(); 531 void* next_cmd = cmd.Set(&cmd, 532 static_cast<GLsizei>(11), 533 static_cast<uint32>(12), 534 static_cast<uint32>(13)); 535 EXPECT_EQ(static_cast<uint32>(cmds::DeleteFramebuffers::kCmdId), 536 cmd.header.command); 537 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 538 EXPECT_EQ(static_cast<GLsizei>(11), cmd.n); 539 EXPECT_EQ(static_cast<uint32>(12), cmd.framebuffers_shm_id); 540 EXPECT_EQ(static_cast<uint32>(13), cmd.framebuffers_shm_offset); 541 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 542} 543 544TEST_F(GLES2FormatTest, DeleteFramebuffersImmediate) { 545 static GLuint ids[] = {12, 23, 34, }; 546 cmds::DeleteFramebuffersImmediate& cmd = 547 *GetBufferAs<cmds::DeleteFramebuffersImmediate>(); 548 void* next_cmd = cmd.Set(&cmd, static_cast<GLsizei>(arraysize(ids)), ids); 549 EXPECT_EQ(static_cast<uint32>(cmds::DeleteFramebuffersImmediate::kCmdId), 550 cmd.header.command); 551 EXPECT_EQ(sizeof(cmd) + RoundSizeToMultipleOfEntries(cmd.n * 4u), 552 cmd.header.size * 4u); 553 EXPECT_EQ(static_cast<GLsizei>(arraysize(ids)), cmd.n); 554 CheckBytesWrittenMatchesExpectedSize( 555 next_cmd, 556 sizeof(cmd) + RoundSizeToMultipleOfEntries(arraysize(ids) * 4u)); 557 // TODO(gman): Check that ids were inserted; 558} 559 560TEST_F(GLES2FormatTest, DeleteProgram) { 561 cmds::DeleteProgram& cmd = *GetBufferAs<cmds::DeleteProgram>(); 562 void* next_cmd = cmd.Set(&cmd, static_cast<GLuint>(11)); 563 EXPECT_EQ(static_cast<uint32>(cmds::DeleteProgram::kCmdId), 564 cmd.header.command); 565 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 566 EXPECT_EQ(static_cast<GLuint>(11), cmd.program); 567 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 568} 569 570TEST_F(GLES2FormatTest, DeleteRenderbuffers) { 571 cmds::DeleteRenderbuffers& cmd = *GetBufferAs<cmds::DeleteRenderbuffers>(); 572 void* next_cmd = cmd.Set(&cmd, 573 static_cast<GLsizei>(11), 574 static_cast<uint32>(12), 575 static_cast<uint32>(13)); 576 EXPECT_EQ(static_cast<uint32>(cmds::DeleteRenderbuffers::kCmdId), 577 cmd.header.command); 578 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 579 EXPECT_EQ(static_cast<GLsizei>(11), cmd.n); 580 EXPECT_EQ(static_cast<uint32>(12), cmd.renderbuffers_shm_id); 581 EXPECT_EQ(static_cast<uint32>(13), cmd.renderbuffers_shm_offset); 582 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 583} 584 585TEST_F(GLES2FormatTest, DeleteRenderbuffersImmediate) { 586 static GLuint ids[] = {12, 23, 34, }; 587 cmds::DeleteRenderbuffersImmediate& cmd = 588 *GetBufferAs<cmds::DeleteRenderbuffersImmediate>(); 589 void* next_cmd = cmd.Set(&cmd, static_cast<GLsizei>(arraysize(ids)), ids); 590 EXPECT_EQ(static_cast<uint32>(cmds::DeleteRenderbuffersImmediate::kCmdId), 591 cmd.header.command); 592 EXPECT_EQ(sizeof(cmd) + RoundSizeToMultipleOfEntries(cmd.n * 4u), 593 cmd.header.size * 4u); 594 EXPECT_EQ(static_cast<GLsizei>(arraysize(ids)), cmd.n); 595 CheckBytesWrittenMatchesExpectedSize( 596 next_cmd, 597 sizeof(cmd) + RoundSizeToMultipleOfEntries(arraysize(ids) * 4u)); 598 // TODO(gman): Check that ids were inserted; 599} 600 601TEST_F(GLES2FormatTest, DeleteShader) { 602 cmds::DeleteShader& cmd = *GetBufferAs<cmds::DeleteShader>(); 603 void* next_cmd = cmd.Set(&cmd, static_cast<GLuint>(11)); 604 EXPECT_EQ(static_cast<uint32>(cmds::DeleteShader::kCmdId), 605 cmd.header.command); 606 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 607 EXPECT_EQ(static_cast<GLuint>(11), cmd.shader); 608 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 609} 610 611TEST_F(GLES2FormatTest, DeleteTextures) { 612 cmds::DeleteTextures& cmd = *GetBufferAs<cmds::DeleteTextures>(); 613 void* next_cmd = cmd.Set(&cmd, 614 static_cast<GLsizei>(11), 615 static_cast<uint32>(12), 616 static_cast<uint32>(13)); 617 EXPECT_EQ(static_cast<uint32>(cmds::DeleteTextures::kCmdId), 618 cmd.header.command); 619 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 620 EXPECT_EQ(static_cast<GLsizei>(11), cmd.n); 621 EXPECT_EQ(static_cast<uint32>(12), cmd.textures_shm_id); 622 EXPECT_EQ(static_cast<uint32>(13), cmd.textures_shm_offset); 623 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 624} 625 626TEST_F(GLES2FormatTest, DeleteTexturesImmediate) { 627 static GLuint ids[] = {12, 23, 34, }; 628 cmds::DeleteTexturesImmediate& cmd = 629 *GetBufferAs<cmds::DeleteTexturesImmediate>(); 630 void* next_cmd = cmd.Set(&cmd, static_cast<GLsizei>(arraysize(ids)), ids); 631 EXPECT_EQ(static_cast<uint32>(cmds::DeleteTexturesImmediate::kCmdId), 632 cmd.header.command); 633 EXPECT_EQ(sizeof(cmd) + RoundSizeToMultipleOfEntries(cmd.n * 4u), 634 cmd.header.size * 4u); 635 EXPECT_EQ(static_cast<GLsizei>(arraysize(ids)), cmd.n); 636 CheckBytesWrittenMatchesExpectedSize( 637 next_cmd, 638 sizeof(cmd) + RoundSizeToMultipleOfEntries(arraysize(ids) * 4u)); 639 // TODO(gman): Check that ids were inserted; 640} 641 642TEST_F(GLES2FormatTest, DepthFunc) { 643 cmds::DepthFunc& cmd = *GetBufferAs<cmds::DepthFunc>(); 644 void* next_cmd = cmd.Set(&cmd, static_cast<GLenum>(11)); 645 EXPECT_EQ(static_cast<uint32>(cmds::DepthFunc::kCmdId), cmd.header.command); 646 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 647 EXPECT_EQ(static_cast<GLenum>(11), cmd.func); 648 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 649} 650 651TEST_F(GLES2FormatTest, DepthMask) { 652 cmds::DepthMask& cmd = *GetBufferAs<cmds::DepthMask>(); 653 void* next_cmd = cmd.Set(&cmd, static_cast<GLboolean>(11)); 654 EXPECT_EQ(static_cast<uint32>(cmds::DepthMask::kCmdId), cmd.header.command); 655 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 656 EXPECT_EQ(static_cast<GLboolean>(11), cmd.flag); 657 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 658} 659 660TEST_F(GLES2FormatTest, DepthRangef) { 661 cmds::DepthRangef& cmd = *GetBufferAs<cmds::DepthRangef>(); 662 void* next_cmd = 663 cmd.Set(&cmd, static_cast<GLclampf>(11), static_cast<GLclampf>(12)); 664 EXPECT_EQ(static_cast<uint32>(cmds::DepthRangef::kCmdId), cmd.header.command); 665 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 666 EXPECT_EQ(static_cast<GLclampf>(11), cmd.zNear); 667 EXPECT_EQ(static_cast<GLclampf>(12), cmd.zFar); 668 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 669} 670 671TEST_F(GLES2FormatTest, DetachShader) { 672 cmds::DetachShader& cmd = *GetBufferAs<cmds::DetachShader>(); 673 void* next_cmd = 674 cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<GLuint>(12)); 675 EXPECT_EQ(static_cast<uint32>(cmds::DetachShader::kCmdId), 676 cmd.header.command); 677 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 678 EXPECT_EQ(static_cast<GLuint>(11), cmd.program); 679 EXPECT_EQ(static_cast<GLuint>(12), cmd.shader); 680 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 681} 682 683TEST_F(GLES2FormatTest, Disable) { 684 cmds::Disable& cmd = *GetBufferAs<cmds::Disable>(); 685 void* next_cmd = cmd.Set(&cmd, static_cast<GLenum>(11)); 686 EXPECT_EQ(static_cast<uint32>(cmds::Disable::kCmdId), cmd.header.command); 687 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 688 EXPECT_EQ(static_cast<GLenum>(11), cmd.cap); 689 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 690} 691 692TEST_F(GLES2FormatTest, DisableVertexAttribArray) { 693 cmds::DisableVertexAttribArray& cmd = 694 *GetBufferAs<cmds::DisableVertexAttribArray>(); 695 void* next_cmd = cmd.Set(&cmd, static_cast<GLuint>(11)); 696 EXPECT_EQ(static_cast<uint32>(cmds::DisableVertexAttribArray::kCmdId), 697 cmd.header.command); 698 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 699 EXPECT_EQ(static_cast<GLuint>(11), cmd.index); 700 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 701} 702 703TEST_F(GLES2FormatTest, DrawArrays) { 704 cmds::DrawArrays& cmd = *GetBufferAs<cmds::DrawArrays>(); 705 void* next_cmd = cmd.Set(&cmd, 706 static_cast<GLenum>(11), 707 static_cast<GLint>(12), 708 static_cast<GLsizei>(13)); 709 EXPECT_EQ(static_cast<uint32>(cmds::DrawArrays::kCmdId), cmd.header.command); 710 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 711 EXPECT_EQ(static_cast<GLenum>(11), cmd.mode); 712 EXPECT_EQ(static_cast<GLint>(12), cmd.first); 713 EXPECT_EQ(static_cast<GLsizei>(13), cmd.count); 714 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 715} 716 717TEST_F(GLES2FormatTest, DrawElements) { 718 cmds::DrawElements& cmd = *GetBufferAs<cmds::DrawElements>(); 719 void* next_cmd = cmd.Set(&cmd, 720 static_cast<GLenum>(11), 721 static_cast<GLsizei>(12), 722 static_cast<GLenum>(13), 723 static_cast<GLuint>(14)); 724 EXPECT_EQ(static_cast<uint32>(cmds::DrawElements::kCmdId), 725 cmd.header.command); 726 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 727 EXPECT_EQ(static_cast<GLenum>(11), cmd.mode); 728 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count); 729 EXPECT_EQ(static_cast<GLenum>(13), cmd.type); 730 EXPECT_EQ(static_cast<GLuint>(14), cmd.index_offset); 731 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 732} 733 734TEST_F(GLES2FormatTest, Enable) { 735 cmds::Enable& cmd = *GetBufferAs<cmds::Enable>(); 736 void* next_cmd = cmd.Set(&cmd, static_cast<GLenum>(11)); 737 EXPECT_EQ(static_cast<uint32>(cmds::Enable::kCmdId), cmd.header.command); 738 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 739 EXPECT_EQ(static_cast<GLenum>(11), cmd.cap); 740 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 741} 742 743TEST_F(GLES2FormatTest, EnableVertexAttribArray) { 744 cmds::EnableVertexAttribArray& cmd = 745 *GetBufferAs<cmds::EnableVertexAttribArray>(); 746 void* next_cmd = cmd.Set(&cmd, static_cast<GLuint>(11)); 747 EXPECT_EQ(static_cast<uint32>(cmds::EnableVertexAttribArray::kCmdId), 748 cmd.header.command); 749 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 750 EXPECT_EQ(static_cast<GLuint>(11), cmd.index); 751 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 752} 753 754TEST_F(GLES2FormatTest, Finish) { 755 cmds::Finish& cmd = *GetBufferAs<cmds::Finish>(); 756 void* next_cmd = cmd.Set(&cmd); 757 EXPECT_EQ(static_cast<uint32>(cmds::Finish::kCmdId), cmd.header.command); 758 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 759 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 760} 761 762TEST_F(GLES2FormatTest, Flush) { 763 cmds::Flush& cmd = *GetBufferAs<cmds::Flush>(); 764 void* next_cmd = cmd.Set(&cmd); 765 EXPECT_EQ(static_cast<uint32>(cmds::Flush::kCmdId), cmd.header.command); 766 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 767 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 768} 769 770TEST_F(GLES2FormatTest, FramebufferRenderbuffer) { 771 cmds::FramebufferRenderbuffer& cmd = 772 *GetBufferAs<cmds::FramebufferRenderbuffer>(); 773 void* next_cmd = cmd.Set(&cmd, 774 static_cast<GLenum>(11), 775 static_cast<GLenum>(12), 776 static_cast<GLenum>(13), 777 static_cast<GLuint>(14)); 778 EXPECT_EQ(static_cast<uint32>(cmds::FramebufferRenderbuffer::kCmdId), 779 cmd.header.command); 780 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 781 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 782 EXPECT_EQ(static_cast<GLenum>(12), cmd.attachment); 783 EXPECT_EQ(static_cast<GLenum>(13), cmd.renderbuffertarget); 784 EXPECT_EQ(static_cast<GLuint>(14), cmd.renderbuffer); 785 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 786} 787 788TEST_F(GLES2FormatTest, FramebufferTexture2D) { 789 cmds::FramebufferTexture2D& cmd = *GetBufferAs<cmds::FramebufferTexture2D>(); 790 void* next_cmd = cmd.Set(&cmd, 791 static_cast<GLenum>(11), 792 static_cast<GLenum>(12), 793 static_cast<GLenum>(13), 794 static_cast<GLuint>(14), 795 static_cast<GLint>(15)); 796 EXPECT_EQ(static_cast<uint32>(cmds::FramebufferTexture2D::kCmdId), 797 cmd.header.command); 798 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 799 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 800 EXPECT_EQ(static_cast<GLenum>(12), cmd.attachment); 801 EXPECT_EQ(static_cast<GLenum>(13), cmd.textarget); 802 EXPECT_EQ(static_cast<GLuint>(14), cmd.texture); 803 EXPECT_EQ(static_cast<GLint>(15), cmd.level); 804 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 805} 806 807TEST_F(GLES2FormatTest, FrontFace) { 808 cmds::FrontFace& cmd = *GetBufferAs<cmds::FrontFace>(); 809 void* next_cmd = cmd.Set(&cmd, static_cast<GLenum>(11)); 810 EXPECT_EQ(static_cast<uint32>(cmds::FrontFace::kCmdId), cmd.header.command); 811 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 812 EXPECT_EQ(static_cast<GLenum>(11), cmd.mode); 813 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 814} 815 816TEST_F(GLES2FormatTest, GenBuffers) { 817 cmds::GenBuffers& cmd = *GetBufferAs<cmds::GenBuffers>(); 818 void* next_cmd = cmd.Set(&cmd, 819 static_cast<GLsizei>(11), 820 static_cast<uint32>(12), 821 static_cast<uint32>(13)); 822 EXPECT_EQ(static_cast<uint32>(cmds::GenBuffers::kCmdId), cmd.header.command); 823 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 824 EXPECT_EQ(static_cast<GLsizei>(11), cmd.n); 825 EXPECT_EQ(static_cast<uint32>(12), cmd.buffers_shm_id); 826 EXPECT_EQ(static_cast<uint32>(13), cmd.buffers_shm_offset); 827 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 828} 829 830TEST_F(GLES2FormatTest, GenBuffersImmediate) { 831 static GLuint ids[] = {12, 23, 34, }; 832 cmds::GenBuffersImmediate& cmd = *GetBufferAs<cmds::GenBuffersImmediate>(); 833 void* next_cmd = cmd.Set(&cmd, static_cast<GLsizei>(arraysize(ids)), ids); 834 EXPECT_EQ(static_cast<uint32>(cmds::GenBuffersImmediate::kCmdId), 835 cmd.header.command); 836 EXPECT_EQ(sizeof(cmd) + RoundSizeToMultipleOfEntries(cmd.n * 4u), 837 cmd.header.size * 4u); 838 EXPECT_EQ(static_cast<GLsizei>(arraysize(ids)), cmd.n); 839 CheckBytesWrittenMatchesExpectedSize( 840 next_cmd, 841 sizeof(cmd) + RoundSizeToMultipleOfEntries(arraysize(ids) * 4u)); 842 // TODO(gman): Check that ids were inserted; 843} 844 845TEST_F(GLES2FormatTest, GenerateMipmap) { 846 cmds::GenerateMipmap& cmd = *GetBufferAs<cmds::GenerateMipmap>(); 847 void* next_cmd = cmd.Set(&cmd, static_cast<GLenum>(11)); 848 EXPECT_EQ(static_cast<uint32>(cmds::GenerateMipmap::kCmdId), 849 cmd.header.command); 850 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 851 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 852 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 853} 854 855TEST_F(GLES2FormatTest, GenFramebuffers) { 856 cmds::GenFramebuffers& cmd = *GetBufferAs<cmds::GenFramebuffers>(); 857 void* next_cmd = cmd.Set(&cmd, 858 static_cast<GLsizei>(11), 859 static_cast<uint32>(12), 860 static_cast<uint32>(13)); 861 EXPECT_EQ(static_cast<uint32>(cmds::GenFramebuffers::kCmdId), 862 cmd.header.command); 863 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 864 EXPECT_EQ(static_cast<GLsizei>(11), cmd.n); 865 EXPECT_EQ(static_cast<uint32>(12), cmd.framebuffers_shm_id); 866 EXPECT_EQ(static_cast<uint32>(13), cmd.framebuffers_shm_offset); 867 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 868} 869 870TEST_F(GLES2FormatTest, GenFramebuffersImmediate) { 871 static GLuint ids[] = {12, 23, 34, }; 872 cmds::GenFramebuffersImmediate& cmd = 873 *GetBufferAs<cmds::GenFramebuffersImmediate>(); 874 void* next_cmd = cmd.Set(&cmd, static_cast<GLsizei>(arraysize(ids)), ids); 875 EXPECT_EQ(static_cast<uint32>(cmds::GenFramebuffersImmediate::kCmdId), 876 cmd.header.command); 877 EXPECT_EQ(sizeof(cmd) + RoundSizeToMultipleOfEntries(cmd.n * 4u), 878 cmd.header.size * 4u); 879 EXPECT_EQ(static_cast<GLsizei>(arraysize(ids)), cmd.n); 880 CheckBytesWrittenMatchesExpectedSize( 881 next_cmd, 882 sizeof(cmd) + RoundSizeToMultipleOfEntries(arraysize(ids) * 4u)); 883 // TODO(gman): Check that ids were inserted; 884} 885 886TEST_F(GLES2FormatTest, GenRenderbuffers) { 887 cmds::GenRenderbuffers& cmd = *GetBufferAs<cmds::GenRenderbuffers>(); 888 void* next_cmd = cmd.Set(&cmd, 889 static_cast<GLsizei>(11), 890 static_cast<uint32>(12), 891 static_cast<uint32>(13)); 892 EXPECT_EQ(static_cast<uint32>(cmds::GenRenderbuffers::kCmdId), 893 cmd.header.command); 894 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 895 EXPECT_EQ(static_cast<GLsizei>(11), cmd.n); 896 EXPECT_EQ(static_cast<uint32>(12), cmd.renderbuffers_shm_id); 897 EXPECT_EQ(static_cast<uint32>(13), cmd.renderbuffers_shm_offset); 898 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 899} 900 901TEST_F(GLES2FormatTest, GenRenderbuffersImmediate) { 902 static GLuint ids[] = {12, 23, 34, }; 903 cmds::GenRenderbuffersImmediate& cmd = 904 *GetBufferAs<cmds::GenRenderbuffersImmediate>(); 905 void* next_cmd = cmd.Set(&cmd, static_cast<GLsizei>(arraysize(ids)), ids); 906 EXPECT_EQ(static_cast<uint32>(cmds::GenRenderbuffersImmediate::kCmdId), 907 cmd.header.command); 908 EXPECT_EQ(sizeof(cmd) + RoundSizeToMultipleOfEntries(cmd.n * 4u), 909 cmd.header.size * 4u); 910 EXPECT_EQ(static_cast<GLsizei>(arraysize(ids)), cmd.n); 911 CheckBytesWrittenMatchesExpectedSize( 912 next_cmd, 913 sizeof(cmd) + RoundSizeToMultipleOfEntries(arraysize(ids) * 4u)); 914 // TODO(gman): Check that ids were inserted; 915} 916 917TEST_F(GLES2FormatTest, GenTextures) { 918 cmds::GenTextures& cmd = *GetBufferAs<cmds::GenTextures>(); 919 void* next_cmd = cmd.Set(&cmd, 920 static_cast<GLsizei>(11), 921 static_cast<uint32>(12), 922 static_cast<uint32>(13)); 923 EXPECT_EQ(static_cast<uint32>(cmds::GenTextures::kCmdId), cmd.header.command); 924 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 925 EXPECT_EQ(static_cast<GLsizei>(11), cmd.n); 926 EXPECT_EQ(static_cast<uint32>(12), cmd.textures_shm_id); 927 EXPECT_EQ(static_cast<uint32>(13), cmd.textures_shm_offset); 928 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 929} 930 931TEST_F(GLES2FormatTest, GenTexturesImmediate) { 932 static GLuint ids[] = {12, 23, 34, }; 933 cmds::GenTexturesImmediate& cmd = *GetBufferAs<cmds::GenTexturesImmediate>(); 934 void* next_cmd = cmd.Set(&cmd, static_cast<GLsizei>(arraysize(ids)), ids); 935 EXPECT_EQ(static_cast<uint32>(cmds::GenTexturesImmediate::kCmdId), 936 cmd.header.command); 937 EXPECT_EQ(sizeof(cmd) + RoundSizeToMultipleOfEntries(cmd.n * 4u), 938 cmd.header.size * 4u); 939 EXPECT_EQ(static_cast<GLsizei>(arraysize(ids)), cmd.n); 940 CheckBytesWrittenMatchesExpectedSize( 941 next_cmd, 942 sizeof(cmd) + RoundSizeToMultipleOfEntries(arraysize(ids) * 4u)); 943 // TODO(gman): Check that ids were inserted; 944} 945 946TEST_F(GLES2FormatTest, GetActiveAttrib) { 947 cmds::GetActiveAttrib& cmd = *GetBufferAs<cmds::GetActiveAttrib>(); 948 void* next_cmd = cmd.Set(&cmd, 949 static_cast<GLuint>(11), 950 static_cast<GLuint>(12), 951 static_cast<uint32>(13), 952 static_cast<uint32>(14), 953 static_cast<uint32>(15)); 954 EXPECT_EQ(static_cast<uint32>(cmds::GetActiveAttrib::kCmdId), 955 cmd.header.command); 956 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 957 EXPECT_EQ(static_cast<GLuint>(11), cmd.program); 958 EXPECT_EQ(static_cast<GLuint>(12), cmd.index); 959 EXPECT_EQ(static_cast<uint32>(13), cmd.name_bucket_id); 960 EXPECT_EQ(static_cast<uint32>(14), cmd.result_shm_id); 961 EXPECT_EQ(static_cast<uint32>(15), cmd.result_shm_offset); 962 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 963} 964 965TEST_F(GLES2FormatTest, GetActiveUniform) { 966 cmds::GetActiveUniform& cmd = *GetBufferAs<cmds::GetActiveUniform>(); 967 void* next_cmd = cmd.Set(&cmd, 968 static_cast<GLuint>(11), 969 static_cast<GLuint>(12), 970 static_cast<uint32>(13), 971 static_cast<uint32>(14), 972 static_cast<uint32>(15)); 973 EXPECT_EQ(static_cast<uint32>(cmds::GetActiveUniform::kCmdId), 974 cmd.header.command); 975 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 976 EXPECT_EQ(static_cast<GLuint>(11), cmd.program); 977 EXPECT_EQ(static_cast<GLuint>(12), cmd.index); 978 EXPECT_EQ(static_cast<uint32>(13), cmd.name_bucket_id); 979 EXPECT_EQ(static_cast<uint32>(14), cmd.result_shm_id); 980 EXPECT_EQ(static_cast<uint32>(15), cmd.result_shm_offset); 981 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 982} 983 984TEST_F(GLES2FormatTest, GetAttachedShaders) { 985 cmds::GetAttachedShaders& cmd = *GetBufferAs<cmds::GetAttachedShaders>(); 986 void* next_cmd = cmd.Set(&cmd, 987 static_cast<GLuint>(11), 988 static_cast<uint32>(12), 989 static_cast<uint32>(13), 990 static_cast<uint32>(14)); 991 EXPECT_EQ(static_cast<uint32>(cmds::GetAttachedShaders::kCmdId), 992 cmd.header.command); 993 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 994 EXPECT_EQ(static_cast<GLuint>(11), cmd.program); 995 EXPECT_EQ(static_cast<uint32>(12), cmd.result_shm_id); 996 EXPECT_EQ(static_cast<uint32>(13), cmd.result_shm_offset); 997 EXPECT_EQ(static_cast<uint32>(14), cmd.result_size); 998 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 999} 1000 1001// TODO(gman): Write test for GetAttribLocation 1002// TODO(gman): Write test for GetAttribLocationBucket 1003TEST_F(GLES2FormatTest, GetBooleanv) { 1004 cmds::GetBooleanv& cmd = *GetBufferAs<cmds::GetBooleanv>(); 1005 void* next_cmd = cmd.Set(&cmd, 1006 static_cast<GLenum>(11), 1007 static_cast<uint32>(12), 1008 static_cast<uint32>(13)); 1009 EXPECT_EQ(static_cast<uint32>(cmds::GetBooleanv::kCmdId), cmd.header.command); 1010 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1011 EXPECT_EQ(static_cast<GLenum>(11), cmd.pname); 1012 EXPECT_EQ(static_cast<uint32>(12), cmd.params_shm_id); 1013 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_offset); 1014 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1015} 1016 1017TEST_F(GLES2FormatTest, GetBufferParameteriv) { 1018 cmds::GetBufferParameteriv& cmd = *GetBufferAs<cmds::GetBufferParameteriv>(); 1019 void* next_cmd = cmd.Set(&cmd, 1020 static_cast<GLenum>(11), 1021 static_cast<GLenum>(12), 1022 static_cast<uint32>(13), 1023 static_cast<uint32>(14)); 1024 EXPECT_EQ(static_cast<uint32>(cmds::GetBufferParameteriv::kCmdId), 1025 cmd.header.command); 1026 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1027 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 1028 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname); 1029 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_id); 1030 EXPECT_EQ(static_cast<uint32>(14), cmd.params_shm_offset); 1031 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1032} 1033 1034TEST_F(GLES2FormatTest, GetError) { 1035 cmds::GetError& cmd = *GetBufferAs<cmds::GetError>(); 1036 void* next_cmd = 1037 cmd.Set(&cmd, static_cast<uint32>(11), static_cast<uint32>(12)); 1038 EXPECT_EQ(static_cast<uint32>(cmds::GetError::kCmdId), cmd.header.command); 1039 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1040 EXPECT_EQ(static_cast<uint32>(11), cmd.result_shm_id); 1041 EXPECT_EQ(static_cast<uint32>(12), cmd.result_shm_offset); 1042 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1043} 1044 1045TEST_F(GLES2FormatTest, GetFloatv) { 1046 cmds::GetFloatv& cmd = *GetBufferAs<cmds::GetFloatv>(); 1047 void* next_cmd = cmd.Set(&cmd, 1048 static_cast<GLenum>(11), 1049 static_cast<uint32>(12), 1050 static_cast<uint32>(13)); 1051 EXPECT_EQ(static_cast<uint32>(cmds::GetFloatv::kCmdId), cmd.header.command); 1052 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1053 EXPECT_EQ(static_cast<GLenum>(11), cmd.pname); 1054 EXPECT_EQ(static_cast<uint32>(12), cmd.params_shm_id); 1055 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_offset); 1056 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1057} 1058 1059TEST_F(GLES2FormatTest, GetFramebufferAttachmentParameteriv) { 1060 cmds::GetFramebufferAttachmentParameteriv& cmd = 1061 *GetBufferAs<cmds::GetFramebufferAttachmentParameteriv>(); 1062 void* next_cmd = cmd.Set(&cmd, 1063 static_cast<GLenum>(11), 1064 static_cast<GLenum>(12), 1065 static_cast<GLenum>(13), 1066 static_cast<uint32>(14), 1067 static_cast<uint32>(15)); 1068 EXPECT_EQ( 1069 static_cast<uint32>(cmds::GetFramebufferAttachmentParameteriv::kCmdId), 1070 cmd.header.command); 1071 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1072 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 1073 EXPECT_EQ(static_cast<GLenum>(12), cmd.attachment); 1074 EXPECT_EQ(static_cast<GLenum>(13), cmd.pname); 1075 EXPECT_EQ(static_cast<uint32>(14), cmd.params_shm_id); 1076 EXPECT_EQ(static_cast<uint32>(15), cmd.params_shm_offset); 1077 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1078} 1079 1080TEST_F(GLES2FormatTest, GetIntegerv) { 1081 cmds::GetIntegerv& cmd = *GetBufferAs<cmds::GetIntegerv>(); 1082 void* next_cmd = cmd.Set(&cmd, 1083 static_cast<GLenum>(11), 1084 static_cast<uint32>(12), 1085 static_cast<uint32>(13)); 1086 EXPECT_EQ(static_cast<uint32>(cmds::GetIntegerv::kCmdId), cmd.header.command); 1087 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1088 EXPECT_EQ(static_cast<GLenum>(11), cmd.pname); 1089 EXPECT_EQ(static_cast<uint32>(12), cmd.params_shm_id); 1090 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_offset); 1091 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1092} 1093 1094TEST_F(GLES2FormatTest, GetProgramiv) { 1095 cmds::GetProgramiv& cmd = *GetBufferAs<cmds::GetProgramiv>(); 1096 void* next_cmd = cmd.Set(&cmd, 1097 static_cast<GLuint>(11), 1098 static_cast<GLenum>(12), 1099 static_cast<uint32>(13), 1100 static_cast<uint32>(14)); 1101 EXPECT_EQ(static_cast<uint32>(cmds::GetProgramiv::kCmdId), 1102 cmd.header.command); 1103 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1104 EXPECT_EQ(static_cast<GLuint>(11), cmd.program); 1105 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname); 1106 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_id); 1107 EXPECT_EQ(static_cast<uint32>(14), cmd.params_shm_offset); 1108 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1109} 1110 1111TEST_F(GLES2FormatTest, GetProgramInfoLog) { 1112 cmds::GetProgramInfoLog& cmd = *GetBufferAs<cmds::GetProgramInfoLog>(); 1113 void* next_cmd = 1114 cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<uint32>(12)); 1115 EXPECT_EQ(static_cast<uint32>(cmds::GetProgramInfoLog::kCmdId), 1116 cmd.header.command); 1117 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1118 EXPECT_EQ(static_cast<GLuint>(11), cmd.program); 1119 EXPECT_EQ(static_cast<uint32>(12), cmd.bucket_id); 1120 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1121} 1122 1123TEST_F(GLES2FormatTest, GetRenderbufferParameteriv) { 1124 cmds::GetRenderbufferParameteriv& cmd = 1125 *GetBufferAs<cmds::GetRenderbufferParameteriv>(); 1126 void* next_cmd = cmd.Set(&cmd, 1127 static_cast<GLenum>(11), 1128 static_cast<GLenum>(12), 1129 static_cast<uint32>(13), 1130 static_cast<uint32>(14)); 1131 EXPECT_EQ(static_cast<uint32>(cmds::GetRenderbufferParameteriv::kCmdId), 1132 cmd.header.command); 1133 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1134 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 1135 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname); 1136 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_id); 1137 EXPECT_EQ(static_cast<uint32>(14), cmd.params_shm_offset); 1138 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1139} 1140 1141TEST_F(GLES2FormatTest, GetShaderiv) { 1142 cmds::GetShaderiv& cmd = *GetBufferAs<cmds::GetShaderiv>(); 1143 void* next_cmd = cmd.Set(&cmd, 1144 static_cast<GLuint>(11), 1145 static_cast<GLenum>(12), 1146 static_cast<uint32>(13), 1147 static_cast<uint32>(14)); 1148 EXPECT_EQ(static_cast<uint32>(cmds::GetShaderiv::kCmdId), cmd.header.command); 1149 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1150 EXPECT_EQ(static_cast<GLuint>(11), cmd.shader); 1151 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname); 1152 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_id); 1153 EXPECT_EQ(static_cast<uint32>(14), cmd.params_shm_offset); 1154 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1155} 1156 1157TEST_F(GLES2FormatTest, GetShaderInfoLog) { 1158 cmds::GetShaderInfoLog& cmd = *GetBufferAs<cmds::GetShaderInfoLog>(); 1159 void* next_cmd = 1160 cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<uint32>(12)); 1161 EXPECT_EQ(static_cast<uint32>(cmds::GetShaderInfoLog::kCmdId), 1162 cmd.header.command); 1163 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1164 EXPECT_EQ(static_cast<GLuint>(11), cmd.shader); 1165 EXPECT_EQ(static_cast<uint32>(12), cmd.bucket_id); 1166 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1167} 1168 1169TEST_F(GLES2FormatTest, GetShaderPrecisionFormat) { 1170 cmds::GetShaderPrecisionFormat& cmd = 1171 *GetBufferAs<cmds::GetShaderPrecisionFormat>(); 1172 void* next_cmd = cmd.Set(&cmd, 1173 static_cast<GLenum>(11), 1174 static_cast<GLenum>(12), 1175 static_cast<uint32>(13), 1176 static_cast<uint32>(14)); 1177 EXPECT_EQ(static_cast<uint32>(cmds::GetShaderPrecisionFormat::kCmdId), 1178 cmd.header.command); 1179 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1180 EXPECT_EQ(static_cast<GLenum>(11), cmd.shadertype); 1181 EXPECT_EQ(static_cast<GLenum>(12), cmd.precisiontype); 1182 EXPECT_EQ(static_cast<uint32>(13), cmd.result_shm_id); 1183 EXPECT_EQ(static_cast<uint32>(14), cmd.result_shm_offset); 1184 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1185} 1186 1187TEST_F(GLES2FormatTest, GetShaderSource) { 1188 cmds::GetShaderSource& cmd = *GetBufferAs<cmds::GetShaderSource>(); 1189 void* next_cmd = 1190 cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<uint32>(12)); 1191 EXPECT_EQ(static_cast<uint32>(cmds::GetShaderSource::kCmdId), 1192 cmd.header.command); 1193 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1194 EXPECT_EQ(static_cast<GLuint>(11), cmd.shader); 1195 EXPECT_EQ(static_cast<uint32>(12), cmd.bucket_id); 1196 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1197} 1198 1199TEST_F(GLES2FormatTest, GetString) { 1200 cmds::GetString& cmd = *GetBufferAs<cmds::GetString>(); 1201 void* next_cmd = 1202 cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<uint32>(12)); 1203 EXPECT_EQ(static_cast<uint32>(cmds::GetString::kCmdId), cmd.header.command); 1204 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1205 EXPECT_EQ(static_cast<GLenum>(11), cmd.name); 1206 EXPECT_EQ(static_cast<uint32>(12), cmd.bucket_id); 1207 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1208} 1209 1210TEST_F(GLES2FormatTest, GetTexParameterfv) { 1211 cmds::GetTexParameterfv& cmd = *GetBufferAs<cmds::GetTexParameterfv>(); 1212 void* next_cmd = cmd.Set(&cmd, 1213 static_cast<GLenum>(11), 1214 static_cast<GLenum>(12), 1215 static_cast<uint32>(13), 1216 static_cast<uint32>(14)); 1217 EXPECT_EQ(static_cast<uint32>(cmds::GetTexParameterfv::kCmdId), 1218 cmd.header.command); 1219 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1220 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 1221 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname); 1222 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_id); 1223 EXPECT_EQ(static_cast<uint32>(14), cmd.params_shm_offset); 1224 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1225} 1226 1227TEST_F(GLES2FormatTest, GetTexParameteriv) { 1228 cmds::GetTexParameteriv& cmd = *GetBufferAs<cmds::GetTexParameteriv>(); 1229 void* next_cmd = cmd.Set(&cmd, 1230 static_cast<GLenum>(11), 1231 static_cast<GLenum>(12), 1232 static_cast<uint32>(13), 1233 static_cast<uint32>(14)); 1234 EXPECT_EQ(static_cast<uint32>(cmds::GetTexParameteriv::kCmdId), 1235 cmd.header.command); 1236 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1237 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 1238 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname); 1239 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_id); 1240 EXPECT_EQ(static_cast<uint32>(14), cmd.params_shm_offset); 1241 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1242} 1243 1244TEST_F(GLES2FormatTest, GetUniformfv) { 1245 cmds::GetUniformfv& cmd = *GetBufferAs<cmds::GetUniformfv>(); 1246 void* next_cmd = cmd.Set(&cmd, 1247 static_cast<GLuint>(11), 1248 static_cast<GLint>(12), 1249 static_cast<uint32>(13), 1250 static_cast<uint32>(14)); 1251 EXPECT_EQ(static_cast<uint32>(cmds::GetUniformfv::kCmdId), 1252 cmd.header.command); 1253 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1254 EXPECT_EQ(static_cast<GLuint>(11), cmd.program); 1255 EXPECT_EQ(static_cast<GLint>(12), cmd.location); 1256 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_id); 1257 EXPECT_EQ(static_cast<uint32>(14), cmd.params_shm_offset); 1258 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1259} 1260 1261TEST_F(GLES2FormatTest, GetUniformiv) { 1262 cmds::GetUniformiv& cmd = *GetBufferAs<cmds::GetUniformiv>(); 1263 void* next_cmd = cmd.Set(&cmd, 1264 static_cast<GLuint>(11), 1265 static_cast<GLint>(12), 1266 static_cast<uint32>(13), 1267 static_cast<uint32>(14)); 1268 EXPECT_EQ(static_cast<uint32>(cmds::GetUniformiv::kCmdId), 1269 cmd.header.command); 1270 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1271 EXPECT_EQ(static_cast<GLuint>(11), cmd.program); 1272 EXPECT_EQ(static_cast<GLint>(12), cmd.location); 1273 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_id); 1274 EXPECT_EQ(static_cast<uint32>(14), cmd.params_shm_offset); 1275 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1276} 1277 1278// TODO(gman): Write test for GetUniformLocation 1279// TODO(gman): Write test for GetUniformLocationBucket 1280TEST_F(GLES2FormatTest, GetVertexAttribfv) { 1281 cmds::GetVertexAttribfv& cmd = *GetBufferAs<cmds::GetVertexAttribfv>(); 1282 void* next_cmd = cmd.Set(&cmd, 1283 static_cast<GLuint>(11), 1284 static_cast<GLenum>(12), 1285 static_cast<uint32>(13), 1286 static_cast<uint32>(14)); 1287 EXPECT_EQ(static_cast<uint32>(cmds::GetVertexAttribfv::kCmdId), 1288 cmd.header.command); 1289 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1290 EXPECT_EQ(static_cast<GLuint>(11), cmd.index); 1291 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname); 1292 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_id); 1293 EXPECT_EQ(static_cast<uint32>(14), cmd.params_shm_offset); 1294 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1295} 1296 1297TEST_F(GLES2FormatTest, GetVertexAttribiv) { 1298 cmds::GetVertexAttribiv& cmd = *GetBufferAs<cmds::GetVertexAttribiv>(); 1299 void* next_cmd = cmd.Set(&cmd, 1300 static_cast<GLuint>(11), 1301 static_cast<GLenum>(12), 1302 static_cast<uint32>(13), 1303 static_cast<uint32>(14)); 1304 EXPECT_EQ(static_cast<uint32>(cmds::GetVertexAttribiv::kCmdId), 1305 cmd.header.command); 1306 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1307 EXPECT_EQ(static_cast<GLuint>(11), cmd.index); 1308 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname); 1309 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_id); 1310 EXPECT_EQ(static_cast<uint32>(14), cmd.params_shm_offset); 1311 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1312} 1313 1314TEST_F(GLES2FormatTest, GetVertexAttribPointerv) { 1315 cmds::GetVertexAttribPointerv& cmd = 1316 *GetBufferAs<cmds::GetVertexAttribPointerv>(); 1317 void* next_cmd = cmd.Set(&cmd, 1318 static_cast<GLuint>(11), 1319 static_cast<GLenum>(12), 1320 static_cast<uint32>(13), 1321 static_cast<uint32>(14)); 1322 EXPECT_EQ(static_cast<uint32>(cmds::GetVertexAttribPointerv::kCmdId), 1323 cmd.header.command); 1324 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1325 EXPECT_EQ(static_cast<GLuint>(11), cmd.index); 1326 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname); 1327 EXPECT_EQ(static_cast<uint32>(13), cmd.pointer_shm_id); 1328 EXPECT_EQ(static_cast<uint32>(14), cmd.pointer_shm_offset); 1329 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1330} 1331 1332TEST_F(GLES2FormatTest, Hint) { 1333 cmds::Hint& cmd = *GetBufferAs<cmds::Hint>(); 1334 void* next_cmd = 1335 cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLenum>(12)); 1336 EXPECT_EQ(static_cast<uint32>(cmds::Hint::kCmdId), cmd.header.command); 1337 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1338 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 1339 EXPECT_EQ(static_cast<GLenum>(12), cmd.mode); 1340 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1341} 1342 1343TEST_F(GLES2FormatTest, IsBuffer) { 1344 cmds::IsBuffer& cmd = *GetBufferAs<cmds::IsBuffer>(); 1345 void* next_cmd = cmd.Set(&cmd, 1346 static_cast<GLuint>(11), 1347 static_cast<uint32>(12), 1348 static_cast<uint32>(13)); 1349 EXPECT_EQ(static_cast<uint32>(cmds::IsBuffer::kCmdId), cmd.header.command); 1350 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1351 EXPECT_EQ(static_cast<GLuint>(11), cmd.buffer); 1352 EXPECT_EQ(static_cast<uint32>(12), cmd.result_shm_id); 1353 EXPECT_EQ(static_cast<uint32>(13), cmd.result_shm_offset); 1354 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1355} 1356 1357TEST_F(GLES2FormatTest, IsEnabled) { 1358 cmds::IsEnabled& cmd = *GetBufferAs<cmds::IsEnabled>(); 1359 void* next_cmd = cmd.Set(&cmd, 1360 static_cast<GLenum>(11), 1361 static_cast<uint32>(12), 1362 static_cast<uint32>(13)); 1363 EXPECT_EQ(static_cast<uint32>(cmds::IsEnabled::kCmdId), cmd.header.command); 1364 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1365 EXPECT_EQ(static_cast<GLenum>(11), cmd.cap); 1366 EXPECT_EQ(static_cast<uint32>(12), cmd.result_shm_id); 1367 EXPECT_EQ(static_cast<uint32>(13), cmd.result_shm_offset); 1368 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1369} 1370 1371TEST_F(GLES2FormatTest, IsFramebuffer) { 1372 cmds::IsFramebuffer& cmd = *GetBufferAs<cmds::IsFramebuffer>(); 1373 void* next_cmd = cmd.Set(&cmd, 1374 static_cast<GLuint>(11), 1375 static_cast<uint32>(12), 1376 static_cast<uint32>(13)); 1377 EXPECT_EQ(static_cast<uint32>(cmds::IsFramebuffer::kCmdId), 1378 cmd.header.command); 1379 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1380 EXPECT_EQ(static_cast<GLuint>(11), cmd.framebuffer); 1381 EXPECT_EQ(static_cast<uint32>(12), cmd.result_shm_id); 1382 EXPECT_EQ(static_cast<uint32>(13), cmd.result_shm_offset); 1383 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1384} 1385 1386TEST_F(GLES2FormatTest, IsProgram) { 1387 cmds::IsProgram& cmd = *GetBufferAs<cmds::IsProgram>(); 1388 void* next_cmd = cmd.Set(&cmd, 1389 static_cast<GLuint>(11), 1390 static_cast<uint32>(12), 1391 static_cast<uint32>(13)); 1392 EXPECT_EQ(static_cast<uint32>(cmds::IsProgram::kCmdId), cmd.header.command); 1393 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1394 EXPECT_EQ(static_cast<GLuint>(11), cmd.program); 1395 EXPECT_EQ(static_cast<uint32>(12), cmd.result_shm_id); 1396 EXPECT_EQ(static_cast<uint32>(13), cmd.result_shm_offset); 1397 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1398} 1399 1400TEST_F(GLES2FormatTest, IsRenderbuffer) { 1401 cmds::IsRenderbuffer& cmd = *GetBufferAs<cmds::IsRenderbuffer>(); 1402 void* next_cmd = cmd.Set(&cmd, 1403 static_cast<GLuint>(11), 1404 static_cast<uint32>(12), 1405 static_cast<uint32>(13)); 1406 EXPECT_EQ(static_cast<uint32>(cmds::IsRenderbuffer::kCmdId), 1407 cmd.header.command); 1408 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1409 EXPECT_EQ(static_cast<GLuint>(11), cmd.renderbuffer); 1410 EXPECT_EQ(static_cast<uint32>(12), cmd.result_shm_id); 1411 EXPECT_EQ(static_cast<uint32>(13), cmd.result_shm_offset); 1412 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1413} 1414 1415TEST_F(GLES2FormatTest, IsShader) { 1416 cmds::IsShader& cmd = *GetBufferAs<cmds::IsShader>(); 1417 void* next_cmd = cmd.Set(&cmd, 1418 static_cast<GLuint>(11), 1419 static_cast<uint32>(12), 1420 static_cast<uint32>(13)); 1421 EXPECT_EQ(static_cast<uint32>(cmds::IsShader::kCmdId), cmd.header.command); 1422 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1423 EXPECT_EQ(static_cast<GLuint>(11), cmd.shader); 1424 EXPECT_EQ(static_cast<uint32>(12), cmd.result_shm_id); 1425 EXPECT_EQ(static_cast<uint32>(13), cmd.result_shm_offset); 1426 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1427} 1428 1429TEST_F(GLES2FormatTest, IsTexture) { 1430 cmds::IsTexture& cmd = *GetBufferAs<cmds::IsTexture>(); 1431 void* next_cmd = cmd.Set(&cmd, 1432 static_cast<GLuint>(11), 1433 static_cast<uint32>(12), 1434 static_cast<uint32>(13)); 1435 EXPECT_EQ(static_cast<uint32>(cmds::IsTexture::kCmdId), cmd.header.command); 1436 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1437 EXPECT_EQ(static_cast<GLuint>(11), cmd.texture); 1438 EXPECT_EQ(static_cast<uint32>(12), cmd.result_shm_id); 1439 EXPECT_EQ(static_cast<uint32>(13), cmd.result_shm_offset); 1440 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1441} 1442 1443TEST_F(GLES2FormatTest, LineWidth) { 1444 cmds::LineWidth& cmd = *GetBufferAs<cmds::LineWidth>(); 1445 void* next_cmd = cmd.Set(&cmd, static_cast<GLfloat>(11)); 1446 EXPECT_EQ(static_cast<uint32>(cmds::LineWidth::kCmdId), cmd.header.command); 1447 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1448 EXPECT_EQ(static_cast<GLfloat>(11), cmd.width); 1449 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1450} 1451 1452TEST_F(GLES2FormatTest, LinkProgram) { 1453 cmds::LinkProgram& cmd = *GetBufferAs<cmds::LinkProgram>(); 1454 void* next_cmd = cmd.Set(&cmd, static_cast<GLuint>(11)); 1455 EXPECT_EQ(static_cast<uint32>(cmds::LinkProgram::kCmdId), cmd.header.command); 1456 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1457 EXPECT_EQ(static_cast<GLuint>(11), cmd.program); 1458 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1459} 1460 1461TEST_F(GLES2FormatTest, PixelStorei) { 1462 cmds::PixelStorei& cmd = *GetBufferAs<cmds::PixelStorei>(); 1463 void* next_cmd = 1464 cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLint>(12)); 1465 EXPECT_EQ(static_cast<uint32>(cmds::PixelStorei::kCmdId), cmd.header.command); 1466 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1467 EXPECT_EQ(static_cast<GLenum>(11), cmd.pname); 1468 EXPECT_EQ(static_cast<GLint>(12), cmd.param); 1469 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1470} 1471 1472TEST_F(GLES2FormatTest, PolygonOffset) { 1473 cmds::PolygonOffset& cmd = *GetBufferAs<cmds::PolygonOffset>(); 1474 void* next_cmd = 1475 cmd.Set(&cmd, static_cast<GLfloat>(11), static_cast<GLfloat>(12)); 1476 EXPECT_EQ(static_cast<uint32>(cmds::PolygonOffset::kCmdId), 1477 cmd.header.command); 1478 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1479 EXPECT_EQ(static_cast<GLfloat>(11), cmd.factor); 1480 EXPECT_EQ(static_cast<GLfloat>(12), cmd.units); 1481 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1482} 1483 1484TEST_F(GLES2FormatTest, ReadPixels) { 1485 cmds::ReadPixels& cmd = *GetBufferAs<cmds::ReadPixels>(); 1486 void* next_cmd = cmd.Set(&cmd, 1487 static_cast<GLint>(11), 1488 static_cast<GLint>(12), 1489 static_cast<GLsizei>(13), 1490 static_cast<GLsizei>(14), 1491 static_cast<GLenum>(15), 1492 static_cast<GLenum>(16), 1493 static_cast<uint32>(17), 1494 static_cast<uint32>(18), 1495 static_cast<uint32>(19), 1496 static_cast<uint32>(20), 1497 static_cast<GLboolean>(21)); 1498 EXPECT_EQ(static_cast<uint32>(cmds::ReadPixels::kCmdId), cmd.header.command); 1499 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1500 EXPECT_EQ(static_cast<GLint>(11), cmd.x); 1501 EXPECT_EQ(static_cast<GLint>(12), cmd.y); 1502 EXPECT_EQ(static_cast<GLsizei>(13), cmd.width); 1503 EXPECT_EQ(static_cast<GLsizei>(14), cmd.height); 1504 EXPECT_EQ(static_cast<GLenum>(15), cmd.format); 1505 EXPECT_EQ(static_cast<GLenum>(16), cmd.type); 1506 EXPECT_EQ(static_cast<uint32>(17), cmd.pixels_shm_id); 1507 EXPECT_EQ(static_cast<uint32>(18), cmd.pixels_shm_offset); 1508 EXPECT_EQ(static_cast<uint32>(19), cmd.result_shm_id); 1509 EXPECT_EQ(static_cast<uint32>(20), cmd.result_shm_offset); 1510 EXPECT_EQ(static_cast<GLboolean>(21), cmd.async); 1511 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1512} 1513 1514TEST_F(GLES2FormatTest, ReleaseShaderCompiler) { 1515 cmds::ReleaseShaderCompiler& cmd = 1516 *GetBufferAs<cmds::ReleaseShaderCompiler>(); 1517 void* next_cmd = cmd.Set(&cmd); 1518 EXPECT_EQ(static_cast<uint32>(cmds::ReleaseShaderCompiler::kCmdId), 1519 cmd.header.command); 1520 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1521 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1522} 1523 1524TEST_F(GLES2FormatTest, RenderbufferStorage) { 1525 cmds::RenderbufferStorage& cmd = *GetBufferAs<cmds::RenderbufferStorage>(); 1526 void* next_cmd = cmd.Set(&cmd, 1527 static_cast<GLenum>(11), 1528 static_cast<GLenum>(12), 1529 static_cast<GLsizei>(13), 1530 static_cast<GLsizei>(14)); 1531 EXPECT_EQ(static_cast<uint32>(cmds::RenderbufferStorage::kCmdId), 1532 cmd.header.command); 1533 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1534 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 1535 EXPECT_EQ(static_cast<GLenum>(12), cmd.internalformat); 1536 EXPECT_EQ(static_cast<GLsizei>(13), cmd.width); 1537 EXPECT_EQ(static_cast<GLsizei>(14), cmd.height); 1538 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1539} 1540 1541TEST_F(GLES2FormatTest, SampleCoverage) { 1542 cmds::SampleCoverage& cmd = *GetBufferAs<cmds::SampleCoverage>(); 1543 void* next_cmd = 1544 cmd.Set(&cmd, static_cast<GLclampf>(11), static_cast<GLboolean>(12)); 1545 EXPECT_EQ(static_cast<uint32>(cmds::SampleCoverage::kCmdId), 1546 cmd.header.command); 1547 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1548 EXPECT_EQ(static_cast<GLclampf>(11), cmd.value); 1549 EXPECT_EQ(static_cast<GLboolean>(12), cmd.invert); 1550 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1551} 1552 1553TEST_F(GLES2FormatTest, Scissor) { 1554 cmds::Scissor& cmd = *GetBufferAs<cmds::Scissor>(); 1555 void* next_cmd = cmd.Set(&cmd, 1556 static_cast<GLint>(11), 1557 static_cast<GLint>(12), 1558 static_cast<GLsizei>(13), 1559 static_cast<GLsizei>(14)); 1560 EXPECT_EQ(static_cast<uint32>(cmds::Scissor::kCmdId), cmd.header.command); 1561 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1562 EXPECT_EQ(static_cast<GLint>(11), cmd.x); 1563 EXPECT_EQ(static_cast<GLint>(12), cmd.y); 1564 EXPECT_EQ(static_cast<GLsizei>(13), cmd.width); 1565 EXPECT_EQ(static_cast<GLsizei>(14), cmd.height); 1566 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1567} 1568 1569TEST_F(GLES2FormatTest, ShaderBinary) { 1570 cmds::ShaderBinary& cmd = *GetBufferAs<cmds::ShaderBinary>(); 1571 void* next_cmd = cmd.Set(&cmd, 1572 static_cast<GLsizei>(11), 1573 static_cast<uint32>(12), 1574 static_cast<uint32>(13), 1575 static_cast<GLenum>(14), 1576 static_cast<uint32>(15), 1577 static_cast<uint32>(16), 1578 static_cast<GLsizei>(17)); 1579 EXPECT_EQ(static_cast<uint32>(cmds::ShaderBinary::kCmdId), 1580 cmd.header.command); 1581 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1582 EXPECT_EQ(static_cast<GLsizei>(11), cmd.n); 1583 EXPECT_EQ(static_cast<uint32>(12), cmd.shaders_shm_id); 1584 EXPECT_EQ(static_cast<uint32>(13), cmd.shaders_shm_offset); 1585 EXPECT_EQ(static_cast<GLenum>(14), cmd.binaryformat); 1586 EXPECT_EQ(static_cast<uint32>(15), cmd.binary_shm_id); 1587 EXPECT_EQ(static_cast<uint32>(16), cmd.binary_shm_offset); 1588 EXPECT_EQ(static_cast<GLsizei>(17), cmd.length); 1589 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1590} 1591 1592TEST_F(GLES2FormatTest, ShaderSource) { 1593 cmds::ShaderSource& cmd = *GetBufferAs<cmds::ShaderSource>(); 1594 void* next_cmd = cmd.Set(&cmd, 1595 static_cast<GLuint>(11), 1596 static_cast<uint32>(12), 1597 static_cast<uint32>(13), 1598 static_cast<uint32>(14)); 1599 EXPECT_EQ(static_cast<uint32>(cmds::ShaderSource::kCmdId), 1600 cmd.header.command); 1601 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1602 EXPECT_EQ(static_cast<GLuint>(11), cmd.shader); 1603 EXPECT_EQ(static_cast<uint32>(12), cmd.data_shm_id); 1604 EXPECT_EQ(static_cast<uint32>(13), cmd.data_shm_offset); 1605 EXPECT_EQ(static_cast<uint32>(14), cmd.data_size); 1606 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1607} 1608 1609TEST_F(GLES2FormatTest, ShaderSourceBucket) { 1610 cmds::ShaderSourceBucket& cmd = *GetBufferAs<cmds::ShaderSourceBucket>(); 1611 void* next_cmd = 1612 cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<uint32>(12)); 1613 EXPECT_EQ(static_cast<uint32>(cmds::ShaderSourceBucket::kCmdId), 1614 cmd.header.command); 1615 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1616 EXPECT_EQ(static_cast<GLuint>(11), cmd.shader); 1617 EXPECT_EQ(static_cast<uint32>(12), cmd.data_bucket_id); 1618 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1619} 1620 1621TEST_F(GLES2FormatTest, StencilFunc) { 1622 cmds::StencilFunc& cmd = *GetBufferAs<cmds::StencilFunc>(); 1623 void* next_cmd = cmd.Set(&cmd, 1624 static_cast<GLenum>(11), 1625 static_cast<GLint>(12), 1626 static_cast<GLuint>(13)); 1627 EXPECT_EQ(static_cast<uint32>(cmds::StencilFunc::kCmdId), cmd.header.command); 1628 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1629 EXPECT_EQ(static_cast<GLenum>(11), cmd.func); 1630 EXPECT_EQ(static_cast<GLint>(12), cmd.ref); 1631 EXPECT_EQ(static_cast<GLuint>(13), cmd.mask); 1632 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1633} 1634 1635TEST_F(GLES2FormatTest, StencilFuncSeparate) { 1636 cmds::StencilFuncSeparate& cmd = *GetBufferAs<cmds::StencilFuncSeparate>(); 1637 void* next_cmd = cmd.Set(&cmd, 1638 static_cast<GLenum>(11), 1639 static_cast<GLenum>(12), 1640 static_cast<GLint>(13), 1641 static_cast<GLuint>(14)); 1642 EXPECT_EQ(static_cast<uint32>(cmds::StencilFuncSeparate::kCmdId), 1643 cmd.header.command); 1644 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1645 EXPECT_EQ(static_cast<GLenum>(11), cmd.face); 1646 EXPECT_EQ(static_cast<GLenum>(12), cmd.func); 1647 EXPECT_EQ(static_cast<GLint>(13), cmd.ref); 1648 EXPECT_EQ(static_cast<GLuint>(14), cmd.mask); 1649 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1650} 1651 1652TEST_F(GLES2FormatTest, StencilMask) { 1653 cmds::StencilMask& cmd = *GetBufferAs<cmds::StencilMask>(); 1654 void* next_cmd = cmd.Set(&cmd, static_cast<GLuint>(11)); 1655 EXPECT_EQ(static_cast<uint32>(cmds::StencilMask::kCmdId), cmd.header.command); 1656 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1657 EXPECT_EQ(static_cast<GLuint>(11), cmd.mask); 1658 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1659} 1660 1661TEST_F(GLES2FormatTest, StencilMaskSeparate) { 1662 cmds::StencilMaskSeparate& cmd = *GetBufferAs<cmds::StencilMaskSeparate>(); 1663 void* next_cmd = 1664 cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLuint>(12)); 1665 EXPECT_EQ(static_cast<uint32>(cmds::StencilMaskSeparate::kCmdId), 1666 cmd.header.command); 1667 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1668 EXPECT_EQ(static_cast<GLenum>(11), cmd.face); 1669 EXPECT_EQ(static_cast<GLuint>(12), cmd.mask); 1670 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1671} 1672 1673TEST_F(GLES2FormatTest, StencilOp) { 1674 cmds::StencilOp& cmd = *GetBufferAs<cmds::StencilOp>(); 1675 void* next_cmd = cmd.Set(&cmd, 1676 static_cast<GLenum>(11), 1677 static_cast<GLenum>(12), 1678 static_cast<GLenum>(13)); 1679 EXPECT_EQ(static_cast<uint32>(cmds::StencilOp::kCmdId), cmd.header.command); 1680 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1681 EXPECT_EQ(static_cast<GLenum>(11), cmd.fail); 1682 EXPECT_EQ(static_cast<GLenum>(12), cmd.zfail); 1683 EXPECT_EQ(static_cast<GLenum>(13), cmd.zpass); 1684 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1685} 1686 1687TEST_F(GLES2FormatTest, StencilOpSeparate) { 1688 cmds::StencilOpSeparate& cmd = *GetBufferAs<cmds::StencilOpSeparate>(); 1689 void* next_cmd = cmd.Set(&cmd, 1690 static_cast<GLenum>(11), 1691 static_cast<GLenum>(12), 1692 static_cast<GLenum>(13), 1693 static_cast<GLenum>(14)); 1694 EXPECT_EQ(static_cast<uint32>(cmds::StencilOpSeparate::kCmdId), 1695 cmd.header.command); 1696 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1697 EXPECT_EQ(static_cast<GLenum>(11), cmd.face); 1698 EXPECT_EQ(static_cast<GLenum>(12), cmd.fail); 1699 EXPECT_EQ(static_cast<GLenum>(13), cmd.zfail); 1700 EXPECT_EQ(static_cast<GLenum>(14), cmd.zpass); 1701 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1702} 1703 1704TEST_F(GLES2FormatTest, TexImage2D) { 1705 cmds::TexImage2D& cmd = *GetBufferAs<cmds::TexImage2D>(); 1706 void* next_cmd = cmd.Set(&cmd, 1707 static_cast<GLenum>(11), 1708 static_cast<GLint>(12), 1709 static_cast<GLint>(13), 1710 static_cast<GLsizei>(14), 1711 static_cast<GLsizei>(15), 1712 static_cast<GLint>(16), 1713 static_cast<GLenum>(17), 1714 static_cast<GLenum>(18), 1715 static_cast<uint32>(19), 1716 static_cast<uint32>(20)); 1717 EXPECT_EQ(static_cast<uint32>(cmds::TexImage2D::kCmdId), cmd.header.command); 1718 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1719 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 1720 EXPECT_EQ(static_cast<GLint>(12), cmd.level); 1721 EXPECT_EQ(static_cast<GLint>(13), cmd.internalformat); 1722 EXPECT_EQ(static_cast<GLsizei>(14), cmd.width); 1723 EXPECT_EQ(static_cast<GLsizei>(15), cmd.height); 1724 EXPECT_EQ(static_cast<GLint>(16), cmd.border); 1725 EXPECT_EQ(static_cast<GLenum>(17), cmd.format); 1726 EXPECT_EQ(static_cast<GLenum>(18), cmd.type); 1727 EXPECT_EQ(static_cast<uint32>(19), cmd.pixels_shm_id); 1728 EXPECT_EQ(static_cast<uint32>(20), cmd.pixels_shm_offset); 1729 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1730} 1731 1732TEST_F(GLES2FormatTest, TexParameterf) { 1733 cmds::TexParameterf& cmd = *GetBufferAs<cmds::TexParameterf>(); 1734 void* next_cmd = cmd.Set(&cmd, 1735 static_cast<GLenum>(11), 1736 static_cast<GLenum>(12), 1737 static_cast<GLfloat>(13)); 1738 EXPECT_EQ(static_cast<uint32>(cmds::TexParameterf::kCmdId), 1739 cmd.header.command); 1740 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1741 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 1742 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname); 1743 EXPECT_EQ(static_cast<GLfloat>(13), cmd.param); 1744 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1745} 1746 1747TEST_F(GLES2FormatTest, TexParameterfv) { 1748 cmds::TexParameterfv& cmd = *GetBufferAs<cmds::TexParameterfv>(); 1749 void* next_cmd = cmd.Set(&cmd, 1750 static_cast<GLenum>(11), 1751 static_cast<GLenum>(12), 1752 static_cast<uint32>(13), 1753 static_cast<uint32>(14)); 1754 EXPECT_EQ(static_cast<uint32>(cmds::TexParameterfv::kCmdId), 1755 cmd.header.command); 1756 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1757 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 1758 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname); 1759 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_id); 1760 EXPECT_EQ(static_cast<uint32>(14), cmd.params_shm_offset); 1761 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1762} 1763 1764TEST_F(GLES2FormatTest, TexParameterfvImmediate) { 1765 const int kSomeBaseValueToTestWith = 51; 1766 static GLfloat data[] = { 1767 static_cast<GLfloat>(kSomeBaseValueToTestWith + 0), }; 1768 cmds::TexParameterfvImmediate& cmd = 1769 *GetBufferAs<cmds::TexParameterfvImmediate>(); 1770 void* next_cmd = 1771 cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLenum>(12), data); 1772 EXPECT_EQ(static_cast<uint32>(cmds::TexParameterfvImmediate::kCmdId), 1773 cmd.header.command); 1774 EXPECT_EQ(sizeof(cmd) + RoundSizeToMultipleOfEntries(sizeof(data)), 1775 cmd.header.size * 4u); 1776 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 1777 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname); 1778 CheckBytesWrittenMatchesExpectedSize( 1779 next_cmd, sizeof(cmd) + RoundSizeToMultipleOfEntries(sizeof(data))); 1780 // TODO(gman): Check that data was inserted; 1781} 1782 1783TEST_F(GLES2FormatTest, TexParameteri) { 1784 cmds::TexParameteri& cmd = *GetBufferAs<cmds::TexParameteri>(); 1785 void* next_cmd = cmd.Set(&cmd, 1786 static_cast<GLenum>(11), 1787 static_cast<GLenum>(12), 1788 static_cast<GLint>(13)); 1789 EXPECT_EQ(static_cast<uint32>(cmds::TexParameteri::kCmdId), 1790 cmd.header.command); 1791 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1792 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 1793 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname); 1794 EXPECT_EQ(static_cast<GLint>(13), cmd.param); 1795 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1796} 1797 1798TEST_F(GLES2FormatTest, TexParameteriv) { 1799 cmds::TexParameteriv& cmd = *GetBufferAs<cmds::TexParameteriv>(); 1800 void* next_cmd = cmd.Set(&cmd, 1801 static_cast<GLenum>(11), 1802 static_cast<GLenum>(12), 1803 static_cast<uint32>(13), 1804 static_cast<uint32>(14)); 1805 EXPECT_EQ(static_cast<uint32>(cmds::TexParameteriv::kCmdId), 1806 cmd.header.command); 1807 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1808 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 1809 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname); 1810 EXPECT_EQ(static_cast<uint32>(13), cmd.params_shm_id); 1811 EXPECT_EQ(static_cast<uint32>(14), cmd.params_shm_offset); 1812 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1813} 1814 1815TEST_F(GLES2FormatTest, TexParameterivImmediate) { 1816 const int kSomeBaseValueToTestWith = 51; 1817 static GLint data[] = {static_cast<GLint>(kSomeBaseValueToTestWith + 0), }; 1818 cmds::TexParameterivImmediate& cmd = 1819 *GetBufferAs<cmds::TexParameterivImmediate>(); 1820 void* next_cmd = 1821 cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLenum>(12), data); 1822 EXPECT_EQ(static_cast<uint32>(cmds::TexParameterivImmediate::kCmdId), 1823 cmd.header.command); 1824 EXPECT_EQ(sizeof(cmd) + RoundSizeToMultipleOfEntries(sizeof(data)), 1825 cmd.header.size * 4u); 1826 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 1827 EXPECT_EQ(static_cast<GLenum>(12), cmd.pname); 1828 CheckBytesWrittenMatchesExpectedSize( 1829 next_cmd, sizeof(cmd) + RoundSizeToMultipleOfEntries(sizeof(data))); 1830 // TODO(gman): Check that data was inserted; 1831} 1832 1833TEST_F(GLES2FormatTest, TexSubImage2D) { 1834 cmds::TexSubImage2D& cmd = *GetBufferAs<cmds::TexSubImage2D>(); 1835 void* next_cmd = cmd.Set(&cmd, 1836 static_cast<GLenum>(11), 1837 static_cast<GLint>(12), 1838 static_cast<GLint>(13), 1839 static_cast<GLint>(14), 1840 static_cast<GLsizei>(15), 1841 static_cast<GLsizei>(16), 1842 static_cast<GLenum>(17), 1843 static_cast<GLenum>(18), 1844 static_cast<uint32>(19), 1845 static_cast<uint32>(20), 1846 static_cast<GLboolean>(21)); 1847 EXPECT_EQ(static_cast<uint32>(cmds::TexSubImage2D::kCmdId), 1848 cmd.header.command); 1849 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1850 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 1851 EXPECT_EQ(static_cast<GLint>(12), cmd.level); 1852 EXPECT_EQ(static_cast<GLint>(13), cmd.xoffset); 1853 EXPECT_EQ(static_cast<GLint>(14), cmd.yoffset); 1854 EXPECT_EQ(static_cast<GLsizei>(15), cmd.width); 1855 EXPECT_EQ(static_cast<GLsizei>(16), cmd.height); 1856 EXPECT_EQ(static_cast<GLenum>(17), cmd.format); 1857 EXPECT_EQ(static_cast<GLenum>(18), cmd.type); 1858 EXPECT_EQ(static_cast<uint32>(19), cmd.pixels_shm_id); 1859 EXPECT_EQ(static_cast<uint32>(20), cmd.pixels_shm_offset); 1860 EXPECT_EQ(static_cast<GLboolean>(21), cmd.internal); 1861 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1862} 1863 1864TEST_F(GLES2FormatTest, Uniform1f) { 1865 cmds::Uniform1f& cmd = *GetBufferAs<cmds::Uniform1f>(); 1866 void* next_cmd = 1867 cmd.Set(&cmd, static_cast<GLint>(11), static_cast<GLfloat>(12)); 1868 EXPECT_EQ(static_cast<uint32>(cmds::Uniform1f::kCmdId), cmd.header.command); 1869 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1870 EXPECT_EQ(static_cast<GLint>(11), cmd.location); 1871 EXPECT_EQ(static_cast<GLfloat>(12), cmd.x); 1872 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1873} 1874 1875TEST_F(GLES2FormatTest, Uniform1fv) { 1876 cmds::Uniform1fv& cmd = *GetBufferAs<cmds::Uniform1fv>(); 1877 void* next_cmd = cmd.Set(&cmd, 1878 static_cast<GLint>(11), 1879 static_cast<GLsizei>(12), 1880 static_cast<uint32>(13), 1881 static_cast<uint32>(14)); 1882 EXPECT_EQ(static_cast<uint32>(cmds::Uniform1fv::kCmdId), cmd.header.command); 1883 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1884 EXPECT_EQ(static_cast<GLint>(11), cmd.location); 1885 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count); 1886 EXPECT_EQ(static_cast<uint32>(13), cmd.v_shm_id); 1887 EXPECT_EQ(static_cast<uint32>(14), cmd.v_shm_offset); 1888 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1889} 1890 1891TEST_F(GLES2FormatTest, Uniform1fvImmediate) { 1892 const int kSomeBaseValueToTestWith = 51; 1893 static GLfloat data[] = { 1894 static_cast<GLfloat>(kSomeBaseValueToTestWith + 0), 1895 static_cast<GLfloat>(kSomeBaseValueToTestWith + 1), }; 1896 cmds::Uniform1fvImmediate& cmd = *GetBufferAs<cmds::Uniform1fvImmediate>(); 1897 const GLsizei kNumElements = 2; 1898 const size_t kExpectedCmdSize = 1899 sizeof(cmd) + kNumElements * sizeof(GLfloat) * 1; 1900 void* next_cmd = 1901 cmd.Set(&cmd, static_cast<GLint>(1), static_cast<GLsizei>(2), data); 1902 EXPECT_EQ(static_cast<uint32>(cmds::Uniform1fvImmediate::kCmdId), 1903 cmd.header.command); 1904 EXPECT_EQ(kExpectedCmdSize, cmd.header.size * 4u); 1905 EXPECT_EQ(static_cast<GLint>(1), cmd.location); 1906 EXPECT_EQ(static_cast<GLsizei>(2), cmd.count); 1907 CheckBytesWrittenMatchesExpectedSize( 1908 next_cmd, sizeof(cmd) + RoundSizeToMultipleOfEntries(sizeof(data))); 1909 // TODO(gman): Check that data was inserted; 1910} 1911 1912TEST_F(GLES2FormatTest, Uniform1i) { 1913 cmds::Uniform1i& cmd = *GetBufferAs<cmds::Uniform1i>(); 1914 void* next_cmd = 1915 cmd.Set(&cmd, static_cast<GLint>(11), static_cast<GLint>(12)); 1916 EXPECT_EQ(static_cast<uint32>(cmds::Uniform1i::kCmdId), cmd.header.command); 1917 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1918 EXPECT_EQ(static_cast<GLint>(11), cmd.location); 1919 EXPECT_EQ(static_cast<GLint>(12), cmd.x); 1920 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1921} 1922 1923TEST_F(GLES2FormatTest, Uniform1iv) { 1924 cmds::Uniform1iv& cmd = *GetBufferAs<cmds::Uniform1iv>(); 1925 void* next_cmd = cmd.Set(&cmd, 1926 static_cast<GLint>(11), 1927 static_cast<GLsizei>(12), 1928 static_cast<uint32>(13), 1929 static_cast<uint32>(14)); 1930 EXPECT_EQ(static_cast<uint32>(cmds::Uniform1iv::kCmdId), cmd.header.command); 1931 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1932 EXPECT_EQ(static_cast<GLint>(11), cmd.location); 1933 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count); 1934 EXPECT_EQ(static_cast<uint32>(13), cmd.v_shm_id); 1935 EXPECT_EQ(static_cast<uint32>(14), cmd.v_shm_offset); 1936 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1937} 1938 1939TEST_F(GLES2FormatTest, Uniform1ivImmediate) { 1940 const int kSomeBaseValueToTestWith = 51; 1941 static GLint data[] = {static_cast<GLint>(kSomeBaseValueToTestWith + 0), 1942 static_cast<GLint>(kSomeBaseValueToTestWith + 1), }; 1943 cmds::Uniform1ivImmediate& cmd = *GetBufferAs<cmds::Uniform1ivImmediate>(); 1944 const GLsizei kNumElements = 2; 1945 const size_t kExpectedCmdSize = 1946 sizeof(cmd) + kNumElements * sizeof(GLint) * 1; 1947 void* next_cmd = 1948 cmd.Set(&cmd, static_cast<GLint>(1), static_cast<GLsizei>(2), data); 1949 EXPECT_EQ(static_cast<uint32>(cmds::Uniform1ivImmediate::kCmdId), 1950 cmd.header.command); 1951 EXPECT_EQ(kExpectedCmdSize, cmd.header.size * 4u); 1952 EXPECT_EQ(static_cast<GLint>(1), cmd.location); 1953 EXPECT_EQ(static_cast<GLsizei>(2), cmd.count); 1954 CheckBytesWrittenMatchesExpectedSize( 1955 next_cmd, sizeof(cmd) + RoundSizeToMultipleOfEntries(sizeof(data))); 1956 // TODO(gman): Check that data was inserted; 1957} 1958 1959TEST_F(GLES2FormatTest, Uniform2f) { 1960 cmds::Uniform2f& cmd = *GetBufferAs<cmds::Uniform2f>(); 1961 void* next_cmd = cmd.Set(&cmd, 1962 static_cast<GLint>(11), 1963 static_cast<GLfloat>(12), 1964 static_cast<GLfloat>(13)); 1965 EXPECT_EQ(static_cast<uint32>(cmds::Uniform2f::kCmdId), cmd.header.command); 1966 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1967 EXPECT_EQ(static_cast<GLint>(11), cmd.location); 1968 EXPECT_EQ(static_cast<GLfloat>(12), cmd.x); 1969 EXPECT_EQ(static_cast<GLfloat>(13), cmd.y); 1970 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1971} 1972 1973TEST_F(GLES2FormatTest, Uniform2fv) { 1974 cmds::Uniform2fv& cmd = *GetBufferAs<cmds::Uniform2fv>(); 1975 void* next_cmd = cmd.Set(&cmd, 1976 static_cast<GLint>(11), 1977 static_cast<GLsizei>(12), 1978 static_cast<uint32>(13), 1979 static_cast<uint32>(14)); 1980 EXPECT_EQ(static_cast<uint32>(cmds::Uniform2fv::kCmdId), cmd.header.command); 1981 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 1982 EXPECT_EQ(static_cast<GLint>(11), cmd.location); 1983 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count); 1984 EXPECT_EQ(static_cast<uint32>(13), cmd.v_shm_id); 1985 EXPECT_EQ(static_cast<uint32>(14), cmd.v_shm_offset); 1986 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 1987} 1988 1989TEST_F(GLES2FormatTest, Uniform2fvImmediate) { 1990 const int kSomeBaseValueToTestWith = 51; 1991 static GLfloat data[] = { 1992 static_cast<GLfloat>(kSomeBaseValueToTestWith + 0), 1993 static_cast<GLfloat>(kSomeBaseValueToTestWith + 1), 1994 static_cast<GLfloat>(kSomeBaseValueToTestWith + 2), 1995 static_cast<GLfloat>(kSomeBaseValueToTestWith + 3), }; 1996 cmds::Uniform2fvImmediate& cmd = *GetBufferAs<cmds::Uniform2fvImmediate>(); 1997 const GLsizei kNumElements = 2; 1998 const size_t kExpectedCmdSize = 1999 sizeof(cmd) + kNumElements * sizeof(GLfloat) * 2; 2000 void* next_cmd = 2001 cmd.Set(&cmd, static_cast<GLint>(1), static_cast<GLsizei>(2), data); 2002 EXPECT_EQ(static_cast<uint32>(cmds::Uniform2fvImmediate::kCmdId), 2003 cmd.header.command); 2004 EXPECT_EQ(kExpectedCmdSize, cmd.header.size * 4u); 2005 EXPECT_EQ(static_cast<GLint>(1), cmd.location); 2006 EXPECT_EQ(static_cast<GLsizei>(2), cmd.count); 2007 CheckBytesWrittenMatchesExpectedSize( 2008 next_cmd, sizeof(cmd) + RoundSizeToMultipleOfEntries(sizeof(data))); 2009 // TODO(gman): Check that data was inserted; 2010} 2011 2012TEST_F(GLES2FormatTest, Uniform2i) { 2013 cmds::Uniform2i& cmd = *GetBufferAs<cmds::Uniform2i>(); 2014 void* next_cmd = cmd.Set(&cmd, 2015 static_cast<GLint>(11), 2016 static_cast<GLint>(12), 2017 static_cast<GLint>(13)); 2018 EXPECT_EQ(static_cast<uint32>(cmds::Uniform2i::kCmdId), cmd.header.command); 2019 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2020 EXPECT_EQ(static_cast<GLint>(11), cmd.location); 2021 EXPECT_EQ(static_cast<GLint>(12), cmd.x); 2022 EXPECT_EQ(static_cast<GLint>(13), cmd.y); 2023 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 2024} 2025 2026TEST_F(GLES2FormatTest, Uniform2iv) { 2027 cmds::Uniform2iv& cmd = *GetBufferAs<cmds::Uniform2iv>(); 2028 void* next_cmd = cmd.Set(&cmd, 2029 static_cast<GLint>(11), 2030 static_cast<GLsizei>(12), 2031 static_cast<uint32>(13), 2032 static_cast<uint32>(14)); 2033 EXPECT_EQ(static_cast<uint32>(cmds::Uniform2iv::kCmdId), cmd.header.command); 2034 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2035 EXPECT_EQ(static_cast<GLint>(11), cmd.location); 2036 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count); 2037 EXPECT_EQ(static_cast<uint32>(13), cmd.v_shm_id); 2038 EXPECT_EQ(static_cast<uint32>(14), cmd.v_shm_offset); 2039 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 2040} 2041 2042TEST_F(GLES2FormatTest, Uniform2ivImmediate) { 2043 const int kSomeBaseValueToTestWith = 51; 2044 static GLint data[] = {static_cast<GLint>(kSomeBaseValueToTestWith + 0), 2045 static_cast<GLint>(kSomeBaseValueToTestWith + 1), 2046 static_cast<GLint>(kSomeBaseValueToTestWith + 2), 2047 static_cast<GLint>(kSomeBaseValueToTestWith + 3), }; 2048 cmds::Uniform2ivImmediate& cmd = *GetBufferAs<cmds::Uniform2ivImmediate>(); 2049 const GLsizei kNumElements = 2; 2050 const size_t kExpectedCmdSize = 2051 sizeof(cmd) + kNumElements * sizeof(GLint) * 2; 2052 void* next_cmd = 2053 cmd.Set(&cmd, static_cast<GLint>(1), static_cast<GLsizei>(2), data); 2054 EXPECT_EQ(static_cast<uint32>(cmds::Uniform2ivImmediate::kCmdId), 2055 cmd.header.command); 2056 EXPECT_EQ(kExpectedCmdSize, cmd.header.size * 4u); 2057 EXPECT_EQ(static_cast<GLint>(1), cmd.location); 2058 EXPECT_EQ(static_cast<GLsizei>(2), cmd.count); 2059 CheckBytesWrittenMatchesExpectedSize( 2060 next_cmd, sizeof(cmd) + RoundSizeToMultipleOfEntries(sizeof(data))); 2061 // TODO(gman): Check that data was inserted; 2062} 2063 2064TEST_F(GLES2FormatTest, Uniform3f) { 2065 cmds::Uniform3f& cmd = *GetBufferAs<cmds::Uniform3f>(); 2066 void* next_cmd = cmd.Set(&cmd, 2067 static_cast<GLint>(11), 2068 static_cast<GLfloat>(12), 2069 static_cast<GLfloat>(13), 2070 static_cast<GLfloat>(14)); 2071 EXPECT_EQ(static_cast<uint32>(cmds::Uniform3f::kCmdId), cmd.header.command); 2072 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2073 EXPECT_EQ(static_cast<GLint>(11), cmd.location); 2074 EXPECT_EQ(static_cast<GLfloat>(12), cmd.x); 2075 EXPECT_EQ(static_cast<GLfloat>(13), cmd.y); 2076 EXPECT_EQ(static_cast<GLfloat>(14), cmd.z); 2077 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 2078} 2079 2080TEST_F(GLES2FormatTest, Uniform3fv) { 2081 cmds::Uniform3fv& cmd = *GetBufferAs<cmds::Uniform3fv>(); 2082 void* next_cmd = cmd.Set(&cmd, 2083 static_cast<GLint>(11), 2084 static_cast<GLsizei>(12), 2085 static_cast<uint32>(13), 2086 static_cast<uint32>(14)); 2087 EXPECT_EQ(static_cast<uint32>(cmds::Uniform3fv::kCmdId), cmd.header.command); 2088 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2089 EXPECT_EQ(static_cast<GLint>(11), cmd.location); 2090 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count); 2091 EXPECT_EQ(static_cast<uint32>(13), cmd.v_shm_id); 2092 EXPECT_EQ(static_cast<uint32>(14), cmd.v_shm_offset); 2093 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 2094} 2095 2096TEST_F(GLES2FormatTest, Uniform3fvImmediate) { 2097 const int kSomeBaseValueToTestWith = 51; 2098 static GLfloat data[] = { 2099 static_cast<GLfloat>(kSomeBaseValueToTestWith + 0), 2100 static_cast<GLfloat>(kSomeBaseValueToTestWith + 1), 2101 static_cast<GLfloat>(kSomeBaseValueToTestWith + 2), 2102 static_cast<GLfloat>(kSomeBaseValueToTestWith + 3), 2103 static_cast<GLfloat>(kSomeBaseValueToTestWith + 4), 2104 static_cast<GLfloat>(kSomeBaseValueToTestWith + 5), }; 2105 cmds::Uniform3fvImmediate& cmd = *GetBufferAs<cmds::Uniform3fvImmediate>(); 2106 const GLsizei kNumElements = 2; 2107 const size_t kExpectedCmdSize = 2108 sizeof(cmd) + kNumElements * sizeof(GLfloat) * 3; 2109 void* next_cmd = 2110 cmd.Set(&cmd, static_cast<GLint>(1), static_cast<GLsizei>(2), data); 2111 EXPECT_EQ(static_cast<uint32>(cmds::Uniform3fvImmediate::kCmdId), 2112 cmd.header.command); 2113 EXPECT_EQ(kExpectedCmdSize, cmd.header.size * 4u); 2114 EXPECT_EQ(static_cast<GLint>(1), cmd.location); 2115 EXPECT_EQ(static_cast<GLsizei>(2), cmd.count); 2116 CheckBytesWrittenMatchesExpectedSize( 2117 next_cmd, sizeof(cmd) + RoundSizeToMultipleOfEntries(sizeof(data))); 2118 // TODO(gman): Check that data was inserted; 2119} 2120 2121TEST_F(GLES2FormatTest, Uniform3i) { 2122 cmds::Uniform3i& cmd = *GetBufferAs<cmds::Uniform3i>(); 2123 void* next_cmd = cmd.Set(&cmd, 2124 static_cast<GLint>(11), 2125 static_cast<GLint>(12), 2126 static_cast<GLint>(13), 2127 static_cast<GLint>(14)); 2128 EXPECT_EQ(static_cast<uint32>(cmds::Uniform3i::kCmdId), cmd.header.command); 2129 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2130 EXPECT_EQ(static_cast<GLint>(11), cmd.location); 2131 EXPECT_EQ(static_cast<GLint>(12), cmd.x); 2132 EXPECT_EQ(static_cast<GLint>(13), cmd.y); 2133 EXPECT_EQ(static_cast<GLint>(14), cmd.z); 2134 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 2135} 2136 2137TEST_F(GLES2FormatTest, Uniform3iv) { 2138 cmds::Uniform3iv& cmd = *GetBufferAs<cmds::Uniform3iv>(); 2139 void* next_cmd = cmd.Set(&cmd, 2140 static_cast<GLint>(11), 2141 static_cast<GLsizei>(12), 2142 static_cast<uint32>(13), 2143 static_cast<uint32>(14)); 2144 EXPECT_EQ(static_cast<uint32>(cmds::Uniform3iv::kCmdId), cmd.header.command); 2145 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2146 EXPECT_EQ(static_cast<GLint>(11), cmd.location); 2147 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count); 2148 EXPECT_EQ(static_cast<uint32>(13), cmd.v_shm_id); 2149 EXPECT_EQ(static_cast<uint32>(14), cmd.v_shm_offset); 2150 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 2151} 2152 2153TEST_F(GLES2FormatTest, Uniform3ivImmediate) { 2154 const int kSomeBaseValueToTestWith = 51; 2155 static GLint data[] = {static_cast<GLint>(kSomeBaseValueToTestWith + 0), 2156 static_cast<GLint>(kSomeBaseValueToTestWith + 1), 2157 static_cast<GLint>(kSomeBaseValueToTestWith + 2), 2158 static_cast<GLint>(kSomeBaseValueToTestWith + 3), 2159 static_cast<GLint>(kSomeBaseValueToTestWith + 4), 2160 static_cast<GLint>(kSomeBaseValueToTestWith + 5), }; 2161 cmds::Uniform3ivImmediate& cmd = *GetBufferAs<cmds::Uniform3ivImmediate>(); 2162 const GLsizei kNumElements = 2; 2163 const size_t kExpectedCmdSize = 2164 sizeof(cmd) + kNumElements * sizeof(GLint) * 3; 2165 void* next_cmd = 2166 cmd.Set(&cmd, static_cast<GLint>(1), static_cast<GLsizei>(2), data); 2167 EXPECT_EQ(static_cast<uint32>(cmds::Uniform3ivImmediate::kCmdId), 2168 cmd.header.command); 2169 EXPECT_EQ(kExpectedCmdSize, cmd.header.size * 4u); 2170 EXPECT_EQ(static_cast<GLint>(1), cmd.location); 2171 EXPECT_EQ(static_cast<GLsizei>(2), cmd.count); 2172 CheckBytesWrittenMatchesExpectedSize( 2173 next_cmd, sizeof(cmd) + RoundSizeToMultipleOfEntries(sizeof(data))); 2174 // TODO(gman): Check that data was inserted; 2175} 2176 2177TEST_F(GLES2FormatTest, Uniform4f) { 2178 cmds::Uniform4f& cmd = *GetBufferAs<cmds::Uniform4f>(); 2179 void* next_cmd = cmd.Set(&cmd, 2180 static_cast<GLint>(11), 2181 static_cast<GLfloat>(12), 2182 static_cast<GLfloat>(13), 2183 static_cast<GLfloat>(14), 2184 static_cast<GLfloat>(15)); 2185 EXPECT_EQ(static_cast<uint32>(cmds::Uniform4f::kCmdId), cmd.header.command); 2186 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2187 EXPECT_EQ(static_cast<GLint>(11), cmd.location); 2188 EXPECT_EQ(static_cast<GLfloat>(12), cmd.x); 2189 EXPECT_EQ(static_cast<GLfloat>(13), cmd.y); 2190 EXPECT_EQ(static_cast<GLfloat>(14), cmd.z); 2191 EXPECT_EQ(static_cast<GLfloat>(15), cmd.w); 2192 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 2193} 2194 2195TEST_F(GLES2FormatTest, Uniform4fv) { 2196 cmds::Uniform4fv& cmd = *GetBufferAs<cmds::Uniform4fv>(); 2197 void* next_cmd = cmd.Set(&cmd, 2198 static_cast<GLint>(11), 2199 static_cast<GLsizei>(12), 2200 static_cast<uint32>(13), 2201 static_cast<uint32>(14)); 2202 EXPECT_EQ(static_cast<uint32>(cmds::Uniform4fv::kCmdId), cmd.header.command); 2203 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2204 EXPECT_EQ(static_cast<GLint>(11), cmd.location); 2205 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count); 2206 EXPECT_EQ(static_cast<uint32>(13), cmd.v_shm_id); 2207 EXPECT_EQ(static_cast<uint32>(14), cmd.v_shm_offset); 2208 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 2209} 2210 2211TEST_F(GLES2FormatTest, Uniform4fvImmediate) { 2212 const int kSomeBaseValueToTestWith = 51; 2213 static GLfloat data[] = { 2214 static_cast<GLfloat>(kSomeBaseValueToTestWith + 0), 2215 static_cast<GLfloat>(kSomeBaseValueToTestWith + 1), 2216 static_cast<GLfloat>(kSomeBaseValueToTestWith + 2), 2217 static_cast<GLfloat>(kSomeBaseValueToTestWith + 3), 2218 static_cast<GLfloat>(kSomeBaseValueToTestWith + 4), 2219 static_cast<GLfloat>(kSomeBaseValueToTestWith + 5), 2220 static_cast<GLfloat>(kSomeBaseValueToTestWith + 6), 2221 static_cast<GLfloat>(kSomeBaseValueToTestWith + 7), }; 2222 cmds::Uniform4fvImmediate& cmd = *GetBufferAs<cmds::Uniform4fvImmediate>(); 2223 const GLsizei kNumElements = 2; 2224 const size_t kExpectedCmdSize = 2225 sizeof(cmd) + kNumElements * sizeof(GLfloat) * 4; 2226 void* next_cmd = 2227 cmd.Set(&cmd, static_cast<GLint>(1), static_cast<GLsizei>(2), data); 2228 EXPECT_EQ(static_cast<uint32>(cmds::Uniform4fvImmediate::kCmdId), 2229 cmd.header.command); 2230 EXPECT_EQ(kExpectedCmdSize, cmd.header.size * 4u); 2231 EXPECT_EQ(static_cast<GLint>(1), cmd.location); 2232 EXPECT_EQ(static_cast<GLsizei>(2), cmd.count); 2233 CheckBytesWrittenMatchesExpectedSize( 2234 next_cmd, sizeof(cmd) + RoundSizeToMultipleOfEntries(sizeof(data))); 2235 // TODO(gman): Check that data was inserted; 2236} 2237 2238TEST_F(GLES2FormatTest, Uniform4i) { 2239 cmds::Uniform4i& cmd = *GetBufferAs<cmds::Uniform4i>(); 2240 void* next_cmd = cmd.Set(&cmd, 2241 static_cast<GLint>(11), 2242 static_cast<GLint>(12), 2243 static_cast<GLint>(13), 2244 static_cast<GLint>(14), 2245 static_cast<GLint>(15)); 2246 EXPECT_EQ(static_cast<uint32>(cmds::Uniform4i::kCmdId), cmd.header.command); 2247 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2248 EXPECT_EQ(static_cast<GLint>(11), cmd.location); 2249 EXPECT_EQ(static_cast<GLint>(12), cmd.x); 2250 EXPECT_EQ(static_cast<GLint>(13), cmd.y); 2251 EXPECT_EQ(static_cast<GLint>(14), cmd.z); 2252 EXPECT_EQ(static_cast<GLint>(15), cmd.w); 2253 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 2254} 2255 2256TEST_F(GLES2FormatTest, Uniform4iv) { 2257 cmds::Uniform4iv& cmd = *GetBufferAs<cmds::Uniform4iv>(); 2258 void* next_cmd = cmd.Set(&cmd, 2259 static_cast<GLint>(11), 2260 static_cast<GLsizei>(12), 2261 static_cast<uint32>(13), 2262 static_cast<uint32>(14)); 2263 EXPECT_EQ(static_cast<uint32>(cmds::Uniform4iv::kCmdId), cmd.header.command); 2264 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2265 EXPECT_EQ(static_cast<GLint>(11), cmd.location); 2266 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count); 2267 EXPECT_EQ(static_cast<uint32>(13), cmd.v_shm_id); 2268 EXPECT_EQ(static_cast<uint32>(14), cmd.v_shm_offset); 2269 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 2270} 2271 2272TEST_F(GLES2FormatTest, Uniform4ivImmediate) { 2273 const int kSomeBaseValueToTestWith = 51; 2274 static GLint data[] = {static_cast<GLint>(kSomeBaseValueToTestWith + 0), 2275 static_cast<GLint>(kSomeBaseValueToTestWith + 1), 2276 static_cast<GLint>(kSomeBaseValueToTestWith + 2), 2277 static_cast<GLint>(kSomeBaseValueToTestWith + 3), 2278 static_cast<GLint>(kSomeBaseValueToTestWith + 4), 2279 static_cast<GLint>(kSomeBaseValueToTestWith + 5), 2280 static_cast<GLint>(kSomeBaseValueToTestWith + 6), 2281 static_cast<GLint>(kSomeBaseValueToTestWith + 7), }; 2282 cmds::Uniform4ivImmediate& cmd = *GetBufferAs<cmds::Uniform4ivImmediate>(); 2283 const GLsizei kNumElements = 2; 2284 const size_t kExpectedCmdSize = 2285 sizeof(cmd) + kNumElements * sizeof(GLint) * 4; 2286 void* next_cmd = 2287 cmd.Set(&cmd, static_cast<GLint>(1), static_cast<GLsizei>(2), data); 2288 EXPECT_EQ(static_cast<uint32>(cmds::Uniform4ivImmediate::kCmdId), 2289 cmd.header.command); 2290 EXPECT_EQ(kExpectedCmdSize, cmd.header.size * 4u); 2291 EXPECT_EQ(static_cast<GLint>(1), cmd.location); 2292 EXPECT_EQ(static_cast<GLsizei>(2), cmd.count); 2293 CheckBytesWrittenMatchesExpectedSize( 2294 next_cmd, sizeof(cmd) + RoundSizeToMultipleOfEntries(sizeof(data))); 2295 // TODO(gman): Check that data was inserted; 2296} 2297 2298TEST_F(GLES2FormatTest, UniformMatrix2fv) { 2299 cmds::UniformMatrix2fv& cmd = *GetBufferAs<cmds::UniformMatrix2fv>(); 2300 void* next_cmd = cmd.Set(&cmd, 2301 static_cast<GLint>(11), 2302 static_cast<GLsizei>(12), 2303 static_cast<GLboolean>(13), 2304 static_cast<uint32>(14), 2305 static_cast<uint32>(15)); 2306 EXPECT_EQ(static_cast<uint32>(cmds::UniformMatrix2fv::kCmdId), 2307 cmd.header.command); 2308 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2309 EXPECT_EQ(static_cast<GLint>(11), cmd.location); 2310 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count); 2311 EXPECT_EQ(static_cast<GLboolean>(13), cmd.transpose); 2312 EXPECT_EQ(static_cast<uint32>(14), cmd.value_shm_id); 2313 EXPECT_EQ(static_cast<uint32>(15), cmd.value_shm_offset); 2314 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 2315} 2316 2317TEST_F(GLES2FormatTest, UniformMatrix2fvImmediate) { 2318 const int kSomeBaseValueToTestWith = 51; 2319 static GLfloat data[] = { 2320 static_cast<GLfloat>(kSomeBaseValueToTestWith + 0), 2321 static_cast<GLfloat>(kSomeBaseValueToTestWith + 1), 2322 static_cast<GLfloat>(kSomeBaseValueToTestWith + 2), 2323 static_cast<GLfloat>(kSomeBaseValueToTestWith + 3), 2324 static_cast<GLfloat>(kSomeBaseValueToTestWith + 4), 2325 static_cast<GLfloat>(kSomeBaseValueToTestWith + 5), 2326 static_cast<GLfloat>(kSomeBaseValueToTestWith + 6), 2327 static_cast<GLfloat>(kSomeBaseValueToTestWith + 7), }; 2328 cmds::UniformMatrix2fvImmediate& cmd = 2329 *GetBufferAs<cmds::UniformMatrix2fvImmediate>(); 2330 const GLsizei kNumElements = 2; 2331 const size_t kExpectedCmdSize = 2332 sizeof(cmd) + kNumElements * sizeof(GLfloat) * 4; 2333 void* next_cmd = cmd.Set(&cmd, 2334 static_cast<GLint>(1), 2335 static_cast<GLsizei>(2), 2336 static_cast<GLboolean>(3), 2337 data); 2338 EXPECT_EQ(static_cast<uint32>(cmds::UniformMatrix2fvImmediate::kCmdId), 2339 cmd.header.command); 2340 EXPECT_EQ(kExpectedCmdSize, cmd.header.size * 4u); 2341 EXPECT_EQ(static_cast<GLint>(1), cmd.location); 2342 EXPECT_EQ(static_cast<GLsizei>(2), cmd.count); 2343 EXPECT_EQ(static_cast<GLboolean>(3), cmd.transpose); 2344 CheckBytesWrittenMatchesExpectedSize( 2345 next_cmd, sizeof(cmd) + RoundSizeToMultipleOfEntries(sizeof(data))); 2346 // TODO(gman): Check that data was inserted; 2347} 2348 2349TEST_F(GLES2FormatTest, UniformMatrix3fv) { 2350 cmds::UniformMatrix3fv& cmd = *GetBufferAs<cmds::UniformMatrix3fv>(); 2351 void* next_cmd = cmd.Set(&cmd, 2352 static_cast<GLint>(11), 2353 static_cast<GLsizei>(12), 2354 static_cast<GLboolean>(13), 2355 static_cast<uint32>(14), 2356 static_cast<uint32>(15)); 2357 EXPECT_EQ(static_cast<uint32>(cmds::UniformMatrix3fv::kCmdId), 2358 cmd.header.command); 2359 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2360 EXPECT_EQ(static_cast<GLint>(11), cmd.location); 2361 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count); 2362 EXPECT_EQ(static_cast<GLboolean>(13), cmd.transpose); 2363 EXPECT_EQ(static_cast<uint32>(14), cmd.value_shm_id); 2364 EXPECT_EQ(static_cast<uint32>(15), cmd.value_shm_offset); 2365 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 2366} 2367 2368TEST_F(GLES2FormatTest, UniformMatrix3fvImmediate) { 2369 const int kSomeBaseValueToTestWith = 51; 2370 static GLfloat data[] = { 2371 static_cast<GLfloat>(kSomeBaseValueToTestWith + 0), 2372 static_cast<GLfloat>(kSomeBaseValueToTestWith + 1), 2373 static_cast<GLfloat>(kSomeBaseValueToTestWith + 2), 2374 static_cast<GLfloat>(kSomeBaseValueToTestWith + 3), 2375 static_cast<GLfloat>(kSomeBaseValueToTestWith + 4), 2376 static_cast<GLfloat>(kSomeBaseValueToTestWith + 5), 2377 static_cast<GLfloat>(kSomeBaseValueToTestWith + 6), 2378 static_cast<GLfloat>(kSomeBaseValueToTestWith + 7), 2379 static_cast<GLfloat>(kSomeBaseValueToTestWith + 8), 2380 static_cast<GLfloat>(kSomeBaseValueToTestWith + 9), 2381 static_cast<GLfloat>(kSomeBaseValueToTestWith + 10), 2382 static_cast<GLfloat>(kSomeBaseValueToTestWith + 11), 2383 static_cast<GLfloat>(kSomeBaseValueToTestWith + 12), 2384 static_cast<GLfloat>(kSomeBaseValueToTestWith + 13), 2385 static_cast<GLfloat>(kSomeBaseValueToTestWith + 14), 2386 static_cast<GLfloat>(kSomeBaseValueToTestWith + 15), 2387 static_cast<GLfloat>(kSomeBaseValueToTestWith + 16), 2388 static_cast<GLfloat>(kSomeBaseValueToTestWith + 17), }; 2389 cmds::UniformMatrix3fvImmediate& cmd = 2390 *GetBufferAs<cmds::UniformMatrix3fvImmediate>(); 2391 const GLsizei kNumElements = 2; 2392 const size_t kExpectedCmdSize = 2393 sizeof(cmd) + kNumElements * sizeof(GLfloat) * 9; 2394 void* next_cmd = cmd.Set(&cmd, 2395 static_cast<GLint>(1), 2396 static_cast<GLsizei>(2), 2397 static_cast<GLboolean>(3), 2398 data); 2399 EXPECT_EQ(static_cast<uint32>(cmds::UniformMatrix3fvImmediate::kCmdId), 2400 cmd.header.command); 2401 EXPECT_EQ(kExpectedCmdSize, cmd.header.size * 4u); 2402 EXPECT_EQ(static_cast<GLint>(1), cmd.location); 2403 EXPECT_EQ(static_cast<GLsizei>(2), cmd.count); 2404 EXPECT_EQ(static_cast<GLboolean>(3), cmd.transpose); 2405 CheckBytesWrittenMatchesExpectedSize( 2406 next_cmd, sizeof(cmd) + RoundSizeToMultipleOfEntries(sizeof(data))); 2407 // TODO(gman): Check that data was inserted; 2408} 2409 2410TEST_F(GLES2FormatTest, UniformMatrix4fv) { 2411 cmds::UniformMatrix4fv& cmd = *GetBufferAs<cmds::UniformMatrix4fv>(); 2412 void* next_cmd = cmd.Set(&cmd, 2413 static_cast<GLint>(11), 2414 static_cast<GLsizei>(12), 2415 static_cast<GLboolean>(13), 2416 static_cast<uint32>(14), 2417 static_cast<uint32>(15)); 2418 EXPECT_EQ(static_cast<uint32>(cmds::UniformMatrix4fv::kCmdId), 2419 cmd.header.command); 2420 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2421 EXPECT_EQ(static_cast<GLint>(11), cmd.location); 2422 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count); 2423 EXPECT_EQ(static_cast<GLboolean>(13), cmd.transpose); 2424 EXPECT_EQ(static_cast<uint32>(14), cmd.value_shm_id); 2425 EXPECT_EQ(static_cast<uint32>(15), cmd.value_shm_offset); 2426 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 2427} 2428 2429TEST_F(GLES2FormatTest, UniformMatrix4fvImmediate) { 2430 const int kSomeBaseValueToTestWith = 51; 2431 static GLfloat data[] = { 2432 static_cast<GLfloat>(kSomeBaseValueToTestWith + 0), 2433 static_cast<GLfloat>(kSomeBaseValueToTestWith + 1), 2434 static_cast<GLfloat>(kSomeBaseValueToTestWith + 2), 2435 static_cast<GLfloat>(kSomeBaseValueToTestWith + 3), 2436 static_cast<GLfloat>(kSomeBaseValueToTestWith + 4), 2437 static_cast<GLfloat>(kSomeBaseValueToTestWith + 5), 2438 static_cast<GLfloat>(kSomeBaseValueToTestWith + 6), 2439 static_cast<GLfloat>(kSomeBaseValueToTestWith + 7), 2440 static_cast<GLfloat>(kSomeBaseValueToTestWith + 8), 2441 static_cast<GLfloat>(kSomeBaseValueToTestWith + 9), 2442 static_cast<GLfloat>(kSomeBaseValueToTestWith + 10), 2443 static_cast<GLfloat>(kSomeBaseValueToTestWith + 11), 2444 static_cast<GLfloat>(kSomeBaseValueToTestWith + 12), 2445 static_cast<GLfloat>(kSomeBaseValueToTestWith + 13), 2446 static_cast<GLfloat>(kSomeBaseValueToTestWith + 14), 2447 static_cast<GLfloat>(kSomeBaseValueToTestWith + 15), 2448 static_cast<GLfloat>(kSomeBaseValueToTestWith + 16), 2449 static_cast<GLfloat>(kSomeBaseValueToTestWith + 17), 2450 static_cast<GLfloat>(kSomeBaseValueToTestWith + 18), 2451 static_cast<GLfloat>(kSomeBaseValueToTestWith + 19), 2452 static_cast<GLfloat>(kSomeBaseValueToTestWith + 20), 2453 static_cast<GLfloat>(kSomeBaseValueToTestWith + 21), 2454 static_cast<GLfloat>(kSomeBaseValueToTestWith + 22), 2455 static_cast<GLfloat>(kSomeBaseValueToTestWith + 23), 2456 static_cast<GLfloat>(kSomeBaseValueToTestWith + 24), 2457 static_cast<GLfloat>(kSomeBaseValueToTestWith + 25), 2458 static_cast<GLfloat>(kSomeBaseValueToTestWith + 26), 2459 static_cast<GLfloat>(kSomeBaseValueToTestWith + 27), 2460 static_cast<GLfloat>(kSomeBaseValueToTestWith + 28), 2461 static_cast<GLfloat>(kSomeBaseValueToTestWith + 29), 2462 static_cast<GLfloat>(kSomeBaseValueToTestWith + 30), 2463 static_cast<GLfloat>(kSomeBaseValueToTestWith + 31), }; 2464 cmds::UniformMatrix4fvImmediate& cmd = 2465 *GetBufferAs<cmds::UniformMatrix4fvImmediate>(); 2466 const GLsizei kNumElements = 2; 2467 const size_t kExpectedCmdSize = 2468 sizeof(cmd) + kNumElements * sizeof(GLfloat) * 16; 2469 void* next_cmd = cmd.Set(&cmd, 2470 static_cast<GLint>(1), 2471 static_cast<GLsizei>(2), 2472 static_cast<GLboolean>(3), 2473 data); 2474 EXPECT_EQ(static_cast<uint32>(cmds::UniformMatrix4fvImmediate::kCmdId), 2475 cmd.header.command); 2476 EXPECT_EQ(kExpectedCmdSize, cmd.header.size * 4u); 2477 EXPECT_EQ(static_cast<GLint>(1), cmd.location); 2478 EXPECT_EQ(static_cast<GLsizei>(2), cmd.count); 2479 EXPECT_EQ(static_cast<GLboolean>(3), cmd.transpose); 2480 CheckBytesWrittenMatchesExpectedSize( 2481 next_cmd, sizeof(cmd) + RoundSizeToMultipleOfEntries(sizeof(data))); 2482 // TODO(gman): Check that data was inserted; 2483} 2484 2485TEST_F(GLES2FormatTest, UseProgram) { 2486 cmds::UseProgram& cmd = *GetBufferAs<cmds::UseProgram>(); 2487 void* next_cmd = cmd.Set(&cmd, static_cast<GLuint>(11)); 2488 EXPECT_EQ(static_cast<uint32>(cmds::UseProgram::kCmdId), cmd.header.command); 2489 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2490 EXPECT_EQ(static_cast<GLuint>(11), cmd.program); 2491 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 2492} 2493 2494TEST_F(GLES2FormatTest, ValidateProgram) { 2495 cmds::ValidateProgram& cmd = *GetBufferAs<cmds::ValidateProgram>(); 2496 void* next_cmd = cmd.Set(&cmd, static_cast<GLuint>(11)); 2497 EXPECT_EQ(static_cast<uint32>(cmds::ValidateProgram::kCmdId), 2498 cmd.header.command); 2499 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2500 EXPECT_EQ(static_cast<GLuint>(11), cmd.program); 2501 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 2502} 2503 2504TEST_F(GLES2FormatTest, VertexAttrib1f) { 2505 cmds::VertexAttrib1f& cmd = *GetBufferAs<cmds::VertexAttrib1f>(); 2506 void* next_cmd = 2507 cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<GLfloat>(12)); 2508 EXPECT_EQ(static_cast<uint32>(cmds::VertexAttrib1f::kCmdId), 2509 cmd.header.command); 2510 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2511 EXPECT_EQ(static_cast<GLuint>(11), cmd.indx); 2512 EXPECT_EQ(static_cast<GLfloat>(12), cmd.x); 2513 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 2514} 2515 2516TEST_F(GLES2FormatTest, VertexAttrib1fv) { 2517 cmds::VertexAttrib1fv& cmd = *GetBufferAs<cmds::VertexAttrib1fv>(); 2518 void* next_cmd = cmd.Set(&cmd, 2519 static_cast<GLuint>(11), 2520 static_cast<uint32>(12), 2521 static_cast<uint32>(13)); 2522 EXPECT_EQ(static_cast<uint32>(cmds::VertexAttrib1fv::kCmdId), 2523 cmd.header.command); 2524 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2525 EXPECT_EQ(static_cast<GLuint>(11), cmd.indx); 2526 EXPECT_EQ(static_cast<uint32>(12), cmd.values_shm_id); 2527 EXPECT_EQ(static_cast<uint32>(13), cmd.values_shm_offset); 2528 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 2529} 2530 2531TEST_F(GLES2FormatTest, VertexAttrib1fvImmediate) { 2532 const int kSomeBaseValueToTestWith = 51; 2533 static GLfloat data[] = { 2534 static_cast<GLfloat>(kSomeBaseValueToTestWith + 0), }; 2535 cmds::VertexAttrib1fvImmediate& cmd = 2536 *GetBufferAs<cmds::VertexAttrib1fvImmediate>(); 2537 void* next_cmd = cmd.Set(&cmd, static_cast<GLuint>(11), data); 2538 EXPECT_EQ(static_cast<uint32>(cmds::VertexAttrib1fvImmediate::kCmdId), 2539 cmd.header.command); 2540 EXPECT_EQ(sizeof(cmd) + RoundSizeToMultipleOfEntries(sizeof(data)), 2541 cmd.header.size * 4u); 2542 EXPECT_EQ(static_cast<GLuint>(11), cmd.indx); 2543 CheckBytesWrittenMatchesExpectedSize( 2544 next_cmd, sizeof(cmd) + RoundSizeToMultipleOfEntries(sizeof(data))); 2545 // TODO(gman): Check that data was inserted; 2546} 2547 2548TEST_F(GLES2FormatTest, VertexAttrib2f) { 2549 cmds::VertexAttrib2f& cmd = *GetBufferAs<cmds::VertexAttrib2f>(); 2550 void* next_cmd = cmd.Set(&cmd, 2551 static_cast<GLuint>(11), 2552 static_cast<GLfloat>(12), 2553 static_cast<GLfloat>(13)); 2554 EXPECT_EQ(static_cast<uint32>(cmds::VertexAttrib2f::kCmdId), 2555 cmd.header.command); 2556 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2557 EXPECT_EQ(static_cast<GLuint>(11), cmd.indx); 2558 EXPECT_EQ(static_cast<GLfloat>(12), cmd.x); 2559 EXPECT_EQ(static_cast<GLfloat>(13), cmd.y); 2560 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 2561} 2562 2563TEST_F(GLES2FormatTest, VertexAttrib2fv) { 2564 cmds::VertexAttrib2fv& cmd = *GetBufferAs<cmds::VertexAttrib2fv>(); 2565 void* next_cmd = cmd.Set(&cmd, 2566 static_cast<GLuint>(11), 2567 static_cast<uint32>(12), 2568 static_cast<uint32>(13)); 2569 EXPECT_EQ(static_cast<uint32>(cmds::VertexAttrib2fv::kCmdId), 2570 cmd.header.command); 2571 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2572 EXPECT_EQ(static_cast<GLuint>(11), cmd.indx); 2573 EXPECT_EQ(static_cast<uint32>(12), cmd.values_shm_id); 2574 EXPECT_EQ(static_cast<uint32>(13), cmd.values_shm_offset); 2575 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 2576} 2577 2578TEST_F(GLES2FormatTest, VertexAttrib2fvImmediate) { 2579 const int kSomeBaseValueToTestWith = 51; 2580 static GLfloat data[] = { 2581 static_cast<GLfloat>(kSomeBaseValueToTestWith + 0), 2582 static_cast<GLfloat>(kSomeBaseValueToTestWith + 1), }; 2583 cmds::VertexAttrib2fvImmediate& cmd = 2584 *GetBufferAs<cmds::VertexAttrib2fvImmediate>(); 2585 void* next_cmd = cmd.Set(&cmd, static_cast<GLuint>(11), data); 2586 EXPECT_EQ(static_cast<uint32>(cmds::VertexAttrib2fvImmediate::kCmdId), 2587 cmd.header.command); 2588 EXPECT_EQ(sizeof(cmd) + RoundSizeToMultipleOfEntries(sizeof(data)), 2589 cmd.header.size * 4u); 2590 EXPECT_EQ(static_cast<GLuint>(11), cmd.indx); 2591 CheckBytesWrittenMatchesExpectedSize( 2592 next_cmd, sizeof(cmd) + RoundSizeToMultipleOfEntries(sizeof(data))); 2593 // TODO(gman): Check that data was inserted; 2594} 2595 2596TEST_F(GLES2FormatTest, VertexAttrib3f) { 2597 cmds::VertexAttrib3f& cmd = *GetBufferAs<cmds::VertexAttrib3f>(); 2598 void* next_cmd = cmd.Set(&cmd, 2599 static_cast<GLuint>(11), 2600 static_cast<GLfloat>(12), 2601 static_cast<GLfloat>(13), 2602 static_cast<GLfloat>(14)); 2603 EXPECT_EQ(static_cast<uint32>(cmds::VertexAttrib3f::kCmdId), 2604 cmd.header.command); 2605 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2606 EXPECT_EQ(static_cast<GLuint>(11), cmd.indx); 2607 EXPECT_EQ(static_cast<GLfloat>(12), cmd.x); 2608 EXPECT_EQ(static_cast<GLfloat>(13), cmd.y); 2609 EXPECT_EQ(static_cast<GLfloat>(14), cmd.z); 2610 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 2611} 2612 2613TEST_F(GLES2FormatTest, VertexAttrib3fv) { 2614 cmds::VertexAttrib3fv& cmd = *GetBufferAs<cmds::VertexAttrib3fv>(); 2615 void* next_cmd = cmd.Set(&cmd, 2616 static_cast<GLuint>(11), 2617 static_cast<uint32>(12), 2618 static_cast<uint32>(13)); 2619 EXPECT_EQ(static_cast<uint32>(cmds::VertexAttrib3fv::kCmdId), 2620 cmd.header.command); 2621 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2622 EXPECT_EQ(static_cast<GLuint>(11), cmd.indx); 2623 EXPECT_EQ(static_cast<uint32>(12), cmd.values_shm_id); 2624 EXPECT_EQ(static_cast<uint32>(13), cmd.values_shm_offset); 2625 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 2626} 2627 2628TEST_F(GLES2FormatTest, VertexAttrib3fvImmediate) { 2629 const int kSomeBaseValueToTestWith = 51; 2630 static GLfloat data[] = { 2631 static_cast<GLfloat>(kSomeBaseValueToTestWith + 0), 2632 static_cast<GLfloat>(kSomeBaseValueToTestWith + 1), 2633 static_cast<GLfloat>(kSomeBaseValueToTestWith + 2), }; 2634 cmds::VertexAttrib3fvImmediate& cmd = 2635 *GetBufferAs<cmds::VertexAttrib3fvImmediate>(); 2636 void* next_cmd = cmd.Set(&cmd, static_cast<GLuint>(11), data); 2637 EXPECT_EQ(static_cast<uint32>(cmds::VertexAttrib3fvImmediate::kCmdId), 2638 cmd.header.command); 2639 EXPECT_EQ(sizeof(cmd) + RoundSizeToMultipleOfEntries(sizeof(data)), 2640 cmd.header.size * 4u); 2641 EXPECT_EQ(static_cast<GLuint>(11), cmd.indx); 2642 CheckBytesWrittenMatchesExpectedSize( 2643 next_cmd, sizeof(cmd) + RoundSizeToMultipleOfEntries(sizeof(data))); 2644 // TODO(gman): Check that data was inserted; 2645} 2646 2647TEST_F(GLES2FormatTest, VertexAttrib4f) { 2648 cmds::VertexAttrib4f& cmd = *GetBufferAs<cmds::VertexAttrib4f>(); 2649 void* next_cmd = cmd.Set(&cmd, 2650 static_cast<GLuint>(11), 2651 static_cast<GLfloat>(12), 2652 static_cast<GLfloat>(13), 2653 static_cast<GLfloat>(14), 2654 static_cast<GLfloat>(15)); 2655 EXPECT_EQ(static_cast<uint32>(cmds::VertexAttrib4f::kCmdId), 2656 cmd.header.command); 2657 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2658 EXPECT_EQ(static_cast<GLuint>(11), cmd.indx); 2659 EXPECT_EQ(static_cast<GLfloat>(12), cmd.x); 2660 EXPECT_EQ(static_cast<GLfloat>(13), cmd.y); 2661 EXPECT_EQ(static_cast<GLfloat>(14), cmd.z); 2662 EXPECT_EQ(static_cast<GLfloat>(15), cmd.w); 2663 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 2664} 2665 2666TEST_F(GLES2FormatTest, VertexAttrib4fv) { 2667 cmds::VertexAttrib4fv& cmd = *GetBufferAs<cmds::VertexAttrib4fv>(); 2668 void* next_cmd = cmd.Set(&cmd, 2669 static_cast<GLuint>(11), 2670 static_cast<uint32>(12), 2671 static_cast<uint32>(13)); 2672 EXPECT_EQ(static_cast<uint32>(cmds::VertexAttrib4fv::kCmdId), 2673 cmd.header.command); 2674 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2675 EXPECT_EQ(static_cast<GLuint>(11), cmd.indx); 2676 EXPECT_EQ(static_cast<uint32>(12), cmd.values_shm_id); 2677 EXPECT_EQ(static_cast<uint32>(13), cmd.values_shm_offset); 2678 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 2679} 2680 2681TEST_F(GLES2FormatTest, VertexAttrib4fvImmediate) { 2682 const int kSomeBaseValueToTestWith = 51; 2683 static GLfloat data[] = { 2684 static_cast<GLfloat>(kSomeBaseValueToTestWith + 0), 2685 static_cast<GLfloat>(kSomeBaseValueToTestWith + 1), 2686 static_cast<GLfloat>(kSomeBaseValueToTestWith + 2), 2687 static_cast<GLfloat>(kSomeBaseValueToTestWith + 3), }; 2688 cmds::VertexAttrib4fvImmediate& cmd = 2689 *GetBufferAs<cmds::VertexAttrib4fvImmediate>(); 2690 void* next_cmd = cmd.Set(&cmd, static_cast<GLuint>(11), data); 2691 EXPECT_EQ(static_cast<uint32>(cmds::VertexAttrib4fvImmediate::kCmdId), 2692 cmd.header.command); 2693 EXPECT_EQ(sizeof(cmd) + RoundSizeToMultipleOfEntries(sizeof(data)), 2694 cmd.header.size * 4u); 2695 EXPECT_EQ(static_cast<GLuint>(11), cmd.indx); 2696 CheckBytesWrittenMatchesExpectedSize( 2697 next_cmd, sizeof(cmd) + RoundSizeToMultipleOfEntries(sizeof(data))); 2698 // TODO(gman): Check that data was inserted; 2699} 2700 2701TEST_F(GLES2FormatTest, VertexAttribPointer) { 2702 cmds::VertexAttribPointer& cmd = *GetBufferAs<cmds::VertexAttribPointer>(); 2703 void* next_cmd = cmd.Set(&cmd, 2704 static_cast<GLuint>(11), 2705 static_cast<GLint>(12), 2706 static_cast<GLenum>(13), 2707 static_cast<GLboolean>(14), 2708 static_cast<GLsizei>(15), 2709 static_cast<GLuint>(16)); 2710 EXPECT_EQ(static_cast<uint32>(cmds::VertexAttribPointer::kCmdId), 2711 cmd.header.command); 2712 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2713 EXPECT_EQ(static_cast<GLuint>(11), cmd.indx); 2714 EXPECT_EQ(static_cast<GLint>(12), cmd.size); 2715 EXPECT_EQ(static_cast<GLenum>(13), cmd.type); 2716 EXPECT_EQ(static_cast<GLboolean>(14), cmd.normalized); 2717 EXPECT_EQ(static_cast<GLsizei>(15), cmd.stride); 2718 EXPECT_EQ(static_cast<GLuint>(16), cmd.offset); 2719 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 2720} 2721 2722TEST_F(GLES2FormatTest, Viewport) { 2723 cmds::Viewport& cmd = *GetBufferAs<cmds::Viewport>(); 2724 void* next_cmd = cmd.Set(&cmd, 2725 static_cast<GLint>(11), 2726 static_cast<GLint>(12), 2727 static_cast<GLsizei>(13), 2728 static_cast<GLsizei>(14)); 2729 EXPECT_EQ(static_cast<uint32>(cmds::Viewport::kCmdId), cmd.header.command); 2730 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2731 EXPECT_EQ(static_cast<GLint>(11), cmd.x); 2732 EXPECT_EQ(static_cast<GLint>(12), cmd.y); 2733 EXPECT_EQ(static_cast<GLsizei>(13), cmd.width); 2734 EXPECT_EQ(static_cast<GLsizei>(14), cmd.height); 2735 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 2736} 2737 2738TEST_F(GLES2FormatTest, BlitFramebufferCHROMIUM) { 2739 cmds::BlitFramebufferCHROMIUM& cmd = 2740 *GetBufferAs<cmds::BlitFramebufferCHROMIUM>(); 2741 void* next_cmd = cmd.Set(&cmd, 2742 static_cast<GLint>(11), 2743 static_cast<GLint>(12), 2744 static_cast<GLint>(13), 2745 static_cast<GLint>(14), 2746 static_cast<GLint>(15), 2747 static_cast<GLint>(16), 2748 static_cast<GLint>(17), 2749 static_cast<GLint>(18), 2750 static_cast<GLbitfield>(19), 2751 static_cast<GLenum>(20)); 2752 EXPECT_EQ(static_cast<uint32>(cmds::BlitFramebufferCHROMIUM::kCmdId), 2753 cmd.header.command); 2754 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2755 EXPECT_EQ(static_cast<GLint>(11), cmd.srcX0); 2756 EXPECT_EQ(static_cast<GLint>(12), cmd.srcY0); 2757 EXPECT_EQ(static_cast<GLint>(13), cmd.srcX1); 2758 EXPECT_EQ(static_cast<GLint>(14), cmd.srcY1); 2759 EXPECT_EQ(static_cast<GLint>(15), cmd.dstX0); 2760 EXPECT_EQ(static_cast<GLint>(16), cmd.dstY0); 2761 EXPECT_EQ(static_cast<GLint>(17), cmd.dstX1); 2762 EXPECT_EQ(static_cast<GLint>(18), cmd.dstY1); 2763 EXPECT_EQ(static_cast<GLbitfield>(19), cmd.mask); 2764 EXPECT_EQ(static_cast<GLenum>(20), cmd.filter); 2765 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 2766} 2767 2768TEST_F(GLES2FormatTest, RenderbufferStorageMultisampleCHROMIUM) { 2769 cmds::RenderbufferStorageMultisampleCHROMIUM& cmd = 2770 *GetBufferAs<cmds::RenderbufferStorageMultisampleCHROMIUM>(); 2771 void* next_cmd = cmd.Set(&cmd, 2772 static_cast<GLenum>(11), 2773 static_cast<GLsizei>(12), 2774 static_cast<GLenum>(13), 2775 static_cast<GLsizei>(14), 2776 static_cast<GLsizei>(15)); 2777 EXPECT_EQ( 2778 static_cast<uint32>(cmds::RenderbufferStorageMultisampleCHROMIUM::kCmdId), 2779 cmd.header.command); 2780 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2781 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 2782 EXPECT_EQ(static_cast<GLsizei>(12), cmd.samples); 2783 EXPECT_EQ(static_cast<GLenum>(13), cmd.internalformat); 2784 EXPECT_EQ(static_cast<GLsizei>(14), cmd.width); 2785 EXPECT_EQ(static_cast<GLsizei>(15), cmd.height); 2786 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 2787} 2788 2789TEST_F(GLES2FormatTest, RenderbufferStorageMultisampleEXT) { 2790 cmds::RenderbufferStorageMultisampleEXT& cmd = 2791 *GetBufferAs<cmds::RenderbufferStorageMultisampleEXT>(); 2792 void* next_cmd = cmd.Set(&cmd, 2793 static_cast<GLenum>(11), 2794 static_cast<GLsizei>(12), 2795 static_cast<GLenum>(13), 2796 static_cast<GLsizei>(14), 2797 static_cast<GLsizei>(15)); 2798 EXPECT_EQ( 2799 static_cast<uint32>(cmds::RenderbufferStorageMultisampleEXT::kCmdId), 2800 cmd.header.command); 2801 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2802 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 2803 EXPECT_EQ(static_cast<GLsizei>(12), cmd.samples); 2804 EXPECT_EQ(static_cast<GLenum>(13), cmd.internalformat); 2805 EXPECT_EQ(static_cast<GLsizei>(14), cmd.width); 2806 EXPECT_EQ(static_cast<GLsizei>(15), cmd.height); 2807 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 2808} 2809 2810TEST_F(GLES2FormatTest, FramebufferTexture2DMultisampleEXT) { 2811 cmds::FramebufferTexture2DMultisampleEXT& cmd = 2812 *GetBufferAs<cmds::FramebufferTexture2DMultisampleEXT>(); 2813 void* next_cmd = cmd.Set(&cmd, 2814 static_cast<GLenum>(11), 2815 static_cast<GLenum>(12), 2816 static_cast<GLenum>(13), 2817 static_cast<GLuint>(14), 2818 static_cast<GLint>(15), 2819 static_cast<GLsizei>(16)); 2820 EXPECT_EQ( 2821 static_cast<uint32>(cmds::FramebufferTexture2DMultisampleEXT::kCmdId), 2822 cmd.header.command); 2823 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2824 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 2825 EXPECT_EQ(static_cast<GLenum>(12), cmd.attachment); 2826 EXPECT_EQ(static_cast<GLenum>(13), cmd.textarget); 2827 EXPECT_EQ(static_cast<GLuint>(14), cmd.texture); 2828 EXPECT_EQ(static_cast<GLint>(15), cmd.level); 2829 EXPECT_EQ(static_cast<GLsizei>(16), cmd.samples); 2830 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 2831} 2832 2833TEST_F(GLES2FormatTest, TexStorage2DEXT) { 2834 cmds::TexStorage2DEXT& cmd = *GetBufferAs<cmds::TexStorage2DEXT>(); 2835 void* next_cmd = cmd.Set(&cmd, 2836 static_cast<GLenum>(11), 2837 static_cast<GLsizei>(12), 2838 static_cast<GLenum>(13), 2839 static_cast<GLsizei>(14), 2840 static_cast<GLsizei>(15)); 2841 EXPECT_EQ(static_cast<uint32>(cmds::TexStorage2DEXT::kCmdId), 2842 cmd.header.command); 2843 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2844 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 2845 EXPECT_EQ(static_cast<GLsizei>(12), cmd.levels); 2846 EXPECT_EQ(static_cast<GLenum>(13), cmd.internalFormat); 2847 EXPECT_EQ(static_cast<GLsizei>(14), cmd.width); 2848 EXPECT_EQ(static_cast<GLsizei>(15), cmd.height); 2849 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 2850} 2851 2852TEST_F(GLES2FormatTest, GenQueriesEXT) { 2853 cmds::GenQueriesEXT& cmd = *GetBufferAs<cmds::GenQueriesEXT>(); 2854 void* next_cmd = cmd.Set(&cmd, 2855 static_cast<GLsizei>(11), 2856 static_cast<uint32>(12), 2857 static_cast<uint32>(13)); 2858 EXPECT_EQ(static_cast<uint32>(cmds::GenQueriesEXT::kCmdId), 2859 cmd.header.command); 2860 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2861 EXPECT_EQ(static_cast<GLsizei>(11), cmd.n); 2862 EXPECT_EQ(static_cast<uint32>(12), cmd.queries_shm_id); 2863 EXPECT_EQ(static_cast<uint32>(13), cmd.queries_shm_offset); 2864 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 2865} 2866 2867TEST_F(GLES2FormatTest, GenQueriesEXTImmediate) { 2868 static GLuint ids[] = {12, 23, 34, }; 2869 cmds::GenQueriesEXTImmediate& cmd = 2870 *GetBufferAs<cmds::GenQueriesEXTImmediate>(); 2871 void* next_cmd = cmd.Set(&cmd, static_cast<GLsizei>(arraysize(ids)), ids); 2872 EXPECT_EQ(static_cast<uint32>(cmds::GenQueriesEXTImmediate::kCmdId), 2873 cmd.header.command); 2874 EXPECT_EQ(sizeof(cmd) + RoundSizeToMultipleOfEntries(cmd.n * 4u), 2875 cmd.header.size * 4u); 2876 EXPECT_EQ(static_cast<GLsizei>(arraysize(ids)), cmd.n); 2877 CheckBytesWrittenMatchesExpectedSize( 2878 next_cmd, 2879 sizeof(cmd) + RoundSizeToMultipleOfEntries(arraysize(ids) * 4u)); 2880 // TODO(gman): Check that ids were inserted; 2881} 2882 2883TEST_F(GLES2FormatTest, DeleteQueriesEXT) { 2884 cmds::DeleteQueriesEXT& cmd = *GetBufferAs<cmds::DeleteQueriesEXT>(); 2885 void* next_cmd = cmd.Set(&cmd, 2886 static_cast<GLsizei>(11), 2887 static_cast<uint32>(12), 2888 static_cast<uint32>(13)); 2889 EXPECT_EQ(static_cast<uint32>(cmds::DeleteQueriesEXT::kCmdId), 2890 cmd.header.command); 2891 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2892 EXPECT_EQ(static_cast<GLsizei>(11), cmd.n); 2893 EXPECT_EQ(static_cast<uint32>(12), cmd.queries_shm_id); 2894 EXPECT_EQ(static_cast<uint32>(13), cmd.queries_shm_offset); 2895 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 2896} 2897 2898TEST_F(GLES2FormatTest, DeleteQueriesEXTImmediate) { 2899 static GLuint ids[] = {12, 23, 34, }; 2900 cmds::DeleteQueriesEXTImmediate& cmd = 2901 *GetBufferAs<cmds::DeleteQueriesEXTImmediate>(); 2902 void* next_cmd = cmd.Set(&cmd, static_cast<GLsizei>(arraysize(ids)), ids); 2903 EXPECT_EQ(static_cast<uint32>(cmds::DeleteQueriesEXTImmediate::kCmdId), 2904 cmd.header.command); 2905 EXPECT_EQ(sizeof(cmd) + RoundSizeToMultipleOfEntries(cmd.n * 4u), 2906 cmd.header.size * 4u); 2907 EXPECT_EQ(static_cast<GLsizei>(arraysize(ids)), cmd.n); 2908 CheckBytesWrittenMatchesExpectedSize( 2909 next_cmd, 2910 sizeof(cmd) + RoundSizeToMultipleOfEntries(arraysize(ids) * 4u)); 2911 // TODO(gman): Check that ids were inserted; 2912} 2913 2914TEST_F(GLES2FormatTest, BeginQueryEXT) { 2915 cmds::BeginQueryEXT& cmd = *GetBufferAs<cmds::BeginQueryEXT>(); 2916 void* next_cmd = cmd.Set(&cmd, 2917 static_cast<GLenum>(11), 2918 static_cast<GLuint>(12), 2919 static_cast<uint32>(13), 2920 static_cast<uint32>(14)); 2921 EXPECT_EQ(static_cast<uint32>(cmds::BeginQueryEXT::kCmdId), 2922 cmd.header.command); 2923 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2924 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 2925 EXPECT_EQ(static_cast<GLuint>(12), cmd.id); 2926 EXPECT_EQ(static_cast<uint32>(13), cmd.sync_data_shm_id); 2927 EXPECT_EQ(static_cast<uint32>(14), cmd.sync_data_shm_offset); 2928 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 2929} 2930 2931TEST_F(GLES2FormatTest, EndQueryEXT) { 2932 cmds::EndQueryEXT& cmd = *GetBufferAs<cmds::EndQueryEXT>(); 2933 void* next_cmd = 2934 cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLuint>(12)); 2935 EXPECT_EQ(static_cast<uint32>(cmds::EndQueryEXT::kCmdId), cmd.header.command); 2936 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2937 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 2938 EXPECT_EQ(static_cast<GLuint>(12), cmd.submit_count); 2939 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 2940} 2941 2942TEST_F(GLES2FormatTest, InsertEventMarkerEXT) { 2943 cmds::InsertEventMarkerEXT& cmd = *GetBufferAs<cmds::InsertEventMarkerEXT>(); 2944 void* next_cmd = cmd.Set(&cmd, static_cast<GLuint>(11)); 2945 EXPECT_EQ(static_cast<uint32>(cmds::InsertEventMarkerEXT::kCmdId), 2946 cmd.header.command); 2947 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2948 EXPECT_EQ(static_cast<GLuint>(11), cmd.bucket_id); 2949 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 2950} 2951 2952TEST_F(GLES2FormatTest, PushGroupMarkerEXT) { 2953 cmds::PushGroupMarkerEXT& cmd = *GetBufferAs<cmds::PushGroupMarkerEXT>(); 2954 void* next_cmd = cmd.Set(&cmd, static_cast<GLuint>(11)); 2955 EXPECT_EQ(static_cast<uint32>(cmds::PushGroupMarkerEXT::kCmdId), 2956 cmd.header.command); 2957 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2958 EXPECT_EQ(static_cast<GLuint>(11), cmd.bucket_id); 2959 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 2960} 2961 2962TEST_F(GLES2FormatTest, PopGroupMarkerEXT) { 2963 cmds::PopGroupMarkerEXT& cmd = *GetBufferAs<cmds::PopGroupMarkerEXT>(); 2964 void* next_cmd = cmd.Set(&cmd); 2965 EXPECT_EQ(static_cast<uint32>(cmds::PopGroupMarkerEXT::kCmdId), 2966 cmd.header.command); 2967 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2968 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 2969} 2970 2971TEST_F(GLES2FormatTest, GenVertexArraysOES) { 2972 cmds::GenVertexArraysOES& cmd = *GetBufferAs<cmds::GenVertexArraysOES>(); 2973 void* next_cmd = cmd.Set(&cmd, 2974 static_cast<GLsizei>(11), 2975 static_cast<uint32>(12), 2976 static_cast<uint32>(13)); 2977 EXPECT_EQ(static_cast<uint32>(cmds::GenVertexArraysOES::kCmdId), 2978 cmd.header.command); 2979 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 2980 EXPECT_EQ(static_cast<GLsizei>(11), cmd.n); 2981 EXPECT_EQ(static_cast<uint32>(12), cmd.arrays_shm_id); 2982 EXPECT_EQ(static_cast<uint32>(13), cmd.arrays_shm_offset); 2983 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 2984} 2985 2986TEST_F(GLES2FormatTest, GenVertexArraysOESImmediate) { 2987 static GLuint ids[] = {12, 23, 34, }; 2988 cmds::GenVertexArraysOESImmediate& cmd = 2989 *GetBufferAs<cmds::GenVertexArraysOESImmediate>(); 2990 void* next_cmd = cmd.Set(&cmd, static_cast<GLsizei>(arraysize(ids)), ids); 2991 EXPECT_EQ(static_cast<uint32>(cmds::GenVertexArraysOESImmediate::kCmdId), 2992 cmd.header.command); 2993 EXPECT_EQ(sizeof(cmd) + RoundSizeToMultipleOfEntries(cmd.n * 4u), 2994 cmd.header.size * 4u); 2995 EXPECT_EQ(static_cast<GLsizei>(arraysize(ids)), cmd.n); 2996 CheckBytesWrittenMatchesExpectedSize( 2997 next_cmd, 2998 sizeof(cmd) + RoundSizeToMultipleOfEntries(arraysize(ids) * 4u)); 2999 // TODO(gman): Check that ids were inserted; 3000} 3001 3002TEST_F(GLES2FormatTest, DeleteVertexArraysOES) { 3003 cmds::DeleteVertexArraysOES& cmd = 3004 *GetBufferAs<cmds::DeleteVertexArraysOES>(); 3005 void* next_cmd = cmd.Set(&cmd, 3006 static_cast<GLsizei>(11), 3007 static_cast<uint32>(12), 3008 static_cast<uint32>(13)); 3009 EXPECT_EQ(static_cast<uint32>(cmds::DeleteVertexArraysOES::kCmdId), 3010 cmd.header.command); 3011 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3012 EXPECT_EQ(static_cast<GLsizei>(11), cmd.n); 3013 EXPECT_EQ(static_cast<uint32>(12), cmd.arrays_shm_id); 3014 EXPECT_EQ(static_cast<uint32>(13), cmd.arrays_shm_offset); 3015 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 3016} 3017 3018TEST_F(GLES2FormatTest, DeleteVertexArraysOESImmediate) { 3019 static GLuint ids[] = {12, 23, 34, }; 3020 cmds::DeleteVertexArraysOESImmediate& cmd = 3021 *GetBufferAs<cmds::DeleteVertexArraysOESImmediate>(); 3022 void* next_cmd = cmd.Set(&cmd, static_cast<GLsizei>(arraysize(ids)), ids); 3023 EXPECT_EQ(static_cast<uint32>(cmds::DeleteVertexArraysOESImmediate::kCmdId), 3024 cmd.header.command); 3025 EXPECT_EQ(sizeof(cmd) + RoundSizeToMultipleOfEntries(cmd.n * 4u), 3026 cmd.header.size * 4u); 3027 EXPECT_EQ(static_cast<GLsizei>(arraysize(ids)), cmd.n); 3028 CheckBytesWrittenMatchesExpectedSize( 3029 next_cmd, 3030 sizeof(cmd) + RoundSizeToMultipleOfEntries(arraysize(ids) * 4u)); 3031 // TODO(gman): Check that ids were inserted; 3032} 3033 3034TEST_F(GLES2FormatTest, IsVertexArrayOES) { 3035 cmds::IsVertexArrayOES& cmd = *GetBufferAs<cmds::IsVertexArrayOES>(); 3036 void* next_cmd = cmd.Set(&cmd, 3037 static_cast<GLuint>(11), 3038 static_cast<uint32>(12), 3039 static_cast<uint32>(13)); 3040 EXPECT_EQ(static_cast<uint32>(cmds::IsVertexArrayOES::kCmdId), 3041 cmd.header.command); 3042 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3043 EXPECT_EQ(static_cast<GLuint>(11), cmd.array); 3044 EXPECT_EQ(static_cast<uint32>(12), cmd.result_shm_id); 3045 EXPECT_EQ(static_cast<uint32>(13), cmd.result_shm_offset); 3046 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 3047} 3048 3049TEST_F(GLES2FormatTest, BindVertexArrayOES) { 3050 cmds::BindVertexArrayOES& cmd = *GetBufferAs<cmds::BindVertexArrayOES>(); 3051 void* next_cmd = cmd.Set(&cmd, static_cast<GLuint>(11)); 3052 EXPECT_EQ(static_cast<uint32>(cmds::BindVertexArrayOES::kCmdId), 3053 cmd.header.command); 3054 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3055 EXPECT_EQ(static_cast<GLuint>(11), cmd.array); 3056 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 3057} 3058 3059TEST_F(GLES2FormatTest, SwapBuffers) { 3060 cmds::SwapBuffers& cmd = *GetBufferAs<cmds::SwapBuffers>(); 3061 void* next_cmd = cmd.Set(&cmd); 3062 EXPECT_EQ(static_cast<uint32>(cmds::SwapBuffers::kCmdId), cmd.header.command); 3063 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3064 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 3065} 3066 3067TEST_F(GLES2FormatTest, GetMaxValueInBufferCHROMIUM) { 3068 cmds::GetMaxValueInBufferCHROMIUM& cmd = 3069 *GetBufferAs<cmds::GetMaxValueInBufferCHROMIUM>(); 3070 void* next_cmd = cmd.Set(&cmd, 3071 static_cast<GLuint>(11), 3072 static_cast<GLsizei>(12), 3073 static_cast<GLenum>(13), 3074 static_cast<GLuint>(14), 3075 static_cast<uint32>(15), 3076 static_cast<uint32>(16)); 3077 EXPECT_EQ(static_cast<uint32>(cmds::GetMaxValueInBufferCHROMIUM::kCmdId), 3078 cmd.header.command); 3079 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3080 EXPECT_EQ(static_cast<GLuint>(11), cmd.buffer_id); 3081 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count); 3082 EXPECT_EQ(static_cast<GLenum>(13), cmd.type); 3083 EXPECT_EQ(static_cast<GLuint>(14), cmd.offset); 3084 EXPECT_EQ(static_cast<uint32>(15), cmd.result_shm_id); 3085 EXPECT_EQ(static_cast<uint32>(16), cmd.result_shm_offset); 3086 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 3087} 3088 3089TEST_F(GLES2FormatTest, GenSharedIdsCHROMIUM) { 3090 cmds::GenSharedIdsCHROMIUM& cmd = *GetBufferAs<cmds::GenSharedIdsCHROMIUM>(); 3091 void* next_cmd = cmd.Set(&cmd, 3092 static_cast<GLuint>(11), 3093 static_cast<GLuint>(12), 3094 static_cast<GLsizei>(13), 3095 static_cast<uint32>(14), 3096 static_cast<uint32>(15)); 3097 EXPECT_EQ(static_cast<uint32>(cmds::GenSharedIdsCHROMIUM::kCmdId), 3098 cmd.header.command); 3099 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3100 EXPECT_EQ(static_cast<GLuint>(11), cmd.namespace_id); 3101 EXPECT_EQ(static_cast<GLuint>(12), cmd.id_offset); 3102 EXPECT_EQ(static_cast<GLsizei>(13), cmd.n); 3103 EXPECT_EQ(static_cast<uint32>(14), cmd.ids_shm_id); 3104 EXPECT_EQ(static_cast<uint32>(15), cmd.ids_shm_offset); 3105 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 3106} 3107 3108TEST_F(GLES2FormatTest, DeleteSharedIdsCHROMIUM) { 3109 cmds::DeleteSharedIdsCHROMIUM& cmd = 3110 *GetBufferAs<cmds::DeleteSharedIdsCHROMIUM>(); 3111 void* next_cmd = cmd.Set(&cmd, 3112 static_cast<GLuint>(11), 3113 static_cast<GLsizei>(12), 3114 static_cast<uint32>(13), 3115 static_cast<uint32>(14)); 3116 EXPECT_EQ(static_cast<uint32>(cmds::DeleteSharedIdsCHROMIUM::kCmdId), 3117 cmd.header.command); 3118 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3119 EXPECT_EQ(static_cast<GLuint>(11), cmd.namespace_id); 3120 EXPECT_EQ(static_cast<GLsizei>(12), cmd.n); 3121 EXPECT_EQ(static_cast<uint32>(13), cmd.ids_shm_id); 3122 EXPECT_EQ(static_cast<uint32>(14), cmd.ids_shm_offset); 3123 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 3124} 3125 3126TEST_F(GLES2FormatTest, RegisterSharedIdsCHROMIUM) { 3127 cmds::RegisterSharedIdsCHROMIUM& cmd = 3128 *GetBufferAs<cmds::RegisterSharedIdsCHROMIUM>(); 3129 void* next_cmd = cmd.Set(&cmd, 3130 static_cast<GLuint>(11), 3131 static_cast<GLsizei>(12), 3132 static_cast<uint32>(13), 3133 static_cast<uint32>(14)); 3134 EXPECT_EQ(static_cast<uint32>(cmds::RegisterSharedIdsCHROMIUM::kCmdId), 3135 cmd.header.command); 3136 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3137 EXPECT_EQ(static_cast<GLuint>(11), cmd.namespace_id); 3138 EXPECT_EQ(static_cast<GLsizei>(12), cmd.n); 3139 EXPECT_EQ(static_cast<uint32>(13), cmd.ids_shm_id); 3140 EXPECT_EQ(static_cast<uint32>(14), cmd.ids_shm_offset); 3141 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 3142} 3143 3144TEST_F(GLES2FormatTest, EnableFeatureCHROMIUM) { 3145 cmds::EnableFeatureCHROMIUM& cmd = 3146 *GetBufferAs<cmds::EnableFeatureCHROMIUM>(); 3147 void* next_cmd = cmd.Set(&cmd, 3148 static_cast<GLuint>(11), 3149 static_cast<uint32>(12), 3150 static_cast<uint32>(13)); 3151 EXPECT_EQ(static_cast<uint32>(cmds::EnableFeatureCHROMIUM::kCmdId), 3152 cmd.header.command); 3153 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3154 EXPECT_EQ(static_cast<GLuint>(11), cmd.bucket_id); 3155 EXPECT_EQ(static_cast<uint32>(12), cmd.result_shm_id); 3156 EXPECT_EQ(static_cast<uint32>(13), cmd.result_shm_offset); 3157 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 3158} 3159 3160TEST_F(GLES2FormatTest, ResizeCHROMIUM) { 3161 cmds::ResizeCHROMIUM& cmd = *GetBufferAs<cmds::ResizeCHROMIUM>(); 3162 void* next_cmd = cmd.Set(&cmd, 3163 static_cast<GLuint>(11), 3164 static_cast<GLuint>(12), 3165 static_cast<GLfloat>(13)); 3166 EXPECT_EQ(static_cast<uint32>(cmds::ResizeCHROMIUM::kCmdId), 3167 cmd.header.command); 3168 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3169 EXPECT_EQ(static_cast<GLuint>(11), cmd.width); 3170 EXPECT_EQ(static_cast<GLuint>(12), cmd.height); 3171 EXPECT_EQ(static_cast<GLfloat>(13), cmd.scale_factor); 3172 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 3173} 3174 3175TEST_F(GLES2FormatTest, GetRequestableExtensionsCHROMIUM) { 3176 cmds::GetRequestableExtensionsCHROMIUM& cmd = 3177 *GetBufferAs<cmds::GetRequestableExtensionsCHROMIUM>(); 3178 void* next_cmd = cmd.Set(&cmd, static_cast<uint32>(11)); 3179 EXPECT_EQ(static_cast<uint32>(cmds::GetRequestableExtensionsCHROMIUM::kCmdId), 3180 cmd.header.command); 3181 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3182 EXPECT_EQ(static_cast<uint32>(11), cmd.bucket_id); 3183 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 3184} 3185 3186TEST_F(GLES2FormatTest, RequestExtensionCHROMIUM) { 3187 cmds::RequestExtensionCHROMIUM& cmd = 3188 *GetBufferAs<cmds::RequestExtensionCHROMIUM>(); 3189 void* next_cmd = cmd.Set(&cmd, static_cast<uint32>(11)); 3190 EXPECT_EQ(static_cast<uint32>(cmds::RequestExtensionCHROMIUM::kCmdId), 3191 cmd.header.command); 3192 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3193 EXPECT_EQ(static_cast<uint32>(11), cmd.bucket_id); 3194 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 3195} 3196 3197TEST_F(GLES2FormatTest, GetMultipleIntegervCHROMIUM) { 3198 cmds::GetMultipleIntegervCHROMIUM& cmd = 3199 *GetBufferAs<cmds::GetMultipleIntegervCHROMIUM>(); 3200 void* next_cmd = cmd.Set(&cmd, 3201 static_cast<uint32>(11), 3202 static_cast<uint32>(12), 3203 static_cast<GLuint>(13), 3204 static_cast<uint32>(14), 3205 static_cast<uint32>(15), 3206 static_cast<GLsizeiptr>(16)); 3207 EXPECT_EQ(static_cast<uint32>(cmds::GetMultipleIntegervCHROMIUM::kCmdId), 3208 cmd.header.command); 3209 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3210 EXPECT_EQ(static_cast<uint32>(11), cmd.pnames_shm_id); 3211 EXPECT_EQ(static_cast<uint32>(12), cmd.pnames_shm_offset); 3212 EXPECT_EQ(static_cast<GLuint>(13), cmd.count); 3213 EXPECT_EQ(static_cast<uint32>(14), cmd.results_shm_id); 3214 EXPECT_EQ(static_cast<uint32>(15), cmd.results_shm_offset); 3215 EXPECT_EQ(static_cast<GLsizeiptr>(16), cmd.size); 3216 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 3217} 3218 3219TEST_F(GLES2FormatTest, GetProgramInfoCHROMIUM) { 3220 cmds::GetProgramInfoCHROMIUM& cmd = 3221 *GetBufferAs<cmds::GetProgramInfoCHROMIUM>(); 3222 void* next_cmd = 3223 cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<uint32>(12)); 3224 EXPECT_EQ(static_cast<uint32>(cmds::GetProgramInfoCHROMIUM::kCmdId), 3225 cmd.header.command); 3226 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3227 EXPECT_EQ(static_cast<GLuint>(11), cmd.program); 3228 EXPECT_EQ(static_cast<uint32>(12), cmd.bucket_id); 3229 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 3230} 3231 3232TEST_F(GLES2FormatTest, GetTranslatedShaderSourceANGLE) { 3233 cmds::GetTranslatedShaderSourceANGLE& cmd = 3234 *GetBufferAs<cmds::GetTranslatedShaderSourceANGLE>(); 3235 void* next_cmd = 3236 cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<uint32>(12)); 3237 EXPECT_EQ(static_cast<uint32>(cmds::GetTranslatedShaderSourceANGLE::kCmdId), 3238 cmd.header.command); 3239 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3240 EXPECT_EQ(static_cast<GLuint>(11), cmd.shader); 3241 EXPECT_EQ(static_cast<uint32>(12), cmd.bucket_id); 3242 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 3243} 3244 3245TEST_F(GLES2FormatTest, PostSubBufferCHROMIUM) { 3246 cmds::PostSubBufferCHROMIUM& cmd = 3247 *GetBufferAs<cmds::PostSubBufferCHROMIUM>(); 3248 void* next_cmd = cmd.Set(&cmd, 3249 static_cast<GLint>(11), 3250 static_cast<GLint>(12), 3251 static_cast<GLint>(13), 3252 static_cast<GLint>(14)); 3253 EXPECT_EQ(static_cast<uint32>(cmds::PostSubBufferCHROMIUM::kCmdId), 3254 cmd.header.command); 3255 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3256 EXPECT_EQ(static_cast<GLint>(11), cmd.x); 3257 EXPECT_EQ(static_cast<GLint>(12), cmd.y); 3258 EXPECT_EQ(static_cast<GLint>(13), cmd.width); 3259 EXPECT_EQ(static_cast<GLint>(14), cmd.height); 3260 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 3261} 3262 3263TEST_F(GLES2FormatTest, TexImageIOSurface2DCHROMIUM) { 3264 cmds::TexImageIOSurface2DCHROMIUM& cmd = 3265 *GetBufferAs<cmds::TexImageIOSurface2DCHROMIUM>(); 3266 void* next_cmd = cmd.Set(&cmd, 3267 static_cast<GLenum>(11), 3268 static_cast<GLsizei>(12), 3269 static_cast<GLsizei>(13), 3270 static_cast<GLuint>(14), 3271 static_cast<GLuint>(15)); 3272 EXPECT_EQ(static_cast<uint32>(cmds::TexImageIOSurface2DCHROMIUM::kCmdId), 3273 cmd.header.command); 3274 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3275 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 3276 EXPECT_EQ(static_cast<GLsizei>(12), cmd.width); 3277 EXPECT_EQ(static_cast<GLsizei>(13), cmd.height); 3278 EXPECT_EQ(static_cast<GLuint>(14), cmd.ioSurfaceId); 3279 EXPECT_EQ(static_cast<GLuint>(15), cmd.plane); 3280 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 3281} 3282 3283TEST_F(GLES2FormatTest, CopyTextureCHROMIUM) { 3284 cmds::CopyTextureCHROMIUM& cmd = *GetBufferAs<cmds::CopyTextureCHROMIUM>(); 3285 void* next_cmd = cmd.Set(&cmd, 3286 static_cast<GLenum>(11), 3287 static_cast<GLenum>(12), 3288 static_cast<GLenum>(13), 3289 static_cast<GLint>(14), 3290 static_cast<GLint>(15), 3291 static_cast<GLenum>(16)); 3292 EXPECT_EQ(static_cast<uint32>(cmds::CopyTextureCHROMIUM::kCmdId), 3293 cmd.header.command); 3294 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3295 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 3296 EXPECT_EQ(static_cast<GLenum>(12), cmd.source_id); 3297 EXPECT_EQ(static_cast<GLenum>(13), cmd.dest_id); 3298 EXPECT_EQ(static_cast<GLint>(14), cmd.level); 3299 EXPECT_EQ(static_cast<GLint>(15), cmd.internalformat); 3300 EXPECT_EQ(static_cast<GLenum>(16), cmd.dest_type); 3301 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 3302} 3303 3304TEST_F(GLES2FormatTest, DrawArraysInstancedANGLE) { 3305 cmds::DrawArraysInstancedANGLE& cmd = 3306 *GetBufferAs<cmds::DrawArraysInstancedANGLE>(); 3307 void* next_cmd = cmd.Set(&cmd, 3308 static_cast<GLenum>(11), 3309 static_cast<GLint>(12), 3310 static_cast<GLsizei>(13), 3311 static_cast<GLsizei>(14)); 3312 EXPECT_EQ(static_cast<uint32>(cmds::DrawArraysInstancedANGLE::kCmdId), 3313 cmd.header.command); 3314 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3315 EXPECT_EQ(static_cast<GLenum>(11), cmd.mode); 3316 EXPECT_EQ(static_cast<GLint>(12), cmd.first); 3317 EXPECT_EQ(static_cast<GLsizei>(13), cmd.count); 3318 EXPECT_EQ(static_cast<GLsizei>(14), cmd.primcount); 3319 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 3320} 3321 3322TEST_F(GLES2FormatTest, DrawElementsInstancedANGLE) { 3323 cmds::DrawElementsInstancedANGLE& cmd = 3324 *GetBufferAs<cmds::DrawElementsInstancedANGLE>(); 3325 void* next_cmd = cmd.Set(&cmd, 3326 static_cast<GLenum>(11), 3327 static_cast<GLsizei>(12), 3328 static_cast<GLenum>(13), 3329 static_cast<GLuint>(14), 3330 static_cast<GLsizei>(15)); 3331 EXPECT_EQ(static_cast<uint32>(cmds::DrawElementsInstancedANGLE::kCmdId), 3332 cmd.header.command); 3333 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3334 EXPECT_EQ(static_cast<GLenum>(11), cmd.mode); 3335 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count); 3336 EXPECT_EQ(static_cast<GLenum>(13), cmd.type); 3337 EXPECT_EQ(static_cast<GLuint>(14), cmd.index_offset); 3338 EXPECT_EQ(static_cast<GLsizei>(15), cmd.primcount); 3339 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 3340} 3341 3342TEST_F(GLES2FormatTest, VertexAttribDivisorANGLE) { 3343 cmds::VertexAttribDivisorANGLE& cmd = 3344 *GetBufferAs<cmds::VertexAttribDivisorANGLE>(); 3345 void* next_cmd = 3346 cmd.Set(&cmd, static_cast<GLuint>(11), static_cast<GLuint>(12)); 3347 EXPECT_EQ(static_cast<uint32>(cmds::VertexAttribDivisorANGLE::kCmdId), 3348 cmd.header.command); 3349 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3350 EXPECT_EQ(static_cast<GLuint>(11), cmd.index); 3351 EXPECT_EQ(static_cast<GLuint>(12), cmd.divisor); 3352 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 3353} 3354 3355// TODO(gman): Write test for GenMailboxCHROMIUM 3356TEST_F(GLES2FormatTest, ProduceTextureCHROMIUM) { 3357 cmds::ProduceTextureCHROMIUM& cmd = 3358 *GetBufferAs<cmds::ProduceTextureCHROMIUM>(); 3359 void* next_cmd = cmd.Set(&cmd, 3360 static_cast<GLenum>(11), 3361 static_cast<uint32>(12), 3362 static_cast<uint32>(13)); 3363 EXPECT_EQ(static_cast<uint32>(cmds::ProduceTextureCHROMIUM::kCmdId), 3364 cmd.header.command); 3365 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3366 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 3367 EXPECT_EQ(static_cast<uint32>(12), cmd.mailbox_shm_id); 3368 EXPECT_EQ(static_cast<uint32>(13), cmd.mailbox_shm_offset); 3369 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 3370} 3371 3372TEST_F(GLES2FormatTest, ProduceTextureCHROMIUMImmediate) { 3373 const int kSomeBaseValueToTestWith = 51; 3374 static GLbyte data[] = {static_cast<GLbyte>(kSomeBaseValueToTestWith + 0), 3375 static_cast<GLbyte>(kSomeBaseValueToTestWith + 1), 3376 static_cast<GLbyte>(kSomeBaseValueToTestWith + 2), 3377 static_cast<GLbyte>(kSomeBaseValueToTestWith + 3), 3378 static_cast<GLbyte>(kSomeBaseValueToTestWith + 4), 3379 static_cast<GLbyte>(kSomeBaseValueToTestWith + 5), 3380 static_cast<GLbyte>(kSomeBaseValueToTestWith + 6), 3381 static_cast<GLbyte>(kSomeBaseValueToTestWith + 7), 3382 static_cast<GLbyte>(kSomeBaseValueToTestWith + 8), 3383 static_cast<GLbyte>(kSomeBaseValueToTestWith + 9), 3384 static_cast<GLbyte>(kSomeBaseValueToTestWith + 10), 3385 static_cast<GLbyte>(kSomeBaseValueToTestWith + 11), 3386 static_cast<GLbyte>(kSomeBaseValueToTestWith + 12), 3387 static_cast<GLbyte>(kSomeBaseValueToTestWith + 13), 3388 static_cast<GLbyte>(kSomeBaseValueToTestWith + 14), 3389 static_cast<GLbyte>(kSomeBaseValueToTestWith + 15), 3390 static_cast<GLbyte>(kSomeBaseValueToTestWith + 16), 3391 static_cast<GLbyte>(kSomeBaseValueToTestWith + 17), 3392 static_cast<GLbyte>(kSomeBaseValueToTestWith + 18), 3393 static_cast<GLbyte>(kSomeBaseValueToTestWith + 19), 3394 static_cast<GLbyte>(kSomeBaseValueToTestWith + 20), 3395 static_cast<GLbyte>(kSomeBaseValueToTestWith + 21), 3396 static_cast<GLbyte>(kSomeBaseValueToTestWith + 22), 3397 static_cast<GLbyte>(kSomeBaseValueToTestWith + 23), 3398 static_cast<GLbyte>(kSomeBaseValueToTestWith + 24), 3399 static_cast<GLbyte>(kSomeBaseValueToTestWith + 25), 3400 static_cast<GLbyte>(kSomeBaseValueToTestWith + 26), 3401 static_cast<GLbyte>(kSomeBaseValueToTestWith + 27), 3402 static_cast<GLbyte>(kSomeBaseValueToTestWith + 28), 3403 static_cast<GLbyte>(kSomeBaseValueToTestWith + 29), 3404 static_cast<GLbyte>(kSomeBaseValueToTestWith + 30), 3405 static_cast<GLbyte>(kSomeBaseValueToTestWith + 31), 3406 static_cast<GLbyte>(kSomeBaseValueToTestWith + 32), 3407 static_cast<GLbyte>(kSomeBaseValueToTestWith + 33), 3408 static_cast<GLbyte>(kSomeBaseValueToTestWith + 34), 3409 static_cast<GLbyte>(kSomeBaseValueToTestWith + 35), 3410 static_cast<GLbyte>(kSomeBaseValueToTestWith + 36), 3411 static_cast<GLbyte>(kSomeBaseValueToTestWith + 37), 3412 static_cast<GLbyte>(kSomeBaseValueToTestWith + 38), 3413 static_cast<GLbyte>(kSomeBaseValueToTestWith + 39), 3414 static_cast<GLbyte>(kSomeBaseValueToTestWith + 40), 3415 static_cast<GLbyte>(kSomeBaseValueToTestWith + 41), 3416 static_cast<GLbyte>(kSomeBaseValueToTestWith + 42), 3417 static_cast<GLbyte>(kSomeBaseValueToTestWith + 43), 3418 static_cast<GLbyte>(kSomeBaseValueToTestWith + 44), 3419 static_cast<GLbyte>(kSomeBaseValueToTestWith + 45), 3420 static_cast<GLbyte>(kSomeBaseValueToTestWith + 46), 3421 static_cast<GLbyte>(kSomeBaseValueToTestWith + 47), 3422 static_cast<GLbyte>(kSomeBaseValueToTestWith + 48), 3423 static_cast<GLbyte>(kSomeBaseValueToTestWith + 49), 3424 static_cast<GLbyte>(kSomeBaseValueToTestWith + 50), 3425 static_cast<GLbyte>(kSomeBaseValueToTestWith + 51), 3426 static_cast<GLbyte>(kSomeBaseValueToTestWith + 52), 3427 static_cast<GLbyte>(kSomeBaseValueToTestWith + 53), 3428 static_cast<GLbyte>(kSomeBaseValueToTestWith + 54), 3429 static_cast<GLbyte>(kSomeBaseValueToTestWith + 55), 3430 static_cast<GLbyte>(kSomeBaseValueToTestWith + 56), 3431 static_cast<GLbyte>(kSomeBaseValueToTestWith + 57), 3432 static_cast<GLbyte>(kSomeBaseValueToTestWith + 58), 3433 static_cast<GLbyte>(kSomeBaseValueToTestWith + 59), 3434 static_cast<GLbyte>(kSomeBaseValueToTestWith + 60), 3435 static_cast<GLbyte>(kSomeBaseValueToTestWith + 61), 3436 static_cast<GLbyte>(kSomeBaseValueToTestWith + 62), 3437 static_cast<GLbyte>(kSomeBaseValueToTestWith + 63), }; 3438 cmds::ProduceTextureCHROMIUMImmediate& cmd = 3439 *GetBufferAs<cmds::ProduceTextureCHROMIUMImmediate>(); 3440 void* next_cmd = cmd.Set(&cmd, static_cast<GLenum>(11), data); 3441 EXPECT_EQ(static_cast<uint32>(cmds::ProduceTextureCHROMIUMImmediate::kCmdId), 3442 cmd.header.command); 3443 EXPECT_EQ(sizeof(cmd) + RoundSizeToMultipleOfEntries(sizeof(data)), 3444 cmd.header.size * 4u); 3445 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 3446 CheckBytesWrittenMatchesExpectedSize( 3447 next_cmd, sizeof(cmd) + RoundSizeToMultipleOfEntries(sizeof(data))); 3448 // TODO(gman): Check that data was inserted; 3449} 3450 3451TEST_F(GLES2FormatTest, ConsumeTextureCHROMIUM) { 3452 cmds::ConsumeTextureCHROMIUM& cmd = 3453 *GetBufferAs<cmds::ConsumeTextureCHROMIUM>(); 3454 void* next_cmd = cmd.Set(&cmd, 3455 static_cast<GLenum>(11), 3456 static_cast<uint32>(12), 3457 static_cast<uint32>(13)); 3458 EXPECT_EQ(static_cast<uint32>(cmds::ConsumeTextureCHROMIUM::kCmdId), 3459 cmd.header.command); 3460 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3461 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 3462 EXPECT_EQ(static_cast<uint32>(12), cmd.mailbox_shm_id); 3463 EXPECT_EQ(static_cast<uint32>(13), cmd.mailbox_shm_offset); 3464 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 3465} 3466 3467TEST_F(GLES2FormatTest, ConsumeTextureCHROMIUMImmediate) { 3468 const int kSomeBaseValueToTestWith = 51; 3469 static GLbyte data[] = {static_cast<GLbyte>(kSomeBaseValueToTestWith + 0), 3470 static_cast<GLbyte>(kSomeBaseValueToTestWith + 1), 3471 static_cast<GLbyte>(kSomeBaseValueToTestWith + 2), 3472 static_cast<GLbyte>(kSomeBaseValueToTestWith + 3), 3473 static_cast<GLbyte>(kSomeBaseValueToTestWith + 4), 3474 static_cast<GLbyte>(kSomeBaseValueToTestWith + 5), 3475 static_cast<GLbyte>(kSomeBaseValueToTestWith + 6), 3476 static_cast<GLbyte>(kSomeBaseValueToTestWith + 7), 3477 static_cast<GLbyte>(kSomeBaseValueToTestWith + 8), 3478 static_cast<GLbyte>(kSomeBaseValueToTestWith + 9), 3479 static_cast<GLbyte>(kSomeBaseValueToTestWith + 10), 3480 static_cast<GLbyte>(kSomeBaseValueToTestWith + 11), 3481 static_cast<GLbyte>(kSomeBaseValueToTestWith + 12), 3482 static_cast<GLbyte>(kSomeBaseValueToTestWith + 13), 3483 static_cast<GLbyte>(kSomeBaseValueToTestWith + 14), 3484 static_cast<GLbyte>(kSomeBaseValueToTestWith + 15), 3485 static_cast<GLbyte>(kSomeBaseValueToTestWith + 16), 3486 static_cast<GLbyte>(kSomeBaseValueToTestWith + 17), 3487 static_cast<GLbyte>(kSomeBaseValueToTestWith + 18), 3488 static_cast<GLbyte>(kSomeBaseValueToTestWith + 19), 3489 static_cast<GLbyte>(kSomeBaseValueToTestWith + 20), 3490 static_cast<GLbyte>(kSomeBaseValueToTestWith + 21), 3491 static_cast<GLbyte>(kSomeBaseValueToTestWith + 22), 3492 static_cast<GLbyte>(kSomeBaseValueToTestWith + 23), 3493 static_cast<GLbyte>(kSomeBaseValueToTestWith + 24), 3494 static_cast<GLbyte>(kSomeBaseValueToTestWith + 25), 3495 static_cast<GLbyte>(kSomeBaseValueToTestWith + 26), 3496 static_cast<GLbyte>(kSomeBaseValueToTestWith + 27), 3497 static_cast<GLbyte>(kSomeBaseValueToTestWith + 28), 3498 static_cast<GLbyte>(kSomeBaseValueToTestWith + 29), 3499 static_cast<GLbyte>(kSomeBaseValueToTestWith + 30), 3500 static_cast<GLbyte>(kSomeBaseValueToTestWith + 31), 3501 static_cast<GLbyte>(kSomeBaseValueToTestWith + 32), 3502 static_cast<GLbyte>(kSomeBaseValueToTestWith + 33), 3503 static_cast<GLbyte>(kSomeBaseValueToTestWith + 34), 3504 static_cast<GLbyte>(kSomeBaseValueToTestWith + 35), 3505 static_cast<GLbyte>(kSomeBaseValueToTestWith + 36), 3506 static_cast<GLbyte>(kSomeBaseValueToTestWith + 37), 3507 static_cast<GLbyte>(kSomeBaseValueToTestWith + 38), 3508 static_cast<GLbyte>(kSomeBaseValueToTestWith + 39), 3509 static_cast<GLbyte>(kSomeBaseValueToTestWith + 40), 3510 static_cast<GLbyte>(kSomeBaseValueToTestWith + 41), 3511 static_cast<GLbyte>(kSomeBaseValueToTestWith + 42), 3512 static_cast<GLbyte>(kSomeBaseValueToTestWith + 43), 3513 static_cast<GLbyte>(kSomeBaseValueToTestWith + 44), 3514 static_cast<GLbyte>(kSomeBaseValueToTestWith + 45), 3515 static_cast<GLbyte>(kSomeBaseValueToTestWith + 46), 3516 static_cast<GLbyte>(kSomeBaseValueToTestWith + 47), 3517 static_cast<GLbyte>(kSomeBaseValueToTestWith + 48), 3518 static_cast<GLbyte>(kSomeBaseValueToTestWith + 49), 3519 static_cast<GLbyte>(kSomeBaseValueToTestWith + 50), 3520 static_cast<GLbyte>(kSomeBaseValueToTestWith + 51), 3521 static_cast<GLbyte>(kSomeBaseValueToTestWith + 52), 3522 static_cast<GLbyte>(kSomeBaseValueToTestWith + 53), 3523 static_cast<GLbyte>(kSomeBaseValueToTestWith + 54), 3524 static_cast<GLbyte>(kSomeBaseValueToTestWith + 55), 3525 static_cast<GLbyte>(kSomeBaseValueToTestWith + 56), 3526 static_cast<GLbyte>(kSomeBaseValueToTestWith + 57), 3527 static_cast<GLbyte>(kSomeBaseValueToTestWith + 58), 3528 static_cast<GLbyte>(kSomeBaseValueToTestWith + 59), 3529 static_cast<GLbyte>(kSomeBaseValueToTestWith + 60), 3530 static_cast<GLbyte>(kSomeBaseValueToTestWith + 61), 3531 static_cast<GLbyte>(kSomeBaseValueToTestWith + 62), 3532 static_cast<GLbyte>(kSomeBaseValueToTestWith + 63), }; 3533 cmds::ConsumeTextureCHROMIUMImmediate& cmd = 3534 *GetBufferAs<cmds::ConsumeTextureCHROMIUMImmediate>(); 3535 void* next_cmd = cmd.Set(&cmd, static_cast<GLenum>(11), data); 3536 EXPECT_EQ(static_cast<uint32>(cmds::ConsumeTextureCHROMIUMImmediate::kCmdId), 3537 cmd.header.command); 3538 EXPECT_EQ(sizeof(cmd) + RoundSizeToMultipleOfEntries(sizeof(data)), 3539 cmd.header.size * 4u); 3540 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 3541 CheckBytesWrittenMatchesExpectedSize( 3542 next_cmd, sizeof(cmd) + RoundSizeToMultipleOfEntries(sizeof(data))); 3543 // TODO(gman): Check that data was inserted; 3544} 3545 3546TEST_F(GLES2FormatTest, BindUniformLocationCHROMIUM) { 3547 cmds::BindUniformLocationCHROMIUM& cmd = 3548 *GetBufferAs<cmds::BindUniformLocationCHROMIUM>(); 3549 void* next_cmd = cmd.Set(&cmd, 3550 static_cast<GLuint>(11), 3551 static_cast<GLint>(12), 3552 static_cast<uint32>(13), 3553 static_cast<uint32>(14), 3554 static_cast<uint32>(15)); 3555 EXPECT_EQ(static_cast<uint32>(cmds::BindUniformLocationCHROMIUM::kCmdId), 3556 cmd.header.command); 3557 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3558 EXPECT_EQ(static_cast<GLuint>(11), cmd.program); 3559 EXPECT_EQ(static_cast<GLint>(12), cmd.location); 3560 EXPECT_EQ(static_cast<uint32>(13), cmd.name_shm_id); 3561 EXPECT_EQ(static_cast<uint32>(14), cmd.name_shm_offset); 3562 EXPECT_EQ(static_cast<uint32>(15), cmd.data_size); 3563 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 3564} 3565 3566TEST_F(GLES2FormatTest, BindUniformLocationCHROMIUMBucket) { 3567 cmds::BindUniformLocationCHROMIUMBucket& cmd = 3568 *GetBufferAs<cmds::BindUniformLocationCHROMIUMBucket>(); 3569 void* next_cmd = cmd.Set(&cmd, 3570 static_cast<GLuint>(11), 3571 static_cast<GLint>(12), 3572 static_cast<uint32>(13)); 3573 EXPECT_EQ( 3574 static_cast<uint32>(cmds::BindUniformLocationCHROMIUMBucket::kCmdId), 3575 cmd.header.command); 3576 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3577 EXPECT_EQ(static_cast<GLuint>(11), cmd.program); 3578 EXPECT_EQ(static_cast<GLint>(12), cmd.location); 3579 EXPECT_EQ(static_cast<uint32>(13), cmd.name_bucket_id); 3580 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 3581} 3582 3583TEST_F(GLES2FormatTest, BindTexImage2DCHROMIUM) { 3584 cmds::BindTexImage2DCHROMIUM& cmd = 3585 *GetBufferAs<cmds::BindTexImage2DCHROMIUM>(); 3586 void* next_cmd = 3587 cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLint>(12)); 3588 EXPECT_EQ(static_cast<uint32>(cmds::BindTexImage2DCHROMIUM::kCmdId), 3589 cmd.header.command); 3590 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3591 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 3592 EXPECT_EQ(static_cast<GLint>(12), cmd.imageId); 3593 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 3594} 3595 3596TEST_F(GLES2FormatTest, ReleaseTexImage2DCHROMIUM) { 3597 cmds::ReleaseTexImage2DCHROMIUM& cmd = 3598 *GetBufferAs<cmds::ReleaseTexImage2DCHROMIUM>(); 3599 void* next_cmd = 3600 cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLint>(12)); 3601 EXPECT_EQ(static_cast<uint32>(cmds::ReleaseTexImage2DCHROMIUM::kCmdId), 3602 cmd.header.command); 3603 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3604 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 3605 EXPECT_EQ(static_cast<GLint>(12), cmd.imageId); 3606 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 3607} 3608 3609TEST_F(GLES2FormatTest, TraceBeginCHROMIUM) { 3610 cmds::TraceBeginCHROMIUM& cmd = *GetBufferAs<cmds::TraceBeginCHROMIUM>(); 3611 void* next_cmd = cmd.Set(&cmd, static_cast<GLuint>(11)); 3612 EXPECT_EQ(static_cast<uint32>(cmds::TraceBeginCHROMIUM::kCmdId), 3613 cmd.header.command); 3614 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3615 EXPECT_EQ(static_cast<GLuint>(11), cmd.bucket_id); 3616 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 3617} 3618 3619TEST_F(GLES2FormatTest, TraceEndCHROMIUM) { 3620 cmds::TraceEndCHROMIUM& cmd = *GetBufferAs<cmds::TraceEndCHROMIUM>(); 3621 void* next_cmd = cmd.Set(&cmd); 3622 EXPECT_EQ(static_cast<uint32>(cmds::TraceEndCHROMIUM::kCmdId), 3623 cmd.header.command); 3624 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3625 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 3626} 3627 3628TEST_F(GLES2FormatTest, AsyncTexSubImage2DCHROMIUM) { 3629 cmds::AsyncTexSubImage2DCHROMIUM& cmd = 3630 *GetBufferAs<cmds::AsyncTexSubImage2DCHROMIUM>(); 3631 void* next_cmd = cmd.Set(&cmd, 3632 static_cast<GLenum>(11), 3633 static_cast<GLint>(12), 3634 static_cast<GLint>(13), 3635 static_cast<GLint>(14), 3636 static_cast<GLsizei>(15), 3637 static_cast<GLsizei>(16), 3638 static_cast<GLenum>(17), 3639 static_cast<GLenum>(18), 3640 static_cast<uint32>(19), 3641 static_cast<uint32>(20), 3642 static_cast<uint32>(21), 3643 static_cast<uint32>(22), 3644 static_cast<uint32>(23)); 3645 EXPECT_EQ(static_cast<uint32>(cmds::AsyncTexSubImage2DCHROMIUM::kCmdId), 3646 cmd.header.command); 3647 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3648 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 3649 EXPECT_EQ(static_cast<GLint>(12), cmd.level); 3650 EXPECT_EQ(static_cast<GLint>(13), cmd.xoffset); 3651 EXPECT_EQ(static_cast<GLint>(14), cmd.yoffset); 3652 EXPECT_EQ(static_cast<GLsizei>(15), cmd.width); 3653 EXPECT_EQ(static_cast<GLsizei>(16), cmd.height); 3654 EXPECT_EQ(static_cast<GLenum>(17), cmd.format); 3655 EXPECT_EQ(static_cast<GLenum>(18), cmd.type); 3656 EXPECT_EQ(static_cast<uint32>(19), cmd.data_shm_id); 3657 EXPECT_EQ(static_cast<uint32>(20), cmd.data_shm_offset); 3658 EXPECT_EQ(static_cast<uint32>(21), cmd.async_upload_token); 3659 EXPECT_EQ(static_cast<uint32>(22), cmd.sync_data_shm_id); 3660 EXPECT_EQ(static_cast<uint32>(23), cmd.sync_data_shm_offset); 3661 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 3662} 3663 3664TEST_F(GLES2FormatTest, AsyncTexImage2DCHROMIUM) { 3665 cmds::AsyncTexImage2DCHROMIUM& cmd = 3666 *GetBufferAs<cmds::AsyncTexImage2DCHROMIUM>(); 3667 void* next_cmd = cmd.Set(&cmd, 3668 static_cast<GLenum>(11), 3669 static_cast<GLint>(12), 3670 static_cast<GLint>(13), 3671 static_cast<GLsizei>(14), 3672 static_cast<GLsizei>(15), 3673 static_cast<GLint>(16), 3674 static_cast<GLenum>(17), 3675 static_cast<GLenum>(18), 3676 static_cast<uint32>(19), 3677 static_cast<uint32>(20), 3678 static_cast<uint32>(21), 3679 static_cast<uint32>(22), 3680 static_cast<uint32>(23)); 3681 EXPECT_EQ(static_cast<uint32>(cmds::AsyncTexImage2DCHROMIUM::kCmdId), 3682 cmd.header.command); 3683 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3684 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 3685 EXPECT_EQ(static_cast<GLint>(12), cmd.level); 3686 EXPECT_EQ(static_cast<GLint>(13), cmd.internalformat); 3687 EXPECT_EQ(static_cast<GLsizei>(14), cmd.width); 3688 EXPECT_EQ(static_cast<GLsizei>(15), cmd.height); 3689 EXPECT_EQ(static_cast<GLint>(16), cmd.border); 3690 EXPECT_EQ(static_cast<GLenum>(17), cmd.format); 3691 EXPECT_EQ(static_cast<GLenum>(18), cmd.type); 3692 EXPECT_EQ(static_cast<uint32>(19), cmd.pixels_shm_id); 3693 EXPECT_EQ(static_cast<uint32>(20), cmd.pixels_shm_offset); 3694 EXPECT_EQ(static_cast<uint32>(21), cmd.async_upload_token); 3695 EXPECT_EQ(static_cast<uint32>(22), cmd.sync_data_shm_id); 3696 EXPECT_EQ(static_cast<uint32>(23), cmd.sync_data_shm_offset); 3697 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 3698} 3699 3700TEST_F(GLES2FormatTest, WaitAsyncTexImage2DCHROMIUM) { 3701 cmds::WaitAsyncTexImage2DCHROMIUM& cmd = 3702 *GetBufferAs<cmds::WaitAsyncTexImage2DCHROMIUM>(); 3703 void* next_cmd = cmd.Set(&cmd, static_cast<GLenum>(11)); 3704 EXPECT_EQ(static_cast<uint32>(cmds::WaitAsyncTexImage2DCHROMIUM::kCmdId), 3705 cmd.header.command); 3706 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3707 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 3708 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 3709} 3710 3711TEST_F(GLES2FormatTest, WaitAllAsyncTexImage2DCHROMIUM) { 3712 cmds::WaitAllAsyncTexImage2DCHROMIUM& cmd = 3713 *GetBufferAs<cmds::WaitAllAsyncTexImage2DCHROMIUM>(); 3714 void* next_cmd = cmd.Set(&cmd); 3715 EXPECT_EQ(static_cast<uint32>(cmds::WaitAllAsyncTexImage2DCHROMIUM::kCmdId), 3716 cmd.header.command); 3717 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3718 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 3719} 3720 3721TEST_F(GLES2FormatTest, DiscardFramebufferEXT) { 3722 cmds::DiscardFramebufferEXT& cmd = 3723 *GetBufferAs<cmds::DiscardFramebufferEXT>(); 3724 void* next_cmd = cmd.Set(&cmd, 3725 static_cast<GLenum>(11), 3726 static_cast<GLsizei>(12), 3727 static_cast<uint32>(13), 3728 static_cast<uint32>(14)); 3729 EXPECT_EQ(static_cast<uint32>(cmds::DiscardFramebufferEXT::kCmdId), 3730 cmd.header.command); 3731 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3732 EXPECT_EQ(static_cast<GLenum>(11), cmd.target); 3733 EXPECT_EQ(static_cast<GLsizei>(12), cmd.count); 3734 EXPECT_EQ(static_cast<uint32>(13), cmd.attachments_shm_id); 3735 EXPECT_EQ(static_cast<uint32>(14), cmd.attachments_shm_offset); 3736 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 3737} 3738 3739TEST_F(GLES2FormatTest, DiscardFramebufferEXTImmediate) { 3740 const int kSomeBaseValueToTestWith = 51; 3741 static GLenum data[] = {static_cast<GLenum>(kSomeBaseValueToTestWith + 0), 3742 static_cast<GLenum>(kSomeBaseValueToTestWith + 1), }; 3743 cmds::DiscardFramebufferEXTImmediate& cmd = 3744 *GetBufferAs<cmds::DiscardFramebufferEXTImmediate>(); 3745 const GLsizei kNumElements = 2; 3746 const size_t kExpectedCmdSize = 3747 sizeof(cmd) + kNumElements * sizeof(GLenum) * 1; 3748 void* next_cmd = 3749 cmd.Set(&cmd, static_cast<GLenum>(1), static_cast<GLsizei>(2), data); 3750 EXPECT_EQ(static_cast<uint32>(cmds::DiscardFramebufferEXTImmediate::kCmdId), 3751 cmd.header.command); 3752 EXPECT_EQ(kExpectedCmdSize, cmd.header.size * 4u); 3753 EXPECT_EQ(static_cast<GLenum>(1), cmd.target); 3754 EXPECT_EQ(static_cast<GLsizei>(2), cmd.count); 3755 CheckBytesWrittenMatchesExpectedSize( 3756 next_cmd, sizeof(cmd) + RoundSizeToMultipleOfEntries(sizeof(data))); 3757 // TODO(gman): Check that data was inserted; 3758} 3759 3760TEST_F(GLES2FormatTest, LoseContextCHROMIUM) { 3761 cmds::LoseContextCHROMIUM& cmd = *GetBufferAs<cmds::LoseContextCHROMIUM>(); 3762 void* next_cmd = 3763 cmd.Set(&cmd, static_cast<GLenum>(11), static_cast<GLenum>(12)); 3764 EXPECT_EQ(static_cast<uint32>(cmds::LoseContextCHROMIUM::kCmdId), 3765 cmd.header.command); 3766 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3767 EXPECT_EQ(static_cast<GLenum>(11), cmd.current); 3768 EXPECT_EQ(static_cast<GLenum>(12), cmd.other); 3769 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 3770} 3771 3772// TODO(gman): Write test for InsertSyncPointCHROMIUM 3773TEST_F(GLES2FormatTest, WaitSyncPointCHROMIUM) { 3774 cmds::WaitSyncPointCHROMIUM& cmd = 3775 *GetBufferAs<cmds::WaitSyncPointCHROMIUM>(); 3776 void* next_cmd = cmd.Set(&cmd, static_cast<GLuint>(11)); 3777 EXPECT_EQ(static_cast<uint32>(cmds::WaitSyncPointCHROMIUM::kCmdId), 3778 cmd.header.command); 3779 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3780 EXPECT_EQ(static_cast<GLuint>(11), cmd.sync_point); 3781 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 3782} 3783 3784TEST_F(GLES2FormatTest, DrawBuffersEXT) { 3785 cmds::DrawBuffersEXT& cmd = *GetBufferAs<cmds::DrawBuffersEXT>(); 3786 void* next_cmd = cmd.Set(&cmd, 3787 static_cast<GLsizei>(11), 3788 static_cast<uint32>(12), 3789 static_cast<uint32>(13)); 3790 EXPECT_EQ(static_cast<uint32>(cmds::DrawBuffersEXT::kCmdId), 3791 cmd.header.command); 3792 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3793 EXPECT_EQ(static_cast<GLsizei>(11), cmd.count); 3794 EXPECT_EQ(static_cast<uint32>(12), cmd.bufs_shm_id); 3795 EXPECT_EQ(static_cast<uint32>(13), cmd.bufs_shm_offset); 3796 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 3797} 3798 3799TEST_F(GLES2FormatTest, DrawBuffersEXTImmediate) { 3800 const int kSomeBaseValueToTestWith = 51; 3801 static GLenum data[] = {static_cast<GLenum>(kSomeBaseValueToTestWith + 0), }; 3802 cmds::DrawBuffersEXTImmediate& cmd = 3803 *GetBufferAs<cmds::DrawBuffersEXTImmediate>(); 3804 const GLsizei kNumElements = 1; 3805 const size_t kExpectedCmdSize = 3806 sizeof(cmd) + kNumElements * sizeof(GLenum) * 1; 3807 void* next_cmd = cmd.Set(&cmd, static_cast<GLsizei>(1), data); 3808 EXPECT_EQ(static_cast<uint32>(cmds::DrawBuffersEXTImmediate::kCmdId), 3809 cmd.header.command); 3810 EXPECT_EQ(kExpectedCmdSize, cmd.header.size * 4u); 3811 EXPECT_EQ(static_cast<GLsizei>(1), cmd.count); 3812 CheckBytesWrittenMatchesExpectedSize( 3813 next_cmd, sizeof(cmd) + RoundSizeToMultipleOfEntries(sizeof(data))); 3814 // TODO(gman): Check that data was inserted; 3815} 3816 3817TEST_F(GLES2FormatTest, DiscardBackbufferCHROMIUM) { 3818 cmds::DiscardBackbufferCHROMIUM& cmd = 3819 *GetBufferAs<cmds::DiscardBackbufferCHROMIUM>(); 3820 void* next_cmd = cmd.Set(&cmd); 3821 EXPECT_EQ(static_cast<uint32>(cmds::DiscardBackbufferCHROMIUM::kCmdId), 3822 cmd.header.command); 3823 EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); 3824 CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); 3825} 3826 3827#endif // GPU_COMMAND_BUFFER_COMMON_GLES2_CMD_FORMAT_TEST_AUTOGEN_H_ 3828