Upstream version 10.38.208.0
[platform/framework/web/crosswalk.git] / src / webkit / common / gpu / context_provider_in_process.cc
index e9d2558..e4ca1d8 100644 (file)
@@ -110,6 +110,13 @@ bool ContextProviderInProcess::BindToCurrentThread() {
 
 void ContextProviderInProcess::InitializeCapabilities() {
   capabilities_.gpu = context3d_->GetImplementation()->capabilities();
+
+  size_t mapped_memory_limit = context3d_->GetMappedMemoryLimit();
+  capabilities_.max_transfer_buffer_usage_bytes =
+      mapped_memory_limit ==
+              WebGraphicsContext3DInProcessCommandBufferImpl::kNoLimit
+          ? std::numeric_limits<size_t>::max()
+          : mapped_memory_limit;
 }
 
 cc::ContextProvider::Capabilities
@@ -164,6 +171,13 @@ void ContextProviderInProcess::VerifyContexts() {
     OnLostContext();
 }
 
+void ContextProviderInProcess::DeleteCachedResources() {
+  DCHECK(context_thread_checker_.CalledOnValidThread());
+
+  if (gr_context_)
+    gr_context_->FreeGpuResources();
+}
+
 void ContextProviderInProcess::OnLostContext() {
   DCHECK(context_thread_checker_.CalledOnValidThread());
   {
@@ -174,6 +188,8 @@ void ContextProviderInProcess::OnLostContext() {
   }
   if (!lost_context_callback_.is_null())
     base::ResetAndReturn(&lost_context_callback_).Run();
+  if (gr_context_)
+    gr_context_->OnLostContext();
 }
 
 bool ContextProviderInProcess::DestroyedOnMainThread() {