[webkit-changes] [251405] trunk/LayoutTests
Title: [251405] trunk/LayoutTests Revision 251405 Author mmaxfi...@apple.com Date 2019-10-21 18:12:16 -0700 (Mon, 21 Oct 2019) Log Message Update Web Platform Test css/css-lists/content-property/marker-text-matches-armenian.html https://bugs.webkit.org/show_bug.cgi?id=203130 Reviewed by Alex Christensen. Apply https://github.com/web-platform-tests/wpt/commit/b2d4cb4a64ae072dfc6feb888dd77575927f5ae2 LayoutTests/imported/w3c: * web-platform-tests/css/css-lists/content-property/marker-text-matches-armenian-expected.html: * web-platform-tests/css/css-lists/content-property/marker-text-matches-armenian.html: LayoutTests: * platform/ios-simulator/TestExpectations: * platform/mac/TestExpectations: Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/imported/w3c/ChangeLog trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-lists/content-property/marker-text-matches-armenian-expected.html trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-lists/content-property/marker-text-matches-armenian.html trunk/LayoutTests/platform/ios-simulator/TestExpectations trunk/LayoutTests/platform/mac/TestExpectations Diff Modified: trunk/LayoutTests/ChangeLog (251404 => 251405) --- trunk/LayoutTests/ChangeLog 2019-10-22 00:53:20 UTC (rev 251404) +++ trunk/LayoutTests/ChangeLog 2019-10-22 01:12:16 UTC (rev 251405) @@ -1,3 +1,16 @@ +2019-10-21 Myles C. Maxfield + +Update Web Platform Test css/css-lists/content-property/marker-text-matches-armenian.html +https://bugs.webkit.org/show_bug.cgi?id=203130 + + +Reviewed by Alex Christensen. + +Apply https://github.com/web-platform-tests/wpt/commit/b2d4cb4a64ae072dfc6feb888dd77575927f5ae2 + +* platform/ios-simulator/TestExpectations: +* platform/mac/TestExpectations: + 2019-10-21 Kate Cheney http/tests/resourceLoadStatistics/switch-session-on-navigation-to-prevalent-with-interaction-database.html is a flaky failure Modified: trunk/LayoutTests/imported/w3c/ChangeLog (251404 => 251405) --- trunk/LayoutTests/imported/w3c/ChangeLog 2019-10-22 00:53:20 UTC (rev 251404) +++ trunk/LayoutTests/imported/w3c/ChangeLog 2019-10-22 01:12:16 UTC (rev 251405) @@ -1,3 +1,16 @@ +2019-10-21 Myles C. Maxfield + +Update Web Platform Test css/css-lists/content-property/marker-text-matches-armenian.html +https://bugs.webkit.org/show_bug.cgi?id=203130 + + +Reviewed by Alex Christensen. + +Apply https://github.com/web-platform-tests/wpt/commit/b2d4cb4a64ae072dfc6feb888dd77575927f5ae2 + +* web-platform-tests/css/css-lists/content-property/marker-text-matches-armenian-expected.html: +* web-platform-tests/css/css-lists/content-property/marker-text-matches-armenian.html: + 2019-10-21 Said Abou-Hallawa [SVG2]: Add 'auto' behavior to the 'width' and 'height' properties of the SVG element Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-lists/content-property/marker-text-matches-armenian-expected.html (251404 => 251405) --- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-lists/content-property/marker-text-matches-armenian-expected.html 2019-10-22 00:53:20 UTC (rev 251404) +++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-lists/content-property/marker-text-matches-armenian-expected.html 2019-10-22 01:12:16 UTC (rev 251405) @@ -7,4 +7,4 @@ padding: 0; } -Ա. Filler Text +Ա. Filler Text Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-lists/content-property/marker-text-matches-armenian.html (251404 => 251405) --- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-lists/content-property/marker-text-matches-armenian.html 2019-10-22 00:53:20 UTC (rev 251404) +++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-lists/content-property/marker-text-matches-armenian.html 2019-10-22 01:12:16 UTC (rev 251405) @@ -14,5 +14,5 @@ - Filler Text + Filler Text Modified: trunk/LayoutTests/platform/ios-simulator/TestExpectations (251404 => 251405) --- trunk/LayoutTests/platform/ios-simulator/TestExpectations 2019-10-22 00:53:20 UTC (rev 251404) +++ trunk/LayoutTests/platform/ios-simulator/TestExpectations 2019-10-22 01:12:16 UTC (rev 251405) @@ -117,7 +117,6 @@ # Crashes webkit.org/b/189686 webgl/2.0.0/conformance2/buffers/one-large-uniform-buffer.html [ Skip ] -imported/w3c/web-platform-tests/css/css-lists/content-property/marker-text-matches-armenian.html [ ImageOnlyFailure ] imported/w3c/web-platform-tests/css/css-lists/content-property/marker-text-matches-georgian.html [ ImageOnlyFailure ] imported/w3c/web-platform-tests/css/css-lists/content-property/marker-text-matches-lower-greek.html [ Pass ] imported/w3c/web-platform-tests/css/css-lists/list-and-writing-mode-001.html [ Failure ] @@ -133,4 +132,4 @@ webkit.org/b/202648 crypto/workers/subtle/aes-indexeddb.html [ Skip ] # WebGPU is not enabled on iOS Simulator. -webgpu [ Skip ] \ No
[webkit-changes] [251413] trunk
Title: [251413] trunk Revision 251413 Author mmaxfi...@apple.com Date 2019-10-21 21:05:19 -0700 (Mon, 21 Oct 2019) Log Message [Cocoa] Move ui-serif, ui-monospaced, and ui-rounded out from behind SPI https://bugs.webkit.org/show_bug.cgi?id=203129 Reviewed by Tim Horton. Source/WebCore: https://github.com/w3c/csswg-drafts/issues/4107 resolved to name these new fonts ui-serif, ui-monospaced, and ui-rounded. This patch renames them, and removes the SPI to access these fonts. Tests: fast/text/design-system-ui*.html * css/CSSFontFace.cpp: (WebCore::CSSFontFace::shouldAllowDesignSystemUIFonts const): Deleted. * css/CSSFontFace.h: * css/CSSFontFaceSource.cpp: (WebCore::CSSFontFaceSource::load): * css/StyleResolver.cpp: (WebCore::StyleResolver::initializeFontStyle): * page/Settings.yaml: * platform/graphics/FontCache.h: (WebCore::FontDescriptionKey::makeFlagsKey): * platform/graphics/FontDescription.cpp: (WebCore::m_shouldAllowUserInstalledFonts): (WebCore::m_shouldAllowDesignSystemUIFonts): Deleted. * platform/graphics/FontDescription.h: (WebCore::FontDescription::shouldAllowUserInstalledFonts const): (WebCore::FontDescription::setShouldAllowUserInstalledFonts): (WebCore::FontDescription::operator== const): (WebCore::FontDescription::shouldAllowDesignSystemUIFonts const): Deleted. (WebCore::FontDescription::setShouldAllowDesignSystemUIFonts): Deleted. * platform/graphics/cocoa/FontCacheCoreText.cpp: (WebCore::platformFontLookupWithFamily): (WebCore::fontWithFamilySpecialCase): * platform/graphics/cocoa/FontDescriptionCocoa.cpp: (WebCore::matchSystemFontUse): (WebCore::FontCascadeDescription::effectiveFamilyCount const): (WebCore::FontCascadeDescription::effectiveFamilyAt const): * platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp: (WebCore::SystemFontDatabaseCoreText::systemFontParameters): * style/StyleResolveForDocument.cpp: (WebCore::Style::resolveForDocument): * svg/graphics/SVGImage.cpp: (WebCore::SVGImage::dataChanged): Source/WebKit: * Shared/WebPreferences.yaml: * UIProcess/API/Cocoa/WKPreferences.mm: (-[WKPreferences _shouldAllowDesignSystemUIFonts]): Deleted. (-[WKPreferences _setShouldAllowDesignSystemUIFonts:]): Deleted. * UIProcess/API/Cocoa/WKPreferencesPrivate.h: LayoutTests: Update the tests to use the new names, and to not set the setting. * fast/text/design-system-ui-10-expected-mismatch.html: * fast/text/design-system-ui-10.html: * fast/text/design-system-ui-11.html: * fast/text/design-system-ui-12.html: * fast/text/design-system-ui-13.html: * fast/text/design-system-ui-14.html: * fast/text/design-system-ui-15.html: * fast/text/design-system-ui-16.html: * fast/text/design-system-ui-2-expected.html: * fast/text/design-system-ui-2.html: * fast/text/design-system-ui-3-expected-mismatch.html: * fast/text/design-system-ui-3.html: * fast/text/design-system-ui-4-expected-mismatch.html: * fast/text/design-system-ui-4.html: * fast/text/design-system-ui-5-expected-mismatch.html: * fast/text/design-system-ui-5.html: * fast/text/design-system-ui-6-expected.html: * fast/text/design-system-ui-6.html: * fast/text/design-system-ui-7-expected.html: * fast/text/design-system-ui-7.html: * fast/text/design-system-ui-8-expected-mismatch.html: * fast/text/design-system-ui-8.html: * fast/text/design-system-ui-9-expected-mismatch.html: * fast/text/design-system-ui-9.html: * fast/text/design-system-ui-expected.html: * fast/text/design-system-ui.html: Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/fast/text/design-system-ui-10-expected-mismatch.html trunk/LayoutTests/fast/text/design-system-ui-10.html trunk/LayoutTests/fast/text/design-system-ui-11.html trunk/LayoutTests/fast/text/design-system-ui-12.html trunk/LayoutTests/fast/text/design-system-ui-13.html trunk/LayoutTests/fast/text/design-system-ui-14.html trunk/LayoutTests/fast/text/design-system-ui-15.html trunk/LayoutTests/fast/text/design-system-ui-16.html trunk/LayoutTests/fast/text/design-system-ui-2-expected.html trunk/LayoutTests/fast/text/design-system-ui-2.html trunk/LayoutTests/fast/text/design-system-ui-3-expected-mismatch.html trunk/LayoutTests/fast/text/design-system-ui-3.html trunk/LayoutTests/fast/text/design-system-ui-4-expected-mismatch.html trunk/LayoutTests/fast/text/design-system-ui-4.html trunk/LayoutTests/fast/text/design-system-ui-5-expected-mismatch.html trunk/LayoutTests/fast/text/design-system-ui-5.html trunk/LayoutTests/fast/text/design-system-ui-6-expected.html trunk/LayoutTests/fast/text/design-system-ui-6.html trunk/LayoutTests/fast/text/design-system-ui-7-expected.html trunk/LayoutTests/fast/text/design-system-ui-7.html trunk/LayoutTests/fast/text/design-system-ui-8-expected-mismatch.html trunk/LayoutTests/fast/text/design-system-ui-8.html trunk/LayoutTests/fast/text/design-system-ui-9-expected-mismatch.html trunk/LayoutTests/fast/text/design-system-ui-9.html trunk/LayoutTests/fast/text/design-system-ui-expected.html trunk/LayoutTests/fast/text/design-system-ui.html trunk/Source/WebCore/ChangeLo
[webkit-changes] [251508] trunk/Source
Title: [251508] trunk/Source Revision 251508 Author mmaxfi...@apple.com Date 2019-10-23 16:14:05 -0700 (Wed, 23 Oct 2019) Log Message [iOS] Remove Hiragino Sans site-specific quirk for Yahoo Japan https://bugs.webkit.org/show_bug.cgi?id=203345 Reviewed by Simon Fraser. Source/WebCore: This iOS-specific quirk made Yahoo Japan stop using the 800-weight version of Hiragino Sans because it's too heavy. We were using the 800-weight because the site requests 700 but we didn't have a 700- weight of Hiragino Sans. However, now in iOS 13 we do have a 700- weight of Hiragino Sans, so we can just delete this quirk. Also, it turns out that Yahoo Japan modified their content to no longer hit this quirk anyway, so this patch has 0 behavior change. Site specific quirks are untestable. * css/CSSFontSelector.cpp: (WebCore::CSSFontSelector::fontRangesForFamily): * page/Quirks.cpp: (WebCore::Quirks::shouldLightenJapaneseBoldSansSerif const): Deleted. * page/Quirks.h: Source/WTF: * wtf/Platform.h: Modified Paths trunk/Source/WTF/ChangeLog trunk/Source/WTF/wtf/Platform.h trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/css/CSSFontSelector.cpp trunk/Source/WebCore/page/Quirks.cpp trunk/Source/WebCore/page/Quirks.h Diff Modified: trunk/Source/WTF/ChangeLog (251507 => 251508) --- trunk/Source/WTF/ChangeLog 2019-10-23 23:13:43 UTC (rev 251507) +++ trunk/Source/WTF/ChangeLog 2019-10-23 23:14:05 UTC (rev 251508) @@ -1,3 +1,12 @@ +2019-10-23 Myles C. Maxfield + +[iOS] Remove Hiragino Sans site-specific quirk for Yahoo Japan +https://bugs.webkit.org/show_bug.cgi?id=203345 + +Reviewed by Simon Fraser. + +* wtf/Platform.h: + 2019-10-22 Yusuke Suzuki Make `JSGlobalObject*` threading change more stabilized by adding tests and assertions Modified: trunk/Source/WTF/wtf/Platform.h (251507 => 251508) --- trunk/Source/WTF/wtf/Platform.h 2019-10-23 23:13:43 UTC (rev 251507) +++ trunk/Source/WTF/wtf/Platform.h 2019-10-23 23:14:05 UTC (rev 251508) @@ -1645,10 +1645,6 @@ #define HAVE_DESIGN_SYSTEM_UI_FONTS 1 #endif -#if (PLATFORM(IOS_FAMILY) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 13) || PLATFORM(WATCHOS) || PLATFORM(APPLETV) -#define USE_HIRAGINO_SANS_WORKAROUND 1 -#endif - #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400) || (PLATFORM(IOS) && !PLATFORM(IOS_SIMULATOR)) #define HAVE_DEVICE_IDENTITY 1 #endif Modified: trunk/Source/WebCore/ChangeLog (251507 => 251508) --- trunk/Source/WebCore/ChangeLog 2019-10-23 23:13:43 UTC (rev 251507) +++ trunk/Source/WebCore/ChangeLog 2019-10-23 23:14:05 UTC (rev 251508) @@ -1,3 +1,27 @@ +2019-10-23 Myles C. Maxfield + +[iOS] Remove Hiragino Sans site-specific quirk for Yahoo Japan +https://bugs.webkit.org/show_bug.cgi?id=203345 + +Reviewed by Simon Fraser. + +This iOS-specific quirk made Yahoo Japan stop using the 800-weight +version of Hiragino Sans because it's too heavy. We were using the +800-weight because the site requests 700 but we didn't have a 700- +weight of Hiragino Sans. However, now in iOS 13 we do have a 700- +weight of Hiragino Sans, so we can just delete this quirk. + +Also, it turns out that Yahoo Japan modified their content to no +longer hit this quirk anyway, so this patch has 0 behavior change. + +Site specific quirks are untestable. + +* css/CSSFontSelector.cpp: +(WebCore::CSSFontSelector::fontRangesForFamily): +* page/Quirks.cpp: +(WebCore::Quirks::shouldLightenJapaneseBoldSansSerif const): Deleted. +* page/Quirks.h: + 2019-10-23 Chris Dumez Ignore document.open/write after the active parser has been aborted Modified: trunk/Source/WebCore/css/CSSFontSelector.cpp (251507 => 251508) --- trunk/Source/WebCore/css/CSSFontSelector.cpp 2019-10-23 23:13:43 UTC (rev 251507) +++ trunk/Source/WebCore/css/CSSFontSelector.cpp 2019-10-23 23:14:05 UTC (rev 251508) @@ -46,7 +46,6 @@ #include "Frame.h" #include "FrameLoader.h" #include "Logging.h" -#include "Quirks.h" #include "ResourceLoadObserver.h" #include "RuntimeEnabledFeatures.h" #include "Settings.h" @@ -322,14 +321,8 @@ Optional overrideFontDescription; const FontDescription* fontDescriptionForLookup = &fontDescription; auto resolveGenericFamily = [&]() { -if (auto genericFamilyOptional = WebCore::resolveGenericFamily(m_document.get(), fontDescription, familyName)) { -if (m_document && m_document->quirks().shouldLightenJapaneseBoldSansSerif() && familyForLookup == sansSerifFamily && fontDescription.weight() == boldWeightValue() && fontDescription.script() == USCRIPT_KATAKANA_OR_HIRAGANA) { -overrideFontDescription = fontDescription; -overrideFontDescription->setWeight(FontSelectionValue(600)); -fontDescriptionForLookup = &*overrideFontDescription; -} +if (auto genericFamilyOptional =
[webkit-changes] [246390] trunk/LayoutTests
Title: [246390] trunk/LayoutTests Revision 246390 Author mmaxfi...@apple.com Date 2019-06-12 20:44:24 -0700 (Wed, 12 Jun 2019) Log Message [WHLSL] Educate the property resolver about IndexExpressions https://bugs.webkit.org/show_bug.cgi?id=198399 Unreviewed test gardening. Failing WebGPU tests should fail instead of time out. * webgpu/blend-color-triangle-strip.html: * webgpu/blend-triangle-strip.html: * webgpu/blit-commands.html: * webgpu/buffer-command-buffer-races.html: * webgpu/buffer-resource-triangles.html: * webgpu/color-write-mask-triangle-strip.html: * webgpu/depth-enabled-triangle-strip.html: * webgpu/draw-indexed-triangles.html: * webgpu/propertyresolver/ander-abstract-lvalue.html: * webgpu/propertyresolver/ander-lvalue-3-levels.html: * webgpu/propertyresolver/ander-lvalue.html: * webgpu/propertyresolver/ander.html: * webgpu/propertyresolver/getter.html: * webgpu/propertyresolver/indexer-ander-abstract-lvalue.html: * webgpu/propertyresolver/indexer-ander-lvalue-3-levels.html: * webgpu/propertyresolver/indexer-ander-lvalue.html: * webgpu/propertyresolver/indexer-ander.html: * webgpu/propertyresolver/indexer-getter.html: * webgpu/propertyresolver/indexer-setter-abstract-lvalue-3-levels.html: * webgpu/propertyresolver/indexer-setter-abstract-lvalue.html: * webgpu/propertyresolver/indexer-setter-lvalue.html: * webgpu/propertyresolver/indexer-setter.html: * webgpu/propertyresolver/setter-abstract-lvalue-3-levels.html: * webgpu/propertyresolver/setter-abstract-lvalue.html: * webgpu/propertyresolver/setter-lvalue.html: * webgpu/simple-triangle-strip.html: * webgpu/texture-triangle-strip.html: * webgpu/vertex-buffer-triangle-strip.html: * webgpu/viewport-scissor-rect-triangle-strip.html: * webgpu/whlsl-arbitrary-vertex-attribute-locations.html: * webgpu/whlsl-dereference-pointer-should-type-check.html: * webgpu/whlsl-do-while-loop-break.html: * webgpu/whlsl-do-while-loop-continue.html: * webgpu/whlsl-do-while-loop.html: * webgpu/whlsl-dont-crash-parsing-enum.html: * webgpu/whlsl-dot-expressions.html: * webgpu/whlsl-ensure-proper-variable-lifetime-2.html: * webgpu/whlsl-ensure-proper-variable-lifetime-3.html: * webgpu/whlsl-ensure-proper-variable-lifetime.html: * webgpu/whlsl-loops-break.html: * webgpu/whlsl-loops-continue.html: * webgpu/whlsl-loops.html: * webgpu/whlsl-nested-dot-_expression_-rvalue.html: * webgpu/whlsl-nested-loop.html: * webgpu/whlsl-return-local-variable.html: * webgpu/whlsl-store-to-property-updates-properly.html: * webgpu/whlsl-while-loop-break.html: * webgpu/whlsl-while-loop-continue.html: * webgpu/whlsl-zero-initialize-values-2.html: * webgpu/whlsl-zero-initialize-values.html: * webgpu/whlsl.html: Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/webgpu/blend-color-triangle-strip.html trunk/LayoutTests/webgpu/blend-triangle-strip.html trunk/LayoutTests/webgpu/blit-commands.html trunk/LayoutTests/webgpu/buffer-command-buffer-races.html trunk/LayoutTests/webgpu/buffer-resource-triangles.html trunk/LayoutTests/webgpu/color-write-mask-triangle-strip.html trunk/LayoutTests/webgpu/depth-enabled-triangle-strip.html trunk/LayoutTests/webgpu/draw-indexed-triangles.html trunk/LayoutTests/webgpu/propertyresolver/ander-abstract-lvalue.html trunk/LayoutTests/webgpu/propertyresolver/ander-lvalue-3-levels.html trunk/LayoutTests/webgpu/propertyresolver/ander-lvalue.html trunk/LayoutTests/webgpu/propertyresolver/ander.html trunk/LayoutTests/webgpu/propertyresolver/getter.html trunk/LayoutTests/webgpu/propertyresolver/indexer-ander-abstract-lvalue.html trunk/LayoutTests/webgpu/propertyresolver/indexer-ander-lvalue-3-levels.html trunk/LayoutTests/webgpu/propertyresolver/indexer-ander-lvalue.html trunk/LayoutTests/webgpu/propertyresolver/indexer-ander.html trunk/LayoutTests/webgpu/propertyresolver/indexer-getter.html trunk/LayoutTests/webgpu/propertyresolver/indexer-setter-abstract-lvalue-3-levels.html trunk/LayoutTests/webgpu/propertyresolver/indexer-setter-abstract-lvalue.html trunk/LayoutTests/webgpu/propertyresolver/indexer-setter-lvalue.html trunk/LayoutTests/webgpu/propertyresolver/indexer-setter.html trunk/LayoutTests/webgpu/propertyresolver/setter-abstract-lvalue-3-levels.html trunk/LayoutTests/webgpu/propertyresolver/setter-abstract-lvalue.html trunk/LayoutTests/webgpu/propertyresolver/setter-lvalue.html trunk/LayoutTests/webgpu/simple-triangle-strip.html trunk/LayoutTests/webgpu/texture-triangle-strip.html trunk/LayoutTests/webgpu/vertex-buffer-triangle-strip.html trunk/LayoutTests/webgpu/viewport-scissor-rect-triangle-strip.html trunk/LayoutTests/webgpu/whlsl-arbitrary-vertex-attribute-locations.html trunk/LayoutTests/webgpu/whlsl-dereference-pointer-should-type-check.html trunk/LayoutTests/webgpu/whlsl-do-while-loop-break.html trunk/LayoutTests/webgpu/whlsl-do-while-loop-continue.html trunk/LayoutTests/webgpu/whlsl-do-while-loop.html trunk/LayoutTests/webgpu/whlsl-dont-crash-parsing-enum.html trunk/LayoutTests/webgpu/whlsl-dot-expressions.html trunk/LayoutTests/
[webkit-changes] [246394] trunk
Title: [246394] trunk Revision 246394 Author mmaxfi...@apple.com Date 2019-06-12 22:38:28 -0700 (Wed, 12 Jun 2019) Log Message [WHLSL] Implement array references https://bugs.webkit.org/show_bug.cgi?id=198163 Reviewed by Saam Barati. Source/WebCore: The compiler automatically generates anders for every array reference. Luckily, the infrastructure to generate those anders and emit Metal code to represent them already exists in the compiler. There are two pieces remaining (which this patch implements): 1. The _javascript_ compiler has a behavior where anders that are called with an array reference as an argument don't wrap the argument in a MakePointerExpression. This is because the array reference is already a reference type, so it's silly to operate on a pointer to a reference. This patch implements this by teaching the type checker about which types should be passed to the ander call, and by actually constructing those types in the property resolver. The property resolver does this by placing the logic to construct an ander argument in a single function which also has logic to save the argument in a temporary if the thread ander will be called. The semantics about which functions are called in which situations are not changed; instead, we just simply don't wrap array references with MakePointerExpressions. 2. Creating a bind group from the WebGPU API has to retain information about buffer lengths for each buffer so the shader can properly perform bounds checks. This can be broken down into a few pieces: - Creating a bind group layout has to assign extra id indexes for each buffer which will be filled in to represent the buffer's length - Creating the bind group itself needs to fill in the buffer length into the Metal argument buffer - The shader compiler needs to emit code at the beginning of entry point to find the buffer lengths and pack them together into the array reference (array references correspond to a Metal struct with two fields: a pointer and a length). This patch doesn't actually implement bounds checks themselves; it just hooks up the buffer lengths so https://bugs.webkit.org/show_bug.cgi?id=198600 can implement it. The shader compiler's API is modified to allow for this extra buffer length information to be passed in from the WebGPU implementation. Unfortunately, I don't think I could split this patch up into two pieces because both are required to test the compiler with buffers. Tests: webgpu/whlsl-buffer-fragment.html webgpu/whlsl-buffer-vertex.html * Modules/webgpu/WHLSL/AST/WHLSLPropertyAccessExpression.h: (WebCore::WHLSL::AST::PropertyAccessExpression::baseReference): * Modules/webgpu/WHLSL/AST/WHLSLResourceSemantic.cpp: (WebCore::WHLSL::AST::ResourceSemantic::isAcceptableType const): Arrays can't be resources because the compiler has no way of guaranteeing if the resource is long enough to hold the array at compile time. * Modules/webgpu/WHLSL/Metal/WHLSLEntryPointScaffolding.cpp: (WebCore::WHLSL::Metal::EntryPointScaffolding::EntryPointScaffolding): Generate an extra variable name to represent the buffer length. Only do it for resources which have lengths. (WebCore::WHLSL::Metal::EntryPointScaffolding::resourceHelperTypes): (WebCore::WHLSL::Metal::EntryPointScaffolding::unpackResourcesAndNamedBuiltIns): Perform the appropriate math to turn byte lengths into element counts and store the element count in the array reference. * Modules/webgpu/WHLSL/Metal/WHLSLEntryPointScaffolding.h: * Modules/webgpu/WHLSL/WHLSLChecker.cpp: (WebCore::WHLSL::resolveWithOperatorAnderIndexer): Refactor. (WebCore::WHLSL::resolveWithOperatorLength): Ditto. (WebCore::WHLSL::resolveWithReferenceComparator): Ditto. (WebCore::WHLSL::resolveByInstantiation): Ditto. (WebCore::WHLSL::argumentTypeForAndOverload): Given an ander, what should the type of the argument be? (WebCore::WHLSL::Checker::finishVisiting): Call argumentTypeForAndOverload(). Also, if we couldn't find an ander, try automatically generating it, the same way that function calls do. (This is how array references get their anders.) (WebCore::WHLSL::Checker::visit): * Modules/webgpu/WHLSL/WHLSLPipelineDescriptor.h: New WHLSL API to provide the length information. * Modules/webgpu/WHLSL/WHLSLPropertyResolver.cpp: (WebCore::WHLSL::PropertyResolver::visit): SimplifyRightValue() can't fail any more. (WebCore::WHLSL::wrapAnderCallArgument): If the ander argument should be wrapped in a MakePointer or a MakeArrayReference, do that. Also, if the ander is a thread ander, save the argument in a local variable and use that. (WebCore::WHLSL::anderCallArgument): The equivalent of argumentTypeForAndOverload(). (WebCore::WHLSL::setterCall): Call anderCallArgument(). (WebCore::WHLSL::getterCall): Ditto. (WebCore::WHLSL::modify): We used to have special-case code for handling pointer-to-argument values as distinct from just the argument values themselves. However, emitting chains of
[webkit-changes] [246396] trunk
Title: [246396] trunk Revision 246396 Author mmaxfi...@apple.com Date 2019-06-12 23:06:53 -0700 (Wed, 12 Jun 2019) Log Message [WHLSL] Hook up compute https://bugs.webkit.org/show_bug.cgi?id=198644 Reviewed by Saam Barati. Source/WebCore: This patch hooks up compute shaders in exactly the same way that vertex and fragment shaders are hooked up. I've modified the two patchs (compute and rendering) to be almost exactly the same code. This patch also adds support for the WHLSL compiler to determine what the numthreads() attribute in the shader says so that it can be hooked up to Metal's threads-per-threadgroup argument in the dispatch call. There is some logic to make sure that there aren't two numthreads() attributes on the same compute shader. It also adds a little bit of type renaming. For built-in variables, sometimes Metal's type doesn't always match WHLSL's (and HLSL's type). For example, in WHLSL and HLSL,SV_DispatchThreadID variables have to be a float3, but in Metal, they are a uint3. Therefore, I've added a little bit of code during each entry point's pack and unpack stages to handle this type conversion. Test: webgpu/whlsl-compute.html * Modules/webgpu/WHLSL/Metal/WHLSLEntryPointScaffolding.cpp: (WebCore::WHLSL::Metal::internalTypeForSemantic): Determine which Metal type corresponds to each built-in variable. (WebCore::WHLSL::Metal::EntryPointScaffolding::builtInsSignature): Perform the type conversion. (WebCore::WHLSL::Metal::EntryPointScaffolding::unpackResourcesAndNamedBuiltIns): Ditto. (WebCore::WHLSL::Metal::VertexEntryPointScaffolding::VertexEntryPointScaffolding): Ditto. (WebCore::WHLSL::Metal::VertexEntryPointScaffolding::helperTypes): Ditto. (WebCore::WHLSL::Metal::VertexEntryPointScaffolding::pack): Ditto. (WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::FragmentEntryPointScaffolding): Ditto. (WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::helperTypes): Ditto. (WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::pack): Ditto. (WebCore::WHLSL::Metal::ComputeEntryPointScaffolding::signature): Ditto. * Modules/webgpu/WHLSL/Metal/WHLSLEntryPointScaffolding.h: * Modules/webgpu/WHLSL/WHLSLComputeDimensions.cpp: Added. Add a pass to determine whether or not any entry point has duplicate numthreads() attribute, and to determine what the appropriate numthreads() values should be for the current entry point. (WebCore::WHLSL::ComputeDimensionsVisitor::ComputeDimensionsVisitor): (WebCore::WHLSL::ComputeDimensionsVisitor::computeDimensions const): (WebCore::WHLSL::computeDimensions): * Modules/webgpu/WHLSL/WHLSLComputeDimensions.h: Copied from Source/WebCore/Modules/webgpu/WHLSL/WHLSLPrepare.h. * Modules/webgpu/WHLSL/WHLSLGatherEntryPointItems.cpp: (WebCore::WHLSL::gatherEntryPointItems): Compute shaders don't need to have a semantic for their return type. * Modules/webgpu/WHLSL/WHLSLPrepare.cpp: (WebCore::WHLSL::prepare): Run the computeDimensions() pass. * Modules/webgpu/WHLSL/WHLSLPrepare.h: * Modules/webgpu/WHLSL/WHLSLPropertyResolver.cpp: In a left-value propertyAccessExpression, the index _expression_ can be a right-value. Treat it as such. (WebCore::WHLSL::LeftValueSimplifier::finishVisiting): (WebCore::WHLSL::LeftValueSimplifier::visit): * Modules/webgpu/WHLSL/WHLSLStandardLibrary.txt: We need support for multiplication (for a test) and float3 for SV_DispatchThreadID. * Sources.txt: * SourcesCocoa.txt: * WebCore.xcodeproj/project.pbxproj: * platform/graphics/gpu/GPUComputePipeline.h: Associate a compute dimensions with a particular compute pipeline. This is how Metal knows what values to use for a dispatch. (WebCore::GPUComputePipeline::computeDimensions const): * platform/graphics/gpu/cocoa/GPUComputePassEncoderMetal.mm: Use the saved compute dimensions. (WebCore::GPUComputePassEncoder::dispatch): * platform/graphics/gpu/cocoa/GPUComputePipelineMetal.mm: Make the code match GPURenderPipelineMetal. (WebCore::trySetMetalFunctions): (WebCore::trySetFunctions): (WebCore::convertComputePipelineDescriptor): (WebCore::tryCreateMTLComputePipelineState): (WebCore::GPUComputePipeline::tryCreate): (WebCore::GPUComputePipeline::GPUComputePipeline): (WebCore::tryCreateMtlComputeFunction): Deleted. * platform/graphics/gpu/cocoa/GPUPipelineMetalConvertLayout.cpp: Added. Moved shared helper functions to a file where they can be accessed by multiple places. (WebCore::convertShaderStageFlags): (WebCore::convertBindingType): (WebCore::convertLayout): * platform/graphics/gpu/cocoa/GPUPipelineMetalConvertLayout.h: Copied from Source/WebCore/Modules/webgpu/WHLSL/WHLSLPrepare.h. * platform/graphics/gpu/cocoa/GPURenderPipelineMetal.mm: Delete the functions that were moved to GPUPipelineMetalConvertLayout. (WebCore::trySetFunctions): (WebCore::tryCreateMtlRenderPipelineState): (WebCore::convertShaderStageFlags): Deleted. (WebCore::convertBindingType): Deleted. (WebCore::convertLayout): Deleted. LayoutTests: This doesn't thoroughly test compute, but it's at least enough to unb
[webkit-changes] [246427] trunk
Title: [246427] trunk Revision 246427 Author mmaxfi...@apple.com Date 2019-06-13 22:20:00 -0700 (Thu, 13 Jun 2019) Log Message [WHLSL] Hook up compute https://bugs.webkit.org/show_bug.cgi?id=198644 Reviewed by Saam Barati. Source/WebCore: This patch hooks up compute shaders in exactly the same way that vertex and fragment shaders are hooked up. I've modified the two patchs (compute and rendering) to be almost exactly the same code. This patch also adds support for the WHLSL compiler to determine what the numthreads() attribute in the shader says so that it can be hooked up to Metal's threads-per-threadgroup argument in the dispatch call. There is some logic to make sure that there aren't two numthreads() attributes on the same compute shader. It also adds a little bit of type renaming. For built-in variables, sometimes Metal's type doesn't always match WHLSL's (and HLSL's type). For example, in WHLSL and HLSL,SV_DispatchThreadID variables have to be a float3, but in Metal, they are a uint3. Therefore, I've added a little bit of code during each entry point's pack and unpack stages to handle this type conversion. Test: webgpu/whlsl-compute.html * Modules/webgpu/WHLSL/Metal/WHLSLEntryPointScaffolding.cpp: (WebCore::WHLSL::Metal::internalTypeForSemantic): Determine which Metal type corresponds to each built-in variable. (WebCore::WHLSL::Metal::EntryPointScaffolding::builtInsSignature): Perform the type conversion. (WebCore::WHLSL::Metal::EntryPointScaffolding::unpackResourcesAndNamedBuiltIns): Ditto. (WebCore::WHLSL::Metal::VertexEntryPointScaffolding::VertexEntryPointScaffolding): Ditto. (WebCore::WHLSL::Metal::VertexEntryPointScaffolding::helperTypes): Ditto. (WebCore::WHLSL::Metal::VertexEntryPointScaffolding::pack): Ditto. (WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::FragmentEntryPointScaffolding): Ditto. (WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::helperTypes): Ditto. (WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::pack): Ditto. (WebCore::WHLSL::Metal::ComputeEntryPointScaffolding::signature): Ditto. * Modules/webgpu/WHLSL/Metal/WHLSLEntryPointScaffolding.h: * Modules/webgpu/WHLSL/WHLSLComputeDimensions.cpp: Added. Add a pass to determine whether or not any entry point has duplicate numthreads() attribute, and to determine what the appropriate numthreads() values should be for the current entry point. (WebCore::WHLSL::ComputeDimensionsVisitor::ComputeDimensionsVisitor): (WebCore::WHLSL::ComputeDimensionsVisitor::computeDimensions const): (WebCore::WHLSL::computeDimensions): * Modules/webgpu/WHLSL/WHLSLComputeDimensions.h: Copied from Source/WebCore/Modules/webgpu/WHLSL/WHLSLPrepare.h. * Modules/webgpu/WHLSL/WHLSLGatherEntryPointItems.cpp: (WebCore::WHLSL::gatherEntryPointItems): Compute shaders don't need to have a semantic for their return type. * Modules/webgpu/WHLSL/WHLSLPrepare.cpp: (WebCore::WHLSL::prepare): Run the computeDimensions() pass. * Modules/webgpu/WHLSL/WHLSLPrepare.h: * Modules/webgpu/WHLSL/WHLSLPropertyResolver.cpp: In a left-value propertyAccessExpression, the index _expression_ can be a right-value. Treat it as such. (WebCore::WHLSL::LeftValueSimplifier::finishVisiting): (WebCore::WHLSL::LeftValueSimplifier::visit): * Modules/webgpu/WHLSL/WHLSLStandardLibrary.txt: We need support for multiplication (for a test) and float3 for SV_DispatchThreadID. * Sources.txt: * SourcesCocoa.txt: * WebCore.xcodeproj/project.pbxproj: * platform/graphics/gpu/GPUComputePipeline.h: Associate a compute dimensions with a particular compute pipeline. This is how Metal knows what values to use for a dispatch. (WebCore::GPUComputePipeline::computeDimensions const): * platform/graphics/gpu/cocoa/GPUComputePassEncoderMetal.mm: Use the saved compute dimensions. (WebCore::GPUComputePassEncoder::dispatch): * platform/graphics/gpu/cocoa/GPUComputePipelineMetal.mm: Make the code match GPURenderPipelineMetal. (WebCore::trySetMetalFunctions): (WebCore::trySetFunctions): (WebCore::convertComputePipelineDescriptor): (WebCore::tryCreateMTLComputePipelineState): (WebCore::GPUComputePipeline::tryCreate): (WebCore::GPUComputePipeline::GPUComputePipeline): (WebCore::tryCreateMtlComputeFunction): Deleted. * platform/graphics/gpu/cocoa/GPUPipelineMetalConvertLayout.cpp: Added. Moved shared helper functions to a file where they can be accessed by multiple places. (WebCore::convertShaderStageFlags): (WebCore::convertBindingType): (WebCore::convertLayout): * platform/graphics/gpu/cocoa/GPUPipelineMetalConvertLayout.h: Copied from Source/WebCore/Modules/webgpu/WHLSL/WHLSLPrepare.h. * platform/graphics/gpu/cocoa/GPURenderPipelineMetal.mm: Delete the functions that were moved to GPUPipelineMetalConvertLayout. (WebCore::trySetFunctions): (WebCore::tryCreateMtlRenderPipelineState): (WebCore::convertShaderStageFlags): Deleted. (WebCore::convertBindingType): Deleted. (WebCore::convertLayout): Deleted. LayoutTests: This doesn't thoroughly test compute, but it's at least enough to unb
[webkit-changes] [246428] trunk/Source/WebCore
Title: [246428] trunk/Source/WebCore Revision 246428 Author mmaxfi...@apple.com Date 2019-06-13 22:45:43 -0700 (Thu, 13 Jun 2019) Log Message [WHLSL] Remove unnecessary ASSERT()s and clean up visitor lambdas https://bugs.webkit.org/show_bug.cgi?id=198706 Reviewed by Dean Jackson, Saam Barati, and Robin Morisset. Some minor refactoring. If the code is going to unconditionally downcast(bar), there's no need to guard that with an ASSERT(is(bar)) because the downcast() call will do that automatically. No new tests because there is no behavior change. * Modules/webgpu/WHLSL/AST/WHLSLConstantExpression.h: (WebCore::WHLSL::AST::ConstantExpression::visit): (WebCore::WHLSL::AST::ConstantExpression::visit const): * Modules/webgpu/WHLSL/Metal/WHLSLEntryPointScaffolding.cpp: (WebCore::WHLSL::Metal::EntryPointScaffolding::resourceHelperTypes): (WebCore::WHLSL::Metal::EntryPointScaffolding::mangledOutputPath): (WebCore::WHLSL::Metal::EntryPointScaffolding::unpackResourcesAndNamedBuiltIns): * Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.cpp: (WebCore::WHLSL::Metal::FunctionDefinitionWriter::visit): (WebCore::WHLSL::Metal::FunctionDefinitionWriter::constantExpressionString): * Modules/webgpu/WHLSL/Metal/WHLSLNativeFunctionWriter.cpp: (WebCore::WHLSL::Metal::writeNativeFunction): * Modules/webgpu/WHLSL/Metal/WHLSLNativeTypeWriter.cpp: (WebCore::WHLSL::Metal::writeNativeType): * Modules/webgpu/WHLSL/Metal/WHLSLTypeNamer.cpp: (WebCore::WHLSL::Metal::find): (WebCore::WHLSL::Metal::TypeNamer::createNameNode): (WebCore::WHLSL::Metal::TypeNamer::insert): (WebCore::WHLSL::Metal::TypeNamer::emitUnnamedTypeDefinition): (WebCore::WHLSL::Metal::TypeNamer::emitNamedTypeDefinition): * Modules/webgpu/WHLSL/WHLSLChecker.cpp: (WebCore::WHLSL::Checker::visit): (WebCore::WHLSL::argumentTypeForAndOverload): * Modules/webgpu/WHLSL/WHLSLInferTypes.cpp: (WebCore::WHLSL::inferTypesForTypeArguments): * Modules/webgpu/WHLSL/WHLSLIntrinsics.cpp: (WebCore::WHLSL::Intrinsics::addFullTexture): (WebCore::WHLSL::Intrinsics::addDepthTexture): * Modules/webgpu/WHLSL/WHLSLPropertyResolver.cpp: (WebCore::WHLSL::modify): (WebCore::WHLSL::PropertyResolver::visit): * Modules/webgpu/WHLSL/WHLSLVisitor.cpp: (WebCore::WHLSL::Visitor::visit): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/Modules/webgpu/WHLSL/AST/WHLSLConstantExpression.h trunk/Source/WebCore/Modules/webgpu/WHLSL/Metal/WHLSLEntryPointScaffolding.cpp trunk/Source/WebCore/Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.cpp trunk/Source/WebCore/Modules/webgpu/WHLSL/Metal/WHLSLNativeFunctionWriter.cpp trunk/Source/WebCore/Modules/webgpu/WHLSL/Metal/WHLSLNativeTypeWriter.cpp trunk/Source/WebCore/Modules/webgpu/WHLSL/Metal/WHLSLTypeNamer.cpp trunk/Source/WebCore/Modules/webgpu/WHLSL/WHLSLChecker.cpp trunk/Source/WebCore/Modules/webgpu/WHLSL/WHLSLInferTypes.cpp trunk/Source/WebCore/Modules/webgpu/WHLSL/WHLSLIntrinsics.cpp trunk/Source/WebCore/Modules/webgpu/WHLSL/WHLSLIntrinsics.h trunk/Source/WebCore/Modules/webgpu/WHLSL/WHLSLPropertyResolver.cpp trunk/Source/WebCore/Modules/webgpu/WHLSL/WHLSLVisitor.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (246427 => 246428) --- trunk/Source/WebCore/ChangeLog 2019-06-14 05:20:00 UTC (rev 246427) +++ trunk/Source/WebCore/ChangeLog 2019-06-14 05:45:43 UTC (rev 246428) @@ -1,3 +1,52 @@ +2019-06-13 Myles C. Maxfield + +[WHLSL] Remove unnecessary ASSERT()s and clean up visitor lambdas +https://bugs.webkit.org/show_bug.cgi?id=198706 + +Reviewed by Dean Jackson, Saam Barati, and Robin Morisset. + +Some minor refactoring. + +If the code is going to unconditionally downcast(bar), there's no need +to guard that with an ASSERT(is(bar)) because the downcast() call will +do that automatically. + +No new tests because there is no behavior change. + +* Modules/webgpu/WHLSL/AST/WHLSLConstantExpression.h: +(WebCore::WHLSL::AST::ConstantExpression::visit): +(WebCore::WHLSL::AST::ConstantExpression::visit const): +* Modules/webgpu/WHLSL/Metal/WHLSLEntryPointScaffolding.cpp: +(WebCore::WHLSL::Metal::EntryPointScaffolding::resourceHelperTypes): +(WebCore::WHLSL::Metal::EntryPointScaffolding::mangledOutputPath): +(WebCore::WHLSL::Metal::EntryPointScaffolding::unpackResourcesAndNamedBuiltIns): +* Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.cpp: +(WebCore::WHLSL::Metal::FunctionDefinitionWriter::visit): +(WebCore::WHLSL::Metal::FunctionDefinitionWriter::constantExpressionString): +* Modules/webgpu/WHLSL/Metal/WHLSLNativeFunctionWriter.cpp: +(WebCore::WHLSL::Metal::writeNativeFunction): +* Modules/webgpu/WHLSL/Metal/WHLSLNativeTypeWriter.cpp: +(WebCore::WHLSL::Metal::writeNativeType): +* Modules/webgpu/WHLSL/Metal/WHLSLTypeNamer.cpp: +(WebCore::WHLSL::Metal::find): +(WebCore::WHLSL::Metal::TypeNamer::createNameNode): +(WebCore::WHL
[webkit-changes] [246681] trunk
Title: [246681] trunk Revision 246681 Author mmaxfi...@apple.com Date 2019-06-21 09:59:15 -0700 (Fri, 21 Jun 2019) Log Message [WHLSL] read modify write expressions do no work as expected https://bugs.webkit.org/show_bug.cgi?id=195864 Reviewed by Saam Barati. Source/WebCore: Turns out https://bugs.webkit.org/show_bug.cgi?id=199037 already fixed everything. This patch just adds a test. Test: webgpu/whlsl-read-modify-write.html * Modules/webgpu/WHLSL/WHLSLStandardLibrary.txt: LayoutTests: * webgpu/whlsl-read-modify-write.html: Added. Modified Paths trunk/LayoutTests/ChangeLog trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/Modules/webgpu/WHLSL/WHLSLStandardLibrary.txt Added Paths trunk/LayoutTests/webgpu/whlsl-read-modify-write.html Diff Modified: trunk/LayoutTests/ChangeLog (246680 => 246681) --- trunk/LayoutTests/ChangeLog 2019-06-21 15:49:21 UTC (rev 246680) +++ trunk/LayoutTests/ChangeLog 2019-06-21 16:59:15 UTC (rev 246681) @@ -1,3 +1,12 @@ +2019-06-21 Myles C. Maxfield + +[WHLSL] read modify write expressions do no work as expected +https://bugs.webkit.org/show_bug.cgi?id=195864 + +Reviewed by Saam Barati. + +* webgpu/whlsl-read-modify-write.html: Added. + 2019-06-21 Carlos Garcia Campos Unreviewed GTK gardening. Rebaseline css-dark-mode/default-colors.html. Added: trunk/LayoutTests/webgpu/whlsl-read-modify-write.html (0 => 246681) --- trunk/LayoutTests/webgpu/whlsl-read-modify-write.html (rev 0) +++ trunk/LayoutTests/webgpu/whlsl-read-modify-write.html 2019-06-21 16:59:15 UTC (rev 246681) @@ -0,0 +1,94 @@ + + + + + +