@@ -14,15 +14,15 @@ class SpirvTrimTask
14
14
struct ShaderInfo
15
15
{
16
16
EntryPoints entryPoints;
17
- const asset::IShader* trimmedShaders ;
17
+ const asset::IShader* trimmedShader ;
18
18
};
19
19
20
20
SpirvTrimTask (asset::ISPIRVEntryPointTrimmer* trimer, system::logger_opt_ptr logger) : m_trimmer(trimer), m_logger(logger)
21
21
{
22
22
23
23
}
24
24
25
- void insertEntryPoint (const IGPUPipelineBase::SShaderSpecInfo& shaderSpec, hlsl::ShaderStage stage)
25
+ void insertEntryPoint (const IGPUPipelineBase::SShaderSpecInfo& shaderSpec, const hlsl::ShaderStage stage)
26
26
{
27
27
const auto * shader = shaderSpec.shader ;
28
28
auto it = m_shaderInfoMap.find (shader);
@@ -37,16 +37,14 @@ class SpirvTrimTask
37
37
auto findResult = m_shaderInfoMap.find (shader);
38
38
assert (findResult != m_shaderInfoMap.end ());
39
39
const auto & entryPoints = findResult->second .entryPoints ;
40
- auto & trimmedShader = findResult->second .trimmedShaders ;
40
+ auto & trimmedShader = findResult->second .trimmedShader ;
41
41
42
42
auto trimmedShaderSpec = shaderSpec;
43
43
if (shader != nullptr )
44
44
{
45
45
if (trimmedShader == nullptr )
46
46
{
47
- const auto outShadersData = outShaders.data ();
48
47
outShaders.push_back (m_trimmer->trim (shader, entryPoints, m_logger));
49
- assert (outShadersData == outShaders.data ());
50
48
trimmedShader = outShaders.back ().get ();
51
49
}
52
50
trimmedShaderSpec.shader = trimmedShader;
@@ -1060,22 +1058,7 @@ bool ILogicalDevice::createRayTracingPipelines(IGPUPipelineCache* const pipeline
1060
1058
}
1061
1059
1062
1060
core::vector<IGPURayTracingPipeline::SCreationParams> newParams (params.begin (), params.end ());
1063
- const auto raygenCount = params.size (); // assume every param have raygen
1064
- const auto missShaderCount = std::accumulate (params.begin (), params.end (), 0 , [](uint32_t sum, auto & param)
1065
- {
1066
- return sum + param.shaderGroups .getMissShaderCount ();
1067
- });
1068
- const auto hitShaderCount = std::accumulate (params.begin (), params.end (), 0 , [](uint32_t sum, auto & param)
1069
- {
1070
- return sum + param.shaderGroups .getHitShaderCount ();
1071
- });
1072
- const auto callableShaderCount = std::accumulate (params.begin (), params.end (), 0 , [](uint32_t sum, auto & param)
1073
- {
1074
- return sum + param.shaderGroups .getCallableShaderCount ();
1075
- });
1076
- const auto shaderCount = raygenCount + missShaderCount + hitShaderCount + callableShaderCount;
1077
1061
core::vector<core::smart_refctd_ptr<const asset::IShader>> trimmedShaders; // vector to hold all the trimmed shaders, so the pointer from the new ShaderSpecInfo is not dangling
1078
- trimmedShaders.reserve (shaderCount);
1079
1062
1080
1063
const auto missGroupCount = std::accumulate (params.begin (), params.end (), 0 , [](uint32_t sum, auto & param)
1081
1064
{
0 commit comments