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

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

Issue 987123003: Add a mechanism for command buffer to conditionally allow ES3 enums. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 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 <stdio.h> 7 #include <stdio.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <list> 10 #include <list>
(...skipping 2456 matching lines...) Expand 10 before | Expand all | Expand 10 after
2467 if (base::CommandLine::ForCurrentProcess()->HasSwitch( 2467 if (base::CommandLine::ForCurrentProcess()->HasSwitch(
2468 switches::kEnableGPUDebugging)) { 2468 switches::kEnableGPUDebugging)) {
2469 set_debug(true); 2469 set_debug(true);
2470 } 2470 }
2471 2471
2472 if (base::CommandLine::ForCurrentProcess()->HasSwitch( 2472 if (base::CommandLine::ForCurrentProcess()->HasSwitch(
2473 switches::kEnableGPUCommandLogging)) { 2473 switches::kEnableGPUCommandLogging)) {
2474 set_log_commands(true); 2474 set_log_commands(true);
2475 } 2475 }
2476 2476
2477 if (base::CommandLine::ForCurrentProcess()->HasSwitch(
2478 switches::kEnableUnsafeES3APIs) &&
2479 attrib_parser.es3_context_required) {
2480 // TODO(zmo): We need to implement capabilities check to ensure we can
2481 // actually create ES3 contexts.
2482 set_unsafe_es3_apis_enabled(true);
2483 }
2484
2485 compile_shader_always_succeeds_ = 2477 compile_shader_always_succeeds_ =
2486 base::CommandLine::ForCurrentProcess()->HasSwitch( 2478 base::CommandLine::ForCurrentProcess()->HasSwitch(
2487 switches::kCompileShaderAlwaysSucceeds); 2479 switches::kCompileShaderAlwaysSucceeds);
2488 2480
2489 // Take ownership of the context and surface. The surface can be replaced with 2481 // Take ownership of the context and surface. The surface can be replaced with
2490 // SetSurface. 2482 // SetSurface.
2491 context_ = context; 2483 context_ = context;
2492 surface_ = surface; 2484 surface_ = surface;
2493 2485
2494 // Create GPU Tracer for timing values. 2486 // Create GPU Tracer for timing values.
(...skipping 14 matching lines...) Expand all
2509 2501
2510 if (!group_->Initialize(this, disallowed_features)) { 2502 if (!group_->Initialize(this, disallowed_features)) {
2511 LOG(ERROR) << "GpuScheduler::InitializeCommon failed because group " 2503 LOG(ERROR) << "GpuScheduler::InitializeCommon failed because group "
2512 << "failed to initialize."; 2504 << "failed to initialize.";
2513 group_ = NULL; // Must not destroy ContextGroup if it is not initialized. 2505 group_ = NULL; // Must not destroy ContextGroup if it is not initialized.
2514 Destroy(true); 2506 Destroy(true);
2515 return false; 2507 return false;
2516 } 2508 }
2517 CHECK_GL_ERROR(); 2509 CHECK_GL_ERROR();
2518 2510
2511 if (base::CommandLine::ForCurrentProcess()->HasSwitch(
2512 switches::kEnableUnsafeES3APIs) &&
2513 attrib_parser.es3_context_required &&
2514 feature_info_->IsES3Capable()) {
2515 feature_info_->EnableES3Validators();
2516 set_unsafe_es3_apis_enabled(true);
2517 }
2518
2519 disallowed_features_ = disallowed_features; 2519 disallowed_features_ = disallowed_features;
2520 2520
2521 state_.attrib_values.resize(group_->max_vertex_attribs()); 2521 state_.attrib_values.resize(group_->max_vertex_attribs());
2522 vertex_array_manager_.reset(new VertexArrayManager()); 2522 vertex_array_manager_.reset(new VertexArrayManager());
2523 2523
2524 GLuint default_vertex_attrib_service_id = 0; 2524 GLuint default_vertex_attrib_service_id = 0;
2525 if (features().native_vertex_array_object) { 2525 if (features().native_vertex_array_object) {
2526 glGenVertexArraysOES(1, &default_vertex_attrib_service_id); 2526 glGenVertexArraysOES(1, &default_vertex_attrib_service_id);
2527 glBindVertexArrayOES(default_vertex_attrib_service_id); 2527 glBindVertexArrayOES(default_vertex_attrib_service_id);
2528 } 2528 }
(...skipping 9775 matching lines...) Expand 10 before | Expand all | Expand 10 after
12304 } 12304 }
12305 } 12305 }
12306 12306
12307 // Include the auto-generated part of this file. We split this because it means 12307 // Include the auto-generated part of this file. We split this because it means
12308 // we can easily edit the non-auto generated parts right here in this file 12308 // we can easily edit the non-auto generated parts right here in this file
12309 // instead of having to edit some template or the code generator. 12309 // instead of having to edit some template or the code generator.
12310 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" 12310 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h"
12311 12311
12312 } // namespace gles2 12312 } // namespace gles2
12313 } // namespace gpu 12313 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/feature_info.cc ('k') | gpu/command_buffer/service/gles2_cmd_validation.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698