97 template<
class ValueT >
101 const VkExtent3D& extent );
389 template<
class ValueT >
499 template<
class ValueT,
class OutputShader,
class InputShader >
544 template<
class StructT,
class OutputShader,
class InputShader >
606 template<
class BindingPo
intT >
613 Input (
const BindingPointT& var );
628 Input (
const BindingPointT& var, std::uint32_t interpFlags );
636 template<
typename MemberT >
637 auto operator[]( MemberT StructT::* pMember )
const;
671 ValueT InterpolateAtCentroid();
672 ValueT InterpolateAtSample (
const Int& sample );
673 ValueT InterpolateAtOffset (
const Vec2& offset );
730 template<
class BindingPo
intT >
737 Output (
const BindingPointT& var );
745 template<
typename MemberT >
746 auto operator[]( MemberT struct_type::* pMember )
const;
774 template<
typename RightT >
775 void operator= (
const RightT& rhs );
Vec2 inPointCoord
In: the sub-pixel position of the sample being shaded.
Definition: vppLangIntInOut.hpp:408
Base class for shader interfaces.
Definition: vppLangIntInOut.hpp:38
Represents logical rendering device.
Definition: vppDevice.hpp:49
Int inPrimitiveId
In: primitive index in current set of primitives.
Definition: vppLangIntInOut.hpp:339
void Kill()
Terminates shader execution without writing the fragment.
Geometry shader interface.
Definition: vppLangIntInOut.hpp:309
Bool inHelperInvocation
In: whether the current invocation is a helper invocation.
Definition: vppLangIntInOut.hpp:411
Binding point class for inter-shader communication variable of simple type (scalar, vector or matrix). Place in your pipeline configuration class to declare an inter-shader communication variable.
Definition: vppLangIntInOut.hpp:500
IVec3 inWorkgroupId
The global workgroup that the current invocation is a member of.
Definition: vppLangIntInOut.hpp:436
Fragment shader interface.
Definition: vppLangIntInOut.hpp:372
Bool inFrontFacing
In: true if current pixel belongs to a front-facing primitive.
Definition: vppLangIntInOut.hpp:396
ioVariable()
Constructor - takes no arguments.
const Device & device() const
Retrieves the device the shader is currently compiled for.
Shader (GPU-side) data type for 32-bit unsigned integer values.
Definition: vppLangScalarTypes.hpp:271
Float outTessLevelInner[2]
Out: computed inner tessellation levels.
Definition: vppLangIntInOut.hpp:247
Float outTessLevelOuter[4]
Out: computed outer tessellation levels.
Definition: vppLangIntInOut.hpp:244
void DebugProbe(const ValueT &value, const IVec2 &coords, const VkExtent3D &extent)
Adds a debug probe to dump an expression value during shader execution.
Int inLayer
In: the layer index of the primitive that the fragment invocation belongs to.
Definition: vppLangIntInOut.hpp:399
Int inSampleId
In: zero-based index of the sample the invocation corresponds to.
Definition: vppLangIntInOut.hpp:402
The VPP namespace.
Definition: main.hpp:1
Tessellation evaluation shader interface.
Definition: vppLangIntInOut.hpp:262
Output(const BindingPointT &var)
Constructs the output point associated with specified binding point (ioVariable or ioStructure)...
void EarlyTest()
Enables early tests (depth, stencil, etc.) for this shader.
IVec3 inWorkgroupSize
The dimensions of local workgroup.
Definition: vppLangIntInOut.hpp:448
void setCullPlanes(int n)
Sets the number of additional culling planes.
gl_perVertex outVertex
Out: computed vertex data.
Definition: vppLangIntInOut.hpp:294
Int inInvocationId
In: index of currently computed output patch vertex.
Definition: vppLangIntInOut.hpp:232
Binding point class for inter-shader communication variable of structural type. Place in your pipelin...
Definition: vppLangIntInOut.hpp:545
Int Size() const
Returns GPU-side value equal to the array size (number of vertices).
Auxiliary structure holding basic vertex attributes.
Definition: vppLangIntInOut.hpp:127
const SLocalGroupSize & localGroupSize() const
Returns CPU-side structure specifying the dimensions of local workgroup.
Float inTessLevelOuter[4]
In: outer tessellation levels.
Definition: vppLangIntInOut.hpp:288
Int inPatchVertices
In: number of vertices in current input patch (inVertices array size).
Definition: vppLangIntInOut.hpp:269
void getCullPlanes()
Retrieves the number of additional culling planes.
Int inPatchVertices
In: number of vertices in current input patch (inVertices array size).
Definition: vppLangIntInOut.hpp:235
Int inPrimitiveId
In: index of the input patch in currently rendered set of patches.
Definition: vppLangIntInOut.hpp:272
IVec3 inGlobalInvocationId
The location of the current invocation within the global workgroup.
Definition: vppLangIntInOut.hpp:445
gl_perVertex outVertex
Out: computed vertex data.
Definition: vppLangIntInOut.hpp:342
gl_perVertex outVertices[]
Out: vertices of the resulting patch.
Definition: vppLangIntInOut.hpp:241
Int inPrimitiveId
In: the index of the current primitive.
Definition: vppLangIntInOut.hpp:414
IVec3 inNumWorkgroups
The number of local workgroups that are part of the dispatch that the invocation belongs to...
Definition: vppLangIntInOut.hpp:439
void EndPrimitive()
Finishes the current primitive and starts a new one. No vertex is emitted.
Int inViewportIndex
In: the index of the viewport.
Definition: vppLangIntInOut.hpp:417
gl_perVertex inVertices[]
In: vertices of currently processed primitive.
Definition: vppLangIntInOut.hpp:327
Shader (GPU-side) data type for 2-element 32-bit integer vectors.
Definition: vppLangVectorTypes.hpp:817
Vec4 position
In or Out: Position of the vertex in clip space (after projection).
Definition: vppLangIntInOut.hpp:130
ioStructure()
Constructor - takes no arguments.
Int inPrimitiveId
In: index of the input patch in currently rendered set of patches.
Definition: vppLangIntInOut.hpp:238
void DebugProbe(const ValueT &value)
Creates a debug probe image and writes given value.
Shader (GPU-side) data type for 32-bit floating point values.
Definition: vppLangScalarTypes.hpp:356
Int inInstanceIndex
In: index of current instance.
Definition: vppLangIntInOut.hpp:190
unsigned int getFreeWorkgroupMemory() const
Retrieves available size (in bytes) of the workgroup-scoped shared memory.
Shader (GPU-side) data type for 2-element 32-bit float vectors.
Definition: vppLangVectorTypes.hpp:593
Vec3 inTessCoord
In: coordinates of currently evaluated point, inside triangular or rectangular domain.
Definition: vppLangIntInOut.hpp:285
Shader (GPU-side) data type for 4-element 32-bit float vectors.
Definition: vppLangVectorTypes.hpp:314
Float clipDistance[]
In or Out: Array of additional clipping planes.
Definition: vppLangIntInOut.hpp:136
Vec2 inSamplePosition
In: zero-based index of the sample the invocation corresponds to.
Definition: vppLangIntInOut.hpp:405
Vertex shader interface.
Definition: vppLangIntInOut.hpp:183
Float pointSize
In or Out: Size of the point primitive.
Definition: vppLangIntInOut.hpp:133
Int outLayer
Out: allows to direct currently processed primitive to specific layer of multi-layer output attachmen...
Definition: vppLangIntInOut.hpp:346
int size() const
Returns CPU-side value equal to the array size (number of vertices).
Float inTessLevelInner[2]
In: inner tessellation levels.
Definition: vppLangIntInOut.hpp:291
void getClipPlanes()
Retrieves the number of additional clipping planes.
Int outPrimitiveId
Out: allows to pass the primitive id to the fragment shader.
Definition: vppLangIntInOut.hpp:349
Compute shader interface.
Definition: vppLangIntInOut.hpp:432
gl_perVertex inVertices[]
In: vertices of the source patch.
Definition: vppLangIntInOut.hpp:229
IVec3 inLocalInvocationId
The location of the current compute shader invocation within the local workgroup. ...
Definition: vppLangIntInOut.hpp:442
Shader (GPU-side) data type for 32-bit signed integer values.
Definition: vppLangScalarTypes.hpp:162
Int outViewportIndex
Out: allows to direct currently processed primitive to specific viewport.
Definition: vppLangIntInOut.hpp:357
Shader (GPU-side) data type for 3-element 32-bit integer vectors.
Definition: vppLangVectorTypes.hpp:796
void EmitVertex()
Emits one vertex for currently processed primitive and resets the outVertex and output variables to r...
Tessellation control shader interface.
Definition: vppLangIntInOut.hpp:225
auto operator[](MemberT struct_type::*pMember) const
Provides access to structure members for ioStructure binding points. Provide a pointer to member of y...
void setClipPlanes(int n)
Sets the number of additional clipping planes.
Float outFragDepth
Out: the new depth value for all samples covered by the fragment.
Definition: vppLangIntInOut.hpp:420
gl_perVertex inVertices[]
In: vertices of the evaluated patch.
Definition: vppLangIntInOut.hpp:266
unsigned int getTotalWorkgroupMemory() const
Retrieves total size (in bytes) of the workgroup-scoped shared memory.
Shader (GPU-side) data type for 3-element 32-bit float vectors.
Definition: vppLangVectorTypes.hpp:572
Int inInvocationId
In: index of current geometry shader invocation in case when multiple geometry shader invocations are...
Definition: vppLangIntInOut.hpp:336
gl_perVertex outVertex
Out: computed basic vertex attributes.
Definition: vppLangIntInOut.hpp:193
Shader (GPU-side) data type for boolean values.
Definition: vppLangScalarTypes.hpp:45
void DebugCodeDump()
Enables diagnostic dump of intermediate SPIR-V code for this shader.
Float cullDistance[]
In or Out: Array of additional culling planes.
Definition: vppLangIntInOut.hpp:139
Provides output access to communication variable binding point from shader code.
Definition: vppLangIntInOut.hpp:731
Vec4 inFragCoord
In: current pixel coordinates in the frame buffer.
Definition: vppLangIntInOut.hpp:393
Int inVertexIndex
In: index of current vertex.
Definition: vppLangIntInOut.hpp:187