8 #ifndef LLUVIA_CORE_NODE_COMPUTE_NODE_DESCRIPTOR_H_
9 #define LLUVIA_CORE_NODE_COMPUTE_NODE_DESCRIPTOR_H_
315 std::
string m_functionName;
316 std::
string m_builderName;
322 std::map<std::string, ll::PortDescriptor> m_ports;
323 std::map<std::string, ll::Parameter> m_parameters;
Node class and related enums.
Parameter class and related enums.
Class for describing a compute node node.
Definition: ComputeNodeDescriptor.h:33
const ll::PortDescriptor & getPort(const std::string &name) const
Gets a port descriptor given its name.
const ll::Parameter & getParameter(const std::string &name) const
Gets a parameter.
ComputeNodeDescriptor()=default
ComputeNodeDescriptor & setLocalY(const uint32_t y) noexcept
Sets the local group size in the Y axis.
ComputeNodeDescriptor & setGridShape(const ll::vec3ui &shape) noexcept
Sets the grid shape.
ComputeNodeDescriptor & setFunctionName(const std::string &name) noexcept
Sets the function name within the program object to run in the ll::ComputeNode.
uint32_t getLocalZ() const noexcept
uint32_t getGridX() const noexcept
ComputeNodeDescriptor & setGridX(const uint32_t x) noexcept
Sets the grid size in the X axis.
ComputeNodeDescriptor & setLocalZ(const uint32_t z) noexcept
Sets the local group size in the Z axis.
ll::vec3ui getGridShape() const noexcept
Gets the grid shape.
ComputeNodeDescriptor & operator=(const ComputeNodeDescriptor &descriptor)=default
ComputeNodeDescriptor & setProgram(const std::shared_ptr< ll::Program > &tProgram, const std::string &tFunctionName) noexcept
Sets the program object and function name.
uint32_t getLocalY() const noexcept
const ll::PushConstants & getPushConstants() const noexcept
ComputeNodeDescriptor(ComputeNodeDescriptor &&descriptor)=default
ComputeNodeDescriptor & setPushConstants(const ll::PushConstants &constants) noexcept
Sets the push constants for this compute node.
const std::string & getFunctionName() const noexcept
Gets the function name within the ll::Program object used by this node.
~ComputeNodeDescriptor()=default
ComputeNodeDescriptor & operator=(ComputeNodeDescriptor &&descriptor)=default
ComputeNodeDescriptor & configureGridShape(const ll::vec3ui &globalShape) noexcept
Calculates the grid shape provided local and global shapes.
ll::vec3ui getLocalShape() const noexcept
Gets the local group shape.
ComputeNodeDescriptor & setLocalX(const uint32_t x) noexcept
Sets the local group size in the X axis.
const std::string & getBuilderName() const noexcept
Gets the builder name within the Lua interpreter.
std::shared_ptr< ll::Program > getProgram() const noexcept
Gets the program associated to this compute node.
uint32_t getGridY() const noexcept
ComputeNodeDescriptor & setLocalShape(const ll::vec3ui &shape) noexcept
Sets the local group shape.
ComputeNodeDescriptor & addPort(const ll::PortDescriptor &port)
Adds a port to the descriptor.
ComputeNodeDescriptor & setGridY(const uint32_t y) noexcept
Sets the grid size in the Y axis.
uint32_t getLocalX() const noexcept
ComputeNodeDescriptor & setGridZ(const uint32_t z) noexcept
Sets the grid size in the Z axis.
ComputeNodeDescriptor & setProgram(const std::shared_ptr< ll::Program > &tProgram) noexcept
Sets the program object.
ComputeNodeDescriptor & addPorts(const std::initializer_list< ll::PortDescriptor > &ports)
Adds a list of ports to the descriptor.
uint32_t getGridZ() const noexcept
std::vector< vk::DescriptorSetLayoutBinding > getParameterBindings() const
ComputeNodeDescriptor(const ComputeNodeDescriptor &descriptor)=default
ComputeNodeDescriptor & setBuilderName(const std::string &name) noexcept
Sets the builder name this descriptor refers to within the Lua interpreter.
ComputeNodeDescriptor & setParameter(const std::string &name, const ll::Parameter &value)
Sets a parameter.
Definition: Parameter.h:23
Definition: PortDescriptor.h:27
Class representing Vulkan shader modules in SPIR-V representation.
Definition: Program.h:37
Definition: PushConstants.h:20