51 size_t hash = compiledStateHash;
80 const auto& descriptor = pipeline.descriptor();
82 size_t hash = vertexFormatHash;
89 descriptor._multiSampleCount,
90 descriptor._shaderProgramHandle._generation,
91 descriptor._shaderProgramHandle._index,
92 descriptor._primitiveTopology,
93 descriptor._alphaToCoverage);
124 : _descriptor(descriptor)
125 , _blendStateHash(
GetHash( descriptor._blendStates ) )
128 _compiledPipelineHash = GetVulkanPipelineHash(*
this, _vertexFormatHash );
129 _stateHash = GetFullStateHash(*
this, _compiledPipelineHash, _blendStateHash );
133 return lhs.stateHash() == rhs.stateHash();
137 return lhs.stateHash() != rhs.stateHash();
Pipeline(const PipelineDescriptor &descriptor)
void Hash_combine(size_t &seed, const T &v, const Rest &... rest) noexcept
a la Boost
size_t GetFullStateHash(const Pipeline &pipeline, const size_t compiledStateHash, const size_t blendStateHash)
size_t GetVulkanPipelineHash(const Pipeline &pipeline, const size_t vertexFormatHash)
Handle console commands that start with a forward slash.
FORCE_INLINE bool operator!=(const GUIDWrapper &lhs, const GUIDWrapper &rhs) noexcept
constexpr U32 to_U32(const T value)
size_t GetHash(const PropertyDescriptor< T > &descriptor) noexcept
bool operator==(const DisplayManager::OutputDisplayProperties &lhs, const DisplayManager::OutputDisplayProperties &rhs) noexcept
constexpr auto to_base(const Type value) -> Type
PrimitiveTopology _primitiveTopology
AttributeMap _vertexFormat
Handle< ShaderProgram > _shaderProgramHandle
RTBlendStates _blendStates
RenderStateBlock _stateBlock
bool _primitiveRestartEnabled
StencilOperation _stencilZFailOp
StencilOperation _stencilFailOp
bool _rasterizationEnabled
ComparisonFunction _stencilFunc
StencilOperation _stencilPassOp
ComparisonFunction _zFunc