MayaFlux 1.0.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
MayaFlux::Portal::Graphics Namespace Reference

Namespaces

namespace  detail
 

Classes

struct  BindingSlot
 Declaration of one SSBO or image binding in a generated shader. More...
 
struct  BlendAttachmentConfig
 Per-attachment blend configuration. More...
 
class  ComputePress
 Compute-specific pipeline and dispatch orchestration. More...
 
struct  ComputeStage
 One pipeline dispatch within a ComputePress::record_sequence call. More...
 
struct  DepthStencilConfig
 Depth and stencil test configuration. More...
 
struct  DescriptorBindingInfo
 
struct  DescriptorBufferWrite
 One descriptor set slot to update, for ShaderFoundry::update_descriptor_buffers. More...
 
struct  DescriptorImageWrite
 One descriptor set slot to update, for ShaderFoundry::update_descriptor_images. More...
 
struct  DrawRun
 One contiguous span of vertices sharing a primitive topology. More...
 
struct  FitPlan
 One fit expressed for both ways of applying it. More...
 
struct  FunctionDef
 A standalone function emitted before main() in the generated GLSL. More...
 
struct  GpuBufferBinding
 Declares a single storage buffer or image binding a compute shader expects. More...
 
struct  GpuBufferHandle
 Non-owning view of a GPU storage buffer produced by a compute path. More...
 
struct  GpuComputeConfig
 Plain-data description of the compute shader to dispatch. More...
 
struct  HazardResource
 One resource this stage's dispatch reads/writes that a later stage in the sequence depends on, paired with its binding metadata for barrier construction. More...
 
struct  ImageCacheEntry
 Image retained by the producing owner. More...
 
class  ImageCacheSet
 Cache images keyed by immutable allocation properties. More...
 
struct  ImageKey
 Immutable properties that determine whether an image can be reused. More...
 
struct  ImageKeyHash
 Hash image allocation properties for keyed reuse. More...
 
struct  IndirectDispatch
 Optional GPU-resident source of a stage's workgroup counts. More...
 
struct  KernelSource
 Parsed representation of a user-supplied kernel lambda. More...
 
struct  LayerBlit
 One layer to layer copy that scales and converts format. More...
 
struct  MillSpec
 How a PrimitiveMill shapes spans. More...
 
struct  MillView
 Per-dispatch viewpoint. More...
 
class  PrimitiveMill
 Mills spans of mixed primitive topology into one TRIANGLE_LIST vertex buffer on the GPU. More...
 
struct  PushConstantBindingInfo
 Self-describing push constant fragment staged on a VKBuffer. More...
 
struct  PushConstantField
 One field in the generated push constant block. More...
 
struct  PushConstantRangeInfo
 Extracted push constant range from shader reflection. More...
 
struct  RasterizationConfig
 Rasterization state configuration. More...
 
struct  RenderConfig
 Unified rendering configuration for graphics buffers. More...
 
class  RenderFlow
 Graphics pipeline orchestration for dynamic rendering. More...
 
struct  RenderPipelineConfig
 Complete render pipeline configuration. More...
 
struct  SamplerConfig
 Sampler configuration. More...
 
class  SamplerForge
 Creates and caches Vulkan samplers (Singleton) More...
 
struct  ShaderCompilerConfig
 Configuration for shader compilation. More...
 
class  ShaderFoundry
 Portal-level shader compilation and caching. More...
 
struct  ShaderReflectionInfo
 Extracted reflection information from compiled shader. More...
 
struct  ShaderSource
 Shader source descriptor for compilation. More...
 
struct  ShaderSpec
 Complete declarative description of a generated compute shader. More...
 
class  TextureLoom
 Portal-level texture creation and management. More...
 
class  VertexLayoutTranslator
 Translates semantic vertex layouts to Vulkan pipeline state. More...
 

Typedefs

using CommandBufferID = uint64_t
 
using ComputePipelineID = uint64_t
 
using DescriptorSetID = uint64_t
 
using FenceID = uint64_t
 
using FramebufferID = uint64_t
 
using ImageFormat = Kakshya::ImageFormat
 Portal name for Kakshya::ImageFormat, which maps to vk::Format in TextureLoom.
 
using RenderPipelineID = uint64_t
 
using SemaphoreID = uint64_t
 
using ShaderID = uint64_t
 

Enumerations

enum class  AddressMode : uint8_t { REPEAT , MIRRORED_REPEAT , CLAMP_TO_EDGE , CLAMP_TO_BORDER }
 Texture addressing mode (wrapping) More...
 
enum class  BindingDirection : uint8_t { Input , Output , InOut }
 Data flow direction for a shader binding slot. More...
 
enum class  BlendFactor : uint8_t {
  ZERO , ONE , SRC_COLOR , ONE_MINUS_SRC_COLOR ,
  DST_COLOR , ONE_MINUS_DST_COLOR , SRC_ALPHA , ONE_MINUS_SRC_ALPHA ,
  DST_ALPHA , ONE_MINUS_DST_ALPHA
}
 Blending factor. More...
 
enum class  BlendOp : uint8_t {
  ADD , SUBTRACT , REVERSE_SUBTRACT , MIN ,
  MAX
}
 Blending operation. More...
 
enum class  BorderColor : uint8_t { DEFAULT , TRANSPARENT_BLACK , OPAQUE_BLACK , OPAQUE_WHITE }
 Color read outside the texture when an address mode is CLAMP_TO_BORDER. More...
 
enum class  BufferUsageHint : uint8_t {
  STAGING , DEVICE , COMPUTE , VERTEX ,
  INDEX , UNIFORM , UNIFORM_BDA , STORAGE_BDA ,
  INDIRECT , HOST_STORAGE , COMPUTE_STORAGE
}
 Semantic usage hint for buffer allocation and memory properties. More...
 
