Title: [244406] trunk
Revision
244406
Author
justin_...@apple.com
Date
2019-04-17 15:51:21 -0700 (Wed, 17 Apr 2019)

Log Message

[Web GPU] GPUComputePassEncoder::dispatch number of thread groups, not grid size
https://bugs.webkit.org/show_bug.cgi?id=196984

Reviewed by Myles C. Maxfield.

Source/WebCore:

Test: Updated compute-squares.html.

* platform/graphics/gpu/cocoa/GPUComputePassEncoderMetal.mm:
(WebCore::GPUComputePassEncoder::dispatch):

LayoutTests:

* webgpu/compute-squares.html: One thread group is enough to process the data in a single pass.

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (244405 => 244406)


--- trunk/LayoutTests/ChangeLog	2019-04-17 22:47:07 UTC (rev 244405)
+++ trunk/LayoutTests/ChangeLog	2019-04-17 22:51:21 UTC (rev 244406)
@@ -1,3 +1,12 @@
+2019-04-17  Justin Fan  <justin_...@apple.com>
+
+        [Web GPU] GPUComputePassEncoder::dispatch number of thread groups, not grid size
+        https://bugs.webkit.org/show_bug.cgi?id=196984
+
+        Reviewed by Myles C. Maxfield.
+
+        * webgpu/compute-squares.html: One thread group is enough to process the data in a single pass.
+
 2019-04-17  John Wilander  <wilan...@apple.com>
 
         Add prioritization of ad click conversions and cleaning of sent ad click conversions

Modified: trunk/LayoutTests/webgpu/compute-squares.html (244405 => 244406)


--- trunk/LayoutTests/webgpu/compute-squares.html	2019-04-17 22:47:07 UTC (rev 244405)
+++ trunk/LayoutTests/webgpu/compute-squares.html	2019-04-17 22:51:21 UTC (rev 244406)
@@ -58,7 +58,8 @@
     
     passEncoder.setPipeline(pipeline);
     
-    passEncoder.dispatch(data.length, 1, 1);
+    // One thread group.
+    passEncoder.dispatch(1, 1, 1);
     passEncoder.endPass();
     
     device.getQueue().submit([commandEncoder.finish()]);

Modified: trunk/Source/WebCore/ChangeLog (244405 => 244406)


--- trunk/Source/WebCore/ChangeLog	2019-04-17 22:47:07 UTC (rev 244405)
+++ trunk/Source/WebCore/ChangeLog	2019-04-17 22:51:21 UTC (rev 244406)
@@ -1,3 +1,15 @@
+2019-04-17  Justin Fan  <justin_...@apple.com>
+
+        [Web GPU] GPUComputePassEncoder::dispatch number of thread groups, not grid size
+        https://bugs.webkit.org/show_bug.cgi?id=196984
+
+        Reviewed by Myles C. Maxfield.
+
+        Test: Updated compute-squares.html.
+
+        * platform/graphics/gpu/cocoa/GPUComputePassEncoderMetal.mm:
+        (WebCore::GPUComputePassEncoder::dispatch):
+
 2019-04-17  Andy Estes  <aes...@apple.com>
 
         [iOS] Support multiple file selection in UIDocumentPickerViewController

Modified: trunk/Source/WebCore/platform/graphics/gpu/cocoa/GPUComputePassEncoderMetal.mm (244405 => 244406)


--- trunk/Source/WebCore/platform/graphics/gpu/cocoa/GPUComputePassEncoderMetal.mm	2019-04-17 22:47:07 UTC (rev 244405)
+++ trunk/Source/WebCore/platform/graphics/gpu/cocoa/GPUComputePassEncoderMetal.mm	2019-04-17 22:51:21 UTC (rev 244406)
@@ -96,14 +96,17 @@
     ASSERT(pipelineState);
 
     BEGIN_BLOCK_OBJC_EXCEPTIONS;
-    // FIXME: This should be gleaned from the shader if not using MSL. For now, use the docs' example calculation.
+
     auto w = pipelineState.threadExecutionWidth;
     auto h = pipelineState.maxTotalThreadsPerThreadgroup / w;
+
+    // FIXME: This should be gleaned from the shader if not using MSL. For now, use the docs' example calculation.
     auto threadsPerThreadgroup = MTLSizeMake(w, h, 1);
 
-    auto threadgroupsPerGrid = MTLSizeMake((x + w - 1) / w, (y + h - 1) / h, z);
+    auto threadgroupsPerGrid = MTLSizeMake(x, y, z);
 
     [m_platformComputePassEncoder dispatchThreadgroups:threadgroupsPerGrid threadsPerThreadgroup:threadsPerThreadgroup];
+
     END_BLOCK_OBJC_EXCEPTIONS;
 }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to