@@ -795,12 +795,26 @@ namespace IGC
795
795
bool earlyExit =
796
796
ctx->getCompilerOption ().pixelShaderDoNotAbortOnSpill ? false : true ;
797
797
798
+ // for versioned loop, in general SIMD16 with spill has better perf
799
+ bool earlyExit16 = psInfo.hasVersionedLoop ? false : earlyExit;
800
+ bool enableSimd32 = false ;
801
+
802
+ if (psInfo.ForceEnableSimd32 ) // UMD forced compilation of simd32.
803
+ {
804
+ enableSimd32 = true ;
805
+ }
806
+ // heuristic based on performance measures.
807
+ else if (SimdEarlyCheck (ctx))
808
+ {
809
+ enableSimd32 = true ;
810
+ }
811
+
798
812
if (IsStage1BestPerf (ctx->m_CgFlag , ctx->m_StagingCtx ))
799
813
{
800
814
// don't retry SIMD16 for ForcePSBestSIMD
801
- if ( SimdEarlyCheck ( ctx ) && ( !ctx-> m_retryManager . IsLastTry () ) )
815
+ if (enableSimd32 || IGC_GET_FLAG_VALUE (SkipTREarlyExitCheck) )
802
816
{
803
- AddCodeGenPasses (*ctx, shaders, PassMgr, SIMDMode::SIMD16, true , ShaderDispatchMode::NOT_APPLICABLE, pSignature);
817
+ AddCodeGenPasses (*ctx, shaders, PassMgr, SIMDMode::SIMD16, earlyExit16 , ShaderDispatchMode::NOT_APPLICABLE, pSignature);
804
818
}
805
819
AddCodeGenPasses (*ctx, shaders, PassMgr, SIMDMode::SIMD8, !ctx->m_retryManager .IsLastTry (), ShaderDispatchMode::NOT_APPLICABLE, pSignature);
806
820
useRegKeySimd = true ;
@@ -838,20 +852,6 @@ namespace IGC
838
852
839
853
if (!useRegKeySimd)
840
854
{
841
- bool enableSimd32 = false ;
842
-
843
- if (psInfo.ForceEnableSimd32 ) // UMD forced compilation of simd32.
844
- {
845
- enableSimd32 = true ;
846
- }
847
- // heuristic based on performance measures.
848
- else if (SimdEarlyCheck (ctx))
849
- {
850
- enableSimd32 = true ;
851
- }
852
-
853
- // for versioned loop, in general SIMD16 with spill has better perf
854
- bool earlyExit16 = psInfo.hasVersionedLoop ? false : earlyExit;
855
855
AddCodeGenPasses (*ctx, shaders, PassMgr, SIMDMode::SIMD8, !ctx->m_retryManager .IsLastTry (), ShaderDispatchMode::NOT_APPLICABLE, pSignature);
856
856
857
857
if (enableSimd32 || IGC_GET_FLAG_VALUE (SkipTREarlyExitCheck))
0 commit comments