|
|
|
@ -23,6 +23,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
#include <AzCore/Serialization/EditContext.h>
|
|
|
|
#include <AzCore/Serialization/EditContext.h>
|
|
|
|
#include <AzCore/Serialization/SerializeContext.h>
|
|
|
|
#include <AzCore/Serialization/SerializeContext.h>
|
|
|
|
|
|
|
|
#include <AzCore/Settings/SettingsRegistry.h>
|
|
|
|
|
|
|
|
|
|
|
|
#include <CommonFiles/Preprocessor.h>
|
|
|
|
#include <CommonFiles/Preprocessor.h>
|
|
|
|
#include <CommonFiles/GlobalBuildOptions.h>
|
|
|
|
#include <CommonFiles/GlobalBuildOptions.h>
|
|
|
|
@ -91,6 +92,17 @@ namespace AZ
|
|
|
|
m_shaderAssetBuilder.BusConnect(shaderAssetBuilderDescriptor.m_busId);
|
|
|
|
m_shaderAssetBuilder.BusConnect(shaderAssetBuilderDescriptor.m_busId);
|
|
|
|
AssetBuilderSDK::AssetBuilderBus::Broadcast(&AssetBuilderSDK::AssetBuilderBus::Handler::RegisterBuilderInformation, shaderAssetBuilderDescriptor);
|
|
|
|
AssetBuilderSDK::AssetBuilderBus::Broadcast(&AssetBuilderSDK::AssetBuilderBus::Handler::RegisterBuilderInformation, shaderAssetBuilderDescriptor);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// If, either the SettingsRegistry doesn't exist, or the property @EnableShaderVariantAssetBuilderRegistryKey is not found,
|
|
|
|
|
|
|
|
// the default is to enable the ShaderVariantAssetBuilder.
|
|
|
|
|
|
|
|
m_enableShaderVariantAssetBuilder = true;
|
|
|
|
|
|
|
|
auto settingsRegistry = AZ::SettingsRegistry::Get();
|
|
|
|
|
|
|
|
if (settingsRegistry)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
settingsRegistry->Get(m_enableShaderVariantAssetBuilder, EnableShaderVariantAssetBuilderRegistryKey);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (m_enableShaderVariantAssetBuilder)
|
|
|
|
|
|
|
|
{
|
|
|
|
// Register Shader Variant Asset Builder
|
|
|
|
// Register Shader Variant Asset Builder
|
|
|
|
AssetBuilderSDK::AssetBuilderDesc shaderVariantAssetBuilderDescriptor;
|
|
|
|
AssetBuilderSDK::AssetBuilderDesc shaderVariantAssetBuilderDescriptor;
|
|
|
|
shaderVariantAssetBuilderDescriptor.m_name = "Shader Variant Asset Builder";
|
|
|
|
shaderVariantAssetBuilderDescriptor.m_name = "Shader Variant Asset Builder";
|
|
|
|
@ -104,6 +116,7 @@ namespace AZ
|
|
|
|
|
|
|
|
|
|
|
|
m_shaderVariantAssetBuilder.BusConnect(shaderVariantAssetBuilderDescriptor.m_busId);
|
|
|
|
m_shaderVariantAssetBuilder.BusConnect(shaderVariantAssetBuilderDescriptor.m_busId);
|
|
|
|
AssetBuilderSDK::AssetBuilderBus::Broadcast(&AssetBuilderSDK::AssetBuilderBus::Handler::RegisterBuilderInformation, shaderVariantAssetBuilderDescriptor);
|
|
|
|
AssetBuilderSDK::AssetBuilderBus::Broadcast(&AssetBuilderSDK::AssetBuilderBus::Handler::RegisterBuilderInformation, shaderVariantAssetBuilderDescriptor);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Register Precompiled Shader Builder
|
|
|
|
// Register Precompiled Shader Builder
|
|
|
|
AssetBuilderSDK::AssetBuilderDesc precompiledShaderBuilderDescriptor;
|
|
|
|
AssetBuilderSDK::AssetBuilderDesc precompiledShaderBuilderDescriptor;
|
|
|
|
@ -121,7 +134,10 @@ namespace AZ
|
|
|
|
void AzslShaderBuilderSystemComponent::Deactivate()
|
|
|
|
void AzslShaderBuilderSystemComponent::Deactivate()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
m_shaderAssetBuilder.BusDisconnect();
|
|
|
|
m_shaderAssetBuilder.BusDisconnect();
|
|
|
|
|
|
|
|
if (m_enableShaderVariantAssetBuilder)
|
|
|
|
|
|
|
|
{
|
|
|
|
m_shaderVariantAssetBuilder.BusDisconnect();
|
|
|
|
m_shaderVariantAssetBuilder.BusDisconnect();
|
|
|
|
|
|
|
|
}
|
|
|
|
m_precompiledShaderBuilder.BusDisconnect();
|
|
|
|
m_precompiledShaderBuilder.BusDisconnect();
|
|
|
|
|
|
|
|
|
|
|
|
RHI::ShaderPlatformInterfaceRegisterBus::Handler::BusDisconnect();
|
|
|
|
RHI::ShaderPlatformInterfaceRegisterBus::Handler::BusDisconnect();
|
|
|
|
|