|
@@ -1161,6 +1161,17 @@ public:
|
|
BOOL Int64ShaderOps;
|
|
BOOL Int64ShaderOps;
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+ bool IsDeviceBasicAdapter(ID3D12Device *pDevice) {
|
|
|
|
+ CComPtr<IDXGIFactory4> factory;
|
|
|
|
+ VERIFY_SUCCEEDED(CreateDXGIFactory1(IID_PPV_ARGS(&factory)));
|
|
|
|
+ LUID adapterID = pDevice->GetAdapterLuid();
|
|
|
|
+ CComPtr<IDXGIAdapter1> adapter;
|
|
|
|
+ factory->EnumAdapterByLuid(adapterID, IID_PPV_ARGS(&adapter));
|
|
|
|
+ DXGI_ADAPTER_DESC1 AdapterDesc;
|
|
|
|
+ VERIFY_SUCCEEDED(adapter->GetDesc1(&AdapterDesc));
|
|
|
|
+ return (AdapterDesc.Flags & DXGI_ADAPTER_FLAG_SOFTWARE);
|
|
|
|
+ }
|
|
|
|
+
|
|
bool DoesDeviceSupportInt64(ID3D12Device *pDevice) {
|
|
bool DoesDeviceSupportInt64(ID3D12Device *pDevice) {
|
|
D3D12_FEATURE_DATA_D3D12_OPTIONS1 O;
|
|
D3D12_FEATURE_DATA_D3D12_OPTIONS1 O;
|
|
if (FAILED(pDevice->CheckFeatureSupport((D3D12_FEATURE)D3D12_FEATURE_D3D12_OPTIONS1, &O, sizeof(O))))
|
|
if (FAILED(pDevice->CheckFeatureSupport((D3D12_FEATURE)D3D12_FEATURE_D3D12_OPTIONS1, &O, sizeof(O))))
|
|
@@ -3208,7 +3219,7 @@ TEST_F(ExecutionTest, QuadReadTest) {
|
|
if (!CreateDevice(&pDevice))
|
|
if (!CreateDevice(&pDevice))
|
|
return;
|
|
return;
|
|
|
|
|
|
- if (GetTestParamUseWARP(UseWarpByDefault())) {
|
|
|
|
|
|
+ if (GetTestParamUseWARP(UseWarpByDefault()) || IsDeviceBasicAdapter(pDevice)) {
|
|
WEX::Logging::Log::Comment(L"WARP does not support QuadRead in compute shaders.");
|
|
WEX::Logging::Log::Comment(L"WARP does not support QuadRead in compute shaders.");
|
|
WEX::Logging::Log::Result(WEX::Logging::TestResults::Skipped);
|
|
WEX::Logging::Log::Result(WEX::Logging::TestResults::Skipped);
|
|
return;
|
|
return;
|