summaryrefslogtreecommitdiffstats
path: root/Graphics/GraphicsEngineVulkan
diff options
context:
space:
mode:
authorassiduous <assiduous@diligentgraphics.com>2020-01-07 04:53:34 +0000
committerassiduous <assiduous@diligentgraphics.com>2020-01-07 04:53:34 +0000
commit0c99ee543ef936ef770f4b11fa77e08c2f736c1b (patch)
tree9ca3812fd317e3366f975b74e8c67b8cb928fc89 /Graphics/GraphicsEngineVulkan
parentAdded workaround for inteface type mismatch error in GS references VK (diff)
downloadDiligentCore-0c99ee543ef936ef770f4b11fa77e08c2f736c1b.tar.gz
DiligentCore-0c99ee543ef936ef770f4b11fa77e08c2f736c1b.zip
Improved device feature reporting; added flags for query support
Diffstat (limited to 'Graphics/GraphicsEngineVulkan')
-rw-r--r--Graphics/GraphicsEngineVulkan/src/RenderDeviceVkImpl.cpp28
1 files changed, 19 insertions, 9 deletions
diff --git a/Graphics/GraphicsEngineVulkan/src/RenderDeviceVkImpl.cpp b/Graphics/GraphicsEngineVulkan/src/RenderDeviceVkImpl.cpp
index 8b6c93da..b1daf423 100644
--- a/Graphics/GraphicsEngineVulkan/src/RenderDeviceVkImpl.cpp
+++ b/Graphics/GraphicsEngineVulkan/src/RenderDeviceVkImpl.cpp
@@ -147,18 +147,28 @@ RenderDeviceVkImpl::RenderDeviceVkImpl(IReferenceCounters*
}
// clang-format on
{
- m_DeviceCaps.DevType = DeviceType::Vulkan;
- m_DeviceCaps.MajorVersion = 1;
- m_DeviceCaps.MinorVersion = 0;
- m_DeviceCaps.AdaterType = ADAPTER_TYPE_HARDWARE;
- m_DeviceCaps.bSeparableProgramSupported = True;
- m_DeviceCaps.bMultithreadedResourceCreationSupported = True;
+ m_DeviceCaps.DevType = DeviceType::Vulkan;
+ m_DeviceCaps.MajorVersion = 1;
+ m_DeviceCaps.MinorVersion = 0;
+ m_DeviceCaps.AdaterType = ADAPTER_TYPE_HARDWARE;
for (Uint32 fmt = 1; fmt < m_TextureFormatsInfo.size(); ++fmt)
m_TextureFormatsInfo[fmt].Supported = true; // We will test every format on a specific hardware device
- m_DeviceCaps.bGeometryShadersSupported = EngineCI.EnabledFeatures.geometryShader;
- m_DeviceCaps.bTessellationSupported = EngineCI.EnabledFeatures.tessellationShader;
- m_DeviceCaps.bBindlessSupported = True;
+ auto& Features = m_DeviceCaps.Features;
+ const auto& vkDeviceFeatures = m_PhysicalDevice->GetFeatures();
+
+ Features.SeparablePrograms = True;
+ Features.IndirectRendering = True;
+ Features.WireframeFill = True;
+ Features.MultithreadedResourceCreation = True;
+ Features.ComputeShaders = True;
+ Features.GeometryShaders = vkDeviceFeatures.geometryShader != VK_FALSE;
+ Features.Tessellation = vkDeviceFeatures.tessellationShader != VK_FALSE;
+ Features.BindlessResources = True;
+ Features.OcclusionQueries = vkDeviceFeatures.occlusionQueryPrecise != VK_FALSE;
+ Features.BinaryOcclusionQueries = True;
+ Features.TimestampQueries = True;
+ Features.PipelineStatisticsQueries = vkDeviceFeatures.pipelineStatisticsQuery != VK_FALSE;
}
RenderDeviceVkImpl::~RenderDeviceVkImpl()