dawn_native: deduplicate shader modules

BUG=dawn:143

Change-Id: I2c0fa63e3a6d77c137418f12b9807d16a0636d57
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/6862
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
diff --git a/src/dawn_native/Device.h b/src/dawn_native/Device.h
index 3f4a913..aae0751 100644
--- a/src/dawn_native/Device.h
+++ b/src/dawn_native/Device.h
@@ -88,6 +88,10 @@
             const PipelineLayoutDescriptor* descriptor);
         void UncachePipelineLayout(PipelineLayoutBase* obj);
 
+        ResultOrError<ShaderModuleBase*> GetOrCreateShaderModule(
+            const ShaderModuleDescriptor* descriptor);
+        void UncacheShaderModule(ShaderModuleBase* obj);
+
         // Dawn API
         BindGroupBase* CreateBindGroup(const BindGroupDescriptor* descriptor);
         BindGroupLayoutBase* CreateBindGroupLayout(const BindGroupLayoutDescriptor* descriptor);