Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Relax nvrhi push constant limits to permit platform-specific runtime checks #6

Closed
wants to merge 33 commits into from
Closed
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
1171f70
Add heap tier check for creating heap
stephenap07 Jan 5, 2022
cbb98ad
Fix formatting issue
stephenap07 Jan 5, 2022
2579db5
Merge branch 'add-heap-tier-check' into main
stephenap07 Jan 5, 2022
aadc853
Merge pull request #1 from NVIDIAGameWorks/main
RobertBeckebans Feb 7, 2022
997ee5a
Fix clear-depth attachment function. Add SamplerDesc hash function
stephenap07 Feb 21, 2022
78da052
Add component mapping to TextureDesc
stephenap07 Feb 26, 2022
cb11c7e
Update component mapping interface + add vulkan impl
stephenap07 Mar 20, 2022
43d7447
Merge branch 'main' of https://github.com/stephenap07/nvrhi into main
stephenap07 Mar 20, 2022
cde862f
Merge remote-tracking branch 'nvidia/main'
RobertBeckebans Mar 21, 2022
f381add
Merge remote-tracking branch 'stephenap07/main'
RobertBeckebans Mar 21, 2022
2caca76
Merge remote-tracking branch 'nvidia/main'
RobertBeckebans Sep 17, 2022
6cd0688
Disabled KHR_buffer_device_address for debugging purposes
RobertBeckebans Sep 17, 2022
4b2056e
CMakeLists fix for NVRHI shader compiler to support AppleClang
SRSaunders Nov 8, 2022
51cd95c
Add ability to map buffer ranges
stephenap07 Nov 18, 2022
2774193
Merge pull request #2 from SRSaunders/shadercomp-cmake
RobertBeckebans Dec 6, 2022
e9566a5
Merge remote-tracking branch 'nvidia/main'
RobertBeckebans Dec 6, 2022
fc4f956
Removed std:: from std::hash<nvrhi::SamplerDesc>
RobertBeckebans Dec 6, 2022
8ad2903
Revert "Disabled KHR_buffer_device_address for debugging purposes"
RobertBeckebans Dec 6, 2022
1cbc9e9
Added back with & height to FramebufferInfoEx hash
RobertBeckebans Dec 6, 2022
469f617
Add heap tier check for creating heap
stephenap07 Jan 5, 2022
ce4e245
Fix formatting issue
stephenap07 Jan 5, 2022
c57060e
Fix clear-depth attachment function. Add SamplerDesc hash function
stephenap07 Feb 21, 2022
0a0c538
Update component mapping interface + add vulkan impl
stephenap07 Mar 20, 2022
63f3682
Add component mapping to TextureDesc
stephenap07 Feb 26, 2022
73d634c
Add ability to map buffer ranges
stephenap07 Nov 18, 2022
8557290
CMakeLists fix for NVRHI shader compiler to support AppleClang
SRSaunders Nov 8, 2022
6934bb8
Removed std:: from std::hash<nvrhi::SamplerDesc>
RobertBeckebans Dec 6, 2022
5af5ec2
Added back with & height to FramebufferInfoEx hash
RobertBeckebans Dec 6, 2022
9cf6f8a
Cleanup
RobertBeckebans Feb 27, 2023
08ae921
Fixed rebase conflict
RobertBeckebans Feb 27, 2023
4f351c1
Merge branch 'nvidia-rebase-20230227'
RobertBeckebans Feb 27, 2023
7c71269
Relax nvrhi push constant limits to permit platform-specific runtime …
SRSaunders Oct 4, 2023
4692158
Merge branch 'main' into pushconst-limits
SRSaunders Feb 25, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
6 changes: 5 additions & 1 deletion include/nvrhi/nvrhi.h
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,11 @@ namespace nvrhi
static constexpr uint32_t c_MaxBindingsPerLayout = 128;
static constexpr uint32_t c_MaxVolatileConstantBuffersPerLayout = 6;
static constexpr uint32_t c_MaxVolatileConstantBuffers = 32;
static constexpr uint32_t c_MaxPushConstantSize = 128; // D3D12: root signature is 256 bytes max., Vulkan: 128 bytes of push constants guaranteed
#if defined(__APPLE__)
static constexpr uint32_t c_MaxPushConstantSize = 4096; // Vulkan: MoltenVK/Metal provides 4096 bytes of push constants
#else
static constexpr uint32_t c_MaxPushConstantSize = 256; // D3D12: root signature is 256 bytes max., Vulkan: 128 bytes of push constants guaranteed, but varies with platform and GPU vendor - let application check/enforce limit at runtime
#endif
static constexpr uint32_t c_ConstantBufferOffsetSizeAlignment = 256; // Partially bound constant buffers must have offsets aligned to this and sizes multiple of this

//////////////////////////////////////////////////////////////////////////
Expand Down