Commit Graph

12519 Commits

Author SHA1 Message Date
James Price bcf4174c06 [ir][spirv-writer] Emit builtin function calls
Add support for `abs()`, `max()`, and `min()`. Import the GLSL
extended instruction set the first time it is needed.

Move testing utilities from the binary tests into the base test helper
class, as they are more widely useful.

Bug: tint:1906
Change-Id: I5faa928b98c621afcca770cb14a8f9c06f36bcfe
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134521
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: James Price <jrprice@google.com>
2023-05-26 15:10:30 +00:00
James Price 2ee63ffc0c [ir] Emit initializer before var declaration
Otherwise for non-constant initializers the var instruction will
reference the result of an instruction that comes after it.

Bug: tint:1718
Change-Id: Ie8c6c900768277c344f1e1304b0812a546c889a6
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134560
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: James Price <jrprice@google.com>
2023-05-26 13:45:10 +00:00
dan sinclair 0202531159 [ir] Add a NextIteration instruction.
This CL adds a `NextIteration` instruction in order to branch from a
continue block back to the start of a loop. The `next_iteration` is
clearer then the `break-if false` pattern that was there previously.

BreakIf is retained and used when an `ast::BreakIf` is encountered as
it's clearer then the replaced `if` structure.

Bug: tint:1718
Change-Id: Ie6ce0db51c244866e2e99118bc00e4cfd2b3dc74
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134600
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: James Price <jrprice@google.com>
2023-05-26 13:14:44 +00:00
dan sinclair bdbbffbdfb [ir] Add the Exit instructions.
This CL adds the ExitIf, ExitLoop and ExitSwitch instructions. The dump
to Dot has been removed as the graph is substantially different and it
needs a full re-write if we want to draw the graph.

Bug: tint:1718
Change-Id: I5ff4282abaa7542575d4f8b4b8640a3ed4d5c68f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134464
Reviewed-by: Ben Clayton <bclayton@google.com>
Reviewed-by: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
2023-05-26 11:42:22 +00:00
dan sinclair e982520e70 [ir] Add BreakIf instruction.
This CL adds a BreakIf instruction to the IR to instruct a loop to
go break based on a condition or to iterate the loop.

Bug: tint:1718
Change-Id: I70e65736e59ae189ddb2ea9b05c4b084291314f0
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134463
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Reviewed-by: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-05-26 11:33:38 +00:00
Corentin Wallez 943a1a2d7a Add SwapChain::GetCurrentTexture
This is to eventually allow more using swapchain textures as CopySrc and
CopyDst. Note that this commit doesn't add any additional usages.

Because textures can reflect their creation parameters, swapchains now
need to pass in the correct texture descriptor in all code paths. This
requires additional handling in dawn::native error swapchains, and
dawn::wire::client's SwapChain reservation and Device::CreateSwapChain
code.

Tests are added for all of these code paths except
dawn::wire::client::Device::CreateSwapChain because there is no way to
create a Surface in wire tests at the moment (they don't have an
instance).

Bug: dawn:1551
Change-Id: I22d5e909e1e94d48eb52cae57aabff8a7f0c04c1
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/133463
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Loko Kung <lokokung@google.com>
2023-05-26 10:32:17 +00:00
Zhaoming Jiang 2ef42221d4 Dawn: Rename remaining DiscoverAdapters to DiscoverPhysicalDevices
This CL rename the remaining DiscoverAdapter names to
DiscoverPhysicalDevices.

Bug: dawn:1774
Change-Id: I417ef2d1e02c98a61bb48c3c7251a031380c9233
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134420
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Zhaoming Jiang <zhaoming.jiang@intel.com>
2023-05-26 09:27:20 +00:00
Dawn Autoroller 52586334c2 Roll ANGLE from c121b0137b6a to 388a184dd781 (10 revisions)
c121b0137b..388a184dd7

