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 <limits.h> | 7 #include <limits.h> |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 #include <stdint.h> | 9 #include <stdint.h> |
10 #include <stdio.h> | 10 #include <stdio.h> |
(...skipping 8014 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8025 if (!program) { | 8025 if (!program) { |
8026 return; | 8026 return; |
8027 } | 8027 } |
8028 | 8028 |
8029 LogClientServiceForInfo(program, program_id, "glLinkProgram"); | 8029 LogClientServiceForInfo(program, program_id, "glLinkProgram"); |
8030 if (program->Link(shader_manager(), | 8030 if (program->Link(shader_manager(), |
8031 workarounds().count_all_in_varyings_packing ? | 8031 workarounds().count_all_in_varyings_packing ? |
8032 Program::kCountAll : Program::kCountOnlyStaticallyUsed, | 8032 Program::kCountAll : Program::kCountOnlyStaticallyUsed, |
8033 shader_cache_callback_)) { | 8033 shader_cache_callback_)) { |
8034 if (program == state_.current_program.get()) { | 8034 if (program == state_.current_program.get()) { |
| 8035 if (workarounds().use_current_program_after_successful_link) |
| 8036 glUseProgram(program->service_id()); |
8035 if (workarounds().clear_uniforms_before_first_program_use) | 8037 if (workarounds().clear_uniforms_before_first_program_use) |
8036 program_manager()->ClearUniforms(program); | 8038 program_manager()->ClearUniforms(program); |
8037 } | 8039 } |
8038 } | 8040 } |
8039 | 8041 |
8040 // LinkProgram can be very slow. Exit command processing to allow for | 8042 // LinkProgram can be very slow. Exit command processing to allow for |
8041 // context preemption and GPU watchdog checks. | 8043 // context preemption and GPU watchdog checks. |
8042 ExitCommandProcessingEarly(); | 8044 ExitCommandProcessingEarly(); |
8043 } | 8045 } |
8044 | 8046 |
(...skipping 9928 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
17973 } | 17975 } |
17974 | 17976 |
17975 // Include the auto-generated part of this file. We split this because it means | 17977 // Include the auto-generated part of this file. We split this because it means |
17976 // we can easily edit the non-auto generated parts right here in this file | 17978 // we can easily edit the non-auto generated parts right here in this file |
17977 // instead of having to edit some template or the code generator. | 17979 // instead of having to edit some template or the code generator. |
17978 #include "base/macros.h" | 17980 #include "base/macros.h" |
17979 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" | 17981 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" |
17980 | 17982 |
17981 } // namespace gles2 | 17983 } // namespace gles2 |
17982 } // namespace gpu | 17984 } // namespace gpu |
OLD | NEW |