module
APISpec_PipelinesChapter 9: Specification
Classes
- struct VV::V1::Pipeline::Cache::CreateInfo
- Specification
- struct VV::V1::Pipeline::Cache
- Pipeline cache objects allow the result of pipeline construction to be reused between pipelines and between runs of an application.
- struct VV::V1::Pipeline::DynamicState::CreateInfo
- Specification
- struct VV::V1::Pipeline::DynamicState
- Used to indicate which properties of the pipeline state object are dynamic and can be changed independently of the pipeline state.
- struct VV::V1::Pipeline::Specialization::MapEntry
- Specification
- struct VV::V1::Pipeline::Specialization::Info
- Specification
- struct VV::V1::Pipeline::Specialization
- Specialization constants are a mechanism whereby constants in a SPIR-V module can have their constant value specified at the time the VkPipeline is created. This allows a SPIR-V module to have constants that can be modified while executing an application that uses the Vulkan API.
- struct VV::V1::Pipeline::ShaderStage::CreateInfo
- Specification
- struct VV::V1::Pipeline::ShaderStage
- Used to handle shader staging within a pipeline, more than one shader can be staged in a pipeline.
- struct VV::V1::Pipeline::Compute::CreateInfo
- Specification
- struct VV::V1::Pipeline::Compute
- The compute pipeline represents a compute shader.
- struct VV::V1::Pipeline::Graphics::CreateInfo
- Specification
- struct VV::V1::Pipeline::Graphics::ShaderGroup::CreateInfo
- Specification
- struct VV::V1::Pipeline::Graphics::ShaderGroup::MultipleCreateInfo
- Specification
- struct VV::V1::Pipeline::Graphics::ShaderGroup
- Graphics pipelines can contain multiple shader groups that can be bound individually. \ Each shader group behaves as if it was a pipeline using the shader groups state.
- struct VV::V1::Pipeline::Graphics
- Graphics pipelines consist of multiple shader stages, multiple fixed-function pipeline stages, and a pipeline layout.
- struct VV::V1::Pipeline
- A monolithic object describing the entire graphics, raytracing, or compute pipeline.
Enums
- enum class EDynamicState: ui32 { Viewport = VK_DYNAMIC_STATE_VIEWPORT, Scissor = VK_DYNAMIC_STATE_SCISSOR, LineWidth = VK_DYNAMIC_STATE_LINE_WIDTH, DepthBias = VK_DYNAMIC_STATE_DEPTH_BIAS, BlendConstants = VK_DYNAMIC_STATE_BLEND_CONSTANTS, DepthBounds = VK_DYNAMIC_STATE_DEPTH_BOUNDS, StencilCompareMask = VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK, StencilWriteMask = VK_DYNAMIC_STATE_STENCIL_WRITE_MASK, StencilReference = VK_DYNAMIC_STATE_STENCIL_REFERENCE, Viewport_W_Scaling_NV = VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV, DiscardRectangle_Extension = VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT, SampleLocations_Extension = VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT, ViewportShadingRatePalette_NV = VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV, ViewportCoarseSampleOrder_NV = VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV, ExclusiveScissor_NV = VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV, LineStipple_Extension = VK_DYNAMIC_STATE_LINE_STIPPLE_EXT }
- Specification
- enum class EPipelineBindPoint: ui32 { Graphics = VK_PIPELINE_BIND_POINT_GRAPHICS, Compute = VK_PIPELINE_BIND_POINT_COMPUTE }
- Specification
- enum class EPipelineCacheCreateFlag: ui32 { Externally_Synchronized = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT, VV_SpecifyBitmaskable = VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM }
- Specification
- enum class EPipelineCreateFlag: ui32 { DisableOptimization = VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT, AllowDerivatives = VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT, Derivative = VK_PIPELINE_CREATE_DERIVATIVE_BIT, ViewIndexFromDeviceIndex = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT, DispatchBase = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT, Raytracing_NoNull_AnyHit_Shaders = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, Raytracing_NoNull_ClosestHit_Shaders = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, Raytracing_NoNull_Miss_Shaders = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR, Raytracing_NoNull_Intersection_Shaders = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, Raytracing_SkipTriangles = VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR, Raytracing_Skip_AABBS = VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR, DeferCompile = VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV, CaptureStatistics = VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR, CaptureInternalRepresentations = VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR, IndirectBindable = VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, Library = VK_PIPELINE_CREATE_LIBRARY_BIT_KHR, FailOn_PipelineCompileRequired = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT, EarlyReturnOn_Failure = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT, DispatchBase2 = VK_PIPELINE_CREATE_DISPATCH_BASE, ViewIndexFromDeviceInex = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR, DispatchBase_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE_KHR, VV_SpecifyBitmaskable = VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM }
- Specification
- enum class EPipelineShaderStageCreateFlag: ui32 { AllowVaryingSubgroupSize = VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT, RequireFullSubgroups = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT, VV_SpecifyBitmaskable = VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM }
- Specification
- enum class EShaderStageFlag: ui32 { Vertex = VK_SHADER_STAGE_VERTEX_BIT, TessellationControl = VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, TessellationEvaluation = VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, Geometry = VK_SHADER_STAGE_GEOMETRY_BIT, Fragment = VK_SHADER_STAGE_FRAGMENT_BIT, Compute = VK_SHADER_STAGE_COMPUTE_BIT, Graphics = VK_SHADER_STAGE_ALL_GRAPHICS, All = VK_SHADER_STAGE_ALL, Raygen_KHR = VK_SHADER_STAGE_RAYGEN_BIT_KHR, AnyHit_KHR = VK_SHADER_STAGE_ANY_HIT_BIT_KHR, ClosestHit_KHR = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR, Miss_KHR = VK_SHADER_STAGE_MISS_BIT_KHR, Intersection_KHR = VK_SHADER_STAGE_INTERSECTION_BIT_KHR, Callable_KHR = VK_SHADER_STAGE_CALLABLE_BIT_KHR, Task_NV = VK_SHADER_STAGE_TASK_BIT_NV, Mesh_NV = VK_SHADER_STAGE_MESH_BIT_NV, Raygen_NV = VK_SHADER_STAGE_RAYGEN_BIT_NV, AnyHit_NV = VK_SHADER_STAGE_ANY_HIT_BIT_NV, ClosestHit_NV = VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV, Miss_NV = VK_SHADER_STAGE_MISS_BIT_NV, Intersection_NV = VK_SHADER_STAGE_INTERSECTION_BIT_NV, Callable_NV = VK_SHADER_STAGE_CALLABLE_BIT_NV, VV_SpecifyBitmaskable = VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM }
- Specification
Typedefs
- using Handle = VkPipeline
- Specification
- using ShaderStageFlags = Bitfield<EShaderStageFlag, VkShaderStageFlags>
- Specification
- using Handle = VkPipelineCache
- Specification
- using CreateFlags = Bitfield<EPipelineCacheCreateFlag, VkPipelineCacheCreateFlags>
- Specification
- using CreateFlags = Bitfield<EPipelineShaderStageCreateFlag, VkShaderStageFlags>
- Specification
- using CreateFlags = Bitfield<EPipelineCreateFlag, VkPipelineCreateFlags>
- Specification
- using CreateFlags = Bitfield<EPipelineCreateFlag, VkPipelineCreateFlags>
- Specification
Functions
- static void BindPipeline(Handle _commandBuffer, EPipelineBindPoint _pipelineBindPoint, Pipeline::Handle _pipeline)
- Specification
- static auto Create(LogicalDevice::Handle _deviceHandle, const CreateInfo& _createInfo, const Memory::AllocationCallbacks* _allocator, Cache::Handle _pipelineCache) -> EResult
- Create a pipeline cache.
- static void Destroy(LogicalDevice::Handle _deviceHandle, Cache::Handle _cache, const Memory::AllocationCallbacks* _allocator)
- Destroy a pipeline cache.
- static auto Create(LogicalDevice::Handle _deviceHandle, Cache::Handle _cache, ui32 _createInfoCount, const CreateInfo* _createInfos, const Memory::AllocationCallbacks* _allocator, Handle* _pipelines) -> EResult
- Create a compute pipeline.
- static auto Create(LogicalDevice::Handle _deviceHandle, Cache::Handle _pipelineCache, ui32 _createInfoCount, const CreateInfo* _createInfos, const Memory::AllocationCallbacks* _allocator, Handle* _pipelines) -> EResult
- Create a graphics pipeline.
- static void Destroy(LogicalDevice::Handle _deviceHandle, Handle _pipeline, const Memory::AllocationCallbacks* _allocator)
- Destroy a pipeline object.
Enum documentation
enum class EDynamicState: ui32
#include <VaultedVulkan/VV_Enums.hpp>
enum class EPipelineBindPoint: ui32
#include <VaultedVulkan/VV_Enums.hpp>
enum class EPipelineCacheCreateFlag: ui32
#include <VaultedVulkan/VV_Enums.hpp>
enum class EPipelineCreateFlag: ui32
#include <VaultedVulkan/VV_Enums.hpp>
enum class EPipelineShaderStageCreateFlag: ui32
#include <VaultedVulkan/VV_Enums.hpp>
enum class EShaderStageFlag: ui32
#include <VaultedVulkan/VV_Enums.hpp>
Typedef documentation
using Handle = VkPipeline
#include <VaultedVulkan/VV_Pipelines.hpp>
using ShaderStageFlags = Bitfield<EShaderStageFlag, VkShaderStageFlags>
#include <VaultedVulkan/VV_Pipelines.hpp>
using Handle = VkPipelineCache
#include <VaultedVulkan/VV_Pipelines.hpp>
using CreateFlags = Bitfield<EPipelineCacheCreateFlag, VkPipelineCacheCreateFlags>
#include <VaultedVulkan/VV_Pipelines.hpp>
using CreateFlags = Bitfield<EPipelineShaderStageCreateFlag, VkShaderStageFlags>
#include <VaultedVulkan/VV_Pipelines.hpp>
using CreateFlags = Bitfield<EPipelineCreateFlag, VkPipelineCreateFlags>
#include <VaultedVulkan/VV_Pipelines.hpp>
using CreateFlags = Bitfield<EPipelineCreateFlag, VkPipelineCreateFlags>
#include <VaultedVulkan/VV_Pipelines.hpp>
Function documentation
static void BindPipeline(Handle _commandBuffer,
EPipelineBindPoint _pipelineBindPoint,
Pipeline::Handle _pipeline)
#include <VaultedVulkan/VV_Command.hpp>
static EResult Create(LogicalDevice::Handle _deviceHandle,
const CreateInfo& _createInfo,
const Memory::AllocationCallbacks* _allocator,
Cache::Handle _pipelineCache)
#include <VaultedVulkan/VV_Pipelines.hpp>
Create a pipeline cache.
Parameters | |
---|---|
_deviceHandle | |
_createInfo | |
_allocator | |
_pipelineCache |
static void Destroy(LogicalDevice::Handle _deviceHandle,
Cache::Handle _cache,
const Memory::AllocationCallbacks* _allocator)
#include <VaultedVulkan/VV_Pipelines.hpp>
Destroy a pipeline cache.
Parameters | |
---|---|
_deviceHandle | |
_cache | |
_allocator |
static EResult Create(LogicalDevice::Handle _deviceHandle,
Cache::Handle _cache,
ui32 _createInfoCount,
const CreateInfo* _createInfos,
const Memory::AllocationCallbacks* _allocator,
Handle* _pipelines)
#include <VaultedVulkan/VV_Pipelines.hpp>
Create a compute pipeline.
Parameters | |
---|---|
_deviceHandle | |
_cache | |
_createInfoCount | |
_createInfos | |
_allocator | |
_pipelines |
static EResult Create(LogicalDevice::Handle _deviceHandle,
Cache::Handle _pipelineCache,
ui32 _createInfoCount,
const CreateInfo* _createInfos,
const Memory::AllocationCallbacks* _allocator,
Handle* _pipelines)
#include <VaultedVulkan/VV_Pipelines.hpp>
Create a graphics pipeline.
Parameters | |
---|---|
_deviceHandle | |
_pipelineCache | |
_createInfoCount | |
_createInfos | |
_allocator | |
_pipelines |
static void Destroy(LogicalDevice::Handle _deviceHandle,
Handle _pipeline,
const Memory::AllocationCallbacks* _allocator)
#include <VaultedVulkan/VV_Pipelines.hpp>
Destroy a pipeline object.
Parameters | |
---|---|
_deviceHandle | |
_pipeline | |
_allocator |