Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/doitsujin/dxvk.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/d3d11/d3d11_swapchain.h')
-rw-r--r--src/d3d11/d3d11_swapchain.h54
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;
};