@@ -53,13 +53,33 @@ class IRayTracingPipelineBase : public virtual core::IReferenceCounted
5353template <typename PipelineLayoutType, typename ShaderType>
5454class IRayTracingPipeline : public IPipeline <PipelineLayoutType>, public IRayTracingPipelineBase
5555{
56+ using base_creation_params_t = IPipeline<PipelineLayoutType>::SCreationParams;
5657 public:
5758
5859 using SGeneralShaderGroupContainer = core::smart_refctd_dynamic_array<SGeneralShaderGroup>;
5960 using SHitShaderGroupContainer = core::smart_refctd_dynamic_array<SHitShaderGroup>;
6061
61- struct SCreationParams : IPipeline<PipelineLayoutType>::SCreationParams
62+ struct SCreationParams : base_creation_params_t
6263 {
64+ public:
65+ #define base_flag (F ) static_cast <uint64_t >(base_creation_params_t ::FLAGS::F)
66+ enum class FLAGS : uint64_t
67+ {
68+ NONE = base_flag(NONE),
69+ DISABLE_OPTIMIZATIONS = base_flag(DISABLE_OPTIMIZATIONS),
70+ ALLOW_DERIVATIVES = base_flag(ALLOW_DERIVATIVES),
71+ FAIL_ON_PIPELINE_COMPILE_REQUIRED = base_flag(FAIL_ON_PIPELINE_COMPILE_REQUIRED),
72+ EARLY_RETURN_ON_FAILURE = base_flag(EARLY_RETURN_ON_FAILURE),
73+ SKIP_BUILT_IN_PRIMITIVES = 1 <<12 ,
74+ SKIP_AABBS = 1 <<13 ,
75+ NO_NULL_ANY_HIT_SHADERS = 1 <<14 ,
76+ NO_NULL_CLOSEST_HIT_SHADERS = 1 <<15 ,
77+ NO_NULL_MISS_SHADERS = 1 <<16 ,
78+ NO_NULL_INTERSECTION_SHADERS = 1 <<17 ,
79+ ALLOW_MOTION = 1 <<20 ,
80+ };
81+ #undef base_flag
82+
6383 protected:
6484 using SpecInfo = ShaderType::SSpecInfo;
6585 template <typename ExtraLambda>
0 commit comments