[BUG]ScheduleGroupSingle run in parralel mode

Hi,

If I am not wrong the method ScheduleGroupSingle runs in parallel because of innerloopBatchCount sets to 1.

Actually

            public static JobHandle ScheduleGroupSingle<T>(this T jobData, ComponentGroup componentGroup, JobHandle dependsOn = default(JobHandle))
                where T : struct, IBaseJobProcessComponentData
            {
                var typeT = typeof(T);            
                if (typeof(IBaseJobProcessComponentData_D).IsAssignableFrom(typeT))
                    return ScheduleInternal_D(ref jobData, null, componentGroup, 1, dependsOn, ScheduleMode.Batched);            
                if (typeof(IBaseJobProcessComponentData_ED).IsAssignableFrom(typeT))
                    return ScheduleInternal_ED(ref jobData, null, componentGroup, 1, dependsOn, ScheduleMode.Batched);            
                if (typeof(IBaseJobProcessComponentData_DD).IsAssignableFrom(typeT))
                    return ScheduleInternal_DD(ref jobData, null, componentGroup, 1, dependsOn, ScheduleMode.Batched);            
                if (typeof(IBaseJobProcessComponentData_EDD).IsAssignableFrom(typeT))
                    return ScheduleInternal_EDD(ref jobData, null, componentGroup, 1, dependsOn, ScheduleMode.Batched);            
                if (typeof(IBaseJobProcessComponentData_DDD).IsAssignableFrom(typeT))
                    return ScheduleInternal_DDD(ref jobData, null, componentGroup, 1, dependsOn, ScheduleMode.Batched);            
                if (typeof(IBaseJobProcessComponentData_EDDD).IsAssignableFrom(typeT))
                    return ScheduleInternal_EDDD(ref jobData, null, componentGroup, 1, dependsOn, ScheduleMode.Batched);            
                if (typeof(IBaseJobProcessComponentData_DDDD).IsAssignableFrom(typeT))
                    return ScheduleInternal_DDDD(ref jobData, null, componentGroup, 1, dependsOn, ScheduleMode.Batched);            
                if (typeof(IBaseJobProcessComponentData_EDDDD).IsAssignableFrom(typeT))
                    return ScheduleInternal_EDDDD(ref jobData, null, componentGroup, 1, dependsOn, ScheduleMode.Batched);            
                if (typeof(IBaseJobProcessComponentData_DDDDD).IsAssignableFrom(typeT))
                    return ScheduleInternal_DDDDD(ref jobData, null, componentGroup, 1, dependsOn, ScheduleMode.Batched);            
                if (typeof(IBaseJobProcessComponentData_EDDDDD).IsAssignableFrom(typeT))
                    return ScheduleInternal_EDDDDD(ref jobData, null, componentGroup, 1, dependsOn, ScheduleMode.Batched);            
                if (typeof(IBaseJobProcessComponentData_DDDDDD).IsAssignableFrom(typeT))
                    return ScheduleInternal_DDDDDD(ref jobData, null, componentGroup, 1, dependsOn, ScheduleMode.Batched);            
                if (typeof(IBaseJobProcessComponentData_EDDDDDD).IsAssignableFrom(typeT))
                    return ScheduleInternal_EDDDDDD(ref jobData, null, componentGroup, 1, dependsOn, ScheduleMode.Batched);            
                throw new System.ArgumentException("Not supported");
            }

But need to be

            public static JobHandle ScheduleGroupSingle<T>(this T jobData, ComponentGroup componentGroup, JobHandle dependsOn = default(JobHandle))
                where T : struct, IBaseJobProcessComponentData
            {
                var typeT = typeof(T);            
                if (typeof(IBaseJobProcessComponentData_D).IsAssignableFrom(typeT))
                    return ScheduleInternal_D(ref jobData, null, componentGroup, -1, dependsOn, ScheduleMode.Batched);            
                if (typeof(IBaseJobProcessComponentData_ED).IsAssignableFrom(typeT))
                    return ScheduleInternal_ED(ref jobData, null, componentGroup, -1, dependsOn, ScheduleMode.Batched);            
                if (typeof(IBaseJobProcessComponentData_DD).IsAssignableFrom(typeT))
                    return ScheduleInternal_DD(ref jobData, null, componentGroup, -1, dependsOn, ScheduleMode.Batched);            
                if (typeof(IBaseJobProcessComponentData_EDD).IsAssignableFrom(typeT))
                    return ScheduleInternal_EDD(ref jobData, null, componentGroup, -1, dependsOn, ScheduleMode.Batched);            
                if (typeof(IBaseJobProcessComponentData_DDD).IsAssignableFrom(typeT))
                    return ScheduleInternal_DDD(ref jobData, null, componentGroup, -1, dependsOn, ScheduleMode.Batched);            
                if (typeof(IBaseJobProcessComponentData_EDDD).IsAssignableFrom(typeT))
                    return ScheduleInternal_EDDD(ref jobData, null, componentGroup, -1, dependsOn, ScheduleMode.Batched);            
                if (typeof(IBaseJobProcessComponentData_DDDD).IsAssignableFrom(typeT))
                    return ScheduleInternal_DDDD(ref jobData, null, componentGroup, -1, dependsOn, ScheduleMode.Batched);            
                if (typeof(IBaseJobProcessComponentData_EDDDD).IsAssignableFrom(typeT))
                    return ScheduleInternal_EDDDD(ref jobData, null, componentGroup, -1, dependsOn, ScheduleMode.Batched);            
                if (typeof(IBaseJobProcessComponentData_DDDDD).IsAssignableFrom(typeT))
                    return ScheduleInternal_DDDDD(ref jobData, null, componentGroup, -1, dependsOn, ScheduleMode.Batched);            
                if (typeof(IBaseJobProcessComponentData_EDDDDD).IsAssignableFrom(typeT))
                    return ScheduleInternal_EDDDDD(ref jobData, null, componentGroup, -1, dependsOn, ScheduleMode.Batched);            
                if (typeof(IBaseJobProcessComponentData_DDDDDD).IsAssignableFrom(typeT))
                    return ScheduleInternal_DDDDDD(ref jobData, null, componentGroup, -1, dependsOn, ScheduleMode.Batched);            
                if (typeof(IBaseJobProcessComponentData_EDDDDDD).IsAssignableFrom(typeT))
                    return ScheduleInternal_EDDDDDD(ref jobData, null, componentGroup, -1, dependsOn, ScheduleMode.Batched);            
                throw new System.ArgumentException("Not supported");
            }

I believe you are correct, i can’t see any other explanation except it being a mistake.

ScheduleGroup and ScheduleGroupSingle seem to be identical.

You are right. Will fix for next build. Thanks.

2 Likes