enum class  CompareOp : uint8_t {
  NEVER , LESS , EQUAL , LESS_OR_EQUAL ,
  GREATER , NOT_EQUAL , GREATER_OR_EQUAL , ALWAYS
}
 Depth/stencil comparison operation. More...
 
enum class  CullMode : uint8_t { NONE , FRONT , BACK , FRONT_AND_BACK }
 Face culling mode. More...
 
enum class  DescriptorRole : uint8_t { UNIFORM , STORAGE , TEXTURE , STORAGE_IMAGE }
 Semantic descriptor type — maps to Vulkan descriptor types internally. More...
 
enum class  FilterMode : uint8_t { NEAREST , LINEAR , CUBIC }
 Texture filtering mode. More...
 
enum class  FitMode : uint8_t {
  STRETCH , CONTAIN , COVER , CENTER ,
  TILE , TILE_MIRRORED
}
 How a source extent is mapped onto a destination extent. More...
 
enum class  KernelOp : uint8_t {
  Scale , ScaleOffset , Fma , Offset ,
  Clip , Abs , Negate , Floor ,
  Ceil , Round , Trunc , Fract ,
  Sqrt , InverseSqrt , Sin , Cos ,
  Tan , Asin , Acos , Atan ,
  Sinh , Cosh , Tanh , Exp ,
  Exp2 , Log , Log2 , Add ,
  Multiply , Mix , Sub , Pow ,
  Atan2 , Min , MaxTwo , Step ,
  SmoothStep , Sum , Max , ScanSum ,
  MaxIndex , IndexScale , CompareGE , CompareGEPreserve ,
  ChannelDot , ChannelReplicate , WeightedBlend
}
 Named operation the SPIR-V emitter knows how to lower to opcodes. More...
 
enum class  KernelTemplate : uint8_t {
  Elementwise , Reduction , Stencil , GeometryEmit ,
  BitonicSort , Convolve2D , Scan
}
 Structural shape of the generated compute kernel. More...
 
enum class  PolygonMode : uint8_t { FILL , LINE , POINT }
 Rasterization polygon mode. More...
 
enum class  PrimitiveTopology : uint8_t {
  POINT_LIST , LINE_LIST , LINE_STRIP , TRIANGLE_LIST ,
  TRIANGLE_STRIP , TRIANGLE_FAN
}
 Vertex assembly primitive topology. More...
 
enum class  ShaderStage : uint8_t {
  COMPUTE , VERTEX , FRAGMENT , GEOMETRY ,
  TESS_CONTROL , TESS_EVALUATION , MESH , TASK
}
 User-friendly shader stage enum. More...
 

Functions

size_t element_type_bytes (GpuBufferBinding::ElementType et) noexcept
 Byte width of one GpuBufferBinding::ElementType element.
 
MAYAFLUX_API ComputePress & get_compute_press ()
 
MAYAFLUX_API RenderFlow & get_render_flow ()
 Get the global render flow instance.
 
SamplerForge & get_sampler_factory ()
 Convenience wrapper around SamplerForge::instance()
 
MAYAFLUX_API ShaderFoundry & get_shader_foundry ()
 Get the global shader compiler instance.
 
MAYAFLUX_API TextureLoom & get_texture_manager ()
 Get the global texture manager instance.
 
bool initialize (const std::shared_ptr< Core::VulkanBackend > &backend)
 Initialize Portal::Graphics Glue Layer.
 
constexpr bool is_concatenable_topology (PrimitiveTopology topology) noexcept
 Whether two adjacent spans of this topology can be concatenated without altering the primitives they assemble.
 
bool is_initialized ()
 Check if Portal::Graphics is initialized.
 
Kakshya::VertexLayout mill_on_host (std::span< const uint8_t > src, const Kakshya::VertexLayout &layout, std::span< const DrawRun > runs, const MillSpec &spec, const MillView &view, std::vector< uint8_t > &dst)
 Host equivalent of PrimitiveMill::mill, over raw bytes.
 
Kakshya::GpuBlockLayout push_constant_layout (const std::vector< PushConstantField > &fields)
 Offsets and total size of a push constant block, under std430.
 
void shutdown ()
 Shutdown Portal::Graphics subsystem.
 
void stop ()
 Stop all Portal::Graphics operations.
 
vk::BufferUsageFlags to_buffer_usage_flags (BufferUsageHint hint)
 Resolve the extra vk::BufferUsageFlags a BufferUsageHint requires, on top of whatever base usage the caller already applies.
 
vk::DescriptorType to_vk_descriptor_type (DescriptorRole role)
 Convert DescriptorRole to the corresponding vk::DescriptorType.
 
constexpr uint32_t triangle_vertex_count (PrimitiveTopology topology, uint32_t n) noexcept
 Vertices a span of n at topology yields once reduced to a TRIANGLE_LIST, with points becoming quads and line segments ribbons.
 

Variables

const std::array< float, 4 > default_color { 0.0F, 0.0F, 0.0F, 1.0F }
 
constexpr CommandBufferID INVALID_COMMAND_BUFFER = 0
 
constexpr ComputePipelineID INVALID_COMPUTE_PIPELINE = 0
 
constexpr DescriptorSetID INVALID_DESCRIPTOR_SET = 0
 
constexpr FenceID INVALID_FENCE = 0
 
constexpr FramebufferID INVALID_FRAMEBUFFER = 0
 
constexpr RenderPipelineID INVALID_RENDER_PIPELINE = 0
 
constexpr SemaphoreID INVALID_SEMAPHORE = 0
 
constexpr ShaderID INVALID_SHADER = 0