Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
624184f
Reduce Wave preprocess overhead and update DXC pointer
AnastaZIuk Mar 22, 2026
555684d
Advance DXC to latest unroll-devshFixes
AnastaZIuk Mar 22, 2026
03ad12b
Restore default include search path for builtin HLSL
AnastaZIuk Mar 23, 2026
ac0289d
Advance DXC to latest unroll-devshFixes
AnastaZIuk Mar 23, 2026
8e3c301
Promote NSC channel ac0289dda98b1046000873b0b3ffedb06356be53 (#1028)
github-actions[bot] Mar 23, 2026
fe4a528
Update examples_tests to local unroll
AnastaZIuk Mar 23, 2026
441dcb2
Merge remote-tracking branch 'origin/master' into unroll-local-sync
AnastaZIuk Mar 23, 2026
f195565
Update EX31 examples pointer
AnastaZIuk Mar 23, 2026
697cfcf
Wire path tracer pipeline cache
AnastaZIuk Mar 23, 2026
fad9d56
Update path tracer examples pointer
AnastaZIuk Mar 23, 2026
a0b65da
Add SPIR-V trimmer fast path
AnastaZIuk Mar 23, 2026
9515bdd
Update path tracer examples pointer
AnastaZIuk Mar 23, 2026
939de4f
Update path tracer examples pointer
AnastaZIuk Mar 24, 2026
dd5180b
Update path tracer examples pointer
AnastaZIuk Mar 24, 2026
8d3e66d
Trim manifest whitespace and update examples pointer
AnastaZIuk Mar 24, 2026
cba6113
Clean up shader review leftovers
AnastaZIuk Mar 24, 2026
476a5bf
Update path tracer examples pointer
AnastaZIuk Mar 24, 2026
d986945
Cache validated SPIR-V hashes
AnastaZIuk Mar 24, 2026
5ecde9a
Update path tracer examples pointer
AnastaZIuk Mar 24, 2026
1ede3de
Tighten final shader cleanup
AnastaZIuk Mar 24, 2026
758f7c8
Update path tracer examples pointer
AnastaZIuk Mar 24, 2026
8745660
Update path tracer examples pointer
AnastaZIuk Mar 24, 2026
94a501f
Mark generated NSC headers correctly
AnastaZIuk Mar 24, 2026
b1f28c0
Update path tracer examples pointer
AnastaZIuk Mar 24, 2026
4b444b6
Revert "Mark generated NSC headers correctly"
AnastaZIuk Mar 24, 2026
f4b0aed
Update path tracer examples pointer
AnastaZIuk Mar 24, 2026
01794c5
Update path tracer examples pointer
AnastaZIuk Mar 24, 2026
4a0c2e2
Update path tracer examples pointer
AnastaZIuk Mar 24, 2026
02f04db
Update path tracer examples pointer
AnastaZIuk Mar 24, 2026
3ae2b26
Update path tracer examples pointer
AnastaZIuk Mar 24, 2026
fcae991
Update path tracer examples pointer
AnastaZIuk Mar 25, 2026
c8af81b
Update path tracer examples pointer
AnastaZIuk Mar 25, 2026
3541a9d
Update path tracer examples pointer
AnastaZIuk Mar 25, 2026
8723771
Validate SPIR-V once per blob
AnastaZIuk Mar 25, 2026
52ae40b
Update EX31 examples pointer
AnastaZIuk Mar 25, 2026
6476500
Update EX31 examples pointer
AnastaZIuk Mar 25, 2026
f5f036e
Update EX31 examples pointer
AnastaZIuk Mar 25, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion 3rdparty/dxc/dxc
Submodule dxc updated 353 files
2 changes: 1 addition & 1 deletion examples_tests
Submodule examples_tests updated 35 files
+104 −22 31_HLSLPathTracer/CMakeLists.txt
+62 −0 31_HLSLPathTracer/app_resources/hlsl/compute.render.common.hlsl
+25 −0 31_HLSLPathTracer/app_resources/hlsl/compute.render.linear.entrypoints.hlsl
+25 −0 31_HLSLPathTracer/app_resources/hlsl/compute.render.persistent.entrypoints.hlsl
+152 −0 31_HLSLPathTracer/app_resources/hlsl/compute_render_scene_impl.hlsl
+9 −0 31_HLSLPathTracer/app_resources/hlsl/imgui.unified.hlsl
+143 −17 31_HLSLPathTracer/app_resources/hlsl/next_event_estimator.hlsl
+3 −4 31_HLSLPathTracer/app_resources/hlsl/present.frag.hlsl
+0 −222 31_HLSLPathTracer/app_resources/hlsl/render.comp.hlsl
+1 −0 31_HLSLPathTracer/app_resources/hlsl/render_common.hlsl
+1 −0 31_HLSLPathTracer/app_resources/hlsl/render_rwmc_common.hlsl
+2 −1 31_HLSLPathTracer/app_resources/hlsl/resolve.comp.hlsl
+1 −2 31_HLSLPathTracer/app_resources/hlsl/resolve_common.hlsl
+8 −0 31_HLSLPathTracer/app_resources/hlsl/rwmc_common.hlsl
+10 −3 31_HLSLPathTracer/app_resources/hlsl/scene_base.hlsl
+1 −0 31_HLSLPathTracer/app_resources/hlsl/spirv/pt.compute.rectangle.proxy.hlsl
+1 −0 31_HLSLPathTracer/app_resources/hlsl/spirv/pt.compute.rectangle.rwmc.linear.proxy.hlsl
+1 −0 31_HLSLPathTracer/app_resources/hlsl/spirv/pt.compute.rectangle.rwmc.persistent.proxy.hlsl
+1 −0 31_HLSLPathTracer/app_resources/hlsl/spirv/pt.compute.rectangle.rwmc.proxy.hlsl
+1 −0 31_HLSLPathTracer/app_resources/hlsl/spirv/pt.compute.sphere.proxy.hlsl
+1 −0 31_HLSLPathTracer/app_resources/hlsl/spirv/pt.compute.sphere.rwmc.proxy.hlsl
+1 −0 31_HLSLPathTracer/app_resources/hlsl/spirv/pt.compute.triangle.linear.proxy.hlsl
+48 −0 31_HLSLPathTracer/app_resources/hlsl/spirv/pt.compute.triangle.methods.shared.hlsl
+1 −0 31_HLSLPathTracer/app_resources/hlsl/spirv/pt.compute.triangle.persistent.proxy.hlsl
+1 −0 31_HLSLPathTracer/app_resources/hlsl/spirv/pt.compute.triangle.proxy.hlsl
+1 −0 31_HLSLPathTracer/app_resources/hlsl/spirv/pt.compute.triangle.rwmc.linear.proxy.hlsl
+1 −0 31_HLSLPathTracer/app_resources/hlsl/spirv/pt.compute.triangle.rwmc.persistent.proxy.hlsl
+1 −0 31_HLSLPathTracer/app_resources/hlsl/spirv/pt.compute.triangle.rwmc.proxy.hlsl
+51 −0 31_HLSLPathTracer/app_resources/hlsl/spirv/pt.compute.variant.shared.hlsl
+5 −0 31_HLSLPathTracer/app_resources/hlsl/spirv/pt.misc.proxy.hlsl
+119 −0 31_HLSLPathTracer/include/nbl/builtin/hlsl/bxdf/ndf/microfacet_to_light_transform.hlsl
+1,784 −287 31_HLSLPathTracer/main.cpp
+3 −0 31_HLSLPathTracer/path_tracer.runtime.json.in
+35 −0 31_HLSLPathTracer/pt.cmake
+6 −0 31_HLSLPathTracer/pt.variant_ids.cmake
8 changes: 7 additions & 1 deletion include/nbl/asset/utils/ISPIRVEntryPointTrimmer.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,12 @@

#include "nbl/system/ILogger.h"

#include <mutex>

namespace nbl::asset
{

class ISPIRVEntryPointTrimmer final : public core::IReferenceCounted
class NBL_API2 ISPIRVEntryPointTrimmer final : public core::IReferenceCounted
{
public:
ISPIRVEntryPointTrimmer();
Expand Down Expand Up @@ -46,6 +48,8 @@ class ISPIRVEntryPointTrimmer final : public core::IReferenceCounted
};

Result trim(const ICPUBuffer* spirvBuffer, const core::set<EntryPoint>& entryPoints, system::logger_opt_ptr logger = nullptr) const;
bool ensureValidated(const ICPUBuffer* spirvBuffer, system::logger_opt_ptr logger = nullptr) const;
void markValidated(const ICPUBuffer* spirvBuffer) const;

inline core::smart_refctd_ptr<const IShader> trim(const IShader* shader, const core::set<EntryPoint>& entryPoints, system::logger_opt_ptr logger = nullptr) const
{
Expand All @@ -72,6 +76,8 @@ class ISPIRVEntryPointTrimmer final : public core::IReferenceCounted

private:
core::smart_refctd_ptr<ISPIRVOptimizer> m_optimizer;
mutable std::mutex m_validationCacheMutex;
mutable core::unordered_set<core::blake3_hash_t> m_validatedSpirvHashes;
};

}
Expand Down
17 changes: 12 additions & 5 deletions include/nbl/asset/utils/IShaderCompiler.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@
#include "nbl/builtin/hlsl/enums.hlsl"

#include <functional>
#include <mutex>
#include <unordered_map>
#include <unordered_set>

namespace nbl::asset
{
Expand All @@ -39,7 +42,7 @@ class NBL_API2 IShaderCompiler : public core::IReferenceCounted

explicit inline operator bool() const {return !absolutePath.empty();}
};
virtual found_t getInclude(const system::path& searchPath, const std::string& includeName) const = 0;
virtual found_t getInclude(const system::path& searchPath, const std::string& includeName, bool needHash = true) const = 0;
};

