1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2024-11-29 10:24:10 +01:00

[d3d9] Delegate VCACHE check to QuerySupported

Fixes a failing Wine test
This commit is contained in:
Joshua Ashton 2020-02-28 00:59:44 +00:00
parent 3332bb2844
commit c07f8c941c
3 changed files with 8 additions and 6 deletions

View File

@ -3159,7 +3159,7 @@ namespace dxvk {
HRESULT STDMETHODCALLTYPE D3D9DeviceEx::CreateQuery(D3DQUERYTYPE Type, IDirect3DQuery9** ppQuery) {
InitReturnPtr(ppQuery);
HRESULT hr = D3D9Query::QuerySupported(Type);
HRESULT hr = D3D9Query::QuerySupported(this, Type);
if (ppQuery == nullptr || hr != D3D_OK)
return hr;

View File

@ -13,9 +13,7 @@ namespace dxvk {
Rc<DxvkDevice> dxvkDevice = m_parent->GetDXVKDevice();
switch (m_queryType) {
case D3DQUERYTYPE_VCACHE:
if (!pDevice->GetOptions()->supportVCache)
throw DxvkError(str::format("D3D9Query: Unsupported query type ", m_queryType, " (from d3d9.supportVCache)"));
case D3DQUERYTYPE_VCACHE:
break;
case D3DQUERYTYPE_EVENT:
@ -293,9 +291,13 @@ namespace dxvk {
}
HRESULT D3D9Query::QuerySupported(D3DQUERYTYPE QueryType) {
HRESULT D3D9Query::QuerySupported(D3D9DeviceEx* pDevice, D3DQUERYTYPE QueryType) {
switch (QueryType) {
case D3DQUERYTYPE_VCACHE:
if (!pDevice->GetOptions()->supportVCache)
return D3DERR_NOTAVAILABLE;
return D3D_OK;
case D3DQUERYTYPE_EVENT:
case D3DQUERYTYPE_OCCLUSION:
case D3DQUERYTYPE_TIMESTAMP:

View File

@ -48,7 +48,7 @@ namespace dxvk {
static bool QueryBeginnable(D3DQUERYTYPE QueryType);
static bool QueryEndable(D3DQUERYTYPE QueryType);
static HRESULT QuerySupported(D3DQUERYTYPE QueryType);
static HRESULT QuerySupported(D3D9DeviceEx* pDevice, D3DQUERYTYPE QueryType);
bool IsEvent() const {
return m_queryType == D3DQUERYTYPE_EVENT;