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

Side by Side Diff: gpu/command_buffer/service/gles2_cmd_decoder_unittest_2.cc

Issue 289993002: Remove shm versions of immediate commands from command buffer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@functions-with-extension-flag
Patch Set: try to avoid compiler warning on buffer overflow and template specialization linker problem with tw… Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "gpu/command_buffer/service/gles2_cmd_decoder.h" 5 #include "gpu/command_buffer/service/gles2_cmd_decoder.h"
6 6
7 #include "gpu/command_buffer/common/gles2_cmd_format.h" 7 #include "gpu/command_buffer/common/gles2_cmd_format.h"
8 #include "gpu/command_buffer/common/gles2_cmd_utils.h" 8 #include "gpu/command_buffer/common/gles2_cmd_utils.h"
9 #include "gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.h" 9 #include "gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.h"
10 #include "gpu/command_buffer/service/cmd_buffer_engine.h" 10 #include "gpu/command_buffer/service/cmd_buffer_engine.h"
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 valid_uniform = accepts_apis & Program::kUniform1i; 54 valid_uniform = accepts_apis & Program::kUniform1i;
55 cmds::Uniform1i cmd; 55 cmds::Uniform1i cmd;
56 cmd.Init(1, 2); 56 cmd.Init(1, 2);
57 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 57 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
58 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, 58 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
59 GetGLError()); 59 GetGLError());
60 } 60 }
61 61
62 { 62 {
63 valid_uniform = accepts_apis & Program::kUniform1i; 63 valid_uniform = accepts_apis & Program::kUniform1i;
64 cmds::Uniform1iv cmd; 64 cmds::Uniform1ivImmediate& cmd =
65 cmd.Init(1, 2, shared_memory_id_, shared_memory_offset_); 65 *GetImmediateAs<cmds::Uniform1ivImmediate>();
66 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 66 GLint data[2][1] = {{0}};
67 cmd.Init(1, 2, &data[0][0]);
68 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
67 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, 69 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
68 GetGLError()); 70 GetGLError());
69 } 71 }
70 72
71 { 73 {
72 valid_uniform = accepts_apis & Program::kUniform2i; 74 valid_uniform = accepts_apis & Program::kUniform2i;
73 cmds::Uniform2i cmd; 75 cmds::Uniform2i cmd;
74 cmd.Init(1, 2, 3); 76 cmd.Init(1, 2, 3);
75 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 77 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
76 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, 78 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
77 GetGLError()); 79 GetGLError());
78 } 80 }
79 81
80 { 82 {
81 valid_uniform = accepts_apis & Program::kUniform2i; 83 valid_uniform = accepts_apis & Program::kUniform2i;
82 cmds::Uniform2iv cmd; 84 cmds::Uniform2ivImmediate& cmd =
83 cmd.Init(1, 2, shared_memory_id_, shared_memory_offset_); 85 *GetImmediateAs<cmds::Uniform2ivImmediate>();
84 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 86 GLint data[2][2] = {{0}};
87 cmd.Init(1, 2, &data[0][0]);
88 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
85 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, 89 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
86 GetGLError()); 90 GetGLError());
87 } 91 }
88 92
89 { 93 {
90 valid_uniform = accepts_apis & Program::kUniform3i; 94 valid_uniform = accepts_apis & Program::kUniform3i;
91 cmds::Uniform3i cmd; 95 cmds::Uniform3i cmd;
92 cmd.Init(1, 2, 3, 4); 96 cmd.Init(1, 2, 3, 4);
93 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 97 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
94 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, 98 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
95 GetGLError()); 99 GetGLError());
96 } 100 }
97 101
98 { 102 {
99 valid_uniform = accepts_apis & Program::kUniform3i; 103 valid_uniform = accepts_apis & Program::kUniform3i;
100 cmds::Uniform3iv cmd; 104 cmds::Uniform3ivImmediate& cmd =
101 cmd.Init(1, 2, shared_memory_id_, shared_memory_offset_); 105 *GetImmediateAs<cmds::Uniform3ivImmediate>();
102 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 106 GLint data[2][3] = {{0}};
107 cmd.Init(1, 2, &data[0][0]);
108 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
103 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, 109 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
104 GetGLError()); 110 GetGLError());
105 } 111 }
106 112
107 { 113 {
108 valid_uniform = accepts_apis & Program::kUniform4i; 114 valid_uniform = accepts_apis & Program::kUniform4i;
109 cmds::Uniform4i cmd; 115 cmds::Uniform4i cmd;
110 cmd.Init(1, 2, 3, 4, 5); 116 cmd.Init(1, 2, 3, 4, 5);
111 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 117 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
112 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, 118 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
113 GetGLError()); 119 GetGLError());
114 } 120 }
115 121
116 { 122 {
117 valid_uniform = accepts_apis & Program::kUniform4i; 123 valid_uniform = accepts_apis & Program::kUniform4i;
118 cmds::Uniform4iv cmd; 124 cmds::Uniform4ivImmediate& cmd =
119 cmd.Init(1, 2, shared_memory_id_, shared_memory_offset_); 125 *GetImmediateAs<cmds::Uniform4ivImmediate>();
120 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 126 GLint data[2][4] = {{0}};
127 cmd.Init(1, 2, &data[0][0]);
128 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
121 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, 129 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
122 GetGLError()); 130 GetGLError());
123 } 131 }
124 132
125 //////////////////// 133 ////////////////////
126 134
127 { 135 {
128 valid_uniform = accepts_apis & Program::kUniform1f; 136 valid_uniform = accepts_apis & Program::kUniform1f;
129 cmds::Uniform1f cmd; 137 cmds::Uniform1f cmd;
130 cmd.Init(1, 2); 138 cmd.Init(1, 2);
131 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 139 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
132 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, 140 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
133 GetGLError()); 141 GetGLError());
134 } 142 }
135 143
136 { 144 {
137 valid_uniform = accepts_apis & Program::kUniform1f; 145 valid_uniform = accepts_apis & Program::kUniform1f;
138 cmds::Uniform1fv cmd; 146 cmds::Uniform1fvImmediate& cmd =
139 cmd.Init(1, 2, shared_memory_id_, shared_memory_offset_); 147 *GetImmediateAs<cmds::Uniform1fvImmediate>();
140 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 148 GLfloat data[2][1] = {{0.0f}};
149 cmd.Init(1, 2, &data[0][0]);
150 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
141 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, 151 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
142 GetGLError()); 152 GetGLError());
143 } 153 }
144 154
145 { 155 {
146 valid_uniform = accepts_apis & Program::kUniform2f; 156 valid_uniform = accepts_apis & Program::kUniform2f;
147 cmds::Uniform2f cmd; 157 cmds::Uniform2f cmd;
148 cmd.Init(1, 2, 3); 158 cmd.Init(1, 2, 3);
149 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 159 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
150 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, 160 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
151 GetGLError()); 161 GetGLError());
152 } 162 }
153 163
154 { 164 {
155 valid_uniform = accepts_apis & Program::kUniform2f; 165 valid_uniform = accepts_apis & Program::kUniform2f;
156 cmds::Uniform2fv cmd; 166 cmds::Uniform2fvImmediate& cmd =
157 cmd.Init(1, 2, shared_memory_id_, shared_memory_offset_); 167 *GetImmediateAs<cmds::Uniform2fvImmediate>();
158 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 168 GLfloat data[2][2] = {{0.0f}};
169 cmd.Init(1, 2, &data[0][0]);
170 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
159 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, 171 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
160 GetGLError()); 172 GetGLError());
161 } 173 }
162 174
163 { 175 {
164 valid_uniform = accepts_apis & Program::kUniform3f; 176 valid_uniform = accepts_apis & Program::kUniform3f;
165 cmds::Uniform3f cmd; 177 cmds::Uniform3f cmd;
166 cmd.Init(1, 2, 3, 4); 178 cmd.Init(1, 2, 3, 4);
167 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 179 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
168 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, 180 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
169 GetGLError()); 181 GetGLError());
170 } 182 }
171 183
172 { 184 {
173 valid_uniform = accepts_apis & Program::kUniform3f; 185 valid_uniform = accepts_apis & Program::kUniform3f;
174 cmds::Uniform3fv cmd; 186 cmds::Uniform3fvImmediate& cmd =
175 cmd.Init(1, 2, shared_memory_id_, shared_memory_offset_); 187 *GetImmediateAs<cmds::Uniform3fvImmediate>();
176 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 188 GLfloat data[2][3] = {{0.0f}};
189 cmd.Init(1, 2, &data[0][0]);
190 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
177 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, 191 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
178 GetGLError()); 192 GetGLError());
179 } 193 }
180 194
181 { 195 {
182 valid_uniform = accepts_apis & Program::kUniform4f; 196 valid_uniform = accepts_apis & Program::kUniform4f;
183 cmds::Uniform4f cmd; 197 cmds::Uniform4f cmd;
184 cmd.Init(1, 2, 3, 4, 5); 198 cmd.Init(1, 2, 3, 4, 5);
185 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 199 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
186 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, 200 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
187 GetGLError()); 201 GetGLError());
188 } 202 }
189 203
190 { 204 {
191 valid_uniform = accepts_apis & Program::kUniform4f; 205 valid_uniform = accepts_apis & Program::kUniform4f;
192 cmds::Uniform4fv cmd; 206 cmds::Uniform4fvImmediate& cmd =
193 cmd.Init(1, 2, shared_memory_id_, shared_memory_offset_); 207 *GetImmediateAs<cmds::Uniform4fvImmediate>();
194 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 208 GLfloat data[2][4] = {{0.0f}};
209 cmd.Init(1, 2, &data[0][0]);
210 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
195 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, 211 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
196 GetGLError()); 212 GetGLError());
197 } 213 }
198 214
199 { 215 {
200 valid_uniform = accepts_apis & Program::kUniformMatrix2f; 216 valid_uniform = accepts_apis & Program::kUniformMatrix2f;
201 cmds::UniformMatrix2fv cmd; 217 cmds::UniformMatrix2fvImmediate& cmd =
202 cmd.Init(1, 2, shared_memory_id_, shared_memory_offset_); 218 *GetImmediateAs<cmds::UniformMatrix2fvImmediate>();
203 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 219 GLfloat data[2][2 * 2] = {{0.0f}};
220
221 cmd.Init(1, 2, &data[0][0]);
222 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
204 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, 223 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
205 GetGLError()); 224 GetGLError());
206 } 225 }
207 226
208 { 227 {
209 valid_uniform = accepts_apis & Program::kUniformMatrix3f; 228 valid_uniform = accepts_apis & Program::kUniformMatrix3f;
210 cmds::UniformMatrix3fv cmd; 229 cmds::UniformMatrix3fvImmediate& cmd =
211 cmd.Init(1, 2, shared_memory_id_, shared_memory_offset_); 230 *GetImmediateAs<cmds::UniformMatrix3fvImmediate>();
212 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 231 GLfloat data[2][3 * 3] = {{0.0f}};
232 cmd.Init(1, 2, &data[0][0]);
233 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
213 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, 234 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
214 GetGLError()); 235 GetGLError());
215 } 236 }
216 237
217 { 238 {
218 valid_uniform = accepts_apis & Program::kUniformMatrix4f; 239 valid_uniform = accepts_apis & Program::kUniformMatrix4f;
219 cmds::UniformMatrix4fv cmd; 240 cmds::UniformMatrix4fvImmediate& cmd =
220 cmd.Init(1, 2, shared_memory_id_, shared_memory_offset_); 241 *GetImmediateAs<cmds::UniformMatrix4fvImmediate>();
221 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 242 GLfloat data[2][4 * 4] = {{0.0f}};
243 cmd.Init(1, 2, &data[0][0]);
244 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
222 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, 245 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
223 GetGLError()); 246 GetGLError());
224 } 247 }
225 } 248 }
226 }; 249 };
227 250
228 INSTANTIATE_TEST_CASE_P(Service, GLES2DecoderTest2, ::testing::Bool()); 251 INSTANTIATE_TEST_CASE_P(Service, GLES2DecoderTest2, ::testing::Bool());
229 252
230 template <> 253 template <>
231 void GLES2DecoderTestBase::SpecializedSetup<cmds::GenQueriesEXT, 0>(
232 bool valid) {
233 if (!valid) {
234 // Make the client_query_id_ so that trying to make it again
235 // will fail.
236 GetSharedMemoryAs<GLuint*>()[0] = client_query_id_;
237 cmds::GenQueriesEXT cmd;
238 cmd.Init(1, shared_memory_id_, shared_memory_offset_);
239 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
240 }
241 };
242
243 template <>
244 void GLES2DecoderTestBase::SpecializedSetup<cmds::GenQueriesEXTImmediate, 0>( 254 void GLES2DecoderTestBase::SpecializedSetup<cmds::GenQueriesEXTImmediate, 0>(
245 bool valid) { 255 bool valid) {
246 if (!valid) { 256 if (!valid) {
247 // Make the client_query_id_ so that trying to make it again 257 // Make the client_query_id_ so that trying to make it again
248 // will fail. 258 // will fail.
249 GetSharedMemoryAs<GLuint*>()[0] = client_query_id_; 259 cmds::GenQueriesEXTImmediate& cmd =
250 cmds::GenQueriesEXT cmd; 260 *GetImmediateAs<cmds::GenQueriesEXTImmediate>();
251 cmd.Init(1, shared_memory_id_, shared_memory_offset_); 261 cmd.Init(1, &client_query_id_);
252 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 262 EXPECT_EQ(error::kNoError,
263 ExecuteImmediateCmd(cmd, sizeof(client_query_id_)));
253 } 264 }
254 }; 265 };
255 266
256 template <>
257 void GLES2DecoderTestBase::SpecializedSetup<cmds::DeleteQueriesEXT, 0>(
258 bool valid) {
259 if (valid) {
260 // Make the client_query_id_ so that trying to delete it will succeed.
261 GetSharedMemoryAs<GLuint*>()[0] = client_query_id_;
262 cmds::GenQueriesEXT cmd;
263 cmd.Init(1, shared_memory_id_, shared_memory_offset_);
264 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
265 }
266 };
267
268 template <> 267 template <>
269 void GLES2DecoderTestBase::SpecializedSetup<cmds::DeleteQueriesEXTImmediate, 0>( 268 void GLES2DecoderTestBase::SpecializedSetup<cmds::DeleteQueriesEXTImmediate, 0>(
270 bool valid) { 269 bool valid) {
271 if (valid) { 270 if (valid) {
272 // Make the client_query_id_ so that trying to delete it will succeed. 271 // Make the client_query_id_ so that trying to delete it will succeed.
273 GetSharedMemoryAs<GLuint*>()[0] = client_query_id_; 272 cmds::GenQueriesEXTImmediate& cmd =
274 cmds::GenQueriesEXT cmd; 273 *GetImmediateAs<cmds::GenQueriesEXTImmediate>();
275 cmd.Init(1, shared_memory_id_, shared_memory_offset_); 274 cmd.Init(1, &client_query_id_);
276 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 275 EXPECT_EQ(error::kNoError,
276 ExecuteImmediateCmd(cmd, sizeof(client_query_id_)));
277 } 277 }
278 }; 278 };
279 279
280 template <> 280 template <>
281 void GLES2DecoderTestBase::SpecializedSetup<cmds::LinkProgram, 0>( 281 void GLES2DecoderTestBase::SpecializedSetup<cmds::LinkProgram, 0>(
282 bool /* valid */) { 282 bool /* valid */) {
283 const GLuint kClientVertexShaderId = 5001; 283 const GLuint kClientVertexShaderId = 5001;
284 const GLuint kServiceVertexShaderId = 6001; 284 const GLuint kServiceVertexShaderId = 6001;
285 const GLuint kClientFragmentShaderId = 5002; 285 const GLuint kClientFragmentShaderId = 5002;
286 const GLuint kServiceFragmentShaderId = 6002; 286 const GLuint kServiceFragmentShaderId = 6002;
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
363 .RetiresOnSaturation(); 363 .RetiresOnSaturation();
364 }; 364 };
365 365
366 template <> 366 template <>
367 void GLES2DecoderTestBase::SpecializedSetup<cmds::Uniform1f, 0>( 367 void GLES2DecoderTestBase::SpecializedSetup<cmds::Uniform1f, 0>(
368 bool /* valid */) { 368 bool /* valid */) {
369 SetupShaderForUniform(GL_FLOAT); 369 SetupShaderForUniform(GL_FLOAT);
370 }; 370 };
371 371
372 template <> 372 template <>
373 void GLES2DecoderTestBase::SpecializedSetup<cmds::Uniform1fv, 0>(
374 bool /* valid */) {
375 SetupShaderForUniform(GL_FLOAT);
376 };
377
378 template <>
379 void GLES2DecoderTestBase::SpecializedSetup<cmds::Uniform1fvImmediate, 0>( 373 void GLES2DecoderTestBase::SpecializedSetup<cmds::Uniform1fvImmediate, 0>(
380 bool /* valid */) { 374 bool /* valid */) {
381 SetupShaderForUniform(GL_FLOAT); 375 SetupShaderForUniform(GL_FLOAT);
382 }; 376 };
383 377
384 template <> 378 template <>
385 void GLES2DecoderTestBase::SpecializedSetup<cmds::Uniform1iv, 0>(
386 bool /* valid */) {
387 SetupShaderForUniform(GL_INT);
388 };
389
390 template <>
391 void GLES2DecoderTestBase::SpecializedSetup<cmds::Uniform1ivImmediate, 0>( 379 void GLES2DecoderTestBase::SpecializedSetup<cmds::Uniform1ivImmediate, 0>(
392 bool /* valid */) { 380 bool /* valid */) {
393 SetupShaderForUniform(GL_INT); 381 SetupShaderForUniform(GL_INT);
394 }; 382 };
395 383
396 template <> 384 template <>
397 void GLES2DecoderTestBase::SpecializedSetup<cmds::Uniform2f, 0>( 385 void GLES2DecoderTestBase::SpecializedSetup<cmds::Uniform2f, 0>(
398 bool /* valid */) { 386 bool /* valid */) {
399 SetupShaderForUniform(GL_FLOAT_VEC2); 387 SetupShaderForUniform(GL_FLOAT_VEC2);
400 }; 388 };
401 389
402 template <> 390 template <>
403 void GLES2DecoderTestBase::SpecializedSetup<cmds::Uniform2i, 0>( 391 void GLES2DecoderTestBase::SpecializedSetup<cmds::Uniform2i, 0>(
404 bool /* valid */) { 392 bool /* valid */) {
405 SetupShaderForUniform(GL_INT_VEC2); 393 SetupShaderForUniform(GL_INT_VEC2);
406 }; 394 };
407 395
408 template <> 396 template <>
409 void GLES2DecoderTestBase::SpecializedSetup<cmds::Uniform2fv, 0>(
410 bool /* valid */) {
411 SetupShaderForUniform(GL_FLOAT_VEC2);
412 };
413
414 template <>
415 void GLES2DecoderTestBase::SpecializedSetup<cmds::Uniform2iv, 0>(
416 bool /* valid */) {
417 SetupShaderForUniform(GL_INT_VEC2);
418 };
419
420 template <>
421 void GLES2DecoderTestBase::SpecializedSetup<cmds::Uniform2fvImmediate, 0>( 397 void GLES2DecoderTestBase::SpecializedSetup<cmds::Uniform2fvImmediate, 0>(
422 bool /* valid */) { 398 bool /* valid */) {
423 SetupShaderForUniform(GL_FLOAT_VEC2); 399 SetupShaderForUniform(GL_FLOAT_VEC2);
424 }; 400 };
425 401
426 template <> 402 template <>
427 void GLES2DecoderTestBase::SpecializedSetup<cmds::Uniform2ivImmediate, 0>( 403 void GLES2DecoderTestBase::SpecializedSetup<cmds::Uniform2ivImmediate, 0>(
428 bool /* valid */) { 404 bool /* valid */) {
429 SetupShaderForUniform(GL_INT_VEC2); 405 SetupShaderForUniform(GL_INT_VEC2);
430 }; 406 };
431 407
432 template <> 408 template <>
433 void GLES2DecoderTestBase::SpecializedSetup<cmds::Uniform3f, 0>( 409 void GLES2DecoderTestBase::SpecializedSetup<cmds::Uniform3f, 0>(
434 bool /* valid */) { 410 bool /* valid */) {
435 SetupShaderForUniform(GL_FLOAT_VEC3); 411 SetupShaderForUniform(GL_FLOAT_VEC3);
436 }; 412 };
437 413
438 template <> 414 template <>
439 void GLES2DecoderTestBase::SpecializedSetup<cmds::Uniform3i, 0>( 415 void GLES2DecoderTestBase::SpecializedSetup<cmds::Uniform3i, 0>(
440 bool /* valid */) { 416 bool /* valid */) {
441 SetupShaderForUniform(GL_INT_VEC3); 417 SetupShaderForUniform(GL_INT_VEC3);
442 }; 418 };
443 419
444 template <> 420 template <>
445 void GLES2DecoderTestBase::SpecializedSetup<cmds::Uniform3fv, 0>(
446 bool /* valid */) {
447 SetupShaderForUniform(GL_FLOAT_VEC3);
448 };
449
450 template <>
451 void GLES2DecoderTestBase::SpecializedSetup<cmds::Uniform3iv, 0>(
452 bool /* valid */) {
453 SetupShaderForUniform(GL_INT_VEC3);
454 };
455
456 template <>
457 void GLES2DecoderTestBase::SpecializedSetup<cmds::Uniform3fvImmediate, 0>( 421 void GLES2DecoderTestBase::SpecializedSetup<cmds::Uniform3fvImmediate, 0>(
458 bool /* valid */) { 422 bool /* valid */) {
459 SetupShaderForUniform(GL_FLOAT_VEC3); 423 SetupShaderForUniform(GL_FLOAT_VEC3);
460 }; 424 };
461 425
462 template <> 426 template <>
463 void GLES2DecoderTestBase::SpecializedSetup<cmds::Uniform3ivImmediate, 0>( 427 void GLES2DecoderTestBase::SpecializedSetup<cmds::Uniform3ivImmediate, 0>(
464 bool /* valid */) { 428 bool /* valid */) {
465 SetupShaderForUniform(GL_INT_VEC3); 429 SetupShaderForUniform(GL_INT_VEC3);
466 }; 430 };
467 431
468 template <> 432 template <>
469 void GLES2DecoderTestBase::SpecializedSetup<cmds::Uniform4f, 0>( 433 void GLES2DecoderTestBase::SpecializedSetup<cmds::Uniform4f, 0>(
470 bool /* valid */) { 434 bool /* valid */) {
471 SetupShaderForUniform(GL_FLOAT_VEC4); 435 SetupShaderForUniform(GL_FLOAT_VEC4);
472 }; 436 };
473 437
474 template <> 438 template <>
475 void GLES2DecoderTestBase::SpecializedSetup<cmds::Uniform4i, 0>( 439 void GLES2DecoderTestBase::SpecializedSetup<cmds::Uniform4i, 0>(
476 bool /* valid */) { 440 bool /* valid */) {
477 SetupShaderForUniform(GL_INT_VEC4); 441 SetupShaderForUniform(GL_INT_VEC4);
478 }; 442 };
479 443
480 template <> 444 template <>
481 void GLES2DecoderTestBase::SpecializedSetup<cmds::Uniform4fv, 0>(
482 bool /* valid */) {
483 SetupShaderForUniform(GL_FLOAT_VEC4);
484 };
485
486 template <>
487 void GLES2DecoderTestBase::SpecializedSetup<cmds::Uniform4iv, 0>(
488 bool /* valid */) {
489 SetupShaderForUniform(GL_INT_VEC4);
490 };
491
492 template <>
493 void GLES2DecoderTestBase::SpecializedSetup<cmds::Uniform4fvImmediate, 0>( 445 void GLES2DecoderTestBase::SpecializedSetup<cmds::Uniform4fvImmediate, 0>(
494 bool /* valid */) { 446 bool /* valid */) {
495 SetupShaderForUniform(GL_FLOAT_VEC4); 447 SetupShaderForUniform(GL_FLOAT_VEC4);
496 }; 448 };
497 449
498 template <> 450 template <>
499 void GLES2DecoderTestBase::SpecializedSetup<cmds::Uniform4ivImmediate, 0>( 451 void GLES2DecoderTestBase::SpecializedSetup<cmds::Uniform4ivImmediate, 0>(
500 bool /* valid */) { 452 bool /* valid */) {
501 SetupShaderForUniform(GL_INT_VEC4); 453 SetupShaderForUniform(GL_INT_VEC4);
502 }; 454 };
503 455
504 template <> 456 template <>
505 void GLES2DecoderTestBase::SpecializedSetup<cmds::UniformMatrix2fv, 0>(
506 bool /* valid */) {
507 SetupShaderForUniform(GL_FLOAT_MAT2);
508 };
509
510 template <>
511 void GLES2DecoderTestBase::SpecializedSetup<cmds::UniformMatrix2fvImmediate, 0>( 457 void GLES2DecoderTestBase::SpecializedSetup<cmds::UniformMatrix2fvImmediate, 0>(
512 bool /* valid */) { 458 bool /* valid */) {
513 SetupShaderForUniform(GL_FLOAT_MAT2); 459 SetupShaderForUniform(GL_FLOAT_MAT2);
514 }; 460 };
515 461
516 template <> 462 template <>
517 void GLES2DecoderTestBase::SpecializedSetup<cmds::UniformMatrix3fv, 0>(
518 bool /* valid */) {
519 SetupShaderForUniform(GL_FLOAT_MAT3);
520 };
521
522 template <>
523 void GLES2DecoderTestBase::SpecializedSetup<cmds::UniformMatrix3fvImmediate, 0>( 463 void GLES2DecoderTestBase::SpecializedSetup<cmds::UniformMatrix3fvImmediate, 0>(
524 bool /* valid */) { 464 bool /* valid */) {
525 SetupShaderForUniform(GL_FLOAT_MAT3); 465 SetupShaderForUniform(GL_FLOAT_MAT3);
526 }; 466 };
527 467
528 template <> 468 template <>
529 void GLES2DecoderTestBase::SpecializedSetup<cmds::UniformMatrix4fv, 0>(
530 bool /* valid */) {
531 SetupShaderForUniform(GL_FLOAT_MAT4);
532 };
533
534 template <>
535 void GLES2DecoderTestBase::SpecializedSetup<cmds::UniformMatrix4fvImmediate, 0>( 469 void GLES2DecoderTestBase::SpecializedSetup<cmds::UniformMatrix4fvImmediate, 0>(
536 bool /* valid */) { 470 bool /* valid */) {
537 SetupShaderForUniform(GL_FLOAT_MAT4); 471 SetupShaderForUniform(GL_FLOAT_MAT4);
538 }; 472 };
539 473
540 template <> 474 template <>
541 void GLES2DecoderTestBase::SpecializedSetup<cmds::RenderbufferStorage, 0>( 475 void GLES2DecoderTestBase::SpecializedSetup<cmds::RenderbufferStorage, 0>(
542 bool valid) { 476 bool valid) {
543 DoBindRenderbuffer(GL_RENDERBUFFER, client_renderbuffer_id_, 477 DoBindRenderbuffer(GL_RENDERBUFFER, client_renderbuffer_id_,
544 kServiceRenderbufferId); 478 kServiceRenderbufferId);
(...skipping 17 matching lines...) Expand all
562 DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId); 496 DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId);
563 }; 497 };
564 498
565 template <> 499 template <>
566 void GLES2DecoderTestBase::SpecializedSetup<cmds::TexParameteri, 0>( 500 void GLES2DecoderTestBase::SpecializedSetup<cmds::TexParameteri, 0>(
567 bool /* valid */) { 501 bool /* valid */) {
568 DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId); 502 DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId);
569 }; 503 };
570 504
571 template <> 505 template <>
572 void GLES2DecoderTestBase::SpecializedSetup<cmds::TexParameterfv, 0>(
573 bool /* valid */) {
574 DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId);
575 };
576
577 template <>
578 void GLES2DecoderTestBase::SpecializedSetup<cmds::TexParameterfvImmediate, 0>( 506 void GLES2DecoderTestBase::SpecializedSetup<cmds::TexParameterfvImmediate, 0>(
579 bool /* valid */) { 507 bool /* valid */) {
580 DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId); 508 DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId);
581 }; 509 };
582 510
583 template <> 511 template <>
584 void GLES2DecoderTestBase::SpecializedSetup<cmds::TexParameteriv, 0>(
585 bool /* valid */) {
586 DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId);
587 };
588
589 template <>
590 void GLES2DecoderTestBase::SpecializedSetup<cmds::TexParameterivImmediate, 0>( 512 void GLES2DecoderTestBase::SpecializedSetup<cmds::TexParameterivImmediate, 0>(
591 bool /* valid */) { 513 bool /* valid */) {
592 DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId); 514 DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId);
593 }; 515 };
594 516
595 #include "gpu/command_buffer/service/gles2_cmd_decoder_unittest_2_autogen.h" 517 #include "gpu/command_buffer/service/gles2_cmd_decoder_unittest_2_autogen.h"
596 518
597 TEST_P(GLES2DecoderTest2, AcceptsUniform_GL_INT) { 519 TEST_P(GLES2DecoderTest2, AcceptsUniform_GL_INT) {
598 TestAcceptedUniform(GL_INT, Program::kUniform1i); 520 TestAcceptedUniform(GL_INT, Program::kUniform1i);
599 } 521 }
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
650 TestAcceptedUniform(GL_FLOAT_MAT3, Program::kUniformMatrix3f); 572 TestAcceptedUniform(GL_FLOAT_MAT3, Program::kUniformMatrix3f);
651 } 573 }
652 574
653 TEST_P(GLES2DecoderTest2, AcceptsUniform_GL_FLOAT_MAT4) { 575 TEST_P(GLES2DecoderTest2, AcceptsUniform_GL_FLOAT_MAT4) {
654 TestAcceptedUniform(GL_FLOAT_MAT4, Program::kUniformMatrix4f); 576 TestAcceptedUniform(GL_FLOAT_MAT4, Program::kUniformMatrix4f);
655 } 577 }
656 578
657 } // namespace gles2 579 } // namespace gles2
658 } // namespace gpu 580 } // namespace gpu
659 581
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698