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

Side by Side Diff: gpu/command_buffer/service/gles2_cmd_decoder_autogen.h

Issue 1498033003: Implement SamplerManager in the command buffer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed unnessecary state initialization Created 5 years 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 2014 The Chromium Authors. All rights reserved. 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 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 // This file is auto-generated from 5 // This file is auto-generated from
6 // gpu/command_buffer/build_gles2_cmd_buffer.py 6 // gpu/command_buffer/build_gles2_cmd_buffer.py
7 // It's formatted by clang-format using chromium coding style: 7 // It's formatted by clang-format using chromium coding style:
8 // clang-format -i -style=chromium filename 8 // clang-format -i -style=chromium filename
9 // DO NOT EDIT! 9 // DO NOT EDIT!
10 10
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 114
115 error::Error GLES2DecoderImpl::HandleBindSampler(uint32_t immediate_data_size, 115 error::Error GLES2DecoderImpl::HandleBindSampler(uint32_t immediate_data_size,
116 const void* cmd_data) { 116 const void* cmd_data) {
117 if (!unsafe_es3_apis_enabled()) 117 if (!unsafe_es3_apis_enabled())
118 return error::kUnknownCommand; 118 return error::kUnknownCommand;
119 const gles2::cmds::BindSampler& c = 119 const gles2::cmds::BindSampler& c =
120 *static_cast<const gles2::cmds::BindSampler*>(cmd_data); 120 *static_cast<const gles2::cmds::BindSampler*>(cmd_data);
121 (void)c; 121 (void)c;
122 GLuint unit = static_cast<GLuint>(c.unit); 122 GLuint unit = static_cast<GLuint>(c.unit);
123 GLuint sampler = c.sampler; 123 GLuint sampler = c.sampler;
124 if (sampler == 0) { 124 DoBindSampler(unit, sampler);
125 glBindSampler(unit, sampler);
126 return error::kNoError;
127 }
128 if (!group_->GetSamplerServiceId(sampler, &sampler)) {
129 LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glBindSampler",
130 "invalid sampler id");
131 return error::kNoError;
132 }
133 glBindSampler(unit, sampler);
134 return error::kNoError; 125 return error::kNoError;
135 } 126 }
136 127
137 error::Error GLES2DecoderImpl::HandleBindTexture(uint32_t immediate_data_size, 128 error::Error GLES2DecoderImpl::HandleBindTexture(uint32_t immediate_data_size,
138 const void* cmd_data) { 129 const void* cmd_data) {
139 const gles2::cmds::BindTexture& c = 130 const gles2::cmds::BindTexture& c =
140 *static_cast<const gles2::cmds::BindTexture*>(cmd_data); 131 *static_cast<const gles2::cmds::BindTexture*>(cmd_data);
141 (void)c; 132 (void)c;
142 GLenum target = static_cast<GLenum>(c.target); 133 GLenum target = static_cast<GLenum>(c.target);
143 GLuint texture = c.texture; 134 GLuint texture = c.texture;
(...skipping 709 matching lines...) Expand 10 before | Expand all | Expand 10 after
853 GLsizei n = static_cast<GLsizei>(c.n); 844 GLsizei n = static_cast<GLsizei>(c.n);
854 uint32_t data_size; 845 uint32_t data_size;
855 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 846 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
856 return error::kOutOfBounds; 847 return error::kOutOfBounds;
857 } 848 }
858 const GLuint* samplers = 849 const GLuint* samplers =
859 GetImmediateDataAs<const GLuint*>(c, data_size, immediate_data_size); 850 GetImmediateDataAs<const GLuint*>(c, data_size, immediate_data_size);
860 if (samplers == NULL) { 851 if (samplers == NULL) {
861 return error::kOutOfBounds; 852 return error::kOutOfBounds;
862 } 853 }
863 for (GLsizei ii = 0; ii < n; ++ii) { 854 DeleteSamplersHelper(n, samplers);
864 GLuint service_id = 0;
865 if (group_->GetSamplerServiceId(samplers[ii], &service_id)) {
866 glDeleteSamplers(1, &service_id);
867 group_->RemoveSamplerId(samplers[ii]);
868 }
869 }
870 return error::kNoError; 855 return error::kNoError;
871 } 856 }
872 857
873 error::Error GLES2DecoderImpl::HandleDeleteSync(uint32_t immediate_data_size, 858 error::Error GLES2DecoderImpl::HandleDeleteSync(uint32_t immediate_data_size,
874 const void* cmd_data) { 859 const void* cmd_data) {
875 if (!unsafe_es3_apis_enabled()) 860 if (!unsafe_es3_apis_enabled())
876 return error::kUnknownCommand; 861 return error::kUnknownCommand;
877 const gles2::cmds::DeleteSync& c = 862 const gles2::cmds::DeleteSync& c =
878 *static_cast<const gles2::cmds::DeleteSync*>(cmd_data); 863 *static_cast<const gles2::cmds::DeleteSync*>(cmd_data);
879 (void)c; 864 (void)c;
(...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after
1267 GLsizei n = static_cast<GLsizei>(c.n); 1252 GLsizei n = static_cast<GLsizei>(c.n);
1268 uint32_t data_size; 1253 uint32_t data_size;
1269 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { 1254 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) {
1270 return error::kOutOfBounds; 1255 return error::kOutOfBounds;
1271 } 1256 }
1272 GLuint* samplers = 1257 GLuint* samplers =
1273 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size); 1258 GetImmediateDataAs<GLuint*>(c, data_size, immediate_data_size);
1274 if (samplers == NULL) { 1259 if (samplers == NULL) {
1275 return error::kOutOfBounds; 1260 return error::kOutOfBounds;
1276 } 1261 }
1277 for (GLsizei ii = 0; ii < n; ++ii) { 1262 if (!GenSamplersHelper(n, samplers)) {
1278 if (group_->GetSamplerServiceId(samplers[ii], NULL)) { 1263 return error::kInvalidArguments;
1279 return error::kInvalidArguments;
1280 }
1281 }
1282 scoped_ptr<GLuint[]> service_ids(new GLuint[n]);
1283 glGenSamplers(n, service_ids.get());
1284 for (GLsizei ii = 0; ii < n; ++ii) {
1285 group_->AddSamplerId(samplers[ii], service_ids[ii]);
1286 } 1264 }
1287 return error::kNoError; 1265 return error::kNoError;
1288 } 1266 }
1289 1267
1290 error::Error GLES2DecoderImpl::HandleGenTexturesImmediate( 1268 error::Error GLES2DecoderImpl::HandleGenTexturesImmediate(
1291 uint32_t immediate_data_size, 1269 uint32_t immediate_data_size,
1292 const void* cmd_data) { 1270 const void* cmd_data) {
1293 const gles2::cmds::GenTexturesImmediate& c = 1271 const gles2::cmds::GenTexturesImmediate& c =
1294 *static_cast<const gles2::cmds::GenTexturesImmediate*>(cmd_data); 1272 *static_cast<const gles2::cmds::GenTexturesImmediate*>(cmd_data);
1295 (void)c; 1273 (void)c;
(...skipping 445 matching lines...) Expand 10 before | Expand all | Expand 10 after
1741 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); 1719 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values));
1742 GLfloat* params = result ? result->GetData() : NULL; 1720 GLfloat* params = result ? result->GetData() : NULL;
1743 if (params == NULL) { 1721 if (params == NULL) {
1744 return error::kOutOfBounds; 1722 return error::kOutOfBounds;
1745 } 1723 }
1746 LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER("GetSamplerParameterfv"); 1724 LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER("GetSamplerParameterfv");
1747 // Check that the client initialized the result. 1725 // Check that the client initialized the result.
1748 if (result->size != 0) { 1726 if (result->size != 0) {
1749 return error::kInvalidArguments; 1727 return error::kInvalidArguments;
1750 } 1728 }
1751 if (!group_->GetSamplerServiceId(sampler, &sampler)) { 1729 DoGetSamplerParameterfv(sampler, pname, params);
1752 LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glGetSamplerParameterfv",
1753 "invalid sampler id");
1754 return error::kNoError;
1755 }
1756 glGetSamplerParameterfv(sampler, pname, params);
1757 GLenum error = LOCAL_PEEK_GL_ERROR("GetSamplerParameterfv"); 1730 GLenum error = LOCAL_PEEK_GL_ERROR("GetSamplerParameterfv");
1758 if (error == GL_NO_ERROR) { 1731 if (error == GL_NO_ERROR) {
1759 result->SetNumResults(num_values); 1732 result->SetNumResults(num_values);
1760 } 1733 }
1761 return error::kNoError; 1734 return error::kNoError;
1762 } 1735 }
1763 1736
1764 error::Error GLES2DecoderImpl::HandleGetSamplerParameteriv( 1737 error::Error GLES2DecoderImpl::HandleGetSamplerParameteriv(
1765 uint32_t immediate_data_size, 1738 uint32_t immediate_data_size,
1766 const void* cmd_data) { 1739 const void* cmd_data) {
(...skipping 11 matching lines...) Expand all
1778 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); 1751 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values));
1779 GLint* params = result ? result->GetData() : NULL; 1752 GLint* params = result ? result->GetData() : NULL;
1780 if (params == NULL) { 1753 if (params == NULL) {
1781 return error::kOutOfBounds; 1754 return error::kOutOfBounds;
1782 } 1755 }
1783 LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER("GetSamplerParameteriv"); 1756 LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER("GetSamplerParameteriv");
1784 // Check that the client initialized the result. 1757 // Check that the client initialized the result.
1785 if (result->size != 0) { 1758 if (result->size != 0) {
1786 return error::kInvalidArguments; 1759 return error::kInvalidArguments;
1787 } 1760 }
1788 if (!group_->GetSamplerServiceId(sampler, &sampler)) { 1761 DoGetSamplerParameteriv(sampler, pname, params);
1789 LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glGetSamplerParameteriv",
1790 "invalid sampler id");
1791 return error::kNoError;
1792 }
1793 glGetSamplerParameteriv(sampler, pname, params);
1794 GLenum error = LOCAL_PEEK_GL_ERROR("GetSamplerParameteriv"); 1762 GLenum error = LOCAL_PEEK_GL_ERROR("GetSamplerParameteriv");
1795 if (error == GL_NO_ERROR) { 1763 if (error == GL_NO_ERROR) {
1796 result->SetNumResults(num_values); 1764 result->SetNumResults(num_values);
1797 } 1765 }
1798 return error::kNoError; 1766 return error::kNoError;
1799 } 1767 }
1800 1768
1801 error::Error GLES2DecoderImpl::HandleGetShaderiv(uint32_t immediate_data_size, 1769 error::Error GLES2DecoderImpl::HandleGetShaderiv(uint32_t immediate_data_size,
1802 const void* cmd_data) { 1770 const void* cmd_data) {
1803 const gles2::cmds::GetShaderiv& c = 1771 const gles2::cmds::GetShaderiv& c =
(...skipping 454 matching lines...) Expand 10 before | Expand all | Expand 10 after
2258 const gles2::cmds::IsSampler& c = 2226 const gles2::cmds::IsSampler& c =
2259 *static_cast<const gles2::cmds::IsSampler*>(cmd_data); 2227 *static_cast<const gles2::cmds::IsSampler*>(cmd_data);
2260 (void)c; 2228 (void)c;
2261 GLuint sampler = c.sampler; 2229 GLuint sampler = c.sampler;
2262 typedef cmds::IsSampler::Result Result; 2230 typedef cmds::IsSampler::Result Result;
2263 Result* result_dst = GetSharedMemoryAs<Result*>( 2231 Result* result_dst = GetSharedMemoryAs<Result*>(
2264 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst)); 2232 c.result_shm_id, c.result_shm_offset, sizeof(*result_dst));
2265 if (!result_dst) { 2233 if (!result_dst) {
2266 return error::kOutOfBounds; 2234 return error::kOutOfBounds;
2267 } 2235 }
2268 GLuint service_sampler = 0; 2236 *result_dst = DoIsSampler(sampler);
2269 *result_dst = group_->GetSamplerServiceId(sampler, &service_sampler);
2270 return error::kNoError; 2237 return error::kNoError;
2271 } 2238 }
2272 2239
2273 error::Error GLES2DecoderImpl::HandleIsShader(uint32_t immediate_data_size, 2240 error::Error GLES2DecoderImpl::HandleIsShader(uint32_t immediate_data_size,
2274 const void* cmd_data) { 2241 const void* cmd_data) {
2275 const gles2::cmds::IsShader& c = 2242 const gles2::cmds::IsShader& c =
2276 *static_cast<const gles2::cmds::IsShader*>(cmd_data); 2243 *static_cast<const gles2::cmds::IsShader*>(cmd_data);
2277 (void)c; 2244 (void)c;
2278 GLuint shader = c.shader; 2245 GLuint shader = c.shader;
2279 typedef cmds::IsShader::Result Result; 2246 typedef cmds::IsShader::Result Result;
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
2478 uint32_t immediate_data_size, 2445 uint32_t immediate_data_size,
2479 const void* cmd_data) { 2446 const void* cmd_data) {
2480 if (!unsafe_es3_apis_enabled()) 2447 if (!unsafe_es3_apis_enabled())
2481 return error::kUnknownCommand; 2448 return error::kUnknownCommand;
2482 const gles2::cmds::SamplerParameterf& c = 2449 const gles2::cmds::SamplerParameterf& c =
2483 *static_cast<const gles2::cmds::SamplerParameterf*>(cmd_data); 2450 *static_cast<const gles2::cmds::SamplerParameterf*>(cmd_data);
2484 (void)c; 2451 (void)c;
2485 GLuint sampler = c.sampler; 2452 GLuint sampler = c.sampler;
2486 GLenum pname = static_cast<GLenum>(c.pname); 2453 GLenum pname = static_cast<GLenum>(c.pname);
2487 GLfloat param = static_cast<GLfloat>(c.param); 2454 GLfloat param = static_cast<GLfloat>(c.param);
2488 if (!group_->GetSamplerServiceId(sampler, &sampler)) { 2455 DoSamplerParameterf(sampler, pname, param);
2489 LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glSamplerParameterf",
2490 "invalid sampler id");
2491 return error::kNoError;
2492 }
2493 glSamplerParameterf(sampler, pname, param);
2494 return error::kNoError; 2456 return error::kNoError;
2495 } 2457 }
2496 2458
2497 error::Error GLES2DecoderImpl::HandleSamplerParameterfvImmediate( 2459 error::Error GLES2DecoderImpl::HandleSamplerParameterfvImmediate(
2498 uint32_t immediate_data_size, 2460 uint32_t immediate_data_size,
2499 const void* cmd_data) { 2461 const void* cmd_data) {
2500 if (!unsafe_es3_apis_enabled()) 2462 if (!unsafe_es3_apis_enabled())
2501 return error::kUnknownCommand; 2463 return error::kUnknownCommand;
2502 const gles2::cmds::SamplerParameterfvImmediate& c = 2464 const gles2::cmds::SamplerParameterfvImmediate& c =
2503 *static_cast<const gles2::cmds::SamplerParameterfvImmediate*>(cmd_data); 2465 *static_cast<const gles2::cmds::SamplerParameterfvImmediate*>(cmd_data);
2504 (void)c; 2466 (void)c;
2505 GLuint sampler = c.sampler; 2467 GLuint sampler = c.sampler;
2506 GLenum pname = static_cast<GLenum>(c.pname); 2468 GLenum pname = static_cast<GLenum>(c.pname);
2507 uint32_t data_size; 2469 uint32_t data_size;
2508 if (!ComputeDataSize(1, sizeof(GLfloat), 1, &data_size)) { 2470 if (!ComputeDataSize(1, sizeof(GLfloat), 1, &data_size)) {
2509 return error::kOutOfBounds; 2471 return error::kOutOfBounds;
2510 } 2472 }
2511 if (data_size > immediate_data_size) { 2473 if (data_size > immediate_data_size) {
2512 return error::kOutOfBounds; 2474 return error::kOutOfBounds;
2513 } 2475 }
2514 const GLfloat* params = 2476 const GLfloat* params =
2515 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size); 2477 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size);
2516 if (params == NULL) { 2478 if (params == NULL) {
2517 return error::kOutOfBounds; 2479 return error::kOutOfBounds;
2518 } 2480 }
2519 group_->GetSamplerServiceId(sampler, &sampler);
2520 DoSamplerParameterfv(sampler, pname, params); 2481 DoSamplerParameterfv(sampler, pname, params);
2521 return error::kNoError; 2482 return error::kNoError;
2522 } 2483 }
2523 2484
2524 error::Error GLES2DecoderImpl::HandleSamplerParameteri( 2485 error::Error GLES2DecoderImpl::HandleSamplerParameteri(
2525 uint32_t immediate_data_size, 2486 uint32_t immediate_data_size,
2526 const void* cmd_data) { 2487 const void* cmd_data) {
2527 if (!unsafe_es3_apis_enabled()) 2488 if (!unsafe_es3_apis_enabled())
2528 return error::kUnknownCommand; 2489 return error::kUnknownCommand;
2529 const gles2::cmds::SamplerParameteri& c = 2490 const gles2::cmds::SamplerParameteri& c =
2530 *static_cast<const gles2::cmds::SamplerParameteri*>(cmd_data); 2491 *static_cast<const gles2::cmds::SamplerParameteri*>(cmd_data);
2531 (void)c; 2492 (void)c;
2532 GLuint sampler = c.sampler; 2493 GLuint sampler = c.sampler;
2533 GLenum pname = static_cast<GLenum>(c.pname); 2494 GLenum pname = static_cast<GLenum>(c.pname);
2534 GLint param = static_cast<GLint>(c.param); 2495 GLint param = static_cast<GLint>(c.param);
2535 if (!group_->GetSamplerServiceId(sampler, &sampler)) { 2496 DoSamplerParameteri(sampler, pname, param);
2536 LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glSamplerParameteri",
2537 "invalid sampler id");
2538 return error::kNoError;
2539 }
2540 glSamplerParameteri(sampler, pname, param);
2541 return error::kNoError; 2497 return error::kNoError;
2542 } 2498 }
2543 2499
2544 error::Error GLES2DecoderImpl::HandleSamplerParameterivImmediate( 2500 error::Error GLES2DecoderImpl::HandleSamplerParameterivImmediate(
2545 uint32_t immediate_data_size, 2501 uint32_t immediate_data_size,
2546 const void* cmd_data) { 2502 const void* cmd_data) {
2547 if (!unsafe_es3_apis_enabled()) 2503 if (!unsafe_es3_apis_enabled())
2548 return error::kUnknownCommand; 2504 return error::kUnknownCommand;
2549 const gles2::cmds::SamplerParameterivImmediate& c = 2505 const gles2::cmds::SamplerParameterivImmediate& c =
2550 *static_cast<const gles2::cmds::SamplerParameterivImmediate*>(cmd_data); 2506 *static_cast<const gles2::cmds::SamplerParameterivImmediate*>(cmd_data);
(...skipping 2620 matching lines...) Expand 10 before | Expand all | Expand 10 after
5171 state_.enable_flags.cached_sample_alpha_to_one_ext = enabled; 5127 state_.enable_flags.cached_sample_alpha_to_one_ext = enabled;
5172 return true; 5128 return true;
5173 } 5129 }
5174 return false; 5130 return false;
5175 default: 5131 default:
5176 NOTREACHED(); 5132 NOTREACHED();
5177 return false; 5133 return false;
5178 } 5134 }
5179 } 5135 }
5180 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_ 5136 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/gles2_cmd_decoder.cc ('k') | gpu/command_buffer/service/gles2_cmd_decoder_unittest_1_autogen.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698