From 2eecbc59d77c93d2d573670d09ba7a29fcdf58eb Mon Sep 17 00:00:00 2001
From: Colin Blundell <blundell@chromium.org>
Date: Tue, 17 Dec 2024 10:29:52 -0800
Subject: [PATCH] [//gpu] Make SII::CreateSharedImageForSoftwareCompositor()
 pure virtual

All production subclasses now have implementations. We will give TestSII
an implementation only when this method actually gets exercised in
tests.

Bug: 379996128
Change-Id: I37b51dd986c7635d078d0056d2507968be19f4b3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6098254
Commit-Queue: vikas soni <vikassoni@chromium.org>
Reviewed-by: vikas soni <vikassoni@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1397425}
---
 gpu/command_buffer/client/shared_image_interface.cc      | 6 ------
 gpu/command_buffer/client/shared_image_interface.h       | 2 +-
 gpu/command_buffer/client/test_shared_image_interface.cc | 6 ++++++
 gpu/command_buffer/client/test_shared_image_interface.h  | 3 +++
 media/mojo/clients/mojo_stable_video_decoder_unittest.cc | 3 +++
 5 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/gpu/command_buffer/client/shared_image_interface.cc b/gpu/command_buffer/client/shared_image_interface.cc
index 7f79f1d20e300..8cd91d295a1e0 100644
--- a/gpu/command_buffer/client/shared_image_interface.cc
+++ b/gpu/command_buffer/client/shared_image_interface.cc
@@ -84,12 +84,6 @@ scoped_refptr<ClientSharedImage> SharedImageInterface::CreateSharedImage(
   NOTREACHED();
 }
 
-scoped_refptr<ClientSharedImage>
-SharedImageInterface::CreateSharedImageForSoftwareCompositor(
-    const SharedImageInfo& si_info) {
-  NOTREACHED();
-}
-
 scoped_refptr<ClientSharedImage>
 SharedImageInterface::AddReferenceToSharedImage(
     const SyncToken& sync_token,
diff --git a/gpu/command_buffer/client/shared_image_interface.h b/gpu/command_buffer/client/shared_image_interface.h
index bd0dcc5e4bfa1..32e1aa03b7f98 100644
--- a/gpu/command_buffer/client/shared_image_interface.h
+++ b/gpu/command_buffer/client/shared_image_interface.h
@@ -203,7 +203,7 @@ class GPU_EXPORT SharedImageInterface
   // created internally and a shared image is created out of this buffer. This
   // method is used by the software compositor only.
   virtual scoped_refptr<ClientSharedImage>
-  CreateSharedImageForSoftwareCompositor(const SharedImageInfo& si_info);
+  CreateSharedImageForSoftwareCompositor(const SharedImageInfo& si_info) = 0;
 
   // Updates a shared image after its GpuMemoryBuffer (if any) was modified on
   // the CPU or through external devices, after |sync_token| has been released.
diff --git a/gpu/command_buffer/client/test_shared_image_interface.cc b/gpu/command_buffer/client/test_shared_image_interface.cc
index 6763d9b4cf945..0d717ab1bb8fd 100644
--- a/gpu/command_buffer/client/test_shared_image_interface.cc
+++ b/gpu/command_buffer/client/test_shared_image_interface.cc
@@ -311,6 +311,12 @@ TestSharedImageInterface::CreateSharedImage(
   return shared_image_mapping;
 }
 
+scoped_refptr<ClientSharedImage>
+TestSharedImageInterface::CreateSharedImageForSoftwareCompositor(
+    const SharedImageInfo& si_info) {
+  NOTREACHED();
+}
+
 void TestSharedImageInterface::UpdateSharedImage(
     const SyncToken& sync_token,
     const Mailbox& mailbox) {
diff --git a/gpu/command_buffer/client/test_shared_image_interface.h b/gpu/command_buffer/client/test_shared_image_interface.h
index 624b9be06a112..ba7a39ebae73c 100644
--- a/gpu/command_buffer/client/test_shared_image_interface.h
+++ b/gpu/command_buffer/client/test_shared_image_interface.h
@@ -62,6 +62,9 @@ class TestSharedImageInterface : public SharedImageInterface {
   SharedImageInterface::SharedImageMapping CreateSharedImage(
       const SharedImageInfo& si_info) override;
 
+  scoped_refptr<ClientSharedImage> CreateSharedImageForSoftwareCompositor(
+      const SharedImageInfo& si_info) override;
+
   void UpdateSharedImage(const SyncToken& sync_token,
                          const Mailbox& mailbox) override;
   void UpdateSharedImage(const SyncToken& sync_token,
diff --git a/media/mojo/clients/mojo_stable_video_decoder_unittest.cc b/media/mojo/clients/mojo_stable_video_decoder_unittest.cc
index 4dc6378d7bfd7..6f421cb29a5f3 100644
--- a/media/mojo/clients/mojo_stable_video_decoder_unittest.cc
+++ b/media/mojo/clients/mojo_stable_video_decoder_unittest.cc
@@ -355,6 +355,9 @@ class MockSharedImageInterface : public gpu::SharedImageInterface {
                    gfx::GpuMemoryBufferHandle buffer_handle));
   MOCK_METHOD1(CreateSharedImage,
                SharedImageMapping(const gpu::SharedImageInfo& si_info));
+  MOCK_METHOD1(CreateSharedImageForSoftwareCompositor,
+               scoped_refptr<gpu::ClientSharedImage>(
+                   const gpu::SharedImageInfo& si_info));
   MOCK_METHOD2(UpdateSharedImage,
                void(const gpu::SyncToken& sync_token,
                     const gpu::Mailbox& mailbox));