mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-02-27 04:54:15 +01:00
[dxvk] Introduce concept of order-invariant atomic stores
This commit is contained in:
parent
8c7da07085
commit
d94e3633dc
@ -11,6 +11,24 @@ namespace dxvk {
|
|||||||
|
|
||||||
class DxvkDevice;
|
class DxvkDevice;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Order-invariant atomic access operation
|
||||||
|
*
|
||||||
|
* Information used to optimize barriers when a resource
|
||||||
|
* is accessed exlusively via order-invariant stores.
|
||||||
|
*/
|
||||||
|
enum class DxvkAccessOp : uint32_t {
|
||||||
|
None = 0,
|
||||||
|
Or = 1,
|
||||||
|
And = 2,
|
||||||
|
Xor = 3,
|
||||||
|
Add = 4,
|
||||||
|
IMin = 5,
|
||||||
|
IMax = 6,
|
||||||
|
UMin = 7,
|
||||||
|
UMax = 8,
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Descriptor set indices
|
* \brief Descriptor set indices
|
||||||
*/
|
*/
|
||||||
@ -37,6 +55,7 @@ namespace dxvk {
|
|||||||
VkShaderStageFlagBits stage; ///< Shader stage
|
VkShaderStageFlagBits stage; ///< Shader stage
|
||||||
VkAccessFlags access; ///< Access mask for the resource
|
VkAccessFlags access; ///< Access mask for the resource
|
||||||
VkBool32 uboSet; ///< Whether to include this in the UBO set
|
VkBool32 uboSet; ///< Whether to include this in the UBO set
|
||||||
|
DxvkAccessOp accessOp; ///< Order-invariant store type, if any
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Computes descriptor set index for the given binding
|
* \brief Computes descriptor set index for the given binding
|
||||||
|
Loading…
x
Reference in New Issue
Block a user