Castor3D 0.17.0
Multiplatform 3D engine
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
castor3d::shader::RadixSortT< ValueSizeT > Struct Template Reference

#include <GlslRadixSort.hpp>

Public Member Functions

 RadixSortT (sdw::ComputeWriter &writer, uint32_t sortBits)
 
template<typename ValueT >
void sortT (sdw::ShaderWriter &writer, sdw::UInt elementOffset, sdw::UInt elementCount, sdw::UInt groupIndex, sdw::UInt threadIndex, sdw::Array< sdw::UInt > const &inputKeys, sdw::Array< sdw::UInt > const &outputKeys, sdw::Array< ValueT > const &inputValues, sdw::Array< ValueT > const &outputValues, ValueT const &invalidValue) const
 
template<typename ValueT >
void sortT (sdw::ComputeWriter &writer, sdw::UInt elementOffset, sdw::UInt elementCount, sdw::UInt groupIndex, sdw::UInt threadIndex, sdw::Array< sdw::UInt > const &inputKeys, sdw::Array< sdw::UInt > const &outputKeys, ValueT const &invalidValue)
 

Public Attributes

uint32_t threadsCount { bucketSize }
 

Static Public Attributes

static uint32_t constexpr bucketSize { 1024u / ValueSizeT }
 

Detailed Description

template<uint32_t ValueSizeT>
struct castor3d::shader::RadixSortT< ValueSizeT >

Constructor & Destructor Documentation

◆ RadixSortT()

template<uint32_t ValueSizeT>
castor3d::shader::RadixSortT< ValueSizeT >::RadixSortT ( sdw::ComputeWriter & writer,
uint32_t sortBits )
inline
Parameters
writerThe shader writer.
sortBitsThe number of bits to consider sorting.

Member Function Documentation

◆ sortT() [1/2]

template<uint32_t ValueSizeT>
template<typename ValueT >
void castor3d::shader::RadixSortT< ValueSizeT >::sortT ( sdw::ComputeWriter & writer,
sdw::UInt elementOffset,
sdw::UInt elementCount,
sdw::UInt groupIndex,
sdw::UInt threadIndex,
sdw::Array< sdw::UInt > const & inputKeys,
sdw::Array< sdw::UInt > const & outputKeys,
ValueT const & invalidValue )
inline
  • ValueT The value type.

References castor3d::shader::RadixSortT< ValueSizeT >::sortT().

Here is the call graph for this function:

◆ sortT() [2/2]

template<uint32_t ValueSizeT>
template<typename ValueT >
void castor3d::shader::RadixSortT< ValueSizeT >::sortT ( sdw::ShaderWriter & writer,
sdw::UInt elementOffset,
sdw::UInt elementCount,
sdw::UInt groupIndex,
sdw::UInt threadIndex,
sdw::Array< sdw::UInt > const & inputKeys,
sdw::Array< sdw::UInt > const & outputKeys,
sdw::Array< ValueT > const & inputValues,
sdw::Array< ValueT > const & outputValues,
ValueT const & invalidValue ) const
inline
  • ValueT The value type.

References castor3d::shader::RadixSortT< ValueSizeT >::bucketSize, castor3d::shader::groupMemoryBarrierWithGroupSync(), and castor3d::shader::RadixSortT< ValueSizeT >::threadsCount.

Referenced by castor3d::shader::RadixSortT< ValueSizeT >::sortT().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ bucketSize

template<uint32_t ValueSizeT>
uint32_t constexpr castor3d::shader::RadixSortT< ValueSizeT >::bucketSize { 1024u / ValueSizeT }
staticconstexpr

◆ threadsCount

template<uint32_t ValueSizeT>
uint32_t castor3d::shader::RadixSortT< ValueSizeT >::threadsCount { bucketSize }

The documentation for this struct was generated from the following file: