File tree Expand file tree Collapse file tree 3 files changed +23
-4
lines changed Expand file tree Collapse file tree 3 files changed +23
-4
lines changed Original file line number Diff line number Diff line change @@ -5967,8 +5967,11 @@ namespace IGC
59675967    void  CEncoder::DeclareInput (CVariable* var, uint offset, uint instance)
59685968    {
59695969        //  Avoid declaring more inputs/outputs than available registers
5970-         if  (offset + var->GetSize () >= vKernel->getNumRegTotal () * getGRFSize ())
5970+         if  (offset + var->GetSize () >= m_program->m_Platform ->getMaxNumGRF (m_program->GetShaderType ()) * getGRFSize ())
5971+         {
5972+             IGC_ASSERT (0 );
59715973            return ;
5974+         }
59725975        V (vKernel->CreateVISAInputVar (
59735976            var->visaGenVariable [instance],
59745977            int_cast<unsigned  short >(offset),
@@ -5978,8 +5981,11 @@ namespace IGC
59785981    void  CEncoder::DeclarePred (CVariable * var, uint offset)
59795982    {
59805983        //  Avoid declaring more inputs/outputs than available registers
5981-         if  (offset + var->GetSize () >= vKernel->getNumRegTotal () * getGRFSize ())
5984+         if  (offset + var->GetSize () >= m_program->m_Platform ->getMaxNumGRF (m_program->GetShaderType ()) * getGRFSize ())
5985+         {
5986+             IGC_ASSERT (0 );
59825987            return ;
5988+         }
59835989        V (vKernel->CreateVISAPredVar (
59845990            var->visaPredVariable ,
59855991            " "  ,
Original file line number Diff line number Diff line change @@ -1213,6 +1213,18 @@ uint32_t getGRFSize() const
12131213    return  isCoreChildOf (IGFX_XE_HPC_CORE) ? 64  : 32 ;
12141214}
12151215
1216+ uint32_t  getMaxNumGRF (ShaderType type) const 
1217+ {
1218+     if  (supportsVRT ())
1219+     {
1220+         return  256 ;
1221+     }
1222+     else 
1223+     {
1224+         return  128 ;
1225+     }
1226+ }
1227+ 
12161228uint32_t  getInlineDataSize () const 
12171229{
12181230    if  (!supportInlineData ()) return  0 ;
Original file line number Diff line number Diff line change @@ -1610,9 +1610,10 @@ namespace IGC
16101610
16111611        if  (m_context->platform .isCoreChildOf (IGFX_XE3_CORE))
16121612        {
1613+             //  VRT allows us to have 256GRFs, so we can double the number of pushed inputs
16131614            MaxNumOfPushedInputs = 24  * 2 ;
1614-             m_pMaxNumOfVSPushedInputs = 24  *  2 ;
1615-             m_pMaxNumOfDSPushedInputs = 24  * 2 ;
1615+             m_pMaxNumOfVSPushedInputs = 30 ;
1616+             m_pMaxNumOfDSPushedInputs = 24  * 2 ;  //  48 * vec4 == 192 GRF == 3/4 256 GRF 
16161617        }
16171618        else 
16181619        {
    
 
   
 
     
   
   
          
     
  
    
     
 
    
      
     
 
     
    You can’t perform that action at this time.
  
 
    
  
     
    
      
        
     
 
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments