mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-03-15 07:29:17 +01:00
Revert "[d3d11] Remvoed query support"
This reverts commit 3d17eb68b9423213b8b345c6bc14209a06c1bde5.
This commit is contained in:
parent
14845628c4
commit
3ebafcc281
@ -168,40 +168,33 @@ namespace dxvk {
|
|||||||
HRESULT STDMETHODCALLTYPE D3D11Query::GetData(
|
HRESULT STDMETHODCALLTYPE D3D11Query::GetData(
|
||||||
void* pData,
|
void* pData,
|
||||||
UINT GetDataFlags) {
|
UINT GetDataFlags) {
|
||||||
// FIXME returning query data seems to lock up some
|
|
||||||
// games for some reason, so we have to disable it.
|
|
||||||
if (m_desc.Query == D3D11_QUERY_EVENT) {
|
if (m_desc.Query == D3D11_QUERY_EVENT) {
|
||||||
return S_OK;
|
const bool signaled = m_event->getStatus() == DxvkEventStatus::Signaled;
|
||||||
// const bool signaled = m_event->getStatus() == DxvkEventStatus::Signaled;
|
if (pData != nullptr)
|
||||||
// if (pData != nullptr)
|
*static_cast<BOOL*>(pData) = signaled;
|
||||||
// *static_cast<BOOL*>(pData) = signaled;
|
|
||||||
//
|
return signaled ? S_OK : S_FALSE;
|
||||||
// return signaled ? S_OK : S_FALSE;
|
|
||||||
} else {
|
} else {
|
||||||
// DxvkQueryData queryData = {};
|
DxvkQueryData queryData = {};
|
||||||
//
|
|
||||||
// if (m_query != nullptr
|
if (m_query != nullptr
|
||||||
// && m_query->getData(queryData) != DxvkQueryStatus::Available)
|
&& m_query->getData(queryData) != DxvkQueryStatus::Available)
|
||||||
// return S_FALSE;
|
return S_FALSE;
|
||||||
|
|
||||||
if (pData == nullptr)
|
if (pData == nullptr)
|
||||||
return S_OK;
|
return S_OK;
|
||||||
|
|
||||||
switch (m_desc.Query) {
|
switch (m_desc.Query) {
|
||||||
case D3D11_QUERY_OCCLUSION:
|
case D3D11_QUERY_OCCLUSION:
|
||||||
*static_cast<UINT64*>(pData) = 1;
|
*static_cast<UINT64*>(pData) = queryData.occlusion.samplesPassed;
|
||||||
// *static_cast<UINT64*>(pData) = queryData.occlusion.samplesPassed;
|
|
||||||
return S_OK;
|
return S_OK;
|
||||||
|
|
||||||
case D3D11_QUERY_OCCLUSION_PREDICATE:
|
case D3D11_QUERY_OCCLUSION_PREDICATE:
|
||||||
*static_cast<BOOL*>(pData) = TRUE;
|
*static_cast<BOOL*>(pData) = queryData.occlusion.samplesPassed != 0;
|
||||||
// *static_cast<BOOL*>(pData) = queryData.occlusion.samplesPassed != 0;
|
|
||||||
return S_OK;
|
return S_OK;
|
||||||
|
|
||||||
case D3D11_QUERY_TIMESTAMP:
|
case D3D11_QUERY_TIMESTAMP:
|
||||||
static UINT64 fakeTime = 0;
|
*static_cast<UINT64*>(pData) = queryData.timestamp.time;
|
||||||
*static_cast<UINT64*>(pData) = fakeTime++;
|
|
||||||
// *static_cast<UINT64*>(pData) = queryData.timestamp.time;
|
|
||||||
return S_OK;
|
return S_OK;
|
||||||
|
|
||||||
case D3D11_QUERY_TIMESTAMP_DISJOINT: {
|
case D3D11_QUERY_TIMESTAMP_DISJOINT: {
|
||||||
@ -213,18 +206,17 @@ namespace dxvk {
|
|||||||
|
|
||||||
case D3D11_QUERY_PIPELINE_STATISTICS: {
|
case D3D11_QUERY_PIPELINE_STATISTICS: {
|
||||||
auto data = static_cast<D3D11_QUERY_DATA_PIPELINE_STATISTICS*>(pData);
|
auto data = static_cast<D3D11_QUERY_DATA_PIPELINE_STATISTICS*>(pData);
|
||||||
*data = D3D11_QUERY_DATA_PIPELINE_STATISTICS();
|
data->IAVertices = queryData.statistic.iaVertices;
|
||||||
// data->IAVertices = queryData.statistic.iaVertices;
|
data->IAPrimitives = queryData.statistic.iaPrimitives;
|
||||||
// data->IAPrimitives = queryData.statistic.iaPrimitives;
|
data->VSInvocations = queryData.statistic.vsInvocations;
|
||||||
// data->VSInvocations = queryData.statistic.vsInvocations;
|
data->GSInvocations = queryData.statistic.gsInvocations;
|
||||||
// data->GSInvocations = queryData.statistic.gsInvocations;
|
data->GSPrimitives = queryData.statistic.gsPrimitives;
|
||||||
// data->GSPrimitives = queryData.statistic.gsPrimitives;
|
data->CInvocations = queryData.statistic.clipInvocations;
|
||||||
// data->CInvocations = queryData.statistic.clipInvocations;
|
data->CPrimitives = queryData.statistic.clipPrimitives;
|
||||||
// data->CPrimitives = queryData.statistic.clipPrimitives;
|
data->PSInvocations = queryData.statistic.fsInvocations;
|
||||||
// data->PSInvocations = queryData.statistic.fsInvocations;
|
data->HSInvocations = queryData.statistic.tcsPatches;
|
||||||
// data->HSInvocations = queryData.statistic.tcsPatches;
|
data->DSInvocations = queryData.statistic.tesInvocations;
|
||||||
// data->DSInvocations = queryData.statistic.tesInvocations;
|
data->CSInvocations = queryData.statistic.csInvocations;
|
||||||
// data->CSInvocations = queryData.statistic.csInvocations;
|
|
||||||
} return S_OK;
|
} return S_OK;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user