[chromium] Make RenderPass ids hold both generating layer id and an index
https://bugs.webkit.org/show_bug.cgi?id=95500

Reviewed by Adrienne Walker.

Source/WebCore:

This change allows us to avoid complex renderPassId mappings between
compositors for ubercomp. The ubercomp layer needs to add a number
of RenderPasses to the frame, and these must not conflict with other
RenderPasses in the frame. By using its layer id along with an extra
value it determines, the layer can create a unique id without needing
access to any global state or id generator.

Covered by existing tests.

* platform/graphics/chromium/cc/CCDirectRenderer.cpp:
(WebCore::CCDirectRenderer::decideRenderPassAllocationsForFrame):
(WebCore::CCDirectRenderer::haveCachedResourcesForRenderPassId):
* platform/graphics/chromium/cc/CCDirectRenderer.h:
(CCDirectRenderer):
* platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
(WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
(WebCore::findRenderPassById):
(WebCore::removeRenderPassesRecursive):
* platform/graphics/chromium/cc/CCRenderPass.cpp:
(WebCore::CCRenderPass::create):
(WebCore::CCRenderPass::CCRenderPass):
* platform/graphics/chromium/cc/CCRenderPass.h:
(Id):
(WebCore::CCRenderPass::Id::Id):
(WebCore::CCRenderPass::Id::operator==):
(WebCore::CCRenderPass::Id::operator!=):
(WebCore::CCRenderPass::Id::operator<):
(CCRenderPass):
(WebCore::CCRenderPass::id):
(WebCore):
* platform/graphics/chromium/cc/CCRenderPassDrawQuad.cpp:
(WebCore::CCRenderPassDrawQuad::create):
(WebCore::CCRenderPassDrawQuad::CCRenderPassDrawQuad):
* platform/graphics/chromium/cc/CCRenderPassDrawQuad.h:
(CCRenderPassDrawQuad):
(WebCore::CCRenderPassDrawQuad::renderPassId):
* platform/graphics/chromium/cc/CCRenderSurface.cpp:
(WebCore::CCRenderSurface::renderPassId):
(WebCore):
(WebCore::CCRenderSurface::appendRenderPasses):
(WebCore::CCRenderSurface::appendQuads):
* platform/graphics/chromium/cc/CCRenderSurface.h:
(WebCore):
(CCRenderSurface):
* platform/graphics/chromium/cc/CCRenderer.h:
(WebCore::CCRenderer::haveCachedResourcesForRenderPassId):

Source/WebKit/chromium:

* tests/CCLayerTreeHostImplTest.cpp:
* tests/CCLayerTreeHostTest.cpp:
* tests/CCRenderSurfaceTest.cpp:
* tests/CCRendererGLTest.cpp:
(FakeCCRendererClient::FakeCCRendererClient):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127907 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Dynamically removing preserve-3d from a layer has no effect
https://bugs.webkit.org/show_bug.cgi?id=95732

Patch by Sami Kyostila <skyostil@google.com> on 2012-09-07
Reviewed by James Robinson.

Move preserve-3d-toggle.html to the common compositing tests directory because
it isn't Chromium-specific.

* compositing/preserve-3d-toggle-expected.png: Renamed from LayoutTests/platform/chromium/compositing/preserve-3d-toggle-expected.png.
* compositing/preserve-3d-toggle-expected.txt: Renamed from LayoutTests/platform/chromium/compositing/preserve-3d-toggle-expected.txt.
* compositing/preserve-3d-toggle.html: Renamed from LayoutTests/platform/chromium/compositing/preserve-3d-toggle.html.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127908 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL] Use same default minimum logical font size in DRT and WTR
https://bugs.webkit.org/show_bug.cgi?id=96116

Patch by Christophe Dumez <christophe.dumez@intel.com> on 2012-09-07
Reviewed by Martin Robinson.

Source/WebKit/efl:

Add DRT helper function to set the minimum logical
font size setting.

* WebCoreSupport/DumpRenderTreeSupportEfl.cpp:
(DumpRenderTreeSupportEfl::setMinimumLogicalFontSize):
* WebCoreSupport/DumpRenderTreeSupportEfl.h:

Source/WebKit2:

Add private bundle C API to set the minimum logicial font
size setting. This is needed by WebKitTestRunner.

* WebProcess/InjectedBundle/API/c/WKBundle.cpp:
(WKBundleSetMinimumLogicalFontSize):
* WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::setMinimumLogicalFontSize):
(WebKit):
* WebProcess/InjectedBundle/InjectedBundle.h:
(InjectedBundle):

