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

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

Issue 2149523002: Make invalidateFramebuffer no-op for DEPTH_STENCIL attachment (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add depth_cleared_ and stencil_cleared_ for class texture and renderbuffer. Created 4 years, 5 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/renderbuffer_manager.h" 5 #include "gpu/command_buffer/service/renderbuffer_manager.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 sizeof(signature_data)); 104 sizeof(signature_data));
105 } 105 }
106 106
107 Renderbuffer::Renderbuffer(RenderbufferManager* manager, 107 Renderbuffer::Renderbuffer(RenderbufferManager* manager,
108 GLuint client_id, 108 GLuint client_id,
109 GLuint service_id) 109 GLuint service_id)
110 : manager_(manager), 110 : manager_(manager),
111 client_id_(client_id), 111 client_id_(client_id),
112 service_id_(service_id), 112 service_id_(service_id),
113 cleared_(true), 113 cleared_(true),
114 depth_cleared_(true),
115 stencil_cleared_(true),
114 has_been_bound_(false), 116 has_been_bound_(false),
115 samples_(0), 117 samples_(0),
116 internal_format_(GL_RGBA4), 118 internal_format_(GL_RGBA4),
117 width_(0), 119 width_(0),
118 height_(0) { 120 height_(0) {
119 manager_->StartTracking(this); 121 manager_->StartTracking(this);
120 } 122 }
121 123
122 Renderbuffer::~Renderbuffer() { 124 Renderbuffer::~Renderbuffer() {
123 if (manager_) { 125 if (manager_) {
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
168 DCHECK(renderbuffer); 170 DCHECK(renderbuffer);
169 if (!renderbuffer->cleared()) { 171 if (!renderbuffer->cleared()) {
170 --num_uncleared_renderbuffers_; 172 --num_uncleared_renderbuffers_;
171 } 173 }
172 renderbuffer->set_cleared(cleared); 174 renderbuffer->set_cleared(cleared);
173 if (!renderbuffer->cleared()) { 175 if (!renderbuffer->cleared()) {
174 ++num_uncleared_renderbuffers_; 176 ++num_uncleared_renderbuffers_;
175 } 177 }
176 } 178 }
177 179
180 void RenderbufferManager::SetCleared(Renderbuffer* renderbuffer,
181 GLenum attachment,
182 bool cleared) {
183 DCHECK(renderbuffer);
184 if (!renderbuffer->cleared()) {
185 --num_uncleared_renderbuffers_;
186 }
187 renderbuffer->set_cleared(attachment, cleared);
188 if (!renderbuffer->cleared()) {
189 ++num_uncleared_renderbuffers_;
190 }
191 }
192
178 void RenderbufferManager::CreateRenderbuffer( 193 void RenderbufferManager::CreateRenderbuffer(
179 GLuint client_id, GLuint service_id) { 194 GLuint client_id, GLuint service_id) {
180 scoped_refptr<Renderbuffer> renderbuffer( 195 scoped_refptr<Renderbuffer> renderbuffer(
181 new Renderbuffer(this, client_id, service_id)); 196 new Renderbuffer(this, client_id, service_id));
182 std::pair<RenderbufferMap::iterator, bool> result = 197 std::pair<RenderbufferMap::iterator, bool> result =
183 renderbuffers_.insert(std::make_pair(client_id, renderbuffer)); 198 renderbuffers_.insert(std::make_pair(client_id, renderbuffer));
184 DCHECK(result.second); 199 DCHECK(result.second);
185 if (!renderbuffer->cleared()) { 200 if (!renderbuffer->cleared()) {
186 ++num_uncleared_renderbuffers_; 201 ++num_uncleared_renderbuffers_;
187 } 202 }
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
267 auto guid = gl::GetGLRenderbufferGUIDForTracing( 282 auto guid = gl::GetGLRenderbufferGUIDForTracing(
268 memory_tracker_->ShareGroupTracingGUID(), client_renderbuffer_id); 283 memory_tracker_->ShareGroupTracingGUID(), client_renderbuffer_id);
269 pmd->CreateSharedGlobalAllocatorDump(guid); 284 pmd->CreateSharedGlobalAllocatorDump(guid);
270 pmd->AddOwnershipEdge(dump->guid(), guid); 285 pmd->AddOwnershipEdge(dump->guid(), guid);
271 } 286 }
272 return true; 287 return true;
273 } 288 }
274 289
275 } // namespace gles2 290 } // namespace gles2
276 } // namespace gpu 291 } // namespace gpu
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698