2023-05-25 jojwang@google.com Fix clang_format -> clang-format path in DEPS.
2023-05-25 abdolrashidi@google.com Suppress AllocateVMAImageWhenDeviceOOM for AsyncCQ
2023-05-25 mark@lunarg.com Tests: Add Infinity Ops Trace
2023-05-25 syoussefi@chromium.org Translator: Fix SPIR-V translation without "variables" flag
2023-05-25 romanl@google.com android_helper sets return code to 1 when test json is missing
2023-05-25 kbr@chromium.org Reland "Metal: Optimized BufferSubData per device"
2023-05-25 yuxinhu@google.com Disable stencil write mask workaround on latest ARM
2023-05-25 lexa.knyazev@gmail.com Metal: Adjust iOS and macCatalyst caps
2023-05-25 romanl@google.com Skip honkai_star_rail on Intel/windows
2023-05-25 syoussefi@chromium.org Vulkan: Add the Sample decoration when sample shading

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/angle-dawn-autoroll
Please CC angle-team+autoroll@google.com,shrekshao@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry
To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: None
Tbr: shrekshao@google.com
Change-Id: I4af0335fc6b7826df2e054b697560909240e9dc3
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134544
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2023-05-26 07:36:50 +00:00
Austin Eng 478fa32358 Update expectations.txt with Android results
Bug: chromium:1363409
Change-Id: I6518bc7ced96f82b8130489d87c0bd8069972b92
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134342
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Kokoro: Austin Eng <enga@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-05-26 06:11:47 +00:00
Stephen White 0c7a99f894 Tint/GLSL: rename identifiers containing double-underscores.
This is prohibited by the GLSL ES spec:

"In addition, all identifiers containing two consecutive underscores (__) are reserved for use by underlying
software layers. Defining such a name in a shader does not itself result in an error, but may result in
unintended behaviors that stem from having multiple definitions of the same name."

