mirror of
https://github.com/doitsujin/dxvk.git
synced 2024-12-14 00:48:44 +01:00
d94d89c3ef
This can greatly reduce the number of atomic operations when using append/consume buffers.
47 lines
1.4 KiB
C++
47 lines
1.4 KiB
C++
#pragma once
|
|
|
|
#include "../dxvk/dxvk_device.h"
|
|
|
|
namespace dxvk {
|
|
|
|
struct D3D11Options;
|
|
|
|
struct DxbcOptions {
|
|
DxbcOptions();
|
|
DxbcOptions(const Rc<DxvkDevice>& device, const D3D11Options& options);
|
|
|
|
// Clamp oDepth in fragment shaders if the depth
|
|
// clip device feature is not supported
|
|
bool useDepthClipWorkaround = false;
|
|
|
|
/// Use the ShaderImageReadWithoutFormat capability.
|
|
bool useStorageImageReadWithoutFormat = false;
|
|
|
|
/// Use subgroup operations to reduce the number of
|
|
/// atomic operations for append/consume buffers.
|
|
bool useSubgroupOpsForAtomicCounters = false;
|
|
|
|
/// Use subgroup operations to discard fragment
|
|
/// shader invocations if derivatives remain valid.
|
|
bool useSubgroupOpsForEarlyDiscard = false;
|
|
|
|
/// Use SSBOs instead of texel buffers
|
|
/// for raw and structured buffers.
|
|
bool useRawSsbo = false;
|
|
|
|
/// Use SDiv instead of SHR to converte byte offsets to
|
|
/// dword offsets. Fixes RE2 and DMC5 on Nvidia drivers.
|
|
bool useSdivForBufferIndex = false;
|
|
|
|
/// Enables sm4-compliant division-by-zero behaviour
|
|
bool strictDivision = false;
|
|
|
|
// Enables range checking for constant buffers.
|
|
// Fixes issues in some games, breaks others.
|
|
bool constantBufferRangeCheck = false;
|
|
|
|
/// Clear thread-group shared memory to zero
|
|
bool zeroInitWorkgroupMemory = false;
|
|
};
|
|
|
|
} |