From 3d17eb68b9423213b8b345c6bc14209a06c1bde5 Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Fri, 23 Feb 2018 13:17:24 +0100 Subject: [PATCH] [d3d11] Remvoed query support Breaks too many games. --- src/d3d11/d3d11_query.cpp | 56 ++++++++++++++++++++++----------------- 1 file changed, 32 insertions(+), 24 deletions(-) diff --git a/src/d3d11/d3d11_query.cpp b/src/d3d11/d3d11_query.cpp index 998311ec..288a757d 100644 --- a/src/d3d11/d3d11_query.cpp +++ b/src/d3d11/d3d11_query.cpp @@ -168,33 +168,40 @@ namespace dxvk { HRESULT STDMETHODCALLTYPE D3D11Query::GetData( void* pData, 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) { - const bool signaled = m_event->getStatus() == DxvkEventStatus::Signaled; - if (pData != nullptr) - *static_cast(pData) = signaled; - - return signaled ? S_OK : S_FALSE; + return S_OK; +// const bool signaled = m_event->getStatus() == DxvkEventStatus::Signaled; +// if (pData != nullptr) +// *static_cast(pData) = signaled; +// +// return signaled ? S_OK : S_FALSE; } else { - DxvkQueryData queryData = {}; - - if (m_query != nullptr - && m_query->getData(queryData) != DxvkQueryStatus::Available) - return S_FALSE; +// DxvkQueryData queryData = {}; +// +// if (m_query != nullptr +// && m_query->getData(queryData) != DxvkQueryStatus::Available) +// return S_FALSE; if (pData == nullptr) return S_OK; switch (m_desc.Query) { case D3D11_QUERY_OCCLUSION: - *static_cast(pData) = queryData.occlusion.samplesPassed; + *static_cast(pData) = 1; +// *static_cast(pData) = queryData.occlusion.samplesPassed; return S_OK; case D3D11_QUERY_OCCLUSION_PREDICATE: - *static_cast(pData) = queryData.occlusion.samplesPassed != 0; + *static_cast(pData) = TRUE; +// *static_cast(pData) = queryData.occlusion.samplesPassed != 0; return S_OK; case D3D11_QUERY_TIMESTAMP: - *static_cast(pData) = queryData.timestamp.time; + static UINT64 fakeTime = 0; + *static_cast(pData) = fakeTime++; +// *static_cast(pData) = queryData.timestamp.time; return S_OK; case D3D11_QUERY_TIMESTAMP_DISJOINT: { @@ -206,17 +213,18 @@ namespace dxvk { case D3D11_QUERY_PIPELINE_STATISTICS: { auto data = static_cast(pData); - data->IAVertices = queryData.statistic.iaVertices; - data->IAPrimitives = queryData.statistic.iaPrimitives; - data->VSInvocations = queryData.statistic.vsInvocations; - data->GSInvocations = queryData.statistic.gsInvocations; - data->GSPrimitives = queryData.statistic.gsPrimitives; - data->CInvocations = queryData.statistic.clipInvocations; - data->CPrimitives = queryData.statistic.clipPrimitives; - data->PSInvocations = queryData.statistic.fsInvocations; - data->HSInvocations = queryData.statistic.tcsPatches; - data->DSInvocations = queryData.statistic.tesInvocations; - data->CSInvocations = queryData.statistic.csInvocations; + *data = D3D11_QUERY_DATA_PIPELINE_STATISTICS(); +// data->IAVertices = queryData.statistic.iaVertices; +// data->IAPrimitives = queryData.statistic.iaPrimitives; +// data->VSInvocations = queryData.statistic.vsInvocations; +// data->GSInvocations = queryData.statistic.gsInvocations; +// data->GSPrimitives = queryData.statistic.gsPrimitives; +// data->CInvocations = queryData.statistic.clipInvocations; +// data->CPrimitives = queryData.statistic.clipPrimitives; +// data->PSInvocations = queryData.statistic.fsInvocations; +// data->HSInvocations = queryData.statistic.tcsPatches; +// data->DSInvocations = queryData.statistic.tesInvocations; +// data->CSInvocations = queryData.statistic.csInvocations; } return S_OK; default: