Skip to content

Commit ff85986

Browse files
committed
Merge branch 'master' into accessors_fix
2 parents 796be61 + a39779f commit ff85986

File tree

95 files changed

+9451
-3736
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

95 files changed

+9451
-3736
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,4 @@ tools/nsc/.profiles/*
3535
tools/nsc/bin/*
3636
*/__pycache__/*
3737
__pycache__/*
38+
*.pyc

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,9 @@
7070
[submodule "examples_tests"]
7171
path = examples_tests
7272
url = [email protected]:Devsh-Graphics-Programming/Nabla-Examples-and-Tests.git
73+
[submodule "3rdparty/msdfgen"]
74+
path = 3rdparty/msdfgen
75+
url = https://github.com/Chlumsky/msdfgen
7376
branch = master
7477
[submodule "3rdparty/dxc/dxc"]
7578
path = 3rdparty/dxc/dxc

3rdparty/CMakeLists.txt

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,29 @@ add_subdirectory(simdjson simdjson EXCLUDE_FROM_ALL)
2222
set(BUILD_SHARED_LIBS ${_OLD_BUILD_SHARED_LIBS})
2323
set(BUILD_STATIC_LIBS ${_OLD_BUILD_STATIC_LIBS})
2424
set(BUILD_TESTING ${_OLD_BUILD_TESTING})
25+
26+
# freetype2
27+
set(FT_WITH_HARFBUZZ OFF)
28+
add_subdirectory(freetype2 freetype2 EXCLUDE_FROM_ALL)
29+
add_library(Freetype::Freetype ALIAS freetype) # alias target for MSDFGEN not trying to find freetype system-wide but rather to use the logical target available in our build tree
30+
31+
# msdfgen
32+
set(MSDFGEN_USE_VCPKG OFF)
33+
set(MSDFGEN_USE_SKIA OFF)
34+
set(MSDFGEN_CORE_ONLY OFF) # if turned on then MSDFGEN will be built without dependencies like freetype or skia
35+
set(MSDFGEN_INSTALL OFF)
36+
set(MSDFGEN_BUILD_STANDALONE OFF)
37+
set(MSDFGEN_USE_CPP11 ON)
38+
set(MSDFGEN_DISABLE_SVG ON)
39+
set(MSDFGEN_DISABLE_PNG ON)
40+
add_subdirectory(msdfgen msdfgen EXCLUDE_FROM_ALL)
41+
42+
if(MSDFGEN_CORE_ONLY)
43+
message(FATAL_ERROR "Internal error, MSDF must be used with extension target as well!")
44+
else()
45+
set(NBL_MSDFGEN_TARGETS msdfgen-ext msdfgen-core)
46+
endif()
47+
2548
set_property(TARGET simdjson PROPERTY CXX_STANDARD 17)
2649

2750
# DXC
@@ -373,6 +396,8 @@ set(NBL_3RDPARTY_TARGETS
373396
Iex
374397
IlmThread
375398
Imath
399+
freetype
400+
${NBL_MSDFGEN_TARGETS}
376401
blake3
377402
${NBL_BOOST_TARGETS}
378403
)
@@ -425,6 +450,13 @@ nbl_adjust_definitions()
425450
add_custom_target(3rdparty)
426451
add_dependencies(3rdparty ${NBL_3RDPARTY_TARGETS})
427452

428-
set(_NBL_3RDPARTY_TARGETS_ ${NBL_3RDPARTY_TARGETS} PARENT_SCOPE)
453+
nbl_install_dir("${CMAKE_CURRENT_SOURCE_DIR}/parallel-hashmap/parallel_hashmap")
454+
455+
# parent scope exports, must be at the end of the file
456+
set(_NBL_3RDPARTY_TARGETS_
457+
${NBL_3RDPARTY_TARGETS}
458+
PARENT_SCOPE)
429459

430-
nbl_install_dir("${CMAKE_CURRENT_SOURCE_DIR}/parallel-hashmap/parallel_hashmap")
460+
set(NBL_MSDFGEN_TARGETS
461+
${NBL_MSDFGEN_TARGETS}
462+
PARENT_SCOPE)

3rdparty/msdfgen

Submodule msdfgen added at 755c45b

cmake/adjust/flags.cmake

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -148,10 +148,7 @@ function(nbl_adjust_flags)
148148
set(NBL_TARGET_MSVC_DEBUG_INFORMATION_FORMAT "$<$<OR:$<STREQUAL:${MAPPED_CONFIG},DEBUG>,$<STREQUAL:${MAPPED_CONFIG},RELWITHDEBINFO>>:ProgramDatabase>")
149149
else()
150150
set(NBL_TARGET_MSVC_DEBUG_INFORMATION_FORMAT "$<$<STREQUAL:${MAPPED_CONFIG},DEBUG>:EditAndContinue>$<$<STREQUAL:${MAPPED_CONFIG},RELWITHDEBINFO>:ProgramDatabase>")
151-
endif()
152-
153-
# test
154-
file(GENERATE OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/TEST/GEN/${NBL_TARGET_ITEM}/test.cmake" CONTENT "TEST\nNBL_TARGET_MSVC_DEBUG_INFORMATION_FORMAT: \"${NBL_TARGET_MSVC_DEBUG_INFORMATION_FORMAT}\"\nmapped config: \"${MAPPED_CONFIG}\"" CONDITION $<CONFIG:DEBUG>)
151+
endif()
155152
endif()
156153

157154
set_target_properties(${NBL_TARGET_ITEM} PROPERTIES

cmake/common.cmake

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,10 @@ macro(nbl_create_ext_library_project EXT_NAME LIB_HEADERS LIB_SOURCES LIB_INCLUD
314314
)
315315
endif()
316316

317-
nbl_install_file_spec(${LIB_HEADERS} "nbl/ext/${EXT_NAME}")
317+
if(LIB_HEADERS)
318+
nbl_install_file_spec(${LIB_HEADERS} "nbl/ext/${EXT_NAME}")
319+
endif()
320+
318321
nbl_install_lib_spec(${LIB_NAME} "nbl/ext/${EXT_NAME}")
319322

320323
set("NBL_EXT_${EXT_NAME}_INCLUDE_DIRS"

examples_tests

Submodule examples_tests updated 48 files

include/nbl/application_templates/MonoDeviceApplication.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ class MonoDeviceApplication : public virtual MonoSystemMonoLoggerApplication
118118
{
119119
video::SPhysicalDeviceLimits retval = {};
120120

121-
retval.subgroupOpsShaderStages = asset::IShader::ESS_COMPUTE;
121+
retval.subgroupOpsShaderStages = asset::IShader::E_SHADER_STAGE::ESS_COMPUTE;
122122

123123
return retval;
124124
}

include/nbl/asset/ICPUComputePipeline.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ class ICPUComputePipeline : public ICPUPipeline<IPipeline<ICPUPipelineLayout>,1>
3838
inline E_TYPE getAssetType() const override { return AssetType; }
3939

4040
// provide default arg
41-
inline IShader::SSpecInfo<ICPUShader> getSpecInfo() {return base_t::getSpecInfo(ICPUShader::ESS_COMPUTE);}
42-
inline IShader::SSpecInfo<const ICPUShader> getSpecInfo() const {return base_t::getSpecInfo(ICPUShader::ESS_COMPUTE);}
41+
inline IShader::SSpecInfo<ICPUShader> getSpecInfo() {return base_t::getSpecInfo(ICPUShader::E_SHADER_STAGE::ESS_COMPUTE);}
42+
inline IShader::SSpecInfo<const ICPUShader> getSpecInfo() const {return base_t::getSpecInfo(ICPUShader::E_SHADER_STAGE::ESS_COMPUTE);}
4343

4444
protected:
4545
using base_t::base_t;
@@ -51,7 +51,7 @@ class ICPUComputePipeline : public ICPUPipeline<IPipeline<ICPUPipelineLayout>,1>
5151
}
5252
inline int8_t stageToIndex(const ICPUShader::E_SHADER_STAGE stage) const override
5353
{
54-
return stage!=ICPUShader::ESS_COMPUTE ? (-1):0;
54+
return stage!=ICPUShader::E_SHADER_STAGE::ESS_COMPUTE ? (-1):0;
5555
}
5656
};
5757

include/nbl/asset/IGraphicsPipeline.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,22 +107,22 @@ class IGraphicsPipeline : public IPipeline<PipelineLayoutType>
107107
if (!extra(info))
108108
return false;
109109
const auto stage = info.shader->getStage();
110-
if (stage>ICPUShader::ESS_FRAGMENT)
110+
if (stage>ICPUShader::E_SHADER_STAGE::ESS_FRAGMENT)
111111
return false;
112112
if (stagePresence.hasFlags(stage))
113113
return false;
114114
stagePresence |= stage;
115115
}
116116
// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkGraphicsPipelineCreateInfo.html#VUID-VkGraphicsPipelineCreateInfo-stage-02096
117-
if (!stagePresence.hasFlags(ICPUShader::ESS_VERTEX))
117+
if (!stagePresence.hasFlags(ICPUShader::E_SHADER_STAGE::ESS_VERTEX))
118118
return false;
119119
// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkGraphicsPipelineCreateInfo.html#VUID-VkGraphicsPipelineCreateInfo-pStages-00729
120120
// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkGraphicsPipelineCreateInfo.html#VUID-VkGraphicsPipelineCreateInfo-pStages-00730
121-
if (stagePresence.hasFlags(ICPUShader::ESS_TESSELLATION_CONTROL)!=stagePresence.hasFlags(ICPUShader::ESS_TESSELLATION_EVALUATION))
121+
if (stagePresence.hasFlags(ICPUShader::E_SHADER_STAGE::ESS_TESSELLATION_CONTROL)!=stagePresence.hasFlags(ICPUShader::E_SHADER_STAGE::ESS_TESSELLATION_EVALUATION))
122122
return false;
123123
// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkGraphicsPipelineCreateInfo.html#VUID-VkGraphicsPipelineCreateInfo-pStages-08888
124124
// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkGraphicsPipelineCreateInfo.html#VUID-VkGraphicsPipelineCreateInfo-topology-08889
125-
if (stagePresence.hasFlags(ICPUShader::ESS_TESSELLATION_EVALUATION)!=(cached.primitiveAssembly.primitiveType==EPT_PATCH_LIST))
125+
if (stagePresence.hasFlags(ICPUShader::E_SHADER_STAGE::ESS_TESSELLATION_EVALUATION)!=(cached.primitiveAssembly.primitiveType==EPT_PATCH_LIST))
126126
return false;
127127

128128
return true;

0 commit comments

Comments
 (0)