wisdom
|
Classes | |
struct | AcceleratedGeometryInput |
Geometry description for bottom-level acceleration structure. Mayy contain AABBs or Triangles. More... | |
struct | AdapterDesc |
Adapter description. Describes hardware driver identificators as well as memory limits. More... | |
struct | AllocationInfo |
Allocation info for Resource Allocation. More... | |
struct | ASAllocationInfo |
Acceleration structure allocation info. Used to query sizes for AS build/update buffers. More... | |
struct | BlendAttachmentDesc |
Blend attachment description for wis::BlendStateDesc. More... | |
struct | BlendStateDesc |
Blend state description for . More... | |
struct | BufferBarrier |
Buffer barrier for wis::CommandList. More... | |
struct | BufferRegion |
Buffer region for copy operations. More... | |
struct | BufferTextureCopyRegion |
Buffer to texture copy region. More... | |
struct | ComponentMapping |
Component mapping for wis::ShaderResourceDesc. More... | |
struct | DepthStencilDesc |
Depth stencil description for . More... | |
struct | DescriptorBindingDesc |
Descriptor binding description for RootSignature and Descriptor Storage creation. Description place in array determines binding index that this lane maps to. e.g. bindings[1] means on HLSL side this results in [[vk::binding(0,1)]]. All the bindings in Descriptor Storage are unbounded, array of these structures determine the presence and order of the bindings. More... | |
struct | DescriptorTable |
Descriptor table for wis::DescriptorBuffer. More... | |
struct | DescriptorTableEntry |
Descriptor table entry for wis::DescriptorTable. More... | |
struct | DeviceConstants |
Constants that device provide to work with it. More... | |
struct | DeviceExtQuery |
Struct used to query the extensions for C code. Queried results should not be freed, their lifetime ends with the Factory they were created with. If wis::DeviceExtQuery::extension_id is 0, wis::DeviceExtQuery::result must be populated with already created extension. Otherwise extension is ignored. More... | |
struct | FactoryExtQuery |
Struct used to query the extensions for C code. Queried results should not be freed, their lifetime ends with the Factory they were created with. If wis::FactoryExtQuery::extension_id is 0, wis::FactoryExtQuery::result must be populated with already created extension. Otherwise extension is ignored. More... | |
struct | HitGroupDesc |
Hit group description for Raytracing pipeline. More... | |
struct | InputAttribute |
Input attribute description for wis::InputLayout. More... | |
struct | InputLayout |
Input layout description for . More... | |
struct | InputSlotDesc |
Input slot description for wis::InputLayout. More... | |
struct | is_flag_enum |
struct | is_flag_enum< wis::AccelerationStructureFlags > |
struct | is_flag_enum< wis::AdapterFlags > |
struct | is_flag_enum< wis::ASGeometryFlags > |
struct | is_flag_enum< wis::ASInstanceFlags > |
struct | is_flag_enum< wis::BarrierSync > |
struct | is_flag_enum< wis::BufferUsage > |
struct | is_flag_enum< wis::ColorComponents > |
struct | is_flag_enum< wis::DSSelect > |
struct | is_flag_enum< wis::FenceFlags > |
struct | is_flag_enum< wis::MemoryFlags > |
struct | is_flag_enum< wis::PipelineFlags > |
struct | is_flag_enum< wis::RenderPassFlags > |
struct | is_flag_enum< wis::ResourceAccess > |
struct | is_flag_enum< wis::TextureUsage > |
struct | PushConstant |
A set of constants that get pushed directly to the pipeline. Only one set can be created per shader stage. More... | |
struct | PushDescriptor |
Push descriptor. Used to push data directly to pipeline. More... | |
struct | RasterizerDesc |
Rasterizer description for . More... | |
struct | RaytracingConstants |
Constants that device provide to work with raytracing. More... | |
struct | RaytracingDispatchDesc |
Raytracing dispatch description for wis::CommandList. More... | |
struct | RenderAttachmentsDesc |
Render attachments description for . More... | |
struct | RenderTargetDesc |
Render target description for wis::RenderTarget creation. More... | |
struct | Result |
Main source of communication of operation success. To check for success compare wis::Result::status with wis::Status::Ok. If there is any error there is string which is compile-time. It communicates the source of problems even in Release mode. The string contains function name and error message. More... | |
struct | ResultValue |
struct | SampleDesc |
Sample description of Multisampling for . More... | |
struct | SamplerDesc |
Sampler description for wis::Sampler creation. More... | |
struct | Scissor |
Scissor description for wis::CommandList. More... | |
struct | ShaderBindingTableInfo |
Shader binding table description for Raytracing pipeline. More... | |
struct | ShaderExport |
Defines export shader functions from a library shader. More... | |
struct | ShaderResourceDesc |
Shader resource description for . More... | |
struct | Size2D |
2D unsigned size. More... | |
struct | Size3D |
3D unsigned size. More... | |
struct | StencilDesc |
Stencil description for wis::DepthStencilDesc. More... | |
struct | SubresourceRange |
Subresource range for wis::TextureBarrier. More... | |
struct | SwapchainDesc |
Swapchain description for wis::SwapChain creation. More... | |
struct | TextureBarrier |
Texture barrier for wis::CommandList. More... | |
struct | TextureCopyRegion |
Texture to texture copy region. More... | |
struct | TextureDesc |
Texture description for wis::Texture creation. More... | |
struct | TextureRegion |
Texture region for copy operations. More... | |
struct | TopLevelASBuildDesc |
Top level acceleration structure build description. More... | |
struct | UnorderedAccessDesc |
Unordered access description for RW Texture creation. More... | |
struct | Viewport |
Viewport description for wis::CommandList. Viewport is considered from Top Left corner. More... | |
Typedefs | |
using | DebugCallback = void(*)(wis::Severity severity, const char *message, void *user_data) |
Debug callback delegate. Used for Library internal log messages. | |
Enumerations | |
enum class | ShaderStages : uint32_t { All = 0 , Vertex = 1 , Hull = 2 , Domain = 3 , Geometry = 4 , Pixel = 5 , Amplification = 6 , Mesh = 7 , Count = 8 } |
Shader stages that can be used in the pipeline. Main use is Root signature and descriptor management. Stages have no granularity, either all or one can be selected. More... | |
enum class | Status : int32_t { Ok = 0 , Timeout = 1 , Partial = 2 , Error = -1 , InvalidArgument = -2 , OutOfMemory = -3 , DeviceLost = -4 , Occluded = -5 } |
Represents main error communication source for the API. Compare against wis::Status::Ok for success. More... | |
enum class | QueueType : uint32_t { Graphics = 0 , Compute = 2 , Copy = 3 , VideoDecode = 4 } |
Type of the queue to create. More... | |
enum class | DescriptorType : uint32_t { Sampler = 0 , ConstantBuffer = 1 , Texture = 2 , RWTexture = 3 , RWBuffer = 4 , Buffer = 5 , AccelerationStructure = 6 } |
Type of the descriptor in the descriptor table. More... | |
enum class | MutiWaitFlags : uint32_t { All = 0 , Any = 1 } |
Determines the behavior when wait for multiple fences is issued. More... | |
enum class | ASGeometryType : uint32_t { Triangles = 0 , AABBs = 1 } |
Type of the geometry in the Acceleration Structure. More... | |
enum class | AdapterPreference { None = 0 , MinConsumption = 1 , Performance = 2 } |
Oreders the adapters according to preference using builtin heuristics of underlying APIs. More... | |
enum class | RaytracingShaderType : uint32_t { Raygen = 0 , Miss = 1 , ClosestHit = 2 , AnyHit = 3 , Intersection = 4 , Callable = 5 } |
Shader stages that can be used in the raytracing pipeline. More... | |
enum class | Severity { Debug = 0 , Trace = 1 , Info = 2 , Warning = 3 , Error = 4 , Critical = 5 } |
Log message severity. Used with wis::DebugCallback and internal library logging. More... | |
enum class | ASLevel : uint32_t { Bottom = 0 , Top = 1 } |
Level of the Raytracing Acceleration Structure. Used to create Acceleration structures. More... | |
enum class | HitGroupType : uint32_t { Triangles = 0 , Procedural = 1 } |
Type of the hit group in the raytracing pipeline. More... | |
enum class | InputClass : uint32_t { PerVertex = 0 , PerInstance = 1 } |
Input classification for vertex buffer data. More... | |
enum class | CullMode : uint32_t { None = 1 , Front = 2 , Back = 3 } |
Cull mode for rasterizer. Triangle culling depends on wis::WindingOrder option. More... | |
enum class | DataFormat : uint32_t { Unknown = 0 , RGBA32Float = 2 , RGBA32Uint = 3 , RGBA32Sint = 4 , RGB32Float = 6 , RGB32Uint = 7 , RGB32Sint = 8 , RGBA16Float = 10 , RGBA16Unorm = 11 , RGBA16Uint = 12 , RGBA16Snorm = 13 , RGBA16Sint = 14 , RG32Float = 16 , RG32Uint = 17 , RG32Sint = 18 , D32FloatS8Uint = 20 , RGB10A2Unorm = 24 , RGB10A2Uint = 25 , RG11B10Float = 26 , RGBA8Unorm = 28 , RGBA8UnormSrgb = 29 , RGBA8Uint = 30 , RGBA8Snorm = 31 , RGBA8Sint = 32 , RG16Float = 34 , RG16Unorm = 35 , RG16Uint = 36 , RG16Snorm = 37 , RG16Sint = 38 , D32Float = 40 , R32Float = 41 , R32Uint = 42 , R32Sint = 43 , D24UnormS8Uint = 45 , RG8Unorm = 49 , RG8Uint = 50 , RG8Snorm = 51 , RG8Sint = 52 , R16Float = 54 , D16Unorm = 55 , R16Unorm = 56 , R16Uint = 57 , R16Snorm = 58 , R16Sint = 59 , R8Unorm = 61 , R8Uint = 62 , R8Snorm = 63 , R8Sint = 64 , RGB9E5UFloat = 67 , BC1RGBAUnorm = 71 , BC1RGBAUnormSrgb = 72 , BC2RGBAUnorm = 74 , BC2RGBAUnormSrgb = 75 , BC3RGBAUnorm = 77 , BC3RGBAUnormSrgb = 78 , BC4RUnorm = 80 , BC4RSnorm = 81 , BC5RGUnorm = 83 , BC5RGSnorm = 84 , B5G6R5Unorm = 85 , B5G5R5A1Unorm = 86 , BGRA8Unorm = 87 , BGRA8UnormSrgb = 91 , BC6HUfloat16 = 95 , BC6HSfloat16 = 96 , BC7RGBAUnorm = 98 , BC7RGBAUnormSrgb = 99 , BGRA4Unorm = 115 } |
Data format for data. Used as a template for data in several cases. Can be used to describe: More... | |
enum class | FillMode : uint32_t { Lines = 2 , Solid = 3 } |
Fill mode for rasterizer. More... | |
enum class | DescriptorMemory : uint32_t { CpuOnly = 0 , ShaderVisible = 1 } |
Descriptor memory type. Decides if descriptors are visible and can be bound to GPU. More... | |
enum class | WindingOrder : uint32_t { Clockwise = 0 , CounterClockwise = 1 } |
Winding order for front-facing triangles. More... | |
enum class | SampleRate : uint32_t { S1 = 1 , S2 = 2 , S4 = 4 , S8 = 8 , S16 = 16 } |
Sample rate for multisampling. More... | |
enum class | SwapchainScaling : uint32_t { None = 0 , Stretch = 1 , Aspect = 2 } |
Swapchain scaling mode. More... | |
enum class | Compare : uint32_t { None = 0 , Never = 1 , Less = 2 , Equal = 3 , LessEqual = 4 , Greater = 5 , NotEqual = 6 , GreaterEqual = 7 , Always = 8 } |
Comparison function for depth and stencil operations. More... | |
enum class | StencilOp : uint32_t { Keep = 1 , Zero = 2 , Replace = 3 , IncClamp = 4 , DecClamp = 5 , Invert = 6 , IncWrap = 7 , DecWrap = 8 } |
Stencil operation for depth and stencil operations. More... | |
enum class | BlendFactor : uint32_t { Zero = 1 , One = 2 , SrcColor = 3 , InvSrcColor = 4 , SrcAlpha = 5 , InvSrcAlpha = 6 , DestAlpha = 7 , InvDestAlpha = 8 , DestColor = 9 , InvDestColor = 10 , SrcAlphaSat = 11 , ConstantColor = 14 , InvBlendFactor = 15 , Src1Color = 16 , InvSrc1Color = 17 , Src1Alpha = 18 , InvSrc1Alpha = 19 } |
Blend factor for color blending operations. More... | |
enum class | BlendOp : uint32_t { Add = 1 , Subtract = 2 , RevSubtract = 3 , Min = 4 , Max = 5 } |
Blend operation for color blending operations. More... | |
enum class | LogicOp : uint32_t { Clear = 0 , Set = 1 , Copy = 2 , CopyInverted = 3 , Noop = 4 , Invert = 5 , And = 6 , Nand = 7 , Or = 8 , Nor = 9 , Xor = 10 , Equiv = 11 , AndReverse = 12 , AndInverted = 13 , OrReverse = 14 , OrInverted = 15 } |
Logic operation for color blending operations. More... | |
enum class | MemoryType : uint32_t { Default = 0 , DeviceLocal = 0 , Upload = 1 , Readback = 2 , GPUUpload = 3 } |
Memory type for resource allocation. More... | |
enum class | ShaderIntermediate : uint32_t { DXIL = 0 , SPIRV = 1 } |
Intermediate shader representation. More... | |
enum class | TextureState : uint32_t { Undefined = 4294967295 , Common = 0 , Read = 1 , RenderTarget = 2 , UnorderedAccess = 3 , DepthStencilWrite = 4 , DepthStencilRead = 5 , ShaderResource = 6 , CopySource = 7 , CopyDest = 8 , Present = 9 , ShadingRate = 10 , VideoDecodeRead = 11 , VideoDecodeWrite = 12 } |
Texture state for resource transitions. More... | |
enum class | LoadOperation : uint32_t { Load = 0 , Clear = 1 , DontCare = 2 } |
Attachment load operation for render pass. More... | |
enum class | TextureLayout : uint32_t { Texture1D = 2 , Texture1DArray = 3 , Texture2D = 4 , Texture2DArray = 5 , Texture2DMS = 6 , Texture2DMSArray = 7 , Texture3D = 8 } |
Texture layout. Determines how texture will be accessed. More... | |
enum class | DescriptorHeapType : uint32_t { Descriptor = 0 , Sampler = 1 } |
Descriptor heap type. More... | |
enum class | StoreOperation : uint32_t { Store = 0 , DontCare = 1 , Resolve = 2 } |
Attachment store operation for render pass. More... | |
enum class | PrimitiveTopology : uint32_t { PointList = 1 , LineList = 2 , LineStrip = 3 , TriangleList = 4 , TriangleStrip = 5 , TriangleFan = 6 , LineListAdj = 10 , LineStripAdj = 11 , TriangleListAdj = 12 , TriangleStripAdj = 13 } |
Primitive topology for rendering. More info could be found here. More... | |
enum class | TopologyType : uint32_t { Point = 1 , Line = 2 , Triangle = 3 , Patch = 4 } |
Primitive topology type for rendering. More... | |
enum class | DeviceFeature : uint32_t { EnchancedBarriers = 1 , WaitForPresent = 2 , AdvancedIndexBuffer = 4 , DynamicVSync = 5 , UnusedRenderTargets = 6 , PushDescriptors = 7 } |
Features that device may support. Query by calling with Device::QueryFeatureSupport. Contains core features with optional ones. More... | |
enum class | Filter : uint32_t { Point = 0 , Linear = 1 } |
Filtering mode for texture sampling. More... | |
enum class | AddressMode : uint32_t { Repeat = 0 , MirroredRepeat = 1 , ClampToEdge = 2 , ClampToBorder = 3 , MirrorClampToEdge = 4 } |
Address mode for texture sampling. More... | |
enum class | TextureViewType : uint32_t { Texture1D = 0 , Texture1DArray = 1 , Texture2D = 2 , Texture2DArray = 3 , Texture2DMS = 4 , Texture2DMSArray = 5 , Texture3D = 6 , TextureCube = 7 , TextureCubeArray = 8 } |
Texture view type. More... | |
enum class | ComponentSwizzle : uint32_t { Red = 0 , Green = 1 , Blue = 2 , Alpha = 3 , Zero = 4 , One = 5 } |
Component swizzle for texture sampling. More... | |
enum class | IndexType : uint32_t { UInt16 = 2 , UInt32 = 4 } |
Index type for index buffer. Enum values resemble the byte stride of the format. More... | |
enum class | FactoryExtID : uint32_t { Custom = 0 , DebugExtension = 1 } |
Factory extension ID. Platform extension values start from 2049 0 is reserved as invalid/custom extension. More... | |
enum class | DeviceExtID : uint32_t { Custom = 0 , DescriptorBufferExtension = 1 , ExtendedAllocation = 2 } |
Device extension ID. Platform extension values start from 2049 0 is reserved as invalid/custom extension. More... | |
enum class | ASCopyMode : uint32_t { Clone = 0 , Compact = 1 , Serialize = 2 , Deserialize = 3 } |
Acceleration structure copy mode. More... | |
enum class | AdapterFlags { None = 0x0 , Remote = 1 << 0 , Software = 1 << 1 } |
Flags that describe adapter. More... | |
enum class | DSSelect { None = 0x0 , Depth = 1 << 0 , Stencil = 1 << 1 , DepthStencil = 0x3 } |
Depth stencil select flags. Affect which part of the depth stencil buffer is used. More... | |
enum class | ColorComponents { None = 0x0 , R = 1 << 0 , G = 1 << 1 , B = 1 << 2 , A = 1 << 3 , All = 0xF } |
Color component flags. Used for color blending operations. More... | |
enum class | BufferUsage { None = 0x0 , CopySrc = 1 << 0 , CopyDst = 1 << 1 , ConstantBuffer = 1 << 2 , IndexBuffer = 1 << 3 , VertexBuffer = 1 << 4 , IndirectBuffer = 1 << 5 , StorageBuffer = 1 << 6 , AccelerationStructureBuffer = 1 << 7 , AccelerationStructureInput = 1 << 8 , ShaderBindingTable = 1 << 9 } |
Buffer usage flags. Determine how the buffer can be used throughout its lifetime. More... | |
enum class | MemoryFlags { None = 0x0 , DedicatedAllocation = 1 << 0 , Mapped = 1 << 1 , Exportable = 1 << 2 } |
Memory flags. Determine optional properties of the memory allocation. More... | |
enum class | RenderPassFlags { None = 0x0 , Suspending = 1 << 1 , Resuming = 1 << 2 } |
Render pass flags. Set of flags that affect render pass behavior. More on render pass flags here. More... | |
enum class | BarrierSync { None = 0x0 , All = 1 << 0 , Draw = 1 << 1 , IndexInput = 1 << 2 , VertexShading = 1 << 3 , PixelShading = 1 << 4 , DepthStencil = 1 << 5 , RenderTarget = 1 << 6 , Compute = 1 << 7 , Raytracing = 1 << 8 , Copy = 1 << 9 , Resolve = 1 << 10 , ExecuteIndirect = 1 << 11 , AllShading = 1 << 12 , NonPixelShading = 1 << 13 , ClearUAV = 1 << 14 , VideoDecode = 1 << 15 , VideoEncode = 1 << 16 , BuildRTAS = 1 << 17 , CopyRTAS = 1 << 18 } |
Barrier synchronization flags. Used to synchronize resources between different stages of the pipeline. More... | |
enum class | ResourceAccess { Common = 0x0 , VertexBuffer = 1 << 0 , ConstantBuffer = 1 << 1 , IndexBuffer = 1 << 2 , RenderTarget = 1 << 3 , UnorderedAccess = 1 << 4 , DepthWrite = 1 << 5 , DepthRead = 1 << 6 , ShaderResource = 1 << 7 , StreamOutput = 1 << 8 , IndirectArgument = 1 << 9 , CopyDest = 1 << 10 , CopySource = 1 << 11 , ConditionalRendering = 1 << 12 , AccelerationStructureRead = 1 << 13 , AccelerationStructureWrite = 1 << 14 , ShadingRate = 1 << 15 , VideoDecodeRead = 1 << 16 , VideoDecodeWrite = 1 << 17 , ResolveDest = 1 << 18 , ResolveSource = 1 << 19 , NoAccess = 1 << 31 } |
Resource access flags. Determine how resource will be accessed. Used in Barriers. More... | |
enum class | TextureUsage { None = 0x0 , RenderTarget = 1 << 0 , DepthStencil = 1 << 1 , CopySrc = 1 << 2 , CopyDst = 1 << 3 , ShaderResource = 1 << 4 , UnorderedAccess = 1 << 5 , HostCopy = 1 << 7 } |
Texture usage flags. Determine how the texture can be used throughout its lifetime. More... | |
enum class | FenceFlags { None = 0x0 , Shared = 1 << 0 } |
Fence flags for additional fence features. More... | |
enum class | PipelineFlags { None = 0x0 , DescriptorBuffer = 1 << 0 } |
Pipeline flags for additional pipeline features. More... | |
enum class | ASGeometryFlags { None = 0x0 , Opaque = 1 << 0 , NoDuplicateAnyHitInvocation = 1 << 1 } |
Geometry flags for additional geometry features. More... | |
enum class | AccelerationStructureFlags { None = 0x0 , AllowUpdate = 1 << 0 , AllowCompaction = 1 << 1 , PreferFastTrace = 1 << 2 , PreferFastBuild = 1 << 3 , MinimizeMemory = 1 << 4 } |
Acceleration structure flags for additional acceleration structure features. More... | |
enum class | ASInstanceFlags { None = 0x0 , TriangleCullDisable = 1 << 0 , TriangleFrontCounterClockwise = 1 << 1 , ForceOpaque = 1 << 2 , ForceNoOpaque = 1 << 3 } |
Instance flags for additional instance features. More... | |
Functions | |
template<uint32_t s, typename RetTy > | |
constexpr decltype(auto) | get (ResultValue< RetTy > &rv) noexcept |
Variables | |
constexpr Result | success |
Wisdom API Version 0.6.11
Copyright (c) 2024 Ilya Doroshenko. All rights reserved. License: MIT See also: repository on GitHub
using wis::DebugCallback = typedef void (*)(wis::Severity severity, const char* message, void* user_data) |
|
strong |
Acceleration structure flags for additional acceleration structure features.
Translates to D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS for dx implementation. Translates to VkBuildAccelerationStructureFlagsKHR for vk implementation.
|
strong |
|
strong |
Oreders the adapters according to preference using builtin heuristics of underlying APIs.
Translates to DXGI_GPU_PREFERENCE for dx implementation.
|
strong |
Address mode for texture sampling.
Translates to VkSamplerAddressMode for vk implementation. Translates to D3D12_TEXTURE_ADDRESS_MODE for dx implementation.
|
strong |
Acceleration structure copy mode.
Translates to VkCopyAccelerationStructureModeKHR for vk implementation. Translates to D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE for dx implementation.
Enumerator | |
---|---|
Clone | Clone the acceleration structure. |
Compact | Compact the acceleration structure. |
Serialize | Serialize the acceleration structure. |
Deserialize | Deserialize the acceleration structure. |
|
strong |
Geometry flags for additional geometry features.
Translates to D3D12_RAYTRACING_GEOMETRY_FLAGS for dx implementation. Translates to VkGeometryFlagsKHR for vk implementation.
Enumerator | |
---|---|
None | No flags set. Geometry is regular. |
Opaque | Geometry is opaque. Used for opaque geometry. |
NoDuplicateAnyHitInvocation | Geometry has no duplicate any hit invocation. |
|
strong |
Type of the geometry in the Acceleration Structure.
Translates to VkGeometryTypeKHR for vk implementation. Translates to D3D12_RAYTRACING_GEOMETRY_TYPE for dx implementation.
Enumerator | |
---|---|
Triangles | Triangles geometry type. Used for triangle meshes. |
AABBs | Axis Aligned Bounding Boxes geometry type. Used for bounding volume hierarchies. |
|
strong |
Instance flags for additional instance features.
Translates to D3D12_RAYTRACING_INSTANCE_FLAGS for dx implementation. Translates to VkGeometryInstanceFlagsKHR for vk implementation.
|
strong |
|
strong |
Barrier synchronization flags. Used to synchronize resources between different stages of the pipeline.
Translates to D3D12_BARRIER_SYNC for dx implementation. Translates to VkPipelineStageFlags2 for vk implementation.
|
strong |
Blend factor for color blending operations.
Translates to D3D12_BLEND for dx implementation. Translates to VkBlendFactor for vk implementation.
|
strong |
Blend operation for color blending operations.
Translates to D3D12_BLEND_OP for dx implementation. Translates to VkBlendOp for vk implementation.
|
strong |
Buffer usage flags. Determine how the buffer can be used throughout its lifetime.
Translates to VkBufferUsageFlags for vk implementation. Translates to D3D12_RESOURCE_FLAGS for dx implementation.
|
strong |
|
strong |
Comparison function for depth and stencil operations.
Translates to D3D12_COMPARISON_FUNC for dx implementation. Translates to VkCompareOp for vk implementation.
|
strong |
Component swizzle for texture sampling.
Translates to D3D12_SHADER_COMPONENT_MAPPING for dx implementation. Translates to VkComponentSwizzle for vk implementation.
|
strong |
Cull mode for rasterizer. Triangle culling depends on wis::WindingOrder option.
Translates to D3D12_CULL_MODE for dx implementation. Translates to VkCullModeFlags for vk implementation.
Enumerator | |
---|---|
None | No culling. |
Front | Cull front-facing triangles. |
Back | Cull back-facing triangles. |
|
strong |
Data format for data. Used as a template for data in several cases. Can be used to describe:
Translates to DXGI_FORMAT for dx implementation. Translates to VkFormat for vk implementation.
|
strong |
|
strong |
Descriptor memory type. Decides if descriptors are visible and can be bound to GPU.
Translates to D3D12_DESCRIPTOR_HEAP_FLAGS for dx implementation.
|
strong |
Type of the descriptor in the descriptor table.
Translates to D3D12_DESCRIPTOR_RANGE_TYPE for dx implementation. Translates to VkDescriptorType for vk implementation.
|
strong |
|
strong |
Features that device may support. Query by calling with Device::QueryFeatureSupport. Contains core features with optional ones.
|
strong |
Depth stencil select flags. Affect which part of the depth stencil buffer is used.
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
Attachment load operation for render pass.
Translates to VkAttachmentLoadOp for vk implementation. Translates to D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE for dx implementation.
Enumerator | |
---|---|
Load | Load the attachment contents. |
Clear | Clear the attachment contents. |
DontCare | Do not care about the attachment contents. |
|
strong |
Logic operation for color blending operations.
Translates to D3D12_LOGIC_OP for dx implementation. Translates to VkLogicOp for vk implementation.
|
strong |
Memory flags. Determine optional properties of the memory allocation.
Translates to VmaAllocationCreateFlags for vk implementation. Translates to D3D12MA::ALLOCATION_FLAGS for dx implementation.
Enumerator | |
---|---|
None | No flags set. Memory is regular. |
DedicatedAllocation | Memory is dedicated. Used for resources that require dedicated memory. Useful for big resources that are not shared with other resources. E.g. fullscreen textures, big buffers, etc. |
Mapped | Memory is mapped. Used in combination with wis::MemoryType::Upload or wis::MemoryType::Readback to map memory for CPU access. |
Exportable | Memory is exportable. If set, memory can be exported to other processes or APIs. Works only with Device Local memory (wis::MemoryType::Default) and only on AllocateXMemory calls. Outside of AllocateXMemory the flag is ignored. |
|
strong |
Memory type for resource allocation.
Translates to D3D12_HEAP_TYPE for dx implementation. Translates to VkMemoryPropertyFlags for vk implementation.
Enumerator | |
---|---|
Default | Default memory type. Alias for wis::MemoryType::DeviceLocal. |
DeviceLocal | Default memory type. Local device memory, most efficient for rendering. |
Upload | Upload memory type. Used for data that is uploaded to the GPU Local memory using copy operations. |
Readback | Readback memory type. Used for data that is read back from the GPU Local memory using copy operations. |
GPUUpload | GPU upload memory type. Used for data that is directly uploaded to the GPU Local memory using copy operations. Can be used only with Extended Allocation extension enabled and supported. Usage outside of the Extended Allocation is undefined behavior. Usage with buffers requires allocating memory on GPUUpload heap and mapping the memory. |
|
strong |
|
strong |
Pipeline flags for additional pipeline features.
Translates to D3D12_PIPELINE_STATE_FLAGS for dx implementation. Translates to VkPipelineCreateFlags for vk implementation.
Enumerator | |
---|---|
None | No flags set. Pipeline is regular. |
DescriptorBuffer | Pipeline is created to be used with DescriptorBuffer extension. Do not mix DescriptorBuffer and non-DescriptorBuffer pipelines. |
|
strong |
Primitive topology for rendering. More info could be found here.
Translates to D3D_PRIMITIVE_TOPOLOGY for dx implementation. Translates to VkPrimitiveTopology for vk implementation.
|
strong |
|
strong |
Shader stages that can be used in the raytracing pipeline.
Translates to VkShaderStageFlagBits for vk implementation.
|
strong |
Render pass flags. Set of flags that affect render pass behavior. More on render pass flags here.
Translates to VkRenderingFlags for vk implementation. Translates to D3D12_RENDER_PASS_FLAGS for dx implementation.
Enumerator | |
---|---|
None | No flags set. Render pass is regular. |
Suspending | Render pass is suspending. |
Resuming | Render pass is resuming. |
|
strong |
Resource access flags. Determine how resource will be accessed. Used in Barriers.
Translates to D3D12_BARRIER_ACCESS for dx implementation. Translates to VkAccessFlags2 for vk implementation.
|
strong |
|
strong |
Log message severity. Used with wis::DebugCallback and internal library logging.
|
strong |
|
strong |
Shader stages that can be used in the pipeline. Main use is Root signature and descriptor management. Stages have no granularity, either all or one can be selected.
Translates to D3D12_SHADER_VISIBILITY for dx implementation. Translates to VkShaderStageFlagBits for vk implementation.
|
strong |
Represents main error communication source for the API. Compare against wis::Status::Ok for success.
Enumerator | |
---|---|
Ok | Operation succeded. |
Timeout | Operation timed out. Counts as a success value in some cases. |
Partial | Operation partially succeeded. Some times it means that core value is initialized, but some functionality may be missing and may require you to check if demanded functionality is in place. |
Error | Operation failed. Check wis::Result::error for more details. |
InvalidArgument | One or more arguments, or parts of arguments passed to the function were incorrect. Check wis::Result::error for more details. |
OutOfMemory | There is no more host memory available. Allocation with malloc or similar call has failed. |
DeviceLost | Device driver was forcefully stopped. Most of the time happens on swapchain presentation. |
Occluded | Swapchain presentation was not visible to the user. Rendering is too fast. |
|
strong |
Stencil operation for depth and stencil operations.
Translates to D3D12_STENCIL_OP for dx implementation. Translates to VkStencilOp for vk implementation.
|
strong |
Attachment store operation for render pass.
Translates to VkAttachmentStoreOp for vk implementation. Translates to D3D12_RENDER_PASS_ENDING_ACCESS_TYPE for dx implementation.
Enumerator | |
---|---|
Store | Store the attachment contents. |
DontCare | Do not care about the attachment contents. |
Resolve | Resolve the attachment contents. Used for multisampling attachments. |
|
strong |
Swapchain scaling mode.
Translates to VkPresentScalingFlagsEXT for vk implementation. Translates to DXGI_SCALING for dx implementation.
|
strong |
Texture layout. Determines how texture will be accessed.
|
strong |
Texture state for resource transitions.
Translates to D3D12_BARRIER_LAYOUT for dx implementation. Translates to VkImageLayout for vk implementation.
|
strong |
Texture usage flags. Determine how the texture can be used throughout its lifetime.
Translates to D3D12_RESOURCE_FLAGS for dx implementation. Translates to VkImageUsageFlags for vk implementation.
|
strong |
Texture view type.
Translates to VkImageViewType for vk implementation. Translates to D3D12_SRV_DIMENSION for dx implementation.
|
strong |
Primitive topology type for rendering.
Translates to D3D12_PRIMITIVE_TOPOLOGY_TYPE for dx implementation. Translates to VkPrimitiveTopology for vk implementation.
Enumerator | |
---|---|
Point | Render points for each vertex. |
Line | Render lines between vertices. |
Triangle | Render triangles between vertices. |
Patch | Vertices are interpret as patch list. Used in tesselation process. |
|
strong |
|
constexprnoexcept |
|
inlineconstexpr |