class NBL_API2 IIncludeGenerator : public core::IReferenceCounted
Expand All @@ -65,10 +68,13 @@ class NBL_API2 IShaderCompiler : public core::IReferenceCounted
public:
CFileSystemIncludeLoader(core::smart_refctd_ptr<system::ISystem>&& system);

IIncludeLoader::found_t getInclude(const system::path& searchPath, const std::string& includeName) const override;
IIncludeLoader::found_t getInclude(const system::path& searchPath, const std::string& includeName, bool needHash = true) const override;

protected:
core::smart_refctd_ptr<system::ISystem> m_system;
mutable std::mutex m_cacheMutex;
mutable std::unordered_map<std::string, IIncludeLoader::found_t> m_cache;
mutable std::unordered_set<std::string> m_missingCache;
Comment on lines +75 to +77

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there's numerous problems I see with this approach:

  1. files get created and deleted throughout the application runtime, and the CFileSystemIncludeLoader is a long lived object. The include file contents will change, and because the IFIle will be closed in the meantime there's nothing to stop (on the OS level) that change occuring, you will get stale cache hits and hot-reload (for whatever example implements it) won't kick in.
  2. the IIncludeLoader::found_t::contents can be SEVERAL kilobytes per file, this cache will basically live forever as nabla runs so its basically a multi-MB memory leak

