Title: [276869] trunk
Revision
276869
Author
[email protected]
Date
2021-04-30 18:22:48 -0700 (Fri, 30 Apr 2021)

Log Message

[Metal ANGLE]: fix webgl/2.0.0/deqp/functional/gles3/negativebufferapi
Source/ThirdParty/ANGLE:

https://bugs.webkit.org/show_bug.cgi?id=225222
<rdar://77349908>

Arbitrary alignments are not allowed in Metal. Update UBO alignment to
a platform-dependant offset to match specifications.
Reviewed by Dean Jackson.

* src/libANGLE/renderer/metal/DisplayMtl.mm:
(rx::DisplayMtl::ensureCapsInitialized const):

LayoutTests:

<rdar://77349908>

Uniform buffers are implemented as 'constant' buffers in Metal.
update alignment requirements, as we can't do arbitrary alignments. This
also fixes negativebufferAPI, as the invalid alignment test was failing.

https://bugs.webkit.org/show_bug.cgi?id=225222

Reviewed by Dean Jackson.

* webgl/2.0.0/deqp/functional/gles3/negativebufferapi-expected.txt:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (276868 => 276869)


--- trunk/LayoutTests/ChangeLog	2021-05-01 01:20:56 UTC (rev 276868)
+++ trunk/LayoutTests/ChangeLog	2021-05-01 01:22:48 UTC (rev 276869)
@@ -1,3 +1,18 @@
+2021-04-30  Kyle Piddington  <[email protected]>
+
+        [Metal ANGLE]: fix webgl/2.0.0/deqp/functional/gles3/negativebufferapi 
+        <rdar://77349908>
+
+        Uniform buffers are implemented as 'constant' buffers in Metal. 
+        update alignment requirements, as we can't do arbitrary alignments. This 
+        also fixes negativebufferAPI, as the invalid alignment test was failing. 
+
+        https://bugs.webkit.org/show_bug.cgi?id=225222
+
+        Reviewed by Dean Jackson.
+
+        * webgl/2.0.0/deqp/functional/gles3/negativebufferapi-expected.txt:
+
 2021-04-30  Wenson Hsieh  <[email protected]>
 
         [iOS] Add a heuristic to determine whether a synthetic click triggered any meaningful changes

Modified: trunk/LayoutTests/webgl/2.0.0/deqp/functional/gles3/negativebufferapi-expected.txt (276868 => 276869)


--- trunk/LayoutTests/webgl/2.0.0/deqp/functional/gles3/negativebufferapi-expected.txt	2021-05-01 01:20:56 UTC (rev 276868)
+++ trunk/LayoutTests/webgl/2.0.0/deqp/functional/gles3/negativebufferapi-expected.txt	2021-05-01 01:22:48 UTC (rev 276869)
@@ -1,34 +1,4 @@
 This test runs the WebGL Test listed below in an iframe and reports PASS or FAIL.
 
 Test: ../../../resources/webgl_test_files/deqp/functional/gles3/negativebufferapi.html
