| Index: cc/output/software_renderer.cc | 
| diff --git a/cc/output/software_renderer.cc b/cc/output/software_renderer.cc | 
| index fa8c178df35f8f425ed1735d844f9a911f4ce771..ace1b30470ab1eeb69acc9dd49a6d463989fb14a 100644 | 
| --- a/cc/output/software_renderer.cc | 
| +++ b/cc/output/software_renderer.cc | 
| @@ -11,6 +11,7 @@ | 
| #include "cc/output/compositor_frame_metadata.h" | 
| #include "cc/output/copy_output_request.h" | 
| #include "cc/output/output_surface.h" | 
| +#include "cc/output/render_surface_filters.h" | 
| #include "cc/output/software_output_device.h" | 
| #include "cc/quads/checkerboard_draw_quad.h" | 
| #include "cc/quads/debug_border_draw_quad.h" | 
| @@ -440,9 +441,14 @@ void SoftwareRenderer::DrawRenderPassQuad(const DrawingFrame* frame, | 
| shader->setLocalMatrix(content_mat); | 
| current_paint_.setShader(shader.get()); | 
|  | 
| -  SkImageFilter* filter = quad->filter.get(); | 
| -  if (filter) | 
| -    current_paint_.setImageFilter(filter); | 
| +  // TODO(ajuma): Remove this condition once general CSS filters are working | 
| +  // correctly (http://crbug.com/160302), and add corresponding pixel tests. | 
| +  if (quad->filters.HasReferenceFilter()) { | 
| +    skia::RefPtr<SkImageFilter> filter = RenderSurfaceFilters::BuildImageFilter( | 
| +        quad->filters, content_texture->size()); | 
| +    if (filter) | 
| +      current_paint_.setImageFilter(filter.get()); | 
| +  } | 
|  | 
| if (quad->mask_resource_id) { | 
| ResourceProvider::ScopedReadLockSoftware mask_lock(resource_provider_, | 
|  |