2018-03-24 17:29:13 +01:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "d3d11_include.h"
|
|
|
|
|
|
|
|
namespace dxvk {
|
|
|
|
|
|
|
|
enum class D3D11Option : uint64_t {
|
2018-03-25 00:54:42 +01:00
|
|
|
/**
|
|
|
|
* \brief Handle D3D11_MAP_FLAG_DO_NOT_WAIT properly
|
|
|
|
*
|
|
|
|
* This can offer substantial speedups, but some games
|
|
|
|
* (The Witcher 3, Elder Scrolls Online, possibly others)
|
|
|
|
* seem to make incorrect assumptions about when a map
|
|
|
|
* operation succeeds when that flag is set.
|
|
|
|
*/
|
|
|
|
AllowMapFlagNoWait = 0,
|
2018-05-14 02:40:17 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Ignore D3D11_ASYNC_GETDATA_DONOTFLUSH
|
|
|
|
*
|
|
|
|
* This can cause significant slowdowns, but some games
|
|
|
|
* expect the implementation to flush the context even
|
|
|
|
* when passing the \c DONOTFLUSH flag.
|
|
|
|
*/
|
|
|
|
DisableGetDataFlagDoNotFlush = 1,
|
2018-03-24 17:29:13 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
using D3D11OptionSet = Flags<D3D11Option>;
|
|
|
|
|
2018-03-25 00:54:42 +01:00
|
|
|
|
2018-03-24 17:29:13 +01:00
|
|
|
/**
|
|
|
|
* \brief Retrieves per-app options
|
|
|
|
*
|
|
|
|
* \param [in] AppName Executable name
|
|
|
|
* \returns D3D11 options
|
|
|
|
*/
|
|
|
|
D3D11OptionSet D3D11GetAppOptions(const std::string& AppName);
|
|
|
|
|
|
|
|
}
|