Tools:

* DumpRenderTree/efl/DumpRenderTreeChrome.cpp:
(DumpRenderTreeChrome::resetDefaultsToConsistentValues): Set minimum
logical font size to 9 to match the value used in WTR.
* WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::beginTesting): Explicitly set the minimum
logical font size to 9 (default value in WK2)

LayoutTests:

Provide new baseline for several tests now that the minimum
logical font size setting is set to 9 in EFL's DRT.

Unskip several tests in EFL WK2 now that EFL's DRT uses
the same minimum logical font size and now that the tests
have been rebaselined.

* platform/efl-wk2/TestExpectations:
* platform/efl/fast/css/bidi-override-in-anonymous-block-expected.png:
* platform/efl/fast/css/bidi-override-in-anonymous-block-expected.txt: Added.
* platform/efl/fast/ruby/nested-ruby-expected.png:
* platform/efl/fast/ruby/nested-ruby-expected.txt:
* platform/efl/fast/ruby/ruby-beforeafter-expected.png:
* platform/efl/fast/ruby/ruby-beforeafter-expected.txt:
* platform/efl/fast/ruby/ruby-empty-rt-expected.png:
* platform/efl/fast/ruby/ruby-empty-rt-expected.txt:
* platform/efl/fast/ruby/ruby-length-expected.png:
* platform/efl/fast/ruby/ruby-length-expected.txt:
* platform/efl/fast/ruby/ruby-run-break-expected.png:
* platform/efl/fast/ruby/ruby-run-break-expected.txt:
* platform/efl/fast/ruby/ruby-runs-expected.png:
* platform/efl/fast/ruby/ruby-runs-expected.txt:
* platform/efl/fast/ruby/ruby-runs-spans-expected.png:
* platform/efl/fast/ruby/ruby-runs-spans-expected.txt:
* platform/efl/fast/ruby/ruby-simple-expected.png:
* platform/efl/fast/ruby/ruby-simple-expected.txt:
* platform/efl/fast/ruby/ruby-simple-rp-expected.png:
* platform/efl/fast/ruby/ruby-simple-rp-expected.txt:
* platform/efl/fast/ruby/ruby-trailing-expected.png:
* platform/efl/fast/ruby/ruby-trailing-expected.txt:
* platform/efl/fast/ruby/rubyDOM-insert-rt-expected.png:
* platform/efl/fast/ruby/rubyDOM-insert-rt-expected.txt:
* platform/efl/fast/ruby/rubyDOM-insert-text1-expected.png:
* platform/efl/fast/ruby/rubyDOM-insert-text1-expected.txt:
* platform/efl/fast/ruby/rubyDOM-insert-text2-expected.png:
* platform/efl/fast/ruby/rubyDOM-insert-text2-expected.txt:
* platform/efl/fast/ruby/rubyDOM-insert-text3-expected.png:
* platform/efl/fast/ruby/rubyDOM-insert-text3-expected.txt:
* platform/efl/fast/ruby/rubyDOM-remove-rt1-expected.png:
* platform/efl/fast/ruby/rubyDOM-remove-rt1-expected.txt:
* platform/efl/fast/ruby/rubyDOM-remove-rt2-expected.png:
* platform/efl/fast/ruby/rubyDOM-remove-rt2-expected.txt:
* platform/efl/fast/ruby/rubyDOM-remove-text1-expected.png:
* platform/efl/fast/ruby/rubyDOM-remove-text1-expected.txt:
* platform/efl/fast/ruby/rubyDOM-remove-text2-expected.png:
* platform/efl/fast/ruby/rubyDOM-remove-text2-expected.txt:
* platform/efl/http/tests/misc/object-embedding-svg-delayed-size-negotiation-2-expected.png:
* platform/efl/http/tests/misc/object-embedding-svg-delayed-size-negotiation-2-expected.txt:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127909 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Regression: check-webkit-style no longer checks TestExpectations for syntax errors
https://bugs.webkit.org/show_bug.cgi?id=96136

Reviewed by Ojan Vafai.

When we renamed the file to TestExpectations, it was no longer considered a text file so
it was no longer being checked. Since then, test_expectations_overrides() has been removed
from the port object, so I've removed that from the check. I'm not sure what it was
supposed to do.

