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

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

Issue 2786963002: Revert of Make gl_clear_broken workaround support core profile and use it under AMD Linux Catalyst driver (Closed)
Patch Set: Created 3 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 side-by-side diff with in-line comments
Download patch
Index: gpu/command_buffer/service/gles2_cmd_clear_framebuffer.cc
diff --git a/gpu/command_buffer/service/gles2_cmd_clear_framebuffer.cc b/gpu/command_buffer/service/gles2_cmd_clear_framebuffer.cc
index 99b43fd02543212fe5a7af3d02c82a4d4ed73432..b0fcd5f61958e38bde5bfcde865ee18c8d8a9735 100644
--- a/gpu/command_buffer/service/gles2_cmd_clear_framebuffer.cc
+++ b/gpu/command_buffer/service/gles2_cmd_clear_framebuffer.cc
@@ -4,13 +4,9 @@
#include "gpu/command_buffer/service/gles2_cmd_clear_framebuffer.h"
-#include <string>
-
#include "gpu/command_buffer/service/gl_utils.h"
#include "gpu/command_buffer/service/gles2_cmd_decoder.h"
-#include "gpu/command_buffer/service/shader_translator.h"
#include "ui/gfx/geometry/size.h"
-#include "ui/gl/gl_version_info.h"
namespace {
@@ -61,13 +57,8 @@
namespace gles2 {
ClearFramebufferResourceManager::ClearFramebufferResourceManager(
- const gles2::GLES2Decoder* decoder,
- const gl::GLVersionInfo& gl_version_info)
- : initialized_(false),
- is_desktop_core_profile_(gl_version_info.is_desktop_core_profile),
- program_(0u),
- vao_(0u),
- buffer_id_(0u) {
+ const gles2::GLES2Decoder* decoder)
+ : initialized_(false), program_(0u), buffer_id_(0u) {
Initialize(decoder);
}
@@ -78,10 +69,6 @@
void ClearFramebufferResourceManager::Initialize(
const gles2::GLES2Decoder* decoder) {
- name_map_["a_position"] = "a_position";
- name_map_["u_clear_depth"] = "u_clear_depth";
- name_map_["u_clear_color"] = "u_clear_color";
-
static_assert(
kVertexPositionAttrib == 0u,
"kVertexPositionAttrib must be 0");
@@ -95,39 +82,8 @@
-1.0f, 1.0f};
glBufferData(
GL_ARRAY_BUFFER, sizeof(kQuadVertices), kQuadVertices, GL_STATIC_DRAW);
-
- if (is_desktop_core_profile_) {
- glGenVertexArraysOES(1, &vao_);
- glBindVertexArrayOES(vao_);
- glEnableVertexAttribArray(kVertexPositionAttrib);
- glVertexAttribPointer(kVertexPositionAttrib, 2, GL_FLOAT, GL_FALSE, 0, 0);
- decoder->RestoreAllAttributes();
- }
decoder->RestoreBufferBindings();
initialized_ = true;
-}
-
-void ClearFramebufferResourceManager::InitShader(const GLES2Decoder* decoder,
- GLenum type) {
- std::string source_string(type == GL_VERTEX_SHADER
- ? g_vertex_shader_source
- : g_fragment_shader_source);
- std::string& translated_string(type == GL_VERTEX_SHADER
- ? vertex_shader_source_
- : fragment_shader_source_);
- if (is_desktop_core_profile_) {
- scoped_refptr<ShaderTranslatorInterface> translator =
- decoder->GetTranslator(type);
- int shader_version = 0;
- NameMap map;
- translator->Translate(source_string, NULL, &translated_string,
- &shader_version, 0, 0, 0, 0, 0, &map);
- for (const auto& pair : map) {
- name_map_[pair.second] = pair.first;
- }
- } else {
- translated_string = std::string(source_string);
- }
}
void ClearFramebufferResourceManager::Destroy() {
@@ -135,10 +91,6 @@
return;
glDeleteProgram(program_);
- if (vao_ != 0) {
- glDeleteVertexArraysOES(1, &vao_);
- vao_ = 0;
- }
glDeleteBuffersARB(1, &buffer_id_);
buffer_id_ = 0;
}
@@ -160,16 +112,13 @@
if (!program_) {
program_ = glCreateProgram();
- InitShader(decoder, GL_VERTEX_SHADER);
GLuint vertex_shader = glCreateShader(GL_VERTEX_SHADER);
- CompileShader(vertex_shader, vertex_shader_source_.c_str());
+ CompileShader(vertex_shader, g_vertex_shader_source);
glAttachShader(program_, vertex_shader);
- InitShader(decoder, GL_FRAGMENT_SHADER);
GLuint fragment_shader = glCreateShader(GL_FRAGMENT_SHADER);
- CompileShader(fragment_shader, fragment_shader_source_.c_str());
+ CompileShader(fragment_shader, g_fragment_shader_source);
glAttachShader(program_, fragment_shader);
- glBindAttribLocation(program_, kVertexPositionAttrib,
- name_map_["a_position"].c_str());
+ glBindAttribLocation(program_, kVertexPositionAttrib, "a_position");
glLinkProgram(program_);
#if DCHECK_IS_ON()
GLint linked = GL_FALSE;
@@ -177,12 +126,8 @@
if (GL_TRUE != linked)
DLOG(ERROR) << "Program link failure.";
#endif
- depth_handle_ =
- glGetUniformLocation(program_, name_map_["u_clear_depth"].c_str());
- color_handle_ =
- glGetUniformLocation(program_, name_map_["u_clear_color"].c_str());
- DCHECK(depth_handle_ != -1);
- DCHECK(color_handle_ != -1);
+ depth_handle_ = glGetUniformLocation(program_, "u_clear_depth");
+ color_handle_ = glGetUniformLocation(program_, "u_clear_color");
glDeleteShader(fragment_shader);
glDeleteShader(vertex_shader);
}
@@ -196,15 +141,11 @@
DLOG(ERROR) << "Invalid shader.";
#endif
- if (vao_) {
- glBindVertexArrayOES(vao_);
- } else {
- decoder->ClearAllAttributes();
- glEnableVertexAttribArray(kVertexPositionAttrib);
+ decoder->ClearAllAttributes();
+ glEnableVertexAttribArray(kVertexPositionAttrib);
- glBindBuffer(GL_ARRAY_BUFFER, buffer_id_);
- glVertexAttribPointer(kVertexPositionAttrib, 2, GL_FLOAT, GL_FALSE, 0, 0);
- }
+ glBindBuffer(GL_ARRAY_BUFFER, buffer_id_);
+ glVertexAttribPointer(kVertexPositionAttrib, 2, GL_FLOAT, GL_FALSE, 0, 0);
glUniform1f(depth_handle_, clear_depth_value);
glUniform4f(color_handle_, clear_color_red, clear_color_green,
@@ -239,11 +180,9 @@
glViewport(0, 0, framebuffer_size.width(), framebuffer_size.height());
glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
- if (vao_ == 0) {
- decoder->RestoreBufferBindings();
- }
decoder->RestoreAllAttributes();
decoder->RestoreProgramBindings();
+ decoder->RestoreBufferBindings();
decoder->RestoreGlobalState();
}
« no previous file with comments | « gpu/command_buffer/service/gles2_cmd_clear_framebuffer.h ('k') | gpu/command_buffer/service/gles2_cmd_decoder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698