Index: cc/resources/raster_worker_pool_perftest.cc |
diff --git a/cc/resources/raster_worker_pool_perftest.cc b/cc/resources/raster_worker_pool_perftest.cc |
index 4008ef8d6010755879567e99d2c133b35202769b..9ad6f73130c32328891e002d4e866a629c7484fd 100644 |
--- a/cc/resources/raster_worker_pool_perftest.cc |
+++ b/cc/resources/raster_worker_pool_perftest.cc |
@@ -12,6 +12,7 @@ |
#include "cc/resources/image_copy_raster_worker_pool.h" |
#include "cc/resources/image_raster_worker_pool.h" |
#include "cc/resources/pixel_buffer_raster_worker_pool.h" |
+#include "cc/resources/raster_buffer.h" |
#include "cc/resources/rasterizer.h" |
#include "cc/resources/resource_pool.h" |
#include "cc/resources/resource_provider.h" |
@@ -48,6 +49,16 @@ class PerfGLES2Interface : public gpu::gles2::GLES2InterfaceStub { |
if (pname == GL_MAX_TEXTURE_SIZE) |
*params = INT_MAX; |
} |
+ virtual void GenQueriesEXT(GLsizei n, GLuint* queries) OVERRIDE { |
+ for (GLsizei i = 0; i < n; ++i) |
+ queries[i] = 1u; |
+ } |
+ virtual void GetQueryObjectuivEXT(GLuint query, |
+ GLenum pname, |
+ GLuint* params) OVERRIDE { |
+ if (pname == GL_QUERY_RESULT_AVAILABLE_EXT) |
+ *params = 1; |
+ } |
}; |
class PerfContextProvider : public ContextProvider { |
@@ -55,7 +66,12 @@ class PerfContextProvider : public ContextProvider { |
PerfContextProvider() : context_gl_(new PerfGLES2Interface) {} |
virtual bool BindToCurrentThread() OVERRIDE { return true; } |
- virtual Capabilities ContextCapabilities() OVERRIDE { return Capabilities(); } |
+ virtual Capabilities ContextCapabilities() OVERRIDE { |
+ Capabilities capabilities; |
+ capabilities.gpu.map_image = true; |
+ capabilities.gpu.sync_query = true; |
+ return capabilities; |
+ } |
virtual gpu::gles2::GLES2Interface* ContextGL() OVERRIDE { |
return context_gl_.get(); |
} |
@@ -122,10 +138,10 @@ class PerfRasterTaskImpl : public RasterTask { |
// Overridden from RasterizerTask: |
virtual void ScheduleOnOriginThread(RasterizerTaskClient* client) OVERRIDE { |
- client->AcquireBufferForRaster(this); |
+ raster_buffer_ = client->AcquireBufferForRaster(resource()); |
} |
virtual void CompleteOnOriginThread(RasterizerTaskClient* client) OVERRIDE { |
- client->ReleaseBufferForRaster(this); |
+ client->ReleaseBufferForRaster(raster_buffer_.Pass()); |
} |
virtual void RunReplyOnOriginThread() OVERRIDE { Reset(); } |
@@ -139,6 +155,7 @@ class PerfRasterTaskImpl : public RasterTask { |
private: |
scoped_ptr<ScopedResource> resource_; |
+ scoped_ptr<RasterBuffer> raster_buffer_; |
DISALLOW_COPY_AND_ASSIGN(PerfRasterTaskImpl); |
}; |