MCPcopy Create free account
hub / github.com/DiligentGraphics/DiligentFX / GetPSO

Method GetPSO

PBR/src/PBR_Renderer.cpp:1784–1882  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1782}
1783
1784IPipelineState* PBR_Renderer::GetPSO(PsoHashMapType& PsoHashMap,
1785 const GraphicsPipelineDesc& GraphicsDesc,
1786 const PSOKey& Key,
1787 PsoCacheAccessor::GET_FLAGS GetFlags)
1788{
1789 PSO_FLAGS Flags = Key.GetFlags();
1790 if (!m_Settings.EnableIBL)
1791 {
1792 Flags &= ~PSO_FLAG_USE_IBL;
1793 }
1794 if (!m_Settings.EnableAO)
1795 {
1796 Flags &= ~PSO_FLAG_USE_AO_MAP;
1797 }
1798 if (!m_Settings.EnableEmissive)
1799 {
1800 Flags &= ~PSO_FLAG_USE_EMISSIVE_MAP;
1801 }
1802 if (!m_Settings.EnableClearCoat)
1803 {
1804 Flags &= ~PSO_FLAG_ENABLE_CLEAR_COAT;
1805 }
1806 if (!m_Settings.EnableSheen)
1807 {
1808 Flags &= ~PSO_FLAG_ENABLE_SHEEN;
1809 }
1810 if (!m_Settings.EnableAnisotropy)
1811 {
1812 Flags &= ~PSO_FLAG_ENABLE_ANISOTROPY;
1813 }
1814 if (!m_Settings.EnableIridescence)
1815 {
1816 Flags &= ~PSO_FLAG_ENABLE_IRIDESCENCE;
1817 }
1818 if (!m_Settings.EnableTransmission)
1819 {
1820 Flags &= ~PSO_FLAG_ENABLE_TRANSMISSION;
1821 }
1822 if (!m_Settings.EnableVolume)
1823 {
1824 Flags &= ~PSO_FLAG_ENABLE_VOLUME;
1825 }
1826 if (!m_Settings.EnableShadows)
1827 {
1828 Flags &= ~PSO_FLAG_ENABLE_SHADOWS;
1829 }
1830
1831 if (m_Settings.MaxJointCount == 0)
1832 {
1833 Flags &= ~PSO_FLAG_USE_JOINTS;
1834 }
1835 if (m_Settings.UseSeparateMetallicRoughnessTextures)
1836 {
1837 DEV_CHECK_ERR((Flags & PSO_FLAG_USE_PHYS_DESC_MAP) == 0, "Physical descriptor map is not enabled");
1838 }
1839 else
1840 {
1841 DEV_CHECK_ERR((Flags & (PSO_FLAG_USE_METALLIC_MAP | PSO_FLAG_USE_ROUGHNESS_MAP)) == 0, "Separate metallic and roughness maps are not enaled");

Callers 1

GetMethod · 0.45

Calls 1

GetFlagsMethod · 0.80

Tested by

no test coverage detected