* Scripts/webkitpy/style/checker.py:
(CheckerDispatcher._file_type): Mark TestExpectations as a text file.
* Scripts/webkitpy/style/checkers/test_expectations.py:
(TestExpectationsChecker.check_test_expectations): Remove overrides param.
(TestExpectationsChecker.check): Remove overrides param.
* Scripts/webkitpy/style/checkers/test_expectations_unittest.py:
(TestExpectationsTestCase.assert_lines_lint): Remove overrides param.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127910 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[CSS Shaders] [BlackBerry] Refactor CustomFilterMesh and CustomFilter*Program
https://bugs.webkit.org/show_bug.cgi?id=94725

Reviewed by Rob Buis.

Separate the MeshGenerator from the CustomFilterMesh into
CustomFilterMeshGenerator.h/cpp. This allows the BlackBerry port to
reuse the mesh generator in its accelerated compositing implementation.

Also add support for creating a "PlatformCompiledProgram" from a
CustomFilterValidatedProgram, so the BlackBerry port can reuse the
shader validation code in its accelerated compositing implementation.

It turns out the GraphicsContext3D is not needed for ANGLE to function,
so this patch removes an ASSERT that required a context before
validating the shaders using ANGLE. This allows the BlackBerry port to
reuse the validation code without triggering the assert. In the future,
the validation code could be moved to a separate class to make it more
obvious that it isn't really related to GraphicsContext3D.

In general, this refactoring can be useful for any port that uses
OpenGL to implement accelerated compositing.

Inspired by an original patch by Joshua Netterfield.

No new tests, because this patch implements no new functionality.

* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/filters/CustomFilterGlobalContext.cpp:
(WebCore::CustomFilterGlobalContext::getValidatedProgram):
* platform/graphics/filters/CustomFilterMesh.cpp:
(WebCore::CustomFilterMesh::CustomFilterMesh):
* platform/graphics/filters/CustomFilterMeshGenerator.cpp: Added.
(WebCore):
(WebCore::CustomFilterMeshGenerator::CustomFilterMeshGenerator):
(WebCore::CustomFilterMeshGenerator::addAttachedMeshIndex):
(WebCore::CustomFilterMeshGenerator::generateAttachedMesh):
(WebCore::CustomFilterMeshGenerator::addDetachedMeshVertexAndIndex):
(WebCore::CustomFilterMeshGenerator::generateDetachedMesh):
(WebCore::CustomFilterMeshGenerator::addPositionAttribute):
(WebCore::CustomFilterMeshGenerator::addTexCoordAttribute):
(WebCore::CustomFilterMeshGenerator::addMeshCoordAttribute):
(WebCore::CustomFilterMeshGenerator::addTriangleCoordAttribute):
(WebCore::CustomFilterMeshGenerator::addAttachedMeshVertexAttributes):
(WebCore::CustomFilterMeshGenerator::addDetachedMeshVertexAttributes):
(WebCore::CustomFilterMeshGenerator::dumpBuffers):
* platform/graphics/filters/CustomFilterMeshGenerator.h: Added.
(WebCore):
(CustomFilterMeshGenerator):
(WebCore::CustomFilterMeshGenerator::vertices):
(WebCore::CustomFilterMeshGenerator::indices):
(WebCore::CustomFilterMeshGenerator::points):
(WebCore::CustomFilterMeshGenerator::pointsCount):
(WebCore::CustomFilterMeshGenerator::tiles):
(WebCore::CustomFilterMeshGenerator::tilesCount):
(WebCore::CustomFilterMeshGenerator::indicesCount):
(WebCore::CustomFilterMeshGenerator::floatsPerVertex):
(WebCore::CustomFilterMeshGenerator::verticesCount):
(WebCore::CustomFilterMeshGenerator::addTile):
* platform/graphics/filters/CustomFilterValidatedProgram.cpp:
(WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram):
(WebCore::CustomFilterValidatedProgram::compiledProgram):
(WebCore::CustomFilterValidatedProgram::~CustomFilterValidatedProgram):
(WebCore):
(WebCore::CustomFilterValidatedProgram::platformCompiledProgram):
(WebCore::CustomFilterValidatedProgram::platformDestroy):
* platform/graphics/filters/CustomFilterValidatedProgram.h:
(WebCore):
(CustomFilterValidatedProgram):
* platform/graphics/filters/blackberry/CustomFilterValidatedProgramBlackBerry.cpp: Added.
(WebCore):
(WebCore::CustomFilterValidatedProgram::platformCompiledProgram):
(WebCore::CustomFilterValidatedProgram::platformDestroy):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127911 268f45cc-cd09-0410-ab3c-d52691b4dbfc