1#pragma once
2
3#include <nn/gfx/detail/gfx_State-api.nvn.8.h>
4#include <nn/nn_BitTypes.h>
5#include <nn/util/util_BitPack.h>
6
7namespace nn::gfx {
8
9template <>
10struct PipelineImplData<ApiVariationNvn8> {
11 enum PipelineType { PipelineType_Graphics, PipelineType_Compute };
12 enum State { State_NotInitialized, State_Initialized };
13 enum Flag { Flag_HasTessellationState };
14
15 Bit8 state;
16 Bit8 nnPipelineType;
17 nn::util::BitPack8 flags;
18 char reserved;
19 Bit32 memorySize;
20
21 detail::VertexStateImpl<ApiVariationNvn8>::DataType nnVertexState;
22 detail::BlendStateImpl<ApiVariationNvn8>::DataType nnBlendState;
23 detail::RasterizerStateImpl<ApiVariationNvn8>::DataType nnRasterizerState;
24 detail::DepthStencilStateImpl<ApiVariationNvn8>::DataType nnDepthStencilState;
25 detail::TessellationStateImpl<ApiVariationNvn8>::DataType nnTessellationState;
26
27 detail::Ptr<const detail::ShaderImpl<ApiVariationNvn8>> pShader;
28 detail::Ptr<void> pWorkMemory;
29
30 detail::Ptr<void> userPtr;
31};
32
33} // namespace nn::gfx