Skip to content

Commit 1abda13

Browse files
committed
CAD: use device->compileShader
Signed-off-by: Ali Cheraghi <alichraghi@proton.me>
1 parent 20e120c commit 1abda13

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

62_CAD/main.cpp

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)