1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-02-20 19:54:19 +01:00

[vulkan] Add setHdrMetadata method to Presenter

This commit is contained in:
Joshua Ashton 2022-12-18 17:44:59 +00:00 committed by Philip Rebohle
parent 731bf84edd
commit e5418a956a
3 changed files with 15 additions and 0 deletions

View File

@ -446,6 +446,7 @@ namespace dxvk {
presenterDevice.queue = graphicsQueue.queueHandle;
presenterDevice.adapter = m_device->adapter()->handle();
presenterDevice.features.fullScreenExclusive = m_device->features().extFullScreenExclusive;
presenterDevice.features.hdrMetadata = m_device->features().extHdrMetadata;
vk::PresenterDesc presenterDesc;
presenterDesc.imageExtent = { m_desc.Width, m_desc.Height };

View File

@ -238,6 +238,12 @@ namespace dxvk::vk {
}
void Presenter::setHdrMetadata(const VkHdrMetadataEXT& hdrMetadata) {
if (m_device.features.hdrMetadata)
m_vkd->vkSetHdrMetadataEXT(m_vkd->device(), 1, &m_swapchain, &hdrMetadata);
}
VkResult Presenter::getSupportedFormats(std::vector<VkSurfaceFormatKHR>& formats, VkFullScreenExclusiveEXT fullScreenExclusive) const {
uint32_t numFormats = 0;

View File

@ -49,6 +49,7 @@ namespace dxvk::vk {
*/
struct PresenterFeatures {
bool fullScreenExclusive : 1;
bool hdrMetadata : 1;
};
/**
@ -191,6 +192,13 @@ namespace dxvk::vk {
*/
bool supportsColorSpace(VkColorSpaceKHR colorspace);
/**
* \brief Sets HDR metadata
*
* \param [in] hdrMetadata HDR Metadata
*/
void setHdrMetadata(const VkHdrMetadataEXT& hdrMetadata);
private:
Rc<InstanceFn> m_vki;