Skip to content

Commit 45f48de

Browse files
Merge branch 'intel:master' into master
2 parents bd696ca + be74db2 commit 45f48de

File tree

292 files changed

+4843
-1501
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

292 files changed

+4843
-1501
lines changed

.github/workflows/stale.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,14 @@ on:
1212
- cron: '30 1 * * *' # run every day
1313
workflow_dispatch: {}
1414

15-
permissions:
16-
contents: write
17-
issues: write
18-
pull-requests: write
15+
permissions: read-all
1916

2017
jobs:
2118
stale:
19+
permissions:
20+
contents: write
21+
issues: write
22+
pull-requests: write
2223
runs-on: [self-hosted, Linux]
2324
steps:
2425
- uses: actions/stale@v9

IGC/AdaptorCommon/RayTracing/AutoGenRTStackAccessPrivateOS.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1122,7 +1122,7 @@ auto* _getPrimLeaf_Xe(Value* arg_0, Value* arg_1)
11221122
auto* _getInstanceLeaf_Xe(Value* arg_0, Value* arg_1, const Twine& _ReturnName = "")
11231123
{
11241124
auto* V_2 = CreateInBoundsGEP(_struct_RTStackFormat__RTStack(*Ctx.getModule()), arg_0, { getInt64(0), getInt32(1), getInt32(5) });
1125-
auto* V_3 = CreateICmpEQ(arg_1, getInt8(1));
1125+
auto* V_3 = CreateICmpEQ(arg_1, getInt32(1));
11261126
auto* V_4 = CreateInBoundsGEP(_struct_RTStackFormat__RTStack(*Ctx.getModule()), arg_0, { getInt64(0), getInt32(0), getInt32(5) });
11271127
auto* V_5 = CreateSelect(V_3, V_4, V_2);
11281128
auto* V_6 = CreateLoad(getInt64Ty(), V_5);
@@ -1136,7 +1136,7 @@ auto* _getInstanceLeaf_Xe(Value* arg_0, Value* arg_1, const Twine& _ReturnName =
11361136
auto* _getInstanceContributionToHitGroupIndex_Xe(Value* arg_0, Value* arg_1, const Twine& _ReturnName = "")
11371137
{
11381138
auto* V_2 = CreateInBoundsGEP(_struct_RTStackFormat__RTStack(*Ctx.getModule()), arg_0, { getInt64(0), getInt32(1), getInt32(5) });
1139-
auto* V_3 = CreateICmpEQ(arg_1, getInt8(1));
1139+
auto* V_3 = CreateICmpEQ(arg_1, getInt32(1));
11401140
auto* V_4 = CreateInBoundsGEP(_struct_RTStackFormat__RTStack(*Ctx.getModule()), arg_0, { getInt64(0), getInt32(0), getInt32(5) });
11411141
auto* V_5 = CreateSelect(V_3, V_4, V_2);
11421142
auto* V_6 = CreateLoad(getInt64Ty(), V_5);
@@ -1274,7 +1274,7 @@ auto* _TransformWorldToObject_Xe(Value* arg_0, Value* arg_1, Value* arg_2, Value
12741274
auto* BB_6 = BasicBlock::Create(*Ctx.getLLVMContext(), VALUE_NAME("_TransformWorldToObject_Xe."), _JoinBB->getParent(), _JoinBB);
12751275
SetInsertPoint(BB_4);
12761276
auto* V_7 = CreateInBoundsGEP(_struct_RTStackFormat__RTStack(*Ctx.getModule()), arg_0, { getInt64(0), getInt32(1), getInt32(5) });
1277-
auto* V_8 = CreateICmpEQ(arg_3, getInt8(1));
1277+
auto* V_8 = CreateICmpEQ(arg_3, getInt32(1));
12781278
auto* V_9 = CreateInBoundsGEP(_struct_RTStackFormat__RTStack(*Ctx.getModule()), arg_0, { getInt64(0), getInt32(0), getInt32(5) });
12791279
auto* V_10 = CreateSelect(V_8, V_9, V_7);
12801280
auto* V_11 = CreateLoad(getInt64Ty(), V_10);
@@ -1324,7 +1324,7 @@ auto* _TransformWorldToObject_Xe(Value* arg_0, Value* arg_1, Value* arg_2, Value
13241324
auto* _getObjWorldAndWorldObj_Xe(Value* arg_0, Value* arg_1, Value* arg_2, Value* arg_3, const Twine& _ReturnName = "")
13251325
{
13261326
auto* V_4 = CreateInBoundsGEP(_struct_RTStackFormat__RTStack(*Ctx.getModule()), arg_0, { getInt64(0), getInt32(1), getInt32(5) });
1327-
auto* V_5 = CreateICmpEQ(arg_3, getInt8(1));
1327+
auto* V_5 = CreateICmpEQ(arg_3, getInt32(1));
13281328
auto* V_6 = CreateInBoundsGEP(_struct_RTStackFormat__RTStack(*Ctx.getModule()), arg_0, { getInt64(0), getInt32(0), getInt32(5) });
13291329
auto* V_7 = CreateSelect(V_5, V_6, V_4);
13301330
auto* V_8 = CreateLoad(getInt64Ty(), V_7);
@@ -1350,10 +1350,10 @@ auto* _getObjWorldAndWorldObj_Xe(Value* arg_0, Value* arg_1, Value* arg_2, Value
13501350
auto* _getRayTCurrent_Xe(Value* arg_0, Value* arg_1, const Twine& _ReturnName = "")
13511351
{
13521352
auto* V_2 = CreateInBoundsGEP(_struct_RTStackFormat__RTStack(*Ctx.getModule()), arg_0, { getInt64(0), getInt32(1), getInt32(0) });
1353-
auto* V_3 = CreateICmpEQ(arg_1, getInt8(3));
1353+
auto* V_3 = CreateICmpEQ(arg_1, getInt32(3));
13541354
auto* V_4 = CreateInBoundsGEP(_struct_RTStackFormat__RTStack(*Ctx.getModule()), arg_0, { getInt64(0), getInt32(2), getInt32(3) });
13551355
auto* V_5 = CreateSelect(V_3, V_4, V_2);
1356-
auto* V_6 = CreateICmpEQ(arg_1, getInt8(1));
1356+
auto* V_6 = CreateICmpEQ(arg_1, getInt32(1));
13571357
auto* V_7 = CreateInBoundsGEP(_struct_RTStackFormat__RTStack(*Ctx.getModule()), arg_0, { getInt64(0), getInt32(0), getInt32(0) });
13581358
auto* V_8 = CreateSelect(V_6, V_7, V_5);
13591359
auto* V_9 = CreateLoad(getFloatTy(), V_8, _ReturnName);
@@ -1381,7 +1381,7 @@ void _setHitT_Xe(Value* arg_0, Value* arg_1, Value* arg_2)
13811381
auto* _getInstanceIndex_Xe(Value* arg_0, Value* arg_1, const Twine& _ReturnName = "")
13821382
{
13831383
auto* V_2 = CreateInBoundsGEP(_struct_RTStackFormat__RTStack(*Ctx.getModule()), arg_0, { getInt64(0), getInt32(1), getInt32(5) });
1384-
auto* V_3 = CreateICmpEQ(arg_1, getInt8(1));
1384+
auto* V_3 = CreateICmpEQ(arg_1, getInt32(1));
13851385
auto* V_4 = CreateInBoundsGEP(_struct_RTStackFormat__RTStack(*Ctx.getModule()), arg_0, { getInt64(0), getInt32(0), getInt32(5) });
13861386
auto* V_5 = CreateSelect(V_3, V_4, V_2);
13871387
auto* V_6 = CreateLoad(getInt64Ty(), V_5);
@@ -1397,7 +1397,7 @@ auto* _getInstanceIndex_Xe(Value* arg_0, Value* arg_1, const Twine& _ReturnName
13971397
auto* _getInstanceID_Xe(Value* arg_0, Value* arg_1, const Twine& _ReturnName = "")
13981398
{
13991399
auto* V_2 = CreateInBoundsGEP(_struct_RTStackFormat__RTStack(*Ctx.getModule()), arg_0, { getInt64(0), getInt32(1), getInt32(5) });
1400-
auto* V_3 = CreateICmpEQ(arg_1, getInt8(1));
1400+
auto* V_3 = CreateICmpEQ(arg_1, getInt32(1));
14011401
auto* V_4 = CreateInBoundsGEP(_struct_RTStackFormat__RTStack(*Ctx.getModule()), arg_0, { getInt64(0), getInt32(0), getInt32(5) });
14021402
auto* V_5 = CreateSelect(V_3, V_4, V_2);
14031403
auto* V_6 = CreateLoad(getInt64Ty(), V_5);

IGC/AdaptorCommon/RayTracing/DynamicRayManagementPass.cpp

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,8 @@ bool DynamicRayManagementPass::requiresSplittingCheckReleaseRegion(Instruction&
238238
return
239239
isa<ContinuationHLIntrinsic>(I) ||
240240
isBarrierIntrinsic(&I) ||
241-
isUserFunctionCall(&I);
241+
isUserFunctionCall(&I) ||
242+
isDiscardInstruction(&I);
242243
}
243244

244245
void DynamicRayManagementPass::FindProceedsInOperands(Instruction* I, SetVector<TraceRaySyncProceedHLIntrinsic*>& proceeds, SmallPtrSetImpl<Instruction*>& cache)
@@ -993,6 +994,18 @@ void DynamicRayManagementPass::HandleComplexControlFlow(Function& F)
993994
break;
994995
}
995996

997+
if (isDiscardInstruction(&I) && !m_CGCtx->platform.allowDivergentControlFlowRayQueryCheckRelease())
998+
{
999+
rayQueryReleaseIntrinsic->eraseFromParent();
1000+
rayQueryCheckIntrinsic->eraseFromParent();
1001+
1002+
// Remove the pair from the vector in case more Barriers or External
1003+
// calls are between them.
1004+
m_RayQueryCheckReleasePairs.erase(m_RayQueryCheckReleasePairs.begin() + rayQueryCheckReleasePairIndex);
1005+
1006+
break;
1007+
}
1008+
9961009
// The barrier/call instruction is within the RayQueryCheck-Release pair.
9971010
// Insert RayQueryRelease before it, and RaytQueryCheck after, to re-enable
9981011
// Dynamic Ray Management.

0 commit comments

Comments
 (0)