| // Copyright 2023 The Chromium Authors | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | #ifndef GPU_COMMAND_BUFFER_COMMON_SHARED_IMAGE_CAPABILITIES_H_ | 
 | #define GPU_COMMAND_BUFFER_COMMON_SHARED_IMAGE_CAPABILITIES_H_ | 
 |  | 
 | #include <stdint.h> | 
 |  | 
 | #include "build/build_config.h" | 
 | #include "gpu/command_buffer/common/gpu_command_buffer_common_export.h" | 
 |  | 
 | namespace gpu { | 
 |  | 
 | struct GPU_COMMAND_BUFFER_COMMON_EXPORT SharedImageCapabilities { | 
 |   SharedImageCapabilities(); | 
 |   SharedImageCapabilities(const SharedImageCapabilities& other); | 
 |   ~SharedImageCapabilities(); | 
 |  | 
 |   bool supports_scanout_shared_images = false; | 
 |  | 
 | #if BUILDFLAG(IS_WIN) | 
 |   // On Windows, overlays are in general not supported. However, in some cases | 
 |   // they are supported for the software video frame use case in particular. | 
 |   // This cap details whether that support is present. | 
 |   bool supports_scanout_shared_images_for_software_video_frames = false; | 
 | #endif | 
 |  | 
 |   bool supports_luminance_shared_images = false; | 
 |   bool supports_r16_shared_images = false; | 
 |   bool supports_native_nv12_mappable_shared_images = false; | 
 |   bool is_r16f_supported = false; | 
 |   bool disable_r8_shared_images = false; | 
 |   bool disable_webgpu_shared_images = false; | 
 |   bool disable_one_component_textures = false; | 
 |  | 
 |   bool shared_image_d3d = false; | 
 |   bool shared_image_swap_chain = false; | 
 |  | 
 | #if BUILDFLAG(IS_MAC) | 
 |   uint32_t texture_target_for_io_surfaces = 0; | 
 | #endif | 
 | }; | 
 |  | 
 | }  // namespace gpu | 
 |  | 
 | #endif  // GPU_COMMAND_BUFFER_COMMON_SHARED_IMAGE_CAPABILITIES_H_ |