summaryrefslogtreecommitdiffstats
path: root/Graphics/GraphicsEngineVulkan
diff options
context:
space:
mode:
authorazhirnov <zh1dron@gmail.com>2020-09-16 20:01:43 +0000
committerazhirnov <zh1dron@gmail.com>2020-09-16 20:01:43 +0000
commit3c3f03fa05bd16c2340713895421119d8b3cdffe (patch)
treefa7265524b71c400728cad62381fe5e4d0d4ed42 /Graphics/GraphicsEngineVulkan
parentuse NUM_SHADER_TYPES constant instead of magic number, use std::array instead... (diff)
downloadDiligentCore-3c3f03fa05bd16c2340713895421119d8b3cdffe.tar.gz
DiligentCore-3c3f03fa05bd16c2340713895421119d8b3cdffe.zip
remove some VK_NV_mesh_shader
Diffstat (limited to 'Graphics/GraphicsEngineVulkan')
-rw-r--r--Graphics/GraphicsEngineVulkan/src/EngineFactoryVk.cpp10
-rw-r--r--Graphics/GraphicsEngineVulkan/src/PipelineLayout.cpp2
-rw-r--r--Graphics/GraphicsEngineVulkan/src/PipelineStateVkImpl.cpp2
-rw-r--r--Graphics/GraphicsEngineVulkan/src/RenderDeviceVkImpl.cpp4
-rw-r--r--Graphics/GraphicsEngineVulkan/src/VulkanUtilities/VulkanInstance.cpp2
-rw-r--r--Graphics/GraphicsEngineVulkan/src/VulkanUtilities/VulkanPhysicalDevice.cpp4
6 files changed, 5 insertions, 19 deletions
diff --git a/Graphics/GraphicsEngineVulkan/src/EngineFactoryVk.cpp b/Graphics/GraphicsEngineVulkan/src/EngineFactoryVk.cpp
index 35db310b..35202b1e 100644
--- a/Graphics/GraphicsEngineVulkan/src/EngineFactoryVk.cpp
+++ b/Graphics/GraphicsEngineVulkan/src/EngineFactoryVk.cpp
@@ -231,26 +231,22 @@ void EngineFactoryVkImpl::CreateDeviceAndContextsVk(const EngineVkCreateInfo& _E
bool SupportsFeatures2 = Instance->IsExtensionEnabled(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME);
void** NextExt = const_cast<void**>(&DeviceCreateInfo.pNext);
- // Variables may be unused if extensions are disabled.
- (void)SupportsFeatures2;
- (void)NextExt;
-
// Enable mesh shader extension.
bool MeshShadersSupported = false;
-#ifdef VK_NV_mesh_shader
if (EngineCI.Features.MeshShaders != DEVICE_FEATURE_STATE_DISABLED)
{
VkPhysicalDeviceMeshShaderFeaturesNV MeshShaderFeats = PhysicalDevice->GetExtFeatures().MeshShader;
if (SupportsFeatures2 && PhysicalDevice->IsExtensionSupported(VK_NV_MESH_SHADER_EXTENSION_NAME))
{
- MeshShadersSupported = true;
+ MeshShadersSupported = MeshShaderFeats.taskShader != VK_FALSE && MeshShaderFeats.meshShader != VK_FALSE;
DeviceExtensions.push_back(VK_NV_MESH_SHADER_EXTENSION_NAME);
*NextExt = &MeshShaderFeats;
NextExt = &MeshShaderFeats.pNext;
}
+
+ *NextExt = nullptr;
}
-#endif
if (EngineCI.Features.MeshShaders == DEVICE_FEATURE_STATE_ENABLED && !MeshShadersSupported)
LOG_ERROR_AND_THROW("Mesh shaders are not supported by this device");
diff --git a/Graphics/GraphicsEngineVulkan/src/PipelineLayout.cpp b/Graphics/GraphicsEngineVulkan/src/PipelineLayout.cpp
index 65c948a4..2fd063c9 100644
--- a/Graphics/GraphicsEngineVulkan/src/PipelineLayout.cpp
+++ b/Graphics/GraphicsEngineVulkan/src/PipelineLayout.cpp
@@ -53,10 +53,8 @@ static VkShaderStageFlagBits ShaderTypeToVkShaderStageFlagBit(SHADER_TYPE Shader
case SHADER_TYPE_GEOMETRY: return VK_SHADER_STAGE_GEOMETRY_BIT;
case SHADER_TYPE_PIXEL: return VK_SHADER_STAGE_FRAGMENT_BIT;
case SHADER_TYPE_COMPUTE: return VK_SHADER_STAGE_COMPUTE_BIT;
-#ifdef VK_NV_mesh_shader
case SHADER_TYPE_AMPLIFICATION: return VK_SHADER_STAGE_TASK_BIT_NV;
case SHADER_TYPE_MESH: return VK_SHADER_STAGE_MESH_BIT_NV;
-#endif
// clang-format on
default:
UNEXPECTED("Unknown shader type");
diff --git a/Graphics/GraphicsEngineVulkan/src/PipelineStateVkImpl.cpp b/Graphics/GraphicsEngineVulkan/src/PipelineStateVkImpl.cpp
index 949086b8..c5b70426 100644
--- a/Graphics/GraphicsEngineVulkan/src/PipelineStateVkImpl.cpp
+++ b/Graphics/GraphicsEngineVulkan/src/PipelineStateVkImpl.cpp
@@ -230,10 +230,8 @@ PipelineStateVkImpl::PipelineStateVkImpl(IReferenceCounters* pRefCoun
case SHADER_TYPE_GEOMETRY: StageCI.stage = VK_SHADER_STAGE_GEOMETRY_BIT; break;
case SHADER_TYPE_PIXEL: StageCI.stage = VK_SHADER_STAGE_FRAGMENT_BIT; break;
case SHADER_TYPE_COMPUTE: StageCI.stage = VK_SHADER_STAGE_COMPUTE_BIT; break;
-#ifdef VK_NV_mesh_shader
case SHADER_TYPE_AMPLIFICATION: StageCI.stage = VK_SHADER_STAGE_TASK_BIT_NV; break;
case SHADER_TYPE_MESH: StageCI.stage = VK_SHADER_STAGE_MESH_BIT_NV; break;
-#endif
default: UNEXPECTED("Unknown shader type");
// clang-format on
}
diff --git a/Graphics/GraphicsEngineVulkan/src/RenderDeviceVkImpl.cpp b/Graphics/GraphicsEngineVulkan/src/RenderDeviceVkImpl.cpp
index ccbc8e5f..a458d7be 100644
--- a/Graphics/GraphicsEngineVulkan/src/RenderDeviceVkImpl.cpp
+++ b/Graphics/GraphicsEngineVulkan/src/RenderDeviceVkImpl.cpp
@@ -195,12 +195,8 @@ RenderDeviceVkImpl::RenderDeviceVkImpl(IReferenceCounters*
Features.PixelUAVWritesAndAtomics = GetFeatureState(vkEnabledFeatures.fragmentStoresAndAtomics);
Features.TextureUAVExtendedFormats = GetFeatureState(vkEnabledFeatures.shaderStorageImageExtendedFormats);
-#ifdef VK_NV_mesh_shader
// All devices that support mesh shaders also support task shaders, so it is not necessary to use two separate features.
Features.MeshShaders = GetFeatureState(EngineCI.Features.MeshShaders != DEVICE_FEATURE_STATE_DISABLED && vkExtFeatures.MeshShader.meshShader != VK_FALSE && vkExtFeatures.MeshShader.taskShader != VK_FALSE);
-#else
- Features.MeshShaders = DEVICE_FEATURE_STATE_DISABLED;
-#endif
#if defined(_MSC_VER) && defined(_WIN64)
static_assert(sizeof(DeviceFeatures) == 23, "Did you add a new feature to DeviceFeatures? Please handle its satus here.");
diff --git a/Graphics/GraphicsEngineVulkan/src/VulkanUtilities/VulkanInstance.cpp b/Graphics/GraphicsEngineVulkan/src/VulkanUtilities/VulkanInstance.cpp
index ead31fe5..a03102d0 100644
--- a/Graphics/GraphicsEngineVulkan/src/VulkanUtilities/VulkanInstance.cpp
+++ b/Graphics/GraphicsEngineVulkan/src/VulkanUtilities/VulkanInstance.cpp
@@ -148,12 +148,10 @@ VulkanInstance::VulkanInstance(bool EnableValidation,
};
// This extension added to core in 1.1, but current version is 1.0
-#ifdef VK_KHR_get_physical_device_properties2
if (IsExtensionAvailable(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME))
{
GlobalExtensions.push_back(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME);
}
-#endif
if (ppGlobalExtensionNames != nullptr)
{
diff --git a/Graphics/GraphicsEngineVulkan/src/VulkanUtilities/VulkanPhysicalDevice.cpp b/Graphics/GraphicsEngineVulkan/src/VulkanUtilities/VulkanPhysicalDevice.cpp
index 685492c9..66cf94c2 100644
--- a/Graphics/GraphicsEngineVulkan/src/VulkanUtilities/VulkanPhysicalDevice.cpp
+++ b/Graphics/GraphicsEngineVulkan/src/VulkanUtilities/VulkanPhysicalDevice.cpp
@@ -77,14 +77,14 @@ VulkanPhysicalDevice::VulkanPhysicalDevice(VkPhysicalDevice vkDevice,
(void)NextFeat;
// Enable mesh shader extension.
-# ifdef VK_NV_mesh_shader
if (IsExtensionSupported(VK_NV_MESH_SHADER_EXTENSION_NAME))
{
*NextFeat = &m_ExtFeatures.MeshShader;
NextFeat = &m_ExtFeatures.MeshShader.pNext;
m_ExtFeatures.MeshShader.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV;
}
-# endif
+
+ *NextFeat = nullptr;
// Initialize device extension features by current physical device features.
// Some flags may not be supported by hardware.