mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-18 01:15:39 +00:00
Dynamic Buffer Offset : D3D Backend
In a typical graphics application it is a common usage to update some uniforms once per draw, and such uniforms include the word positions, orientations, and so on. In the current state of WebGPU, this means that for each draw call we have to create a new bind group to set the right uniform values. Bind group creation is expected to be more expensive than recording draws because a memory allocation is required. The functionality of dynamic buffer offset is to reduce the number of bind groups that need to be created. The patch implements dynamic buffer offset on D3D backend using root descriptor. Bug=dawn:55 Change-Id: Ia713a4edb3c0ab8f3bba048d7813f343e9dee166 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/9040 Commit-Queue: Shaobo Yan <shaobo.yan@intel.com> Reviewed-by: Austin Eng <enga@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
This commit is contained in:
committed by
Commit Bot service account
parent
d08611b7a8
commit
351ea23830
@@ -35,6 +35,13 @@ static constexpr uint32_t kMaxColorAttachments = 4u;
|
||||
static constexpr uint32_t kTextureRowPitchAlignment = 256u;
|
||||
// Dynamic buffer offsets require offset to be divisible by 256
|
||||
static constexpr uint64_t kMinDynamicBufferOffsetAlignment = 256u;
|
||||
// Max numbers of dynamic uniform buffers
|
||||
static constexpr uint32_t kMaxDynamicUniformBufferCount = 8u;
|
||||
// Max numbers of dynamic storage buffers
|
||||
static constexpr uint32_t kMaxDynamicStorageBufferCount = 4u;
|
||||
// Max numbers of dynamic buffers
|
||||
static constexpr uint32_t kMaxDynamicBufferCount =
|
||||
kMaxDynamicUniformBufferCount + kMaxDynamicStorageBufferCount;
|
||||
// Indirect command sizes
|
||||
static constexpr uint64_t kDispatchIndirectSize = 3 * sizeof(uint32_t);
|
||||
static constexpr uint64_t kDrawIndirectSize = 4 * sizeof(uint32_t);
|
||||
|
||||
Reference in New Issue
Block a user