mirror of
https://github.com/EduApps-CDG/OpenDX
synced 2024-12-30 09:45:37 +01:00
[dxvk] Introduce new 'Created' state for queries
New initial state for queries. D3D11 returns an error when trying to retrieve data from a query in this state, rather than S_FALSE or S_OK.
This commit is contained in:
parent
d7441f274b
commit
ea9e812798
@ -201,9 +201,15 @@ namespace dxvk {
|
|||||||
} else {
|
} else {
|
||||||
DxvkQueryData queryData = {};
|
DxvkQueryData queryData = {};
|
||||||
|
|
||||||
if (m_query != nullptr
|
if (m_query != nullptr) {
|
||||||
&& m_query->getData(queryData) != DxvkQueryStatus::Available)
|
DxvkQueryStatus status = m_query->getData(queryData);
|
||||||
return S_FALSE;
|
|
||||||
|
if (status == DxvkQueryStatus::Created)
|
||||||
|
return DXGI_ERROR_INVALID_CALL;
|
||||||
|
|
||||||
|
if (status != DxvkQueryStatus::Available)
|
||||||
|
return S_FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
if (pData == nullptr)
|
if (pData == nullptr)
|
||||||
return S_OK;
|
return S_OK;
|
||||||
|
@ -13,10 +13,11 @@ namespace dxvk {
|
|||||||
* the current status of the query.
|
* the current status of the query.
|
||||||
*/
|
*/
|
||||||
enum class DxvkQueryStatus : uint32_t {
|
enum class DxvkQueryStatus : uint32_t {
|
||||||
Reset = 0, ///< Query is reset
|
Created = 0, ///< Query was just created
|
||||||
Active = 1, ///< Query is being recorded
|
Reset = 1, ///< Query is reset
|
||||||
Pending = 2, ///< Query has been recorded
|
Active = 2, ///< Query is being recorded
|
||||||
Available = 3, ///< Query results can be retrieved
|
Pending = 3, ///< Query has been recorded
|
||||||
|
Available = 4, ///< Query results can be retrieved
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -190,7 +191,7 @@ namespace dxvk {
|
|||||||
|
|
||||||
std::mutex m_mutex;
|
std::mutex m_mutex;
|
||||||
|
|
||||||
DxvkQueryStatus m_status = DxvkQueryStatus::Reset;
|
DxvkQueryStatus m_status = DxvkQueryStatus::Created;
|
||||||
DxvkQueryData m_data = {};
|
DxvkQueryData m_data = {};
|
||||||
DxvkQueryHandle m_handle;
|
DxvkQueryHandle m_handle;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user