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

Unified Diff: gpu/command_buffer/service/program_manager.cc

Issue 159183002: Revert 250146 "Merge 249460 "Hookup clear_uniforms_before_first_..." (Closed) Base URL: svn://svn.chromium.org/chrome/branches/1750/src/
Patch Set: Created 6 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: gpu/command_buffer/service/program_manager.cc
===================================================================
--- gpu/command_buffer/service/program_manager.cc (revision 250177)
+++ gpu/command_buffer/service/program_manager.cc (working copy)
@@ -18,6 +18,7 @@
#include "base/time/time.h"
#include "gpu/command_buffer/common/gles2_cmd_format.h"
#include "gpu/command_buffer/common/gles2_cmd_utils.h"
+#include "gpu/command_buffer/service/feature_info.h"
#include "gpu/command_buffer/service/gles2_cmd_decoder.h"
#include "gpu/command_buffer/service/gpu_switches.h"
#include "gpu/command_buffer/service/program_cache.h"
@@ -460,10 +461,9 @@
}
}
-void ProgramManager::DoCompileShader(
- Shader* shader,
- ShaderTranslator* translator,
- ProgramManager::TranslatedShaderSourceType translated_shader_source_type) {
+void ProgramManager::DoCompileShader(Shader* shader,
+ ShaderTranslator* translator,
+ FeatureInfo* feature_info) {
// Translate GL ES 2.0 shader to Desktop GL shader and pass that to
// glShaderSource and then glCompileShader.
const std::string* source = shader->source();
@@ -474,13 +474,13 @@
return;
}
shader_src = translator->translated_shader();
- if (translated_shader_source_type != kANGLE)
+ if (!feature_info->feature_flags().angle_translated_shader_source)
shader->UpdateTranslatedSource(shader_src);
}
glShaderSource(shader->service_id(), 1, &shader_src, NULL);
glCompileShader(shader->service_id());
- if (translated_shader_source_type == kANGLE) {
+ if (feature_info->feature_flags().angle_translated_shader_source) {
GLint max_len = 0;
glGetShaderiv(shader->service_id(),
GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE,
@@ -522,6 +522,7 @@
bool Program::Link(ShaderManager* manager,
ShaderTranslator* vertex_translator,
ShaderTranslator* fragment_translator,
+ FeatureInfo* feature_info,
const ShaderCacheCallback& shader_callback) {
ClearLinkStatus();
if (!CanLink()) {
@@ -1237,6 +1238,9 @@
uint32 max_varying_vectors)
: program_count_(0),
have_context_(true),
+ disable_workarounds_(
+ CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kDisableGpuDriverBugWorkarounds)),
program_cache_(program_cache),
max_varying_vectors_(max_varying_vectors) { }
@@ -1331,6 +1335,7 @@
DCHECK(program);
DCHECK(IsOwned(program));
program->IncUseCount();
+ ClearUniforms(program);
}
void ProgramManager::UnuseProgram(
@@ -1345,7 +1350,9 @@
void ProgramManager::ClearUniforms(Program* program) {
DCHECK(program);
- program->ClearUniforms(&zero_);
+ if (!disable_workarounds_) {
+ program->ClearUniforms(&zero_);
+ }
}
int32 ProgramManager::MakeFakeLocation(int32 index, int32 element) {
« no previous file with comments | « gpu/command_buffer/service/program_manager.h ('k') | gpu/command_buffer/service/program_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698