@@ -366,12 +366,12 @@ class HLSLComputePathtracer final : public examples::SimpleWindowedApplication,
366366 options.stage = IShader::E_SHADER_STAGE::ESS_COMPUTE; // should be compute
367367 options.targetSpirvVersion = m_device->getPhysicalDevice ()->getLimits ().spirvVersion ;
368368 options.spirvOptimizer = nullptr ;
369- // #ifndef _NBL_DEBUG
370- // ISPIRVOptimizer::E_OPTIMIZER_PASS optPasses = ISPIRVOptimizer::EOP_STRIP_DEBUG_INFO;
371- // auto opt = make_smart_refctd_ptr<ISPIRVOptimizer>(std::span<ISPIRVOptimizer::E_OPTIMIZER_PASS>(&optPasses, 1));
372- // options.spirvOptimizer = opt.get();
373- // #endif
374- options.debugInfoFlags | = IShaderCompiler::E_DEBUG_INFO_FLAGS::EDIF_SOURCE_BIT ;
369+ #ifndef _NBL_DEBUG
370+ ISPIRVOptimizer::E_OPTIMIZER_PASS optPasses = ISPIRVOptimizer::EOP_STRIP_DEBUG_INFO;
371+ auto opt = make_smart_refctd_ptr<ISPIRVOptimizer>(std::span<ISPIRVOptimizer::E_OPTIMIZER_PASS>(&optPasses, 1 ));
372+ options.spirvOptimizer = opt.get ();
373+ #endif
374+ options.debugInfoFlags = IShaderCompiler::E_DEBUG_INFO_FLAGS::EDIF_NONE ;
375375 options.preprocessorOptions .sourceIdentifier = source->getFilepathHint ();
376376 options.preprocessorOptions .logger = m_logger.get ();
377377 options.preprocessorOptions .includeFinder = compiler->getDefaultIncludeFinder ();
@@ -418,8 +418,8 @@ class HLSLComputePathtracer final : public examples::SimpleWindowedApplication,
418418 params.shader .shader = ptShader.get ();
419419 params.shader .entryPoint = " main" ;
420420 params.shader .entries = nullptr ;
421- params.shader .requireFullSubgroups = true ;
422- params.shader .requiredSubgroupSize = static_cast <IGPUShader::SSpecInfo::SUBGROUP_SIZE>(5 );
421+ params.shader .requireFullSubgroups = true ;
422+ params.shader .requiredSubgroupSize = static_cast <IGPUShader::SSpecInfo::SUBGROUP_SIZE>(5 );
423423 if (!m_device->createComputePipelines (nullptr , { ¶ms, 1 }, m_PTGLSLPipelines.data () + index))
424424 return logFail (" Failed to create GLSL compute pipeline!\n " );
425425 }
@@ -1068,7 +1068,10 @@ class HLSLComputePathtracer final : public examples::SimpleWindowedApplication,
10681068 cmdbuf->bindDescriptorSets (EPBP_COMPUTE, pipeline->getLayout (), 0u , 1u , &m_descriptorSet0.get ());
10691069 cmdbuf->bindDescriptorSets (EPBP_COMPUTE, pipeline->getLayout (), 2u , 1u , &m_descriptorSet2.get ());
10701070 cmdbuf->pushConstants (pipeline->getLayout (), IShader::E_SHADER_STAGE::ESS_COMPUTE, 0 , sizeof (PTPushConstant), &pc);
1071- cmdbuf->dispatch (1 + (WindowDimensions.x - 1 ) / DefaultWorkGroupSize, 1 + (WindowDimensions.y - 1 ) / DefaultWorkGroupSize, 1u );
1071+ if (renderMode == E_RENDER_MODE::ERM_HLSL)
1072+ cmdbuf->dispatch (1 + (WindowDimensions.x * WindowDimensions.y - 1 ) / 256u , 1u , 1u );
1073+ else
1074+ cmdbuf->dispatch (1 + (WindowDimensions.x - 1 ) / DefaultWorkGroupSize, 1 + (WindowDimensions.y - 1 ) / DefaultWorkGroupSize, 1u );
10721075 }
10731076
10741077 // TRANSITION m_outImgView to READ (because of descriptorSets0 -> ComputeShader Writes into the image)
0 commit comments