Add compute demo (WIP) + fixes creation of compute pipelines

This commit is contained in:
SirLynix
2022-12-24 12:50:04 +01:00
committed by Jérôme Leclercq
parent 9578ba3ef5
commit 4605eed0da
8 changed files with 145 additions and 12 deletions

View File

@@ -17,7 +17,7 @@ namespace Nz
VulkanComputePipeline::VulkanComputePipeline(VulkanDevice& device, ComputePipelineInfo pipelineInfo) :
m_pipelineInfo(std::move(pipelineInfo))
{
if (device.GetEnabledFeatures().computeShaders)
if (!device.GetEnabledFeatures().computeShaders)
throw std::runtime_error("compute shaders are not enabled on the device");
VulkanShaderModule& vulkanModule = static_cast<VulkanShaderModule&>(*m_pipelineInfo.shaderModule);

View File

@@ -104,14 +104,9 @@ namespace Nz
nzsl::ShaderStageType stageType;
switch (entryPoint.executionModel)
{
case nzsl::SpirvExecutionModel::Fragment:
stageType = nzsl::ShaderStageType::Fragment;
break;
case nzsl::SpirvExecutionModel::Vertex:
stageType = nzsl::ShaderStageType::Vertex;
break;
case nzsl::SpirvExecutionModel::GLCompute: stageType = nzsl::ShaderStageType::Compute; break;
case nzsl::SpirvExecutionModel::Fragment: stageType = nzsl::ShaderStageType::Fragment; break;
case nzsl::SpirvExecutionModel::Vertex: stageType = nzsl::ShaderStageType::Vertex; break;
default:
continue; //< Ignore
}