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

Unified Diff: cc/resources/resource_provider.cc

Issue 2120713002: Fix use_image_texture_target inconsistencies (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: cleanup 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 side-by-side diff with in-line comments
Download patch
Index: cc/resources/resource_provider.cc
diff --git a/cc/resources/resource_provider.cc b/cc/resources/resource_provider.cc
index d38110e6f363e66743d41694dfaaa056cc29fcb5..79cb5cfd43c6a9f7500607d4118585882b1de039 100644
--- a/cc/resources/resource_provider.cc
+++ b/cc/resources/resource_provider.cc
@@ -390,7 +390,7 @@ ResourceProvider::ResourceProvider(
size_t id_allocation_chunk_size,
bool delegated_sync_points_required,
bool use_gpu_memory_buffer_resources,
- const std::vector<unsigned>& use_image_texture_targets)
+ const RendererSettings::ImageTextureTargetsMap& use_image_texture_targets)
: compositor_context_provider_(compositor_context_provider),
shared_bitmap_manager_(shared_bitmap_manager),
gpu_memory_buffer_manager_(gpu_memory_buffer_manager),
@@ -599,8 +599,12 @@ ResourceId ResourceProvider::CreateGLTexture(const gfx::Size& size,
DCHECK_LE(size.height(), max_texture_size_);
DCHECK(thread_checker_.CalledOnValidThread());
+ // TODO(crbug.com/590317): We should not assume that all resources created by
+ // ResourceProvider are GPU_READ_CPU_READ_WRITE. We should determine this
+ // based on the current RasterBufferProvider's needs.
GLenum target = type == RESOURCE_TYPE_GPU_MEMORY_BUFFER
- ? GetImageTextureTarget(format)
+ ? GetImageTextureTarget(
+ gfx::BufferUsage::GPU_READ_CPU_READ_WRITE, format)
: GL_TEXTURE_2D;
ResourceId id = next_id_++;
@@ -1884,11 +1888,13 @@ GLint ResourceProvider::GetActiveTextureUnit(GLES2Interface* gl) {
return active_unit;
}
-GLenum ResourceProvider::GetImageTextureTarget(ResourceFormat format) {
+GLenum ResourceProvider::GetImageTextureTarget(gfx::BufferUsage usage,
+ ResourceFormat format) {
gfx::BufferFormat buffer_format = BufferFormat(format);
- DCHECK_GT(use_image_texture_targets_.size(),
- static_cast<size_t>(buffer_format));
- return use_image_texture_targets_[static_cast<size_t>(buffer_format)];
+ auto found = use_image_texture_targets_.find(
+ RendererSettings::ImageTextureTargetKey(usage, buffer_format));
+ DCHECK(found != use_image_texture_targets_.end());
+ return found->second;
}
void ResourceProvider::ValidateResource(ResourceId id) const {

Powered by Google App Engine
This is Rietveld 408576698