2018-01-07 20:05:27 +01:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "../dxvk/dxvk_device.h"
|
|
|
|
|
|
|
|
namespace dxvk {
|
|
|
|
|
2018-04-22 23:49:41 +02:00
|
|
|
enum class DxbcOption : uint64_t {
|
|
|
|
/// Use the ShaderImageReadWithoutFormat capability.
|
|
|
|
/// Enabled by default on GPUs which support this.
|
|
|
|
UseStorageImageReadWithoutFormat,
|
|
|
|
|
2018-05-26 17:08:39 +02:00
|
|
|
/// Defer kill operation to the end of the shader.
|
|
|
|
/// Fixes derivatives that are undefined due to
|
|
|
|
/// non-uniform control flow in fragment shaders.
|
|
|
|
DeferKill,
|
2018-04-22 23:49:41 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
using DxbcOptions = Flags<DxbcOption>;
|
|
|
|
|
2018-01-07 20:05:27 +01:00
|
|
|
/**
|
2018-04-22 23:49:41 +02:00
|
|
|
* \brief Gets app-specific DXBC options
|
2018-01-07 20:05:27 +01:00
|
|
|
*
|
2018-04-22 23:49:41 +02:00
|
|
|
* \param [in] appName Application name
|
|
|
|
* \returns DXBC options for this application
|
2018-01-07 20:05:27 +01:00
|
|
|
*/
|
2018-04-22 23:49:41 +02:00
|
|
|
DxbcOptions getDxbcAppOptions(const std::string& appName);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* \brief Gets device-specific options
|
|
|
|
*
|
|
|
|
* \param [in] device The device
|
|
|
|
* \returns Device options
|
|
|
|
*/
|
|
|
|
DxbcOptions getDxbcDeviceOptions(const Rc<DxvkDevice>& device);
|
2018-01-07 20:05:27 +01:00
|
|
|
|
|
|
|
}
|