furthermore because of concurrency you needed to add a mutex

It would make more sense if you wrapped this up into a SSessionCache struct in the CIncludeFinder and specified it as a mutable member in SProcessorOptions

this way:

  1. you can have threadsafe session cache and non thread safe session cache (with and without mutex)
  2. you can pass the session cache EXPLICITLY from one compile to another, or share it concurrently
  3. you're able to get rid of its memory

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think some of the functionality of this was already in

class CCache final : public IReferenceCounted

but it obviously served a different purpose (whole IShader from includes)

but the design there is sound esp with the readCache and writeCache on the Options struct

};

class NBL_API2 CIncludeFinder : public core::IReferenceCounted
Expand All @@ -79,12 +85,12 @@ class NBL_API2 IShaderCompiler : public core::IReferenceCounted
// ! includes within <>
// @param requestingSourceDir: the directory where the incude was requested
// @param includeName: the string within <> of the include preprocessing directive
IIncludeLoader::found_t getIncludeStandard(const system::path& requestingSourceDir, const std::string& includeName) const;
IIncludeLoader::found_t getIncludeStandard(const system::path& requestingSourceDir, const std::string& includeName, bool needHash = true) const;

// ! includes within ""
// @param requestingSourceDir: the directory where the incude was requested
// @param includeName: the string within "" of the include preprocessing directive
IIncludeLoader::found_t getIncludeRelative(const system::path& requestingSourceDir, const std::string& includeName) const;
IIncludeLoader::found_t getIncludeRelative(const system::path& requestingSourceDir, const std::string& includeName, bool needHash = true) const;

