• UE5 AndroidVulkan Preview失效排查


    问题描述:
    UE5 PC上想切Android Vulkan,发现切不过去,点了没反应,还是SM5。
    UEditorPerProjectUserSettings的配置里已经加了
    PreviewFeatureLevel=1
    PreviewShaderFormatName=SF_VULKAN_ES31_ANDROID
    bPreviewFeatureLevelActive=True
    bAllowSelectTranslucent=False
    PreviewPlatformName=Android

    跟Code排查。
    UE在决定SceneRender的时候,创建DeferredScene还是MobileScene是通过FeatureLevel决定的,而这个信息记录在
    SavedConfigWindowsEditorEditorPerProjectUserSettings.ini PreviewFeatureLevel
    注意UE4 不区分Windows和WindowsEditor,UE5区分,第一个坑。
    LoadMap的时候,用若干个参数序列化一个CommandLine,里面会有FeatureLevel,决定加载场景的时候用
    FString LoadCommand = FString::Printf(TEXT("MAP LOAD FILE="%s" TEMPLATE=%d SHOWPROGRESS=%d FEATURELEVEL=%d"), *Filename, LoadAsTemplate, bShowProgress, (int32)GEditor->DefaultWorldFeatureLevel);
    const bool bResult = GEditor->Exec( NULL, *LoadCommand );
    第二个坑,UE5的 UEditorPerProjectUserSettings 类里多了 bPreviewFeatureLevelWasDefault 这个配置。默认是true,并且在初始化UEditorPerProjectUserSettings配置的时候,回去检查,如果是True的话,FeatureLevel强制用最高的。这也导致了PC上ES3_1不生效,切不过去。
        if (bPreviewFeatureLevelWasDefault || PreviewFeatureLevel > GMaxRHIFeatureLevel)
        {
            PreviewFeatureLevel = GMaxRHIFeatureLevel;
            PreviewShaderFormatName = NAME_None;
            bPreviewFeatureLevelActive = false;
            bPreviewFeatureLevelWasDefault = true;
            PreviewDeviceProfileName = NAME_None;
        }
    第三个坑,在SetPreviewPlatform 函数的时候,UE默认如果开了光追强制使用SM5,这个地方要自己改一下
        if (IsRayTracingEnabled())
        {
            if (PreviewPlatform.PreviewFeatureLevel < ERHIFeatureLevel::SM5)
            {
                UE_LOG(LogEditor, Warning, TEXT("Preview feature level is incompatible with ray tracing, defaulting to Shader Model 5"));
                PreviewPlatform.PreviewFeatureLevel = ERHIFeatureLevel::SM5;
            }
            return;
        }
    改完之后,就能看到小机器人了
     
  • 相关阅读:
    开始学习Oracle
    Oracle失败──用户错误
    2.1.1 数据库文件
    Oracle──网络失败
    再向前迈一步
    CSDN、CNBLOGS使用Windows Live Writer客户端发布日志时相关配置
    1.2 备份与恢复基础
    Oracle失败──用户进程失败
    Oracle失败类型
    MAC地址 正则表达式
  • 原文地址:https://www.cnblogs.com/SeekHit/p/15268336.html
Copyright © 2020-2023  润新知