1#pragma once
2
3#include <nn/gfx/detail/gfx_Common-api.nvn.h>
4#include <nn/gfx/detail/gfx_Misc.h>
5#include <nn/gfx/gfx_Common.h>
6#include <nn/nn_BitTypes.h>
7#include <nn/util/util_BitPack.h>
8
9namespace nn::gfx {
10
11template <>
12struct CommandBufferImplData<ApiVariationNvn8> {
13 enum Flag { Flag_Shared, Flag_ConservativeRasterSupported };
14
15 enum State { State_NotInitialized, State_Initialized, State_Begun };
16
17 Bit8 state;
18 nn::util::BitPack8 flags;
19 char reserved[6];
20 detail::Ptr<detail::DeviceImpl<ApiVariationNvn8>> pNnDevice;
21 detail::Ptr<const detail::RootSignatureImpl<ApiVariationNvn8>> pGfxRootSignature;
22
23 struct {
24 char reserved[160];
25 } nvnCommandBuffer;
26
27 detail::Ptr<void> pNvnCommandBuffer;
28 detail::NvnHandle hNvnCommandBuffer;
29 char reserved2[4];
30 detail::Ptr<void()> pOutOfCommandMemoryCallback;
31 detail::Ptr<void()> pOutOfControlMemoryCallback;
32 detail::Ptr<void> userPtr;
33};
34
35} // namespace nn::gfx