mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-13 23:26:24 +00:00
D3D12: Stage BindGroups on CPU descriptor heaps.
Instead of directly populating GPU heaps, pre-encoded BindGroups are staged on CPU heaps then copied over to the GPU. Non-shader visible allocators are stored on the BGL, which hands out fixed-size chunks to simplify memory managment. To enable memory re-use, CPU allocations are tied to the lifetime of BindGroup objects. BUG=dawn:155 Change-Id: I402e6686c96f7450a077c627c8499600979e426c Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/18100 Commit-Queue: Bryan Bernhart <bryan.bernhart@intel.com> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
This commit is contained in:
committed by
Commit Bot service account
parent
c00163ba09
commit
2479860e4b
@@ -19,6 +19,7 @@
|
||||
|
||||
#include <algorithm>
|
||||
#include <cmath>
|
||||
#include <limits>
|
||||
|
||||
#if defined(DAWN_COMPILER_MSVC)
|
||||
# include <intrin.h>
|
||||
@@ -152,3 +153,10 @@ float SRGBToLinear(float srgb) {
|
||||
return std::pow((srgb + 0.055f) / 1.055f, 2.4f);
|
||||
}
|
||||
}
|
||||
|
||||
uint64_t RoundUp(uint64_t n, uint64_t m) {
|
||||
ASSERT(m > 0);
|
||||
ASSERT(n > 0);
|
||||
ASSERT(m <= std::numeric_limits<uint64_t>::max() - n);
|
||||
return ((n + m - 1) / m) * m;
|
||||
}
|
||||
Reference in New Issue
Block a user