Remove `access_controls` option.

The IR backend no-longer uses the `access_control` HLSL option so remove
it from the options structure.

Change-Id: I936e3ca12324f8ed1e798836937ee59b9697591f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/263357
Commit-Queue: James Price <jrprice@google.com>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Auto-Submit: dan sinclair <dsinclair@chromium.org>
Reviewed-by: James Price <jrprice@google.com>
diff --git a/src/dawn/native/d3d12/ShaderModuleD3D12.cpp b/src/dawn/native/d3d12/ShaderModuleD3D12.cpp
index e507abd..aa00dbb 100644
--- a/src/dawn/native/d3d12/ShaderModuleD3D12.cpp
+++ b/src/dawn/native/d3d12/ShaderModuleD3D12.cpp
@@ -171,7 +171,6 @@
 
     tint::Bindings bindings;
     std::vector<BindingPoint> ignored_by_robustness;
-    std::unordered_map<BindingPoint, tint::core::Access> access_controls;
 
     const BindingInfoArray& moduleBindingInfo = entryPoint.bindings;
     for (BindGroupIndex group : layout->GetBindGroupLayoutsMask()) {
@@ -245,22 +244,6 @@
                 [](const InputAttachmentBindingInfo&) { DAWN_UNREACHABLE(); });
         }
 
-        // WGSL read-only storage buffers are translated to a SRVs in HLSL. However they are
-        // compatible with read-write storage buffers in BindGroupLayout, in which case we need to
-        // force use of an UAV by telling Tint that the buffer is read-write.
-        for (BindingIndex index : bgl->GetBufferIndices()) {
-            const auto& bindingInfo = bgl->GetBindingInfo(index);
-            const auto& bufferInfo = std::get<BufferBindingInfo>(bindingInfo.bindingLayout);
-
-            if (bufferInfo.type == wgpu::BufferBindingType::Storage ||
-                bufferInfo.type == kInternalStorageBufferBinding) {
-                access_controls.emplace(
-                    tint::BindingPoint{.group = uint32_t(group),
-                                       .binding = uint32_t(bindingInfo.binding)},
-                    tint::core::Access::kReadWrite);
-            }
-        }
-
         // On D3D12 backend all storage buffers without Dynamic Buffer Offset will always be bound
         // to root descriptor tables, where D3D12 runtime can guarantee that OOB-read will always
         // return 0 and OOB-write will always take no action, so we don't need to do robustness
@@ -318,7 +301,6 @@
     req.hlsl.tintOptions.disable_workgroup_init =
         device->IsToggleEnabled(Toggle::DisableWorkgroupInit);
     req.hlsl.tintOptions.bindings = std::move(bindings);
-    req.hlsl.tintOptions.access_controls = std::move(access_controls);
     req.hlsl.tintOptions.ignored_by_robustness_transform = std::move(ignored_by_robustness);
 
     req.hlsl.tintOptions.compiler = req.bytecode.compiler == d3d::Compiler::FXC
diff --git a/src/tint/lang/hlsl/writer/common/options.h b/src/tint/lang/hlsl/writer/common/options.h
index 619c4c3..649944e 100644
--- a/src/tint/lang/hlsl/writer/common/options.h
+++ b/src/tint/lang/hlsl/writer/common/options.h
@@ -179,9 +179,6 @@
     /// The bindings
     Bindings bindings;
 
-    /// Mapping of BindingPoint to new Access
-    std::unordered_map<BindingPoint, tint::core::Access> access_controls;
-
     /// The binding points that will be ignored by the rebustness transform.
     std::vector<BindingPoint> ignored_by_robustness_transform;
 
@@ -213,7 +210,6 @@
                  first_instance_offset,
                  num_workgroups_start_offset,
                  bindings,
-                 access_controls,
                  ignored_by_robustness_transform,
                  pixel_local);
 };