API_Specification » APISpec_Pipelines module

Chapter 9: Specification

Contents

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

Typedef documentation

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

Function documentation

static void BindPipeline(Handle _commandBuffer, EPipelineBindPoint _pipelineBindPoint, Pipeline::Handle _pipeline)

Specification

static EResult Create(LogicalDevice::Handle _deviceHandle, const CreateInfo& _createInfo, const Memory::AllocationCallbacks* _allocator, Cache::Handle _pipelineCache)

Create a pipeline cache.

Parameters
_deviceHandle
_createInfo
_allocator
_pipelineCache

Specification

static void Destroy(LogicalDevice::Handle _deviceHandle, Cache::Handle _cache, const Memory::AllocationCallbacks* _allocator)

Destroy a pipeline cache.

Parameters
_deviceHandle
_cache
_allocator

Specification

static EResult Create(LogicalDevice::Handle _deviceHandle, Cache::Handle _cache, ui32 _createInfoCount, const CreateInfo* _createInfos, const Memory::AllocationCallbacks* _allocator, Handle* _pipelines)

Create a compute pipeline.

Parameters
_deviceHandle
_cache
_createInfoCount
_createInfos
_allocator
_pipelines

Specification

static EResult Create(LogicalDevice::Handle _deviceHandle, Cache::Handle _pipelineCache, ui32 _createInfoCount, const CreateInfo* _createInfos, const Memory::AllocationCallbacks* _allocator, Handle* _pipelines)

Create a graphics pipeline.

Parameters
_deviceHandle
_pipelineCache
_createInfoCount
_createInfos
_allocator
_pipelines

Specification

static void Destroy(LogicalDevice::Handle _deviceHandle, Handle _pipeline, const Memory::AllocationCallbacks* _allocator)

Destroy a pipeline object.

Parameters
_deviceHandle
_pipeline
_allocator

Specification