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