(https://registry.khronos.org/OpenGL/specs/es/3.1/GLSL_ES_Specification_3.10.withchanges.pdf, section 3.7).

However, while glslang validation will not give an error on this, NVidia
ES drivers will. So I've added a Dawn end2end test instead of a WGSL test.

Bug: tint:1944
Change-Id: I4b965af00039ca7a232bc11be884483f8e02ccf6
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134140
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-05-26 04:53:17 +00:00
dan sinclair 4957327cc9 [ir] Add explicit continue branches.
This CL adds a `Continue` instruction into the IR and uses it when
branching into the continue block.

Bug: tint:1718
Change-Id: If54afe6f53b587f1d8a99afd920b94ebdcb608e5
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134462
Reviewed-by: Ben Clayton <bclayton@google.com>
Reviewed-by: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
2023-05-26 04:33:30 +00:00
dan sinclair 68a8b094d2 [ir] Add explicit Return instructions.
This Cl adds a `ret` instruction into the IR. The `FunctionTerminator`
block has been removed.

Bug: tint:1718
Change-Id: Ie5fcdbfa8983b4c960773494b0c58793bd9ef503
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134461
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2023-05-26 04:31:50 +00:00
Austin Eng ab6a9b9906 Skip dawn_end2end_tests on d3d11 NVIDIA
Suspect causing undefined behavior seen in crbug.com/1448982

The D3D11 backend is producing validation layers errors, so
that could be the root cause.

Bug: chromium:1448982, dawn:1847
Change-Id: I3fa943f6f9fb48f6cf05da0e571041e6d0c48bed
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134542
Reviewed-by: Loko Kung <lokokung@google.com>
Commit-Queue: Austin Eng <enga@chromium.org>
Auto-Submit: Austin Eng <enga@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-05-26 03:18:14 +00:00
jchen10 7d6abb70b2 d3d11: enable NonzeroBufferCreationTests
Bug: dawn:1705
Change-Id: I5c6f77a9728fd47593716a1ce2ea69a8960178ef
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/133964
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Peng Huang <penghuang@chromium.org>
Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
2023-05-26 00:23:47 +00:00
Loko Kung 2d988ce095 Fixes incorrect path for clang-format.
Change-Id: I83aef1bdbff0ee8c36968295fdb8d7fa4654b3ff
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134466
Kokoro: James Price <jrprice@google.com>
Commit-Queue: James Price <jrprice@google.com>
Reviewed-by: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Auto-Submit: Loko Kung <lokokung@google.com>
2023-05-25 23:28:34 +00:00
Loko Kung 6f5515a21e Adds missing includes for google3 roll.
Change-Id: Id99d168d3f127558179c7097af6575f07a260ed6
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134465
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Loko Kung <lokokung@google.com>
Reviewed-by: Shrek Shao <shrekshao@google.com>
2023-05-25 23:19:48 +00:00
Dawn Autoroller fd61f6244f Roll ANGLE from c18972fdef08 to c121b0137b6a (4 revisions)
c18972fdef..c121b0137b

2023-05-25 jojwang@google.com Change clang_format path in angle.
2023-05-25 geofflang@chromium.org GL: Check for VAO support before syncing from external ctxs
2023-05-25 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 25c584aa4cec to 354eac3ca8c8 (9 revisions)
2023-05-25 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 74f8527011e4 to c0f2c5cab1b4 (544 revisions)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/angle-dawn-autoroll
Please CC angle-team+autoroll@google.com,shrekshao@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry
To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: None
Tbr: shrekshao@google.com
Change-Id: Ia7fb553dbb6adb625c717725410c7c93d29a8a7a
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134540
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2023-05-25 18:18:50 +00:00
Corentin Wallez 06294ba012 Add wgpu::RenderBundle::SetLabel
It was missing on just this object (and adapter/instance but that's
expected).

Bug: None
Change-Id: I865609b8194c872c16ad5590eaf0461751a56eab
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134502
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-05-25 17:02:50 +00:00
Ben Clayton 986e7ccbe4 [tools] Consider today for gerrit-stats and snippets
When you do not specify the --before and --after flags, the tools should consider the window of [N-days-ago .. now].

'Before' is not inclusive, so push it forward 24 hours to include today.

Change-Id: I4c04bcb3c318a83091aeebacddd67e47170508ae
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134500
Kokoro: Kokoro <noreply+kokoro@google.com>
Auto-Submit: Ben Clayton <bclayton@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
2023-05-25 16:31:30 +00:00
Ben Clayton 409483d2f0 [tint][bench] Trim core benchmarks
perfmon is struggling with the number of benchmarks x CLs in flight.

Remove some of the less useful benchmarks.

Change-Id: Ib01432e990c437dbc5ef2445da23d4beaf087f68
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134501
Kokoro: Kokoro <noreply+kokoro@google.com>
Auto-Submit: Ben Clayton <bclayton@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: James Price <jrprice@google.com>
2023-05-25 16:26:37 +00:00
Austin Eng 6c5f683802 CTS expectations: support multiple test prefixes
For some reason Android uses a different test prefix

Bug: chromium:1363409
Change-Id: I6f43b2f35e440f26842779fff58e2e9e3d36bd87
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134346
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Austin Eng <enga@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
2023-05-25 16:04:51 +00:00
dan sinclair 32b6746cd9 [ir] Rename %fn to %b.
The FlowNode concept is gone, rename the symbol in the disassembly.

Bug: tint:1718
Change-Id: I8a7b5d8113a033592de5ca013cf8839330a7686c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134460
Reviewed-by: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
2023-05-25 14:12:52 +00:00
dan sinclair 686d2e2d4d [ir] Restore losts tests.
When the `BuilderImpl` tests were split apart in 131581 these two files
accidentally got created in the wrong spot. This removed them from being
tested.

Add them back and update format to match current disassembly.

Bug: tint:1718
Change-Id: I9b248121a9f45862060d44f50a290344e1222874
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134440
Kokoro: Dan Sinclair <dsinclair@chromium.org>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Reviewed-by: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-05-25 14:00:55 +00:00
dan sinclair a2b489b900 [ir] Update UserCall to hold Function Values.
This CL updates the `UserCall` to hold a `Function` value instead of the
functions name symbol. The name symbol is also removed from the function
itself and stored into the module like all other values.

Bug: tint:1718
Change-Id: I6c94ce435a6a260f9fe953a04278129b35b3bd39
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134303
Reviewed-by: James Price <jrprice@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-05-25 13:39:47 +00:00
Zhao Jiazhong 79fe4ab42f [loongarch] Cleanup deprecated built-in macro.
"_LOONGARCH_SIM" is a deprecated built-in macro, and should not be
used anymore.

Bug: chromium:1448745
Change-Id: Ie62efd55ea5ffb8b90fca6f04feb785e5d2c1794
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134401
Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-05-25 10:37:04 +00:00
Ben Clayton ad22d567e5 [tint][bench]: Fix MSL benchmarks
These required binding point remapping so that the @group is always zero.

Also: Use a unique_ptr for the file in ProgramAndFile. Previously the diagnostics were referring to the std::moved file, causing segfaults if the benchmark program errors and printed diagnostics.
Change-Id: Id0e41665b97b3fc73a6cdd5848c5f505cd77e805
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134280
Kokoro: Ben Clayton <bclayton@google.com>
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
2023-05-25 09:56:04 +00:00
dan sinclair 4b35f52f9b [ir] Remove IsConnected
This CL removes IsConnected as it isn't useful anymore.

Bug: tint:1718
Change-Id: I12b32879e87925e8a2faf0e48e9d23114a2aa484
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134304
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
2023-05-25 04:57:51 +00:00
dan sinclair a00fe39f3e [ir] Remove FlowNode.
The `Block` is now the basis, there is no need for `FlowNode` anymore.

Bug: tint:1718
Change-Id: I4834c442e2b1dd24a708822fc04e68e88f13d7a5
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134302
Reviewed-by: Ben Clayton <bclayton@google.com>
Reviewed-by: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
2023-05-25 04:56:11 +00:00
Dawn Autoroller 9083f431b8 Roll ANGLE from 7e2336b1e85a to c18972fdef08 (9 revisions)
7e2336b1e8..c18972fdef

2023-05-24 mikes@lunarg.com Tests: Add Gangstar Vegas trace
2023-05-24 cclao@google.com Vulkan: Reduce CPU overhead for uniform buffer change
2023-05-24 cclao@google.com Vulkan: Move mWriteDescriptors out of DescriptorSetDescBuilder
2023-05-24 cclao@google.com Vulkan: Remove buffer/image tracking from DescriptorSetDescBuilder
2023-05-24 lexa.knyazev@gmail.com Compile ClampFragDepth on all backends
2023-05-24 geofflang@chromium.org Don't use system info collection in the GL backend on Android
2023-05-24 mark@lunarg.com Tests: Add Empires and Puzzles trace
2023-05-24 cnorthrop@google.com Tests: Add Kentucky Route Zero trace
2023-05-24 lexa.knyazev@gmail.com Vulkan: Limit clampFragDepth workaround to affected drivers

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/angle-dawn-autoroll
Please CC angle-team+autoroll@google.com,shrekshao@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry
To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: None
Tbr: shrekshao@google.com
Change-Id: I1406587ac0e258e3b8de7eccfc1b1f0e85bdd6d9
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134345
Bot-Commit: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Dawn Autoroller <dawn-autoroll@skia-public.iam.gserviceaccount.com>
2023-05-25 04:41:34 +00:00
Gregg Tavares 110358f2e6 Compat: Reject non-matching blend state / write mask
Bug: dawn:1839
Change-Id: I1284fb0c5b6a0d21603d9a9806d31e931b17b615
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134061
Reviewed-by: Stephen White <senorblanco@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
2023-05-25 04:37:12 +00:00
Jiawei Shao daffe42b6a Implement device.CreateErrorShaderModule()
This patch implements device.CreateErrorShaderModule() for Blink to
directly create an error shader module and insert validation and
compilation errors when anything wrong is detected.

Bug: dawn:1345
Test: dawn_unittests
Change-Id: I1415aaf0609febaff49c40ebbfedbbcefa2e5504
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134104
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2023-05-25 03:32:41 +00:00
James Price 0eb4d04d83 [ir][spirv-writer] Expand binary arithmetic tests
Use the parameterized test helper for binary expressions to more
comprehensively test scalar and vector values across different types.

Bug: tint:1906
Change-Id: I2be087d7889d0993125eb0e3f897acbdf56575b2
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134323
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: James Price <jrprice@google.com>
Commit-Queue: James Price <jrprice@google.com>
2023-05-25 03:24:19 +00:00
Zhaoming Jiang 6663a97b74 Dawn: Deprecate DiscoverAdapters with DiscoverPhysicalDevices
This CL deprecate Discover[Default]Adapters and replace them with
Discover[Default]PhysicalDevices. This help clearify the behavior of
discovering physical devices and requesting / getting adapters, and
prepare for adding adapter toggles in GetAdapters.

Related end-to-end tests AdapterDiscoveryTests are split into
PhysicalDeviceDiscoveryTests and AdapterCreationTests as well.

Bug: dawn:1774, dawn:1495
Change-Id: Iac3d9da3022e5eb3c6dd6b3e3b2224f523792289
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/133968
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Zhaoming Jiang <zhaoming.jiang@intel.com>
Reviewed-by: Austin Eng <enga@chromium.org>
2023-05-25 02:42:27 +00:00
James Price dd7b314105 [ir][spirv-writer] Emit binary bitwise operators
Bug: tint:1906
Change-Id: Ica8436cd59aabe521df0445edc5a9f03c45cd1bf
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134322
Commit-Queue: James Price <jrprice@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-05-25 01:29:41 +00:00
James Price 59339216a1 [ir][spirv-writer] Emit comparison instructions
Bug: tint:1906
Change-Id: I82a9e70c3b20999e991865e2ef00113c63db84c4
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134321
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: James Price <jrprice@google.com>
2023-05-25 01:28:04 +00:00
Austin Eng 010d149e33 Add Dawn Android bots to CTS roller config
Bug: chromium:1363409
Change-Id: I1830c5fe7ea7e413962508524ffe2e1551445c28
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134341
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Shrek Shao <shrekshao@google.com>
Kokoro: Austin Eng <enga@chromium.org>
2023-05-25 00:23:17 +00:00
Ben Clayton 1e67e5368d [tint][constant] Use the new constant::Manager
In the ProgramBuilder and the ir::Builder.

All constant::Value pointers are now guaranteed to be de-duplicated for the entire Program / ir::Module.

Fixed: tint:1935
Change-Id: I7afa769972351f62725d6ce8e3937d49b06ed715
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134362
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Reviewed-by: James Price <jrprice@google.com>
2023-05-24 23:07:36 +00:00
Ben Clayton a71bd22de1 [tint][constant] Make Value::Clone() return a const pointer
Once constants are de-duplicated, they must be fully immutable.

Bug: tint:1935
Change-Id: Iba1f85079f2ada1f44ba44d1da9b8a65d1abf2ad
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134361
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: James Price <jrprice@google.com>
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
2023-05-24 23:07:36 +00:00
Ben Clayton 9aa8012d91 [tint][constant] Add constant::Manager
Constructs deduplicated constants, similarly to type::Manager

The constant::Manager owns the type::Manager so they can be
std::move()'d together without having to risk having the
constant::Manager hold a stale pointer to a moved type::Manager.

Not currently used. That comes next.

Also un-inline type::Manager scalar helpers. Reduces transitive
includes.

Bug: tint:1935
Change-Id: I28fc74a712f19a171850df5e84433e2d60cba256
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134360
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
2023-05-24 23:07:36 +00:00
dan sinclair 56e5fb57ef [ir] Convert function to Value.
This CL moves the `Function` node to be a `Value` instead of a `Block`.

Bug: tint:1718
Change-Id: I7e67f87fc0a442e0b390fc59f761287382a4b682
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134301
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Reviewed-by: James Price <jrprice@google.com>
2023-05-24 22:50:03 +00:00
dan sinclair a518707db4 [ir] Update disassembly output.
This CL switches the disassembler back to being recursive and fixes up
the indenting of blocks to better highlight if branches and switch
cases.

Bug: tint:1718
Change-Id: I14e8d7c68a083bf3afd9ff7241d49b2aa76be4ba
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134300
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-05-24 22:43:18 +00:00
Joanna Wang b3e680bb88 Use new clang_format/scripts/ path in dawn.
Bug: 1447924
Change-Id: I336576c770a6f7004538be3419b3efef4f945e44
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134320
Reviewed-by: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: James Price <jrprice@google.com>
Auto-Submit: Joanna Wang <jojwang@google.com>
2023-05-24 22:13:52 +00:00
Austin Eng 1fbf40857c Validate that [ Slow ] is not used in expectations.txt
Bug: dawn:1832
Change-Id: Ic4b5f752aab7e4c26808703ffeb89545200204e6
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134102
Commit-Queue: Austin Eng <enga@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2023-05-24 21:58:50 +00:00
Austin Eng 817c076eb8 Enable testing of compat in dawn_end2end_tests only on GLES
Change-Id: I049bc6499f22ddb359b9d4701eaa5df31f5a652a
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134340
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Stephen White <senorblanco@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-05-24 21:31:36 +00:00
Shrek Shao 13f8bf205e Compat GL/GLES: blit a stencil texture to a buffer using compute
Add compute blit emulation path for Stencil8 textures for
OpenGLES backend.

Bug: dawn:1782, dawn:1835
Change-Id: I4719d339ee78fd5fc524d809417504125d2c0aee
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/133364
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Shrek Shao <shrekshao@google.com>
Reviewed-by: Austin Eng <enga@chromium.org>
2023-05-24 20:59:21 +00:00
dan sinclair f55ef5e48b [ir] Convert FlowNode to Block where possible.
This CL updates a bunch of uses of FlowNode to use Block instead. The
InboundBranches are moved from FlowNode to Block.

Bug: tint:1718
Change-Id: Ic1c07dae103e25364a3a6b3333cfcb57d10b30c2
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134260
Reviewed-by: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
2023-05-24 20:14:14 +00:00
dan sinclair 0089d5e6e2 [ir] Change base class for terminators.
This CL moves the FunctionTerminator and RootTerminator nodes to be
blocks instead of FlowNodes.

Bug: tint:1718
Change-Id: Iee7830bccd99e4587b95b22b53268d1d2921e82f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134222
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Reviewed-by: James Price <jrprice@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-05-24 18:47:12 +00:00
dan sinclair e9a4adeff9 [ir] Remove Jump.
This CL removes the Jump instruction. This didn't add much value over
the branch instruction and was confusing as to which to use when.

Bug: tint:1718
Change-Id: I69253aa7baf39b00f698e4e8f9608465f6019dcd
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134221
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Reviewed-by: James Price <jrprice@google.com>
2023-05-24 18:45:04 +00:00
James Price 24c5ed6b0a [ir][spirv-writer] Emit matrix constants
Bug: tint:1906
Change-Id: Ia4c8a02a4b64e216de3913fff377007e0287bd11
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134205
Commit-Queue: James Price <jrprice@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
2023-05-24 17:59:27 +00:00
James Price a8c528052d [ir][spirv-writer] Emit matrix types
Bug: tint:1906
Change-Id: Ief75da483f89595d56094611ecb037da73a396e5
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134204
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: James Price <jrprice@google.com>
2023-05-24 17:43:56 +00:00