inline core::smart_refctd_ptr<CFileSystemIncludeLoader> getDefaultFileSystemLoader() const { return m_defaultFileSystemLoader; }

Expand All @@ -93,7 +99,7 @@ class NBL_API2 IShaderCompiler : public core::IReferenceCounted
void addGenerator(const core::smart_refctd_ptr<IIncludeGenerator>& generator);

protected:
IIncludeLoader::found_t trySearchPaths(const std::string& includeName) const;
IIncludeLoader::found_t trySearchPaths(const std::string& includeName, bool needHash) const;

IIncludeLoader::found_t tryIncludeGenerators(const std::string& includeName) const;

Expand Down Expand Up @@ -137,6 +143,7 @@ class NBL_API2 IShaderCompiler : public core::IReferenceCounted
std::span<const SMacroDefinition> extraDefines = {};
E_SPIRV_VERSION targetSpirvVersion = E_SPIRV_VERSION::ESV_1_6;
bool depfile = false;
bool preserveComments = false;
system::path depfilePath = {};
std::function<void(std::string_view)> onPartialOutputOnFailure = {};
};
Expand Down
2 changes: 0 additions & 2 deletions include/nbl/builtin/hlsl/bxdf/reflection/beckmann.hlsl
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,7 @@
#ifndef _NBL_BUILTIN_HLSL_BXDF_REFLECTION_BECKMANN_INCLUDED_
#define _NBL_BUILTIN_HLSL_BXDF_REFLECTION_BECKMANN_INCLUDED_

#include "nbl/builtin/hlsl/bxdf/common.hlsl"
#include "nbl/builtin/hlsl/bxdf/bxdf_traits.hlsl"
#include "nbl/builtin/hlsl/sampling/cos_weighted_spheres.hlsl"
#include "nbl/builtin/hlsl/bxdf/ndf/beckmann.hlsl"
#include "nbl/builtin/hlsl/bxdf/base/cook_torrance_base.hlsl"

Expand Down
2 changes: 0 additions & 2 deletions include/nbl/builtin/hlsl/bxdf/reflection/ggx.hlsl
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,7 @@
#ifndef _NBL_BUILTIN_HLSL_BXDF_REFLECTION_GGX_INCLUDED_
#define _NBL_BUILTIN_HLSL_BXDF_REFLECTION_GGX_INCLUDED_

#include "nbl/builtin/hlsl/bxdf/common.hlsl"
#include "nbl/builtin/hlsl/bxdf/bxdf_traits.hlsl"
#include "nbl/builtin/hlsl/sampling/cos_weighted_spheres.hlsl"
#include "nbl/builtin/hlsl/bxdf/ndf/ggx.hlsl"
#include "nbl/builtin/hlsl/bxdf/base/cook_torrance_base.hlsl"

Expand Down
4 changes: 1 addition & 3 deletions include/nbl/builtin/hlsl/bxdf/transmission/beckmann.hlsl
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,8 @@
#ifndef _NBL_BUILTIN_HLSL_BXDF_TRANSMISSION_BECKMANN_INCLUDED_
#define _NBL_BUILTIN_HLSL_BXDF_TRANSMISSION_BECKMANN_INCLUDED_

