diff options
Diffstat (limited to 'src/d3d11/d3d11_swapchain.h')
-rw-r--r-- | src/d3d11/d3d11_swapchain.h | 54 |
1 files changed, 32 insertions, 22 deletions
diff --git a/src/d3d11/d3d11_swapchain.h b/src/d3d11/d3d11_swapchain.h index 00073d76..df9f5f16 100644 --- a/src/d3d11/d3d11_swapchain.h +++ b/src/d3d11/d3d11_swapchain.h @@ -95,42 +95,46 @@ namespace dxvk { Com<D3D11DXGIDevice, false> m_dxgiDevice; - D3D11Device* m_parent; - Com<IDXGIVkSurfaceFactory> m_surfaceFactory; + D3D11Device* m_parent; + Com<IDXGIVkSurfaceFactory> m_surfaceFactory; - DXGI_SWAP_CHAIN_DESC1 m_desc; + DXGI_SWAP_CHAIN_DESC1 m_desc; - Rc<DxvkDevice> m_device; - Rc<DxvkContext> m_context; + Rc<DxvkDevice> m_device; + Rc<DxvkContext> m_context; - Rc<Presenter> m_presenter; + Rc<Presenter> m_presenter; - Rc<DxvkImage> m_swapImage; - Rc<DxvkImageView> m_swapImageView; - Rc<DxvkSwapchainBlitter> m_blitter; + uint32_t m_sparseFrameIndex = 0u; + uint32_t m_sparsePagesPerImage = 0u; + Rc<DxvkSparsePageAllocator> m_sparseAllocator; - Rc<hud::Hud> m_hud; + std::vector<Rc<DxvkImage>> m_swapImages; + Rc<DxvkImageView> m_swapImageView; + Rc<DxvkSwapchainBlitter> m_blitter; - Com<D3D11Texture2D, false> m_backBuffer; - DxvkSubmitStatus m_presentStatus; + Rc<hud::Hud> m_hud; + + std::vector<Com<D3D11Texture2D, false>> m_backBuffers; + DxvkSubmitStatus m_presentStatus; std::vector<Rc<DxvkImageView>> m_imageViews; - uint64_t m_frameId = DXGI_MAX_SWAP_CHAIN_BUFFERS; - uint32_t m_frameLatency = DefaultFrameLatency; - uint32_t m_frameLatencyCap = 0; - HANDLE m_frameLatencyEvent = nullptr; - Rc<sync::CallbackFence> m_frameLatencySignal; + uint64_t m_frameId = DXGI_MAX_SWAP_CHAIN_BUFFERS; + uint32_t m_frameLatency = DefaultFrameLatency; + uint32_t m_frameLatencyCap = 0; + HANDLE m_frameLatencyEvent = nullptr; + Rc<sync::CallbackFence> m_frameLatencySignal; - bool m_dirty = true; + bool m_dirty = true; - VkColorSpaceKHR m_colorspace = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR; + VkColorSpaceKHR m_colorspace = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR; std::optional<VkHdrMetadataEXT> m_hdrMetadata; - bool m_dirtyHdrMetadata = true; + bool m_dirtyHdrMetadata = true; - dxvk::mutex m_frameStatisticsLock; - DXGI_VK_FRAME_STATISTICS m_frameStatistics = { }; + dxvk::mutex m_frameStatisticsLock; + DXGI_VK_FRAME_STATISTICS m_frameStatistics = { }; HRESULT PresentImage(UINT SyncInterval); @@ -172,6 +176,12 @@ namespace dxvk { VkFullScreenExclusiveEXT PickFullscreenMode(); + void RotateBackBuffer(); + + bool IsSequentialSwapChain() const; + + bool SupportsSparseImages() const; + std::string GetApiName() const; }; |