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

Side by Side Diff: gpu/command_buffer/client/program_info_manager_unittest.cc

Issue 1341133002: Add GL_TRANSFORM_FEEDBACK_BUFFER_MODE to GetProgramiv query. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@uniform
Patch Set: rebase Created 5 years, 3 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) 2015 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2015 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/client/program_info_manager.h" 5 #include "gpu/command_buffer/client/program_info_manager.h"
6 #include "testing/gtest/include/gtest/gtest.h" 6 #include "testing/gtest/include/gtest/gtest.h"
7 7
8 namespace { 8 namespace {
9 9
10 uint32 ComputeOffset(const void* start, const void* position) { 10 uint32 ComputeOffset(const void* start, const void* position) {
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 data->entry[1].offset = 6; 141 data->entry[1].offset = 6;
142 data->entry[1].array_stride = 7; 142 data->entry[1].array_stride = 7;
143 data->entry[1].matrix_stride = 8; 143 data->entry[1].matrix_stride = 8;
144 data->entry[1].is_row_major = 1; 144 data->entry[1].is_row_major = 1;
145 } 145 }
146 146
147 void SetupTransformFeedbackVaryingsData(TransformFeedbackVaryingsData* data) { 147 void SetupTransformFeedbackVaryingsData(TransformFeedbackVaryingsData* data) {
148 // The names needs to be of size 4*k-1 to avoid padding in the struct Data. 148 // The names needs to be of size 4*k-1 to avoid padding in the struct Data.
149 // This is a testing only problem. 149 // This is a testing only problem.
150 const char* kName[] = { "cow", "chicken" }; 150 const char* kName[] = { "cow", "chicken" };
151 data->header.transform_feedback_buffer_mode = GL_SEPARATE_ATTRIBS;
151 data->header.num_transform_feedback_varyings = 2; 152 data->header.num_transform_feedback_varyings = 2;
152 data->entry[0].size = 1; 153 data->entry[0].size = 1;
153 data->entry[0].type = GL_FLOAT_VEC2; 154 data->entry[0].type = GL_FLOAT_VEC2;
154 data->entry[0].name_offset = ComputeOffset(data, data->name0); 155 data->entry[0].name_offset = ComputeOffset(data, data->name0);
155 data->entry[0].name_length = arraysize(data->name0); 156 data->entry[0].name_length = arraysize(data->name0);
156 data->entry[1].size = 2; 157 data->entry[1].size = 2;
157 data->entry[1].type = GL_FLOAT; 158 data->entry[1].type = GL_FLOAT;
158 data->entry[1].name_offset = ComputeOffset(data, data->name1); 159 data->entry[1].name_offset = ComputeOffset(data, data->name1);
159 data->entry[1].name_length = arraysize(data->name1); 160 data->entry[1].name_length = arraysize(data->name1);
160 memcpy(data->name0, kName[0], arraysize(data->name0)); 161 memcpy(data->name0, kName[0], arraysize(data->name0));
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
258 SetupTransformFeedbackVaryingsData(&data); 259 SetupTransformFeedbackVaryingsData(&data);
259 const std::string kName[] = { data.name0, data.name1 }; 260 const std::string kName[] = { data.name0, data.name1 };
260 std::vector<int8> result(sizeof(data)); 261 std::vector<int8> result(sizeof(data));
261 memcpy(&result[0], &data, sizeof(data)); 262 memcpy(&result[0], &data, sizeof(data));
262 EXPECT_FALSE(program_->IsCached( 263 EXPECT_FALSE(program_->IsCached(
263 ProgramInfoManager::kES3TransformFeedbackVaryings)); 264 ProgramInfoManager::kES3TransformFeedbackVaryings));
264 program_->UpdateES3TransformFeedbackVaryings(result); 265 program_->UpdateES3TransformFeedbackVaryings(result);
265 EXPECT_TRUE(program_->IsCached( 266 EXPECT_TRUE(program_->IsCached(
266 ProgramInfoManager::kES3TransformFeedbackVaryings)); 267 ProgramInfoManager::kES3TransformFeedbackVaryings));
267 268
269 GLint transform_feedback_buffer_mode = 0;
270 EXPECT_TRUE(program_->GetProgramiv(
271 GL_TRANSFORM_FEEDBACK_BUFFER_MODE, &transform_feedback_buffer_mode));
272 EXPECT_EQ(data.header.transform_feedback_buffer_mode,
273 static_cast<uint32_t>(transform_feedback_buffer_mode));
268 GLint transform_feedback_varying_count = 0; 274 GLint transform_feedback_varying_count = 0;
269 EXPECT_TRUE(program_->GetProgramiv( 275 EXPECT_TRUE(program_->GetProgramiv(
270 GL_TRANSFORM_FEEDBACK_VARYINGS, &transform_feedback_varying_count)); 276 GL_TRANSFORM_FEEDBACK_VARYINGS, &transform_feedback_varying_count));
271 EXPECT_EQ(data.header.num_transform_feedback_varyings, 277 EXPECT_EQ(data.header.num_transform_feedback_varyings,
272 static_cast<uint32_t>(transform_feedback_varying_count)); 278 static_cast<uint32_t>(transform_feedback_varying_count));
273 GLint max_name_length = 0; 279 GLint max_name_length = 0;
274 EXPECT_TRUE(program_->GetProgramiv( 280 EXPECT_TRUE(program_->GetProgramiv(
275 GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH, &max_name_length)); 281 GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH, &max_name_length));
276 for (uint32_t ii = 0; ii < data.header.num_transform_feedback_varyings; 282 for (uint32_t ii = 0; ii < data.header.num_transform_feedback_varyings;
277 ++ii) { 283 ++ii) {
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after
540 EXPECT_EQ(data_es2.uniforms[ii].size, size[ii]); 546 EXPECT_EQ(data_es2.uniforms[ii].size, size[ii]);
541 EXPECT_EQ(data_es2.uniforms[ii].type, static_cast<uint32_t>(type[ii])); 547 EXPECT_EQ(data_es2.uniforms[ii].type, static_cast<uint32_t>(type[ii]));
542 EXPECT_EQ(data_es2.uniforms[ii].name_length + 1, 548 EXPECT_EQ(data_es2.uniforms[ii].name_length + 1,
543 static_cast<uint32_t>(name_length[ii])); 549 static_cast<uint32_t>(name_length[ii]));
544 } 550 }
545 } 551 }
546 552
547 } // namespace gles2 553 } // namespace gles2
548 } // namespace gpu 554 } // namespace gpu
549 555
OLDNEW
« no previous file with comments | « gpu/command_buffer/client/program_info_manager.cc ('k') | gpu/command_buffer/common/gles2_cmd_format.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698