commit | c8f07088e47520a6d20efe9a7929c35c2c1c2c52 | [log] [tgz] |
---|---|---|
author | Ben Clayton <bclayton@google.com> | Tue Jun 20 16:42:21 2023 +0000 |
committer | Dawn LUCI CQ <dawn-scoped@luci-project-accounts.iam.gserviceaccount.com> | Tue Jun 20 16:42:21 2023 +0000 |
tree | ba23edb740cffddca57c66323abe88d1d1779adb | |
parent | 9b0e9218d89ca3dc56584cedb8600db75c767d1b [diff] |
[tint][ir] Make ControlInstructions regular instructions Instead of branches. This change removes ControlInstruction merge blocks from the IR. These instructions instead act as regular instructions, that have other instructions that follow them. Instead of using merge-block parameters, the ControlInstructions can emit multiple result values, which are passed down from the corresponding exit instructions. This: * Significantly reduces the verbosity of the IR. * Removes the need to walk down merge-blocks to find all the instructions of a given scope. This in turn removes the chance of using recursion to walk instruction lists, which is likely to cause stack-overflows. * Simplifies validation, in that later instructions cannot use values declared inside ControlInstruction blocks. * Overall reduces complexity (I believe - YMMV). Change-Id: I2f7d9e0f97113c8076dafc6541980e87bc21a62a Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/134960 Reviewed-by: James Price <jrprice@google.com> Kokoro: Kokoro <noreply+kokoro@google.com> Commit-Queue: Ben Clayton <bclayton@google.com> Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Dawn is an open-source and cross-platform implementation of the work-in-progress WebGPU standard. More precisely it implements webgpu.h
that is a one-to-one mapping with the WebGPU IDL. Dawn is meant to be integrated as part of a larger system and is the underlying implementation of WebGPU in Chromium.
Dawn provides several WebGPU building blocks:
webgpu.h
version that Dawn implements.webgpu.h
.Helpful links:
Developer documentation:
User documentation: (TODO, figure out what overlaps with the webgpu.h docs)
(TODO)
Apache 2.0 Public License, please see LICENSE.
This is not an officially supported Google product.