OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |