{-# language CPP #-} -- | = Name -- -- VK_QCOM_multiview_per_view_viewports - device extension -- -- == VK_QCOM_multiview_per_view_viewports -- -- [__Name String__] -- @VK_QCOM_multiview_per_view_viewports@ -- -- [__Extension Type__] -- Device extension -- -- [__Registered Extension Number__] -- 489 -- -- [__Revision__] -- 1 -- -- [__Ratification Status__] -- Not ratified -- -- [__Extension and Version Dependencies__] -- -- -- [__Contact__] -- -- - Jeff Leger -- -- -- == Other Extension Metadata -- -- [__Last Modified Date__] -- 2022-11-22 -- -- [__IP Status__] -- No known IP claims. -- -- [__Interactions and External Dependencies__] -- -- - This extension interacts with @VK_KHR_dynamic_rendering@ -- -- - This extension interacts with @VK_EXT_extended_dynamic_state@ -- -- [__Contributors__] -- -- - Jeff Leger, Qualcomm -- -- - Jonathan Tinkham, Qualcomm -- -- - Jonathan Wicks, Qualcomm -- -- == Description -- -- Certain use cases for multiview have a need for specifying a separate -- viewport and scissor for each view, without using shader-based viewport -- indexing as introduced with @VK_EXT_shader_viewport_index_layer@. -- -- This extension adds a new way to control ViewportIndex with multiview. -- When the -- -- feature is enabled and if the last pre-rasterization shader entry -- point’s interface does not use the @ViewportIndex@ built-in decoration, -- then each view of a multiview render pass instance will use a viewport -- and scissor index equal to the @ViewIndex@. -- -- == New Structures -- -- - Extending -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', -- 'Vulkan.Core10.Device.DeviceCreateInfo': -- -- - 'PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM' -- -- == New Enum Constants -- -- - 'QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME' -- -- - 'QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION' -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM' -- -- == Issues -- -- 1) Is is possible to enable\/disable the -- -- feature for individual render pass instances? -- -- __RESOLVED__: No, when the multiviewPerViewViewports feature is enabled -- during vkCreateDevice, then all created render pass instances (including -- dynamic render passes from @VK_KHR_dynamic_rendering@) and all created -- VkPipelines will have the feature enabled. This approach was chosen -- because it simplifies application code and there is no known use case -- enable\/disable the feature for individual render passes or pipelines. -- -- 2) When this extension is used, is the value of @ViewportIndex@ -- implicitly written by the last pre-rasterization shader stage and can -- the value of @ViewportIndex@ be read in the fragment shader? -- -- __RESOLVED__: No, use of the extension extension does not add an -- implicit write to @ViewportIndex@ in any shader stage, and additionally, -- the value of @ViewportIndex@ in the fragment shader is undefined. -- -- == Version History -- -- - Revision 1, 2022-11-22 (Jeff Leger) -- -- == See Also -- -- 'PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM' -- -- == Document Notes -- -- For more information, see the -- -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly. module Vulkan.Extensions.VK_QCOM_multiview_per_view_viewports (PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM) where import Vulkan.CStruct (FromCStruct) import Vulkan.CStruct (ToCStruct) import Data.Kind (Type) data PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM instance ToCStruct PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM instance Show PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM instance FromCStruct PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM