mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-02-20 10:54:16 +01:00
[dxvk] Reintroduce resource cookies
This commit is contained in:
parent
809257051b
commit
7ccfb57d57
@ -7,6 +7,9 @@
|
|||||||
|
|
||||||
namespace dxvk {
|
namespace dxvk {
|
||||||
|
|
||||||
|
std::atomic<uint64_t> DxvkPagedResource::s_cookie = { 0u };
|
||||||
|
|
||||||
|
|
||||||
DxvkPagedResource::~DxvkPagedResource() {
|
DxvkPagedResource::~DxvkPagedResource() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <atomic>
|
||||||
#include <map>
|
#include <map>
|
||||||
|
|
||||||
#include "dxvk_access.h"
|
#include "dxvk_access.h"
|
||||||
@ -434,8 +435,19 @@ namespace dxvk {
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
DxvkPagedResource()
|
||||||
|
: m_cookie(++s_cookie) { }
|
||||||
|
|
||||||
virtual ~DxvkPagedResource();
|
virtual ~DxvkPagedResource();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Queries resource cookie
|
||||||
|
* \returns Resource cookie
|
||||||
|
*/
|
||||||
|
uint64_t cookie() const {
|
||||||
|
return m_cookie;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Increments reference count
|
* \brief Increments reference count
|
||||||
*/
|
*/
|
||||||
@ -513,11 +525,14 @@ namespace dxvk {
|
|||||||
private:
|
private:
|
||||||
|
|
||||||
std::atomic<uint64_t> m_useCount = { 0u };
|
std::atomic<uint64_t> m_useCount = { 0u };
|
||||||
|
uint64_t m_cookie = { 0u };
|
||||||
|
|
||||||
static constexpr uint64_t getIncrement(DxvkAccess access) {
|
static constexpr uint64_t getIncrement(DxvkAccess access) {
|
||||||
return uint64_t(1u) << (uint32_t(access) * 20u);
|
return uint64_t(1u) << (uint32_t(access) * 20u);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static std::atomic<uint64_t> s_cookie;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user