Talvos
0.1
SPIR-V interpreter and dynamic analysis framework
|
Classes | |
class | Block |
A block of instructions ending with a termination instruction. More... | |
class | Command |
This class is a base class for all commands. More... | |
class | BeginRenderPassCommand |
This class encapsulates information about a begin render pass command. More... | |
class | BlitImageCommand |
This class encapsulates information about a blit image command. More... | |
class | ClearAttachmentCommand |
This class encapsulates information about a clear attachment command. More... | |
class | ClearColorImageCommand |
This class encapsulates information about a clear color image command. More... | |
class | CopyBufferCommand |
This class encapsulates information about a copy buffer command. More... | |
class | CopyBufferToImageCommand |
This class encapsulates information about a copy buffer to image command. More... | |
class | CopyImageCommand |
This class encapsulates information about a copy image command. More... | |
class | CopyImageToBufferCommand |
This class encapsulates information about a copy image to buffer command. More... | |
class | DispatchCommand |
This class encapsulates information about a compute kernel launch. More... | |
class | DrawCommandBase |
This is an abstract base class for draw commands. More... | |
class | DrawCommand |
This class encapsulates information about a draw command. More... | |
class | DrawIndexedCommand |
This class encapsulates information about an indexed draw command. More... | |
class | EndRenderPassCommand |
This class encapsulates information about an end render pass command. More... | |
class | FillBufferCommand |
This class encapsulates information about a fill buffer command. More... | |
class | NextSubpassCommand |
This class encapsulates information about a next subpass command. More... | |
class | ResetEventCommand |
This class encapsulates information about a reset event command. More... | |
class | SetEventCommand |
This class encapsulates information about a set event command. More... | |
class | UpdateBufferCommand |
This class encapsulates information about an update buffer command. More... | |
class | WaitEventsCommand |
This class encapsulates information about a wait events command. More... | |
class | ComputePipeline |
This class encapsulates a compute pipeline. More... | |
class | Device |
A Device instance encapsulates properties and state for the virtual device. More... | |
class | Dim3 |
Class representing a 3-dimensional size or ID. More... | |
class | EntryPoint |
This class represents a shader entry point. More... | |
class | Function |
This class represents a function in a SPIR-V Module. More... | |
class | GraphicsPipeline |
This class encapsulates a graphics pipeline. More... | |
class | Image |
This class represents an image object. More... | |
class | ImageView |
This class represents a view into a range of image subresources. More... | |
class | Sampler |
This class represents a sampler object. More... | |
struct | SampledImage |
A combination of an image and a sampler used to access it. More... | |
class | Instruction |
This class represents a SPIR-V instruction. More... | |
class | Invocation |
This class represents a single execution of a SPIR-V entry point. More... | |
class | Memory |
This class represents an address space in the virtual device. More... | |
class | Module |
This class represents a SPIR-V module. More... | |
struct | PtrMatrixLayout |
Structure to describe the memory layout of a matrix. More... | |
struct | DescriptorElement |
Structure used to hold information about an element of a descriptor array. More... | |
class | Object |
This class represents an instruction result. More... | |
struct | BindingInfo |
Structure holding information about a descriptor binding. More... | |
class | PipelineContext |
This class encapsulates pipeline state and bound resources. More... | |
class | PipelineStage |
This class encapsulates information about a pipeline stage. More... | |
class | Plugin |
Base class for Talvos plugins. More... | |
class | Queue |
This class represents a queue for executing commands on a device. More... | |
class | Framebuffer |
This class represents a framebuffer that can be used for rendering. More... | |
struct | Subpass |
This structure describes the attachments used by a subpass. More... | |
class | RenderPass |
This class represents a Vulkan render pass. More... | |
class | RenderPassInstance |
This class represents an instance of a render pass being used for drawing. More... | |
class | Type |
This class represents a SPIR-V type. More... | |
class | Variable |
This class represents a module-scope variable declaration. More... | |
class | Workgroup |
This class represents a workgroup executing a compute command. More... | |
class | ModuleBuilder |
Internal class used to construct a Module during SPIRV-Tools parsing. More... | |
class | PipelineExecutorKey |
Only allow Device objects to create PipelineExecutor instances. More... | |
struct | Vec4 |
class | PipelineExecutor |
An internal class that handles pipeline execution, including the interactive debugger. More... | |
Typedefs | |
typedef std::vector< const Variable * > | VariableList |
A list of module scope variables. More... | |
typedef std::vector < VkVertexInputAttributeDescription > | VertexAttributeDescriptionList |
A list of vertex attribute descriptions. More... | |
typedef std::vector < VkVertexInputBindingDescription > | VertexBindingDescriptionList |
A list of vertex binding descriptions. More... | |
typedef std::vector < VkPipelineColorBlendAttachmentState > | BlendAttachmentStateList |
A list of pipeline color blend attachment states. More... | |
typedef std::map< uint32_t, uint64_t > | VertexBindingMap |
Mapping from binding indexes to device memory addresses for vertex buffers. More... | |
typedef std::map< std::pair < uint32_t, uint32_t > , BindingInfo > | DescriptorSet |
Mapping from a binding and array element index to an address in memory. More... | |
typedef std::map< uint32_t, talvos::DescriptorSet > | DescriptorSetMap |
Mapping from set numbers to descriptor sets. More... | |
typedef std::map< uint32_t, Object > | SpecConstantMap |
Mapping from specialization constant ID to Object values. More... | |
typedef std::vector< std::pair < const Type *, std::map < uint32_t, uint32_t > > > | StructElementTypeList |
A list of types used for structure members. More... | |
typedef Plugin *(* | CreatePluginFunc )(const Device *) |
typedef void(* | DestroyPluginFunc )(Plugin *) |
Enumerations | |
enum | MemoryScope { MemoryScope::Device, MemoryScope::Workgroup, MemoryScope::Invocation } |
Describes the scope of a memory instance. More... | |
Functions | |
uint32_t | getElementSize (VkFormat Format) |
Returns the size in bytes for each element of an image with type Format . More... | |
bool | hasAlphaChannel (VkFormat Format) |
Returns true if Format includes an alpha channel. More... | |
std::ostream & | operator<< (std::ostream &Stream, const Dim3 &D) |
spv_result_t | HandleHeader (void *user_data, spv_endianness_t endian, uint32_t, uint32_t version, uint32_t generator, uint32_t id_bound, uint32_t schema) |
Callback for SPIRV-Tools parsing a SPIR-V header. More... | |
spv_result_t | HandleInstruction (void *user_data, const spv_parsed_instruction_t *parsed_instruction) |
Callback for SPIRV-Tools parsing a SPIR-V instruction. More... | |
void | print (std::ostream &Stream, uint8_t *Data, const Type *Ty) |
Recursively print typed data to a stream. More... | |
std::ostream & | operator<< (std::ostream &Stream, const Object &O) |
void | interpolate (Object &Output, const Type *Ty, size_t Offset, const Object &FA, const Object &FB, const Object &FC, float AW, float BW, float CW, float InvW, float a, float b, float c, bool Flat, bool Perspective) |
Recursively populate a fragment shader input variable by interpolating between the vertex shader output variables in a triangle. More... | |
float | XDevToFB (float Xd, VkViewport Viewport) |
float | XFBToDev (float Xfb, VkViewport Viewport) |
float | YDevToFB (float Yd, VkViewport Viewport) |
float | YFBToDev (float Yfb, VkViewport Viewport) |
void | blendTexel (Image::Texel &NewTexel, const Image::Texel &OldTexel, const VkPipelineColorBlendAttachmentState &Blend, const std::array< float, 4 > &BlendConstants) |
template<typename T > | |
void | loadNormalizedVertexInput (Object &Obj, VkFormat Format, const Memory &Mem, uint64_t Address) |
std::ostream & | operator<< (std::ostream &Stream, const Type *Ty) |
bool | checkEnv (const char *Name, bool Default) |
Returns true if the environment variable Name is set to 1, false for 0, or Default if it is not set. More... | |
unsigned long | getEnvUInt (const char *Name, unsigned Default) |
Returns the integer value for the environment variable Name , or Default if it is not set. More... | |
INSTANTIATE (bool) | |
INSTANTIATE (int8_t) | |
INSTANTIATE (int16_t) | |
INSTANTIATE (int32_t) | |
INSTANTIATE (int64_t) | |
INSTANTIATE (uint8_t) | |
INSTANTIATE (uint16_t) | |
INSTANTIATE (uint32_t) | |
INSTANTIATE (uint64_t) | |
INSTANTIATE (float) | |
INSTANTIATE (double) | |
typedef std::vector<VkPipelineColorBlendAttachmentState> talvos::BlendAttachmentStateList |
A list of pipeline color blend attachment states.
Definition at line 32 of file GraphicsPipeline.h.
Definition at line 42 of file Device.cpp.
typedef std::map<std::pair<uint32_t, uint32_t>, BindingInfo> talvos::DescriptorSet |
Mapping from a binding and array element index to an address in memory.
Definition at line 34 of file PipelineContext.h.
typedef std::map<uint32_t, talvos::DescriptorSet> talvos::DescriptorSetMap |
Mapping from set numbers to descriptor sets.
Definition at line 37 of file PipelineContext.h.
typedef void(* talvos::DestroyPluginFunc)(Plugin *) |
Definition at line 43 of file Device.cpp.
typedef std::map<uint32_t, Object> talvos::SpecConstantMap |
Mapping from specialization constant ID to Object values.
Definition at line 24 of file PipelineStage.h.
typedef std::vector<std::pair<const Type *, std::map<uint32_t, uint32_t> > > talvos::StructElementTypeList |
typedef std::vector< const Variable * > talvos::VariableList |
A list of module scope variables.
Definition at line 19 of file EntryPoint.h.
typedef std::vector<VkVertexInputAttributeDescription> talvos::VertexAttributeDescriptionList |
A list of vertex attribute descriptions.
Definition at line 20 of file GraphicsPipeline.h.
typedef std::vector<VkVertexInputBindingDescription> talvos::VertexBindingDescriptionList |
A list of vertex binding descriptions.
Definition at line 28 of file GraphicsPipeline.h.
typedef std::map<uint32_t, uint64_t> talvos::VertexBindingMap |
Mapping from binding indexes to device memory addresses for vertex buffers.
Definition at line 21 of file PipelineContext.h.
|
strong |
void talvos::blendTexel | ( | Image::Texel & | NewTexel, |
const Image::Texel & | OldTexel, | ||
const VkPipelineColorBlendAttachmentState & | Blend, | ||
const std::array< float, 4 > & | BlendConstants | ||
) |
Definition at line 591 of file PipelineExecutor.cpp.
bool talvos::checkEnv | ( | const char * | Name, |
bool | Default | ||
) |
uint32_t talvos::getElementSize | ( | VkFormat | Format | ) |
unsigned long talvos::getEnvUInt | ( | const char * | Name, |
unsigned | Default | ||
) |
spv_result_t talvos::HandleHeader | ( | void * | user_data, |
spv_endianness_t | endian, | ||
uint32_t | , | ||
uint32_t | version, | ||
uint32_t | generator, | ||
uint32_t | id_bound, | ||
uint32_t | schema | ||
) |
Callback for SPIRV-Tools parsing a SPIR-V header.
Definition at line 677 of file Module.cpp.
spv_result_t talvos::HandleInstruction | ( | void * | user_data, |
const spv_parsed_instruction_t * | parsed_instruction | ||
) |
Callback for SPIRV-Tools parsing a SPIR-V instruction.
Definition at line 688 of file Module.cpp.
bool talvos::hasAlphaChannel | ( | VkFormat | Format | ) |
talvos::INSTANTIATE | ( | bool | ) |
talvos::INSTANTIATE | ( | int8_t | ) |
talvos::INSTANTIATE | ( | int16_t | ) |
talvos::INSTANTIATE | ( | int32_t | ) |
talvos::INSTANTIATE | ( | int64_t | ) |
talvos::INSTANTIATE | ( | uint8_t | ) |
talvos::INSTANTIATE | ( | uint16_t | ) |
talvos::INSTANTIATE | ( | uint32_t | ) |
talvos::INSTANTIATE | ( | uint64_t | ) |
talvos::INSTANTIATE | ( | float | ) |
talvos::INSTANTIATE | ( | double | ) |
void talvos::interpolate | ( | Object & | Output, |
const Type * | Ty, | ||
size_t | Offset, | ||
const Object & | FA, | ||
const Object & | FB, | ||
const Object & | FC, | ||
float | AW, | ||
float | BW, | ||
float | CW, | ||
float | InvW, | ||
float | a, | ||
float | b, | ||
float | c, | ||
bool | Flat, | ||
bool | Perspective | ||
) |
Recursively populate a fragment shader input variable by interpolating between the vertex shader output variables in a triangle.
Output | The object being populated. |
Ty | The current type. |
Offset | The current byte offset within the object. |
FA,FB,FC | The vertex shader output variables. |
AW,BW,CW | The clip w coordinates of the vertices. |
InvW | The inverse of the interpolated clip w coordinate. |
a,b,c | The barycentric coordinates of the fragment. |
Flat | True to signal flat shading. |
Perspective | True to signal perspective-correct interpolation. |
Definition at line 517 of file PipelineExecutor.cpp.
void talvos::loadNormalizedVertexInput | ( | Object & | Obj, |
VkFormat | Format, | ||
const Memory & | Mem, | ||
uint64_t | Address | ||
) |
Definition at line 1604 of file PipelineExecutor.cpp.
std::ostream& talvos::operator<< | ( | std::ostream & | Stream, |
const Dim3 & | D | ||
) |
std::ostream& talvos::operator<< | ( | std::ostream & | Stream, |
const Type * | Ty | ||
) |
std::ostream& talvos::operator<< | ( | std::ostream & | Stream, |
const Object & | O | ||
) |
Converts the value of this object to a human readable format.
Definition at line 283 of file Object.cpp.
void talvos::print | ( | std::ostream & | Stream, |
uint8_t * | Data, | ||
const Type * | Ty | ||
) |
Recursively print typed data to a stream.
Used by Object::operator<<().
Definition at line 196 of file Object.cpp.
float talvos::XDevToFB | ( | float | Xd, |
VkViewport | Viewport | ||
) |
Definition at line 568 of file PipelineExecutor.cpp.
float talvos::XFBToDev | ( | float | Xfb, |
VkViewport | Viewport | ||
) |
Definition at line 573 of file PipelineExecutor.cpp.
float talvos::YDevToFB | ( | float | Yd, |
VkViewport | Viewport | ||
) |
Definition at line 579 of file PipelineExecutor.cpp.
float talvos::YFBToDev | ( | float | Yfb, |
VkViewport | Viewport | ||
) |
Definition at line 584 of file PipelineExecutor.cpp.