mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-19 18:05:31 +00:00
Implement RenderBundle in the frontend
This CL implements RenderBundle and RenderBundleEncoder in the frontend and adds unittests for validation. Bug: dawn:154 Change-Id: Ice5ecd384cd627ad270b73052408f8139d1ea5f4 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/9221 Commit-Queue: Austin Eng <enga@chromium.org> Reviewed-by: Kai Ninomiya <kainino@chromium.org>
This commit is contained in:
committed by
Commit Bot service account
parent
2fb628da46
commit
8a488c1574
@@ -18,6 +18,7 @@
|
||||
#include "dawn_native/Buffer.h"
|
||||
#include "dawn_native/CommandAllocator.h"
|
||||
#include "dawn_native/ComputePipeline.h"
|
||||
#include "dawn_native/RenderBundle.h"
|
||||
#include "dawn_native/RenderPipeline.h"
|
||||
#include "dawn_native/Texture.h"
|
||||
|
||||
@@ -86,6 +87,14 @@ namespace dawn_native {
|
||||
EndRenderPassCmd* cmd = commands->NextCommand<EndRenderPassCmd>();
|
||||
cmd->~EndRenderPassCmd();
|
||||
} break;
|
||||
case Command::ExecuteBundles: {
|
||||
ExecuteBundlesCmd* cmd = commands->NextCommand<ExecuteBundlesCmd>();
|
||||
auto bundles = commands->NextData<Ref<RenderBundleBase>>(cmd->count);
|
||||
for (size_t i = 0; i < cmd->count; ++i) {
|
||||
(&bundles[i])->~Ref<RenderBundleBase>();
|
||||
}
|
||||
cmd->~ExecuteBundlesCmd();
|
||||
} break;
|
||||
case Command::InsertDebugMarker: {
|
||||
InsertDebugMarkerCmd* cmd = commands->NextCommand<InsertDebugMarkerCmd>();
|
||||
commands->NextData<char>(cmd->length + 1);
|
||||
@@ -207,6 +216,11 @@ namespace dawn_native {
|
||||
commands->NextCommand<EndRenderPassCmd>();
|
||||
break;
|
||||
|
||||
case Command::ExecuteBundles: {
|
||||
auto* cmd = commands->NextCommand<ExecuteBundlesCmd>();
|
||||
commands->NextData<Ref<RenderBundleBase>>(cmd->count);
|
||||
} break;
|
||||
|
||||
case Command::InsertDebugMarker: {
|
||||
InsertDebugMarkerCmd* cmd = commands->NextCommand<InsertDebugMarkerCmd>();
|
||||
commands->NextData<char>(cmd->length + 1);
|
||||
|
||||
Reference in New Issue
Block a user