#include "nbl/builtin/hlsl/bxdf/common.hlsl"
#include "nbl/builtin/hlsl/bxdf/bxdf_traits.hlsl"
#include "nbl/builtin/hlsl/sampling/cos_weighted_spheres.hlsl"
#include "nbl/builtin/hlsl/bxdf/reflection.hlsl"
#include "nbl/builtin/hlsl/bxdf/ndf/beckmann.hlsl"
#include "nbl/builtin/hlsl/bxdf/base/cook_torrance_base.hlsl"

namespace nbl
Expand Down
3 changes: 0 additions & 3 deletions include/nbl/builtin/hlsl/bxdf/transmission/ggx.hlsl
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,7 @@
#ifndef _NBL_BUILTIN_HLSL_BXDF_TRANSMISSION_GGX_INCLUDED_
#define _NBL_BUILTIN_HLSL_BXDF_TRANSMISSION_GGX_INCLUDED_

#include "nbl/builtin/hlsl/bxdf/common.hlsl"
#include "nbl/builtin/hlsl/bxdf/bxdf_traits.hlsl"
#include "nbl/builtin/hlsl/sampling/cos_weighted_spheres.hlsl"
#include "nbl/builtin/hlsl/bxdf/reflection.hlsl"
#include "nbl/builtin/hlsl/bxdf/base/cook_torrance_base.hlsl"

namespace nbl
Expand Down
1 change: 0 additions & 1 deletion include/nbl/builtin/hlsl/emulated/float64_t.hlsl
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
#define _NBL_BUILTIN_HLSL_EMULATED_FLOAT64_T_HLSL_INCLUDED_

#include <nbl/builtin/hlsl/emulated/float64_t_impl.hlsl>
#include <nbl/builtin/hlsl/concepts/core.hlsl>