-
-[ 1: PASS ] negativeBufferApi.bind_buffer: Passed
-[ 2: PASS ] negativeBufferApi.buffer_data: Passed
-[ 3: PASS ] negativeBufferApi.buffer_sub_data: Passed
-[ 4: PASS ] negativeBufferApi.buffer_sub_data_size_offset: Passed
-[ 5: PASS ] negativeBufferApi.clear: Passed
-[ 6: PASS ] negativeBufferApi.read_pixels: Passed
-[ 7: PASS ] negativeBufferApi.read_pixels_format_mismatch: Passed
-[ 8: PASS ] negativeBufferApi.read_pixels_fbo_format_mismatch: Passed
-[ 9: FAIL ] negativeBufferApi.bind_buffer_range: Expected gl.INVALID_VALUE, but got gl.NO_ERROR.
-[ 10: PASS ] negativeBufferApi.bind_buffer_base: Passed
-[ 11: PASS ] negativeBufferApi.clear_bufferiv: Passed
-[ 12: PASS ] negativeBufferApi.clear_bufferuiv: Passed
-[ 13: PASS ] negativeBufferApi.clear_bufferfv: Passed
-[ 14: PASS ] negativeBufferApi.clear_bufferfi: Passed
-[ 15: PASS ] negativeBufferApi.copy_buffer_sub_data: Passed
-[ 16: PASS ] negativeBufferApi.draw_buffers: Passed
-[ 17: PASS ] negativeBufferApi.bind_framebuffer: Passed
-[ 18: PASS ] negativeBufferApi.bind_renderbuffer: Passed
-[ 19: PASS ] negativeBufferApi.check_framebuffer_status: Passed
-[ 20: PASS ] negativeBufferApi.framebuffer_renderbuffer: Passed
-[ 21: PASS ] negativeBufferApi.framebuffer_texture2d: Passed
-[ 22: PASS ] negativeBufferApi.renderbuffer_storage: Passed
-[ 23: PASS ] negativeBufferApi.blit_framebuffer: Passed
-[ 24: PASS ] negativeBufferApi.blit_framebuffer_multisample: Passed
-[ 25: PASS ] negativeBufferApi.framebuffer_texture_layer: Passed
-[ 26: PASS ] negativeBufferApi.invalidate_framebuffer: Passed
-[ 27: PASS ] negativeBufferApi.invalidate_sub_framebuffer: Passed
-[ 28: PASS ] negativeBufferApi.renderbuffer_storage_multisample: Passed
-[ 29: PASS ] negativeBufferApi.renderbuffer_storage_multisample: successfullyParsed is true
-[ FAIL ] 1 failures reported
+[ PASS ] All tests passed

Modified: trunk/Source/ThirdParty/ANGLE/ChangeLog (276868 => 276869)


--- trunk/Source/ThirdParty/ANGLE/ChangeLog	2021-05-01 01:20:56 UTC (rev 276868)
+++ trunk/Source/ThirdParty/ANGLE/ChangeLog	2021-05-01 01:22:48 UTC (rev 276869)
@@ -1,3 +1,16 @@
+2021-04-30  Kyle Piddington  <[email protected]>
+
+        [Metal ANGLE]: fix webgl/2.0.0/deqp/functional/gles3/negativebufferapi 
+        https://bugs.webkit.org/show_bug.cgi?id=225222
+        <rdar://77349908>
+
+        Arbitrary alignments are not allowed in Metal. Update UBO alignment to 
+        a platform-dependant offset to match specifications.
+        Reviewed by Dean Jackson.
+
+        * src/libANGLE/renderer/metal/DisplayMtl.mm:
+        (rx::DisplayMtl::ensureCapsInitialized const):
+
 2021-04-29  Kyle Piddington  <[email protected]>
 
         Metal-ANGLE: Shared memory texture tests failing in iOS Simulator

Modified: trunk/Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/DisplayMtl.mm (276868 => 276869)


--- trunk/Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/DisplayMtl.mm	2021-05-01 01:20:56 UTC (rev 276868)
+++ trunk/Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/DisplayMtl.mm	2021-05-01 01:22:48 UTC (rev 276869)
@@ -712,7 +712,13 @@
     // Fill in additional limits for UBOs and SSBOs.
     mNativeCaps.maxUniformBufferBindings = mNativeCaps.maxCombinedUniformBlocks;
     mNativeCaps.maxUniformBlockSize      = mtl::kMaxUBOSize;  // Default according to GLES 3.0 spec.
-    mNativeCaps.uniformBufferOffsetAlignment = 1;
+    if([mMetalDevice supportsFamily:MTLGPUFamilyApple1])
+    {
+        mNativeCaps.uniformBufferOffsetAlignment = 16; // on Apple based GPU's We can ignore data types when setting constant buffer alignment at 16.
+    }
+    else{
+        mNativeCaps.uniformBufferOffsetAlignment = 256; // constant buffers on all other GPUs must be aligned to 256.
+    }
 
     mNativeCaps.maxShaderStorageBufferBindings     = 0;
     mNativeCaps.maxShaderStorageBlockSize          = 0;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to