1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-02-18 04:54:15 +01:00

[dxvk] Reintroduce resource cookies

This commit is contained in:
Philip Rebohle 2024-10-17 22:06:19 +02:00 committed by Philip Rebohle
parent 809257051b
commit 7ccfb57d57
2 changed files with 18 additions and 0 deletions

View File

@ -7,6 +7,9 @@
namespace dxvk {
std::atomic<uint64_t> DxvkPagedResource::s_cookie = { 0u };
DxvkPagedResource::~DxvkPagedResource() {
}

View File

@ -1,5 +1,6 @@
#pragma once
#include <atomic>
#include <map>
#include "dxvk_access.h"
@ -434,8 +435,19 @@ namespace dxvk {
public:
DxvkPagedResource()
: m_cookie(++s_cookie) { }
virtual ~DxvkPagedResource();
/**
* \brief Queries resource cookie
* \returns Resource cookie
*/
uint64_t cookie() const {
return m_cookie;
}
/**
* \brief Increments reference count
*/
@ -513,11 +525,14 @@ namespace dxvk {
private:
std::atomic<uint64_t> m_useCount = { 0u };
uint64_t m_cookie = { 0u };
static constexpr uint64_t getIncrement(DxvkAccess access) {
return uint64_t(1u) << (uint32_t(access) * 20u);
}
static std::atomic<uint64_t> s_cookie;
};