namespace nbl
{
Expand Down
7 changes: 5 additions & 2 deletions include/nbl/builtin/hlsl/member_test_macros.hlsl
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,10 @@
#define _NBL_BUILTIN_HLSL_MEMBER_TEST_MACROS_INCLUDED_

#include <nbl/builtin/hlsl/utility.hlsl>
#include <boost/preprocessor.hpp>
#include <boost/preprocessor/arithmetic/inc.hpp>
#include <boost/preprocessor/comparison/not_equal.hpp>
#include <boost/preprocessor/punctuation/comma_if.hpp>
#include <boost/preprocessor/repetition/repeat.hpp>

#ifdef __HLSL_VERSION

Expand Down Expand Up @@ -123,4 +126,4 @@ GENERATE_METHOD_TESTER(set)


#endif
#endif
#endif
37 changes: 34 additions & 3 deletions include/nbl/builtin/hlsl/path_tracing/concepts.hlsl
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
#define _NBL_BUILTIN_HLSL_PATH_TRACING_CONCEPTS_INCLUDED_

#include <nbl/builtin/hlsl/concepts.hlsl>
#include <nbl/builtin/hlsl/bxdf/common.hlsl>

namespace nbl
{
Expand All @@ -15,6 +14,17 @@ namespace path_tracing
{
namespace concepts
{
namespace impl
{
template<typename Vector3>
struct DummyRayInteraction
{
using vector3_type = Vector3;

vector3_type getN() NBL_CONST_MEMBER_FUNC;
bool isMaterialBSDF() NBL_CONST_MEMBER_FUNC;
};
}

#define NBL_CONCEPT_NAME RandGenerator
#define NBL_CONCEPT_TPLT_PRM_KINDS (typename)
Expand All @@ -38,7 +48,7 @@ NBL_CONCEPT_END(
#define NBL_CONCEPT_TPLT_PRM_NAMES (T)
#define NBL_CONCEPT_PARAM_0 (ray, T)
#define NBL_CONCEPT_PARAM_1 (v, typename T::vector3_type)
#define NBL_CONCEPT_PARAM_2 (interaction, bxdf::surface_interactions::SIsotropic<bxdf::ray_dir_info::SBasic<float>, typename T::spectral_type>)
#define NBL_CONCEPT_PARAM_2 (interaction, impl::DummyRayInteraction<typename T::vector3_type>)
#define NBL_CONCEPT_PARAM_3 (scalar, typename T::scalar_type)
#define NBL_CONCEPT_PARAM_4 (color, typename T::spectral_type)
NBL_CONCEPT_BEGIN(5)
Expand All @@ -52,7 +62,7 @@ NBL_CONCEPT_END(
((NBL_CONCEPT_REQ_TYPE)(T::vector3_type))
((NBL_CONCEPT_REQ_TYPE)(T::spectral_type))
((NBL_CONCEPT_REQ_EXPR_RET_TYPE)((ray.init(v/*origin*/, v/*direction*/)), ::nbl::hlsl::is_same_v, void))
((NBL_CONCEPT_REQ_EXPR_RET_TYPE)((ray.template setInteraction<bxdf::surface_interactions::SIsotropic<bxdf::ray_dir_info::SBasic<float>, typename T::spectral_type> >(interaction)), ::nbl::hlsl::is_same_v, void))
((NBL_CONCEPT_REQ_EXPR_RET_TYPE)((ray.setInteraction(interaction)), ::nbl::hlsl::is_same_v, void))
((NBL_CONCEPT_REQ_EXPR_RET_TYPE)((ray.initPayload()), ::nbl::hlsl::is_same_v, void))
((NBL_CONCEPT_REQ_EXPR_RET_TYPE)((ray.shouldDoMIS()), ::nbl::hlsl::is_same_v, bool))
((NBL_CONCEPT_REQ_EXPR_RET_TYPE)((ray.foundEmissiveMIS(scalar)), ::nbl::hlsl::is_same_v, typename T::scalar_type))
Expand Down Expand Up @@ -124,6 +134,7 @@ NBL_CONCEPT_END(
((NBL_CONCEPT_REQ_TYPE)(T::scene_type))
((NBL_CONCEPT_REQ_TYPE)(T::ray_type))
((NBL_CONCEPT_REQ_TYPE)(T::object_handle_type))
((NBL_CONCEPT_REQ_TYPE)(T::anisotropic_interaction_type))
((NBL_CONCEPT_REQ_TYPE)(T::closest_hit_type))
((NBL_CONCEPT_REQ_TYPE_ALIAS_CONCEPT)(IntersectorClosestHit, typename T::closest_hit_type))
((NBL_CONCEPT_REQ_TYPE_ALIAS_CONCEPT)(Ray, typename T::ray_type))
Expand All @@ -136,6 +147,26 @@ NBL_CONCEPT_END(
#undef intersect
#include <nbl/builtin/hlsl/concepts/__end.hlsl>

#define NBL_CONCEPT_NAME UnidirectionalInteractionContract
#define NBL_CONCEPT_TPLT_PRM_KINDS (typename)(typename)(typename)
#define NBL_CONCEPT_TPLT_PRM_NAMES (RayT)(IntersectorT)(MaterialSystemT)
#define NBL_CONCEPT_PARAM_0 (ray, RayT)
#define NBL_CONCEPT_PARAM_1 (hit, typename IntersectorT::closest_hit_type)
#define NBL_CONCEPT_PARAM_2 (interaction, typename MaterialSystemT::anisotropic_interaction_type)
NBL_CONCEPT_BEGIN(3)
#define ray NBL_CONCEPT_PARAM_T NBL_CONCEPT_PARAM_0
#define hit NBL_CONCEPT_PARAM_T NBL_CONCEPT_PARAM_1
#define interaction NBL_CONCEPT_PARAM_T NBL_CONCEPT_PARAM_2
NBL_CONCEPT_END(
((NBL_CONCEPT_REQ_EXPR_RET_TYPE)((hit.getInteraction()), ::nbl::hlsl::is_same_v, typename IntersectorT::anisotropic_interaction_type))
((NBL_CONCEPT_REQ_EXPR_RET_TYPE)((hit.getInteraction()), ::nbl::hlsl::is_same_v, typename MaterialSystemT::anisotropic_interaction_type))
((NBL_CONCEPT_REQ_EXPR_RET_TYPE)((ray.setInteraction(interaction)), ::nbl::hlsl::is_same_v, void))
);
#undef interaction
#undef hit
#undef ray
#include <nbl/builtin/hlsl/concepts/__end.hlsl>

#define NBL_CONCEPT_NAME BxdfNode
#define NBL_CONCEPT_TPLT_PRM_KINDS (typename)
#define NBL_CONCEPT_TPLT_PRM_NAMES (T)
Expand Down
4 changes: 1 addition & 3 deletions include/nbl/builtin/hlsl/path_tracing/unidirectional.hlsl
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,8 @@
#define _NBL_BUILTIN_HLSL_PATH_TRACING_UNIDIRECTIONAL_INCLUDED_

#include <nbl/builtin/hlsl/colorspace/EOTF.hlsl>
#include <nbl/builtin/hlsl/colorspace/encodeCIEXYZ.hlsl>
#include <nbl/builtin/hlsl/math/functions.hlsl>
#include <nbl/builtin/hlsl/sampling/basic.hlsl>
#include <nbl/builtin/hlsl/bxdf/bxdf_traits.hlsl>
#include <nbl/builtin/hlsl/vector_utils/vector_traits.hlsl>
#include <nbl/builtin/hlsl/path_tracing/concepts.hlsl>

namespace nbl
Expand All @@ -22,6 +19,7 @@ namespace path_tracing
template<class RandGen, class Ray, class Intersector, class MaterialSystem, /* class PathGuider, */ class NextEventEstimator, class Accumulator, class Scene
NBL_PRIMARY_REQUIRES(concepts::RandGenerator<RandGen> && concepts::Ray<Ray> &&
concepts::Intersector<Intersector> && concepts::MaterialSystem<MaterialSystem> &&
concepts::UnidirectionalInteractionContract<Ray, Intersector, MaterialSystem> &&
concepts::NextEventEstimator<NextEventEstimator> && concepts::Accumulator<Accumulator> &&
concepts::Scene<Scene>)
struct Unidirectional
Expand Down
4 changes: 0 additions & 4 deletions include/nbl/builtin/hlsl/tgmath.hlsl
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,8 @@
#include <nbl/builtin/hlsl/spirv_intrinsics/glsl.std.450.hlsl>
#include <nbl/builtin/hlsl/tgmath/impl.hlsl>
#include <nbl/builtin/hlsl/type_traits.hlsl>
#include <nbl/builtin/hlsl/vector_utils/vector_traits.hlsl>
#include <nbl/builtin/hlsl/cpp_compat.hlsl>
#include <nbl/builtin/hlsl/ieee754.hlsl>
#include <nbl/builtin/hlsl/spirv_intrinsics/core.hlsl>
#include <nbl/builtin/hlsl/concepts/core.hlsl>
#include <nbl/builtin/hlsl/concepts/vector.hlsl>
#include <nbl/builtin/hlsl/cpp_compat/intrinsics.hlsl>

// C++ headers
Expand Down
3 changes: 2 additions & 1 deletion include/nbl/ext/FullScreenTriangle/FullScreenTriangle.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@ struct ProtoPipeline final
const video::IGPURenderpass* renderpass,
const uint32_t subpassIx=0,
asset::SBlendParams blendParams = {},
const hlsl::SurfaceTransform::FLAG_BITS swapchainTransform=hlsl::SurfaceTransform::FLAG_BITS::IDENTITY_BIT
const hlsl::SurfaceTransform::FLAG_BITS swapchainTransform=hlsl::SurfaceTransform::FLAG_BITS::IDENTITY_BIT,
video::IGPUPipelineCache* pipelineCache = nullptr
);

core::smart_refctd_ptr<asset::IShader> m_vxShader;
Expand Down
2 changes: 1 addition & 1 deletion include/nbl/video/CJITIncludeLoader.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ class NBL_API2 CJITIncludeLoader : public asset::IShaderCompiler::IIncludeLoader
m_includes["nbl/builtin/hlsl/jit/device_capabilities.hlsl"] = collectDeviceCaps(limits,features);
}

found_t getInclude(const system::path& searchPath, const std::string& includeName) const override;
found_t getInclude(const system::path& searchPath, const std::string& includeName, bool needHash = true) const override;

protected:
template<typename T>
Expand Down
Loading
Loading