2018-01-07 20:05:27 +01:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "../dxvk/dxvk_device.h"
|
|
|
|
|
|
|
|
namespace dxvk {
|
2018-11-23 16:11:46 +01:00
|
|
|
|
|
|
|
struct D3D11Options;
|
2018-01-07 20:05:27 +01:00
|
|
|
|
2018-11-09 08:41:02 +01:00
|
|
|
struct DxbcOptions {
|
|
|
|
DxbcOptions();
|
2018-11-23 16:11:46 +01:00
|
|
|
DxbcOptions(const Rc<DxvkDevice>& device, const D3D11Options& options);
|
2018-11-09 08:41:02 +01:00
|
|
|
|
2018-04-22 23:49:41 +02:00
|
|
|
/// Use the ShaderImageReadWithoutFormat capability.
|
2018-11-09 08:41:02 +01:00
|
|
|
bool useStorageImageReadWithoutFormat = false;
|
2018-11-07 11:57:36 +01:00
|
|
|
|
|
|
|
/// Use subgroup operations to discard fragment
|
|
|
|
/// shader invocations if derivatives remain valid.
|
|
|
|
bool useSubgroupOpsForEarlyDiscard = false;
|
2018-11-11 17:49:11 +01:00
|
|
|
|
2018-12-13 12:17:09 +01:00
|
|
|
/// Use SSBOs instead of texel buffers
|
|
|
|
/// for raw and structured buffers.
|
|
|
|
bool useRawSsbo = false;
|
|
|
|
|
2019-02-05 19:58:46 +01:00
|
|
|
/// Enables sm4-compliant division-by-zero behaviour
|
|
|
|
bool strictDivision = false;
|
|
|
|
|
2018-11-23 15:57:54 +01:00
|
|
|
/// Clear thread-group shared memory to zero
|
|
|
|
bool zeroInitWorkgroupMemory = false;
|
2018-04-22 23:49:41 +02:00
|
|
|
};
|
|
|
|
|
2018-01-07 20:05:27 +01:00
|
|
|
}
|