Skip to content

Commit

Permalink
Improve flexibility of VK bindings (#66)
Browse files Browse the repository at this point in the history
* VK bindings can not be properly configured by cmake parent project
* VK bindings can be set at runtime by shader provider in nvrhi integration layer
* Thanks @fstrugar-nv !
  • Loading branch information
fstrugar-nv authored Nov 18, 2024
1 parent 6644a87 commit af92a7d
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 12 deletions.
10 changes: 4 additions & 6 deletions integration/omm-sdk-nvrhi/omm-sdk-nvrhi.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -430,15 +430,13 @@ void GpuBakeNvrhiImpl::SetupPipelines(
auto CreateBindingLayout = [this, shaderProvider, desc](
nvrhi::ShaderType visibility,
const omm::Gpu::DescriptorRangeDesc* ranges, uint32_t numRanges)->nvrhi::BindingLayoutHandle {
nvrhi::VulkanBindingOffsets defaultBindingOffsets;
defaultBindingOffsets.shaderResource = desc->spirvBindingOffsets.textureOffset;
defaultBindingOffsets.sampler = desc->spirvBindingOffsets.samplerOffset;
defaultBindingOffsets.constantBuffer = desc->spirvBindingOffsets.constantBufferOffset;
defaultBindingOffsets.unorderedAccess = desc->spirvBindingOffsets.storageTextureAndBufferOffset;

nvrhi::BindingLayoutDesc layoutDesc;
layoutDesc.visibility = visibility;
layoutDesc.bindingOffsets = shaderProvider ? shaderProvider->bindingOffsets : defaultBindingOffsets;
layoutDesc.bindingOffsets.shaderResource = (shaderProvider != nullptr && shaderProvider->bindingOffsets.shaderResource != UINT_MAX) ? shaderProvider->bindingOffsets.shaderResource : desc->spirvBindingOffsets.textureOffset;
layoutDesc.bindingOffsets.sampler = (shaderProvider != nullptr && shaderProvider->bindingOffsets.sampler != UINT_MAX) ? shaderProvider->bindingOffsets.sampler : desc->spirvBindingOffsets.samplerOffset;
layoutDesc.bindingOffsets.constantBuffer = (shaderProvider != nullptr && shaderProvider->bindingOffsets.constantBuffer != UINT_MAX) ? shaderProvider->bindingOffsets.constantBuffer : desc->spirvBindingOffsets.constantBufferOffset;
layoutDesc.bindingOffsets.unorderedAccess = (shaderProvider != nullptr && shaderProvider->bindingOffsets.unorderedAccess != UINT_MAX) ? shaderProvider->bindingOffsets.unorderedAccess : desc->spirvBindingOffsets.storageTextureAndBufferOffset;

nvrhi::BindingLayoutItem constantBufferItem = nvrhi::BindingLayoutItem::ConstantBuffer(desc->globalConstantBufferDesc.registerIndex);
layoutDesc.bindings.push_back(constantBufferItem);
Expand Down
8 changes: 4 additions & 4 deletions omm-sdk/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -53,10 +53,10 @@ if ("${OMM_SHADER_OUTPUT_PATH}" STREQUAL "")
endif()

# Vulkan resource offsets
set(OMM_VK_S_SHIFT 100)
set(OMM_VK_T_SHIFT 200)
set(OMM_VK_B_SHIFT 300)
set(OMM_VK_U_SHIFT 400)
set(OMM_VK_S_SHIFT 100 CACHE STRING "OMM_VK_S_SHIFT")
set(OMM_VK_T_SHIFT 200 CACHE STRING "OMM_VK_T_SHIFT")
set(OMM_VK_B_SHIFT 300 CACHE STRING "OMM_VK_B_SHIFT")
set(OMM_VK_U_SHIFT 400 CACHE STRING "OMM_VK_U_SHIFT")
add_definitions(-DOMM_VK_S_SHIFT=${OMM_VK_S_SHIFT} -DOMM_VK_T_SHIFT=${OMM_VK_T_SHIFT} -DOMM_VK_B_SHIFT=${OMM_VK_B_SHIFT} -DOMM_VK_U_SHIFT=${OMM_VK_U_SHIFT})

if (OMM_ENABLE_PRECOMPILED_SHADERS_DXIL OR OMM_ENABLE_PRECOMPILED_SHADERS_SPIRV)
Expand Down
2 changes: 1 addition & 1 deletion omm-sdk/include/omm.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ license agreement from NVIDIA CORPORATION is strictly prohibited.

#define OMM_VERSION_MAJOR 1
#define OMM_VERSION_MINOR 6
#define OMM_VERSION_BUILD 0
#define OMM_VERSION_BUILD 1

#define OMM_MAX_TRANSIENT_POOL_BUFFERS 8

Expand Down
2 changes: 1 addition & 1 deletion omm-sdk/src/version.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ license agreement from NVIDIA CORPORATION is strictly prohibited.

#define VERSION_MAJOR 1
#define VERSION_MINOR 6
#define VERSION_BUILD 0
#define VERSION_BUILD 1
#define VERSION_REVISION 0

#define VERSION_STRING STR(VERSION_MAJOR.VERSION_MINOR.VERSION_BUILD.VERSION_REVISION)

0 comments on commit af92a7d

Please sign in to comment.