@@ -897,7 +897,7 @@ class ComputerAidedDesign final : public examples::SimpleWindowedApplication, pu
897897 }
898898
899899 // Load Custom Shader
900- auto loadCompileAndCreateShader = [&](const std::string& relPath, IShader::E_SHADER_STAGE stage) -> smart_refctd_ptr<IGPUShader >
900+ auto loadCompileShader = [&](const std::string& relPath, IShader::E_SHADER_STAGE stage) -> smart_refctd_ptr<ICPUShader >
901901 {
902902 IAssetLoader::SAssetLoadParams lp = {};
903903 lp.logger = m_logger.get ();
@@ -909,19 +909,23 @@ class ComputerAidedDesign final : public examples::SimpleWindowedApplication, pu
909909
910910 // lets go straight from ICPUSpecializedShader to IGPUSpecializedShader
911911 auto cpuShader = IAsset::castDown<ICPUShader>(assets[0 ]);
912- cpuShader->setShaderStage (stage);
913912 if (!cpuShader)
914913 return nullptr ;
915914
916- return m_device->createShader ({ cpuShader.get (), nullptr , shaderReadCache.get (), shaderWriteCache.get () });
915+ cpuShader->setShaderStage (stage);
916+ return m_device->compileShader ({ cpuShader.get (), nullptr , shaderReadCache.get (), shaderWriteCache.get () });
917917 };
918918
919- mainPipelineFragmentShaders = loadCompileAndCreateShader (" ../shaders/main_pipeline/fragment.hlsl" , IShader::E_SHADER_STAGE::ESS_ALL_OR_LIBRARY);
920- mainPipelineVertexShader = loadCompileAndCreateShader (" ../shaders/main_pipeline/vertex_shader.hlsl" , IShader::E_SHADER_STAGE::ESS_VERTEX);
921- geoTexturePipelineShaders[0 ] = loadCompileAndCreateShader (GeoTextureRenderer::VertexShaderRelativePath, IShader::E_SHADER_STAGE::ESS_VERTEX);
922- geoTexturePipelineShaders[1 ] = loadCompileAndCreateShader (GeoTextureRenderer::FragmentShaderRelativePath, IShader::E_SHADER_STAGE::ESS_FRAGMENT);
919+ auto mainPipelineFragmentCpuShader = loadCompileShader (" ../shaders/main_pipeline/fragment.hlsl" , IShader::E_SHADER_STAGE::ESS_ALL_OR_LIBRARY);
920+ auto mainPipelineVertexCpuShader = loadCompileShader (" ../shaders/main_pipeline/vertex_shader.hlsl" , IShader::E_SHADER_STAGE::ESS_VERTEX);
921+ auto geoTexturePipelineVertCpuShader = loadCompileShader (GeoTextureRenderer::VertexShaderRelativePath, IShader::E_SHADER_STAGE::ESS_VERTEX);
922+ auto geoTexturePipelineFragCpuShader = loadCompileShader (GeoTextureRenderer::FragmentShaderRelativePath, IShader::E_SHADER_STAGE::ESS_FRAGMENT);
923+ mainPipelineFragmentCpuShader->setShaderStage (IShader::E_SHADER_STAGE::ESS_FRAGMENT);
923924
924- mainPipelineFragmentShaders->setShaderStage (IShader::E_SHADER_STAGE::ESS_FRAGMENT);
925+ mainPipelineFragmentShaders = m_device->createShader ({ mainPipelineFragmentCpuShader.get (), nullptr , shaderReadCache.get (), shaderWriteCache.get () });
926+ mainPipelineVertexShader = m_device->createShader ({ mainPipelineVertexCpuShader.get (), nullptr , shaderReadCache.get (), shaderWriteCache.get () });
927+ geoTexturePipelineShaders[0 ] = m_device->createShader ({ geoTexturePipelineVertCpuShader.get (), nullptr , shaderReadCache.get (), shaderWriteCache.get () });
928+ geoTexturePipelineShaders[1 ] = m_device->createShader ({ geoTexturePipelineFragCpuShader.get (), nullptr , shaderReadCache.get (), shaderWriteCache.get () });
925929
926930 core::smart_refctd_ptr<system::IFile> shaderWriteCacheFile;
927931 {
0 commit comments