Skip to content

Commit 194a999

Browse files
sys-igcigcbot
authored andcommitted
[Autobackout][FunctionalRegression]Revert of change: aebad78: Add getPrimitiveIndexDelta
Add getPrimitiveIndexDelta and minor refactor.
1 parent d2b63c1 commit 194a999

File tree

3 files changed

+18
-30
lines changed

3 files changed

+18
-30
lines changed

IGC/AdaptorCommon/RayTracing/AutoGenRTStackAccessPrivateOS.h

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1479,16 +1479,6 @@ auto* _getGeometryIndex_Xe(Value* arg_0, Value* arg_1, Value* arg_2, const Twine
14791479
return V_18;
14801480
}
14811481

1482-
auto* _getPrimitiveIndexDelta_Xe(Value* arg_0, Value* arg_1, const Twine& _ReturnName = "")
1483-
{
1484-
auto* V_2 = CreateInBoundsGEP(_struct_RTStackFormat__RTStack(*Ctx.getModule()), arg_0, { getInt64(0), getInt32(0), getInt32(3) });
1485-
auto* V_3 = CreateInBoundsGEP(_struct_RTStackFormat__RTStack(*Ctx.getModule()), arg_0, { getInt64(0), getInt32(1), getInt32(3) });
1486-
auto* V_4 = CreateSelect(arg_1, V_2, V_3);
1487-
auto* V_5 = CreateLoad(getInt32Ty(), V_4);
1488-
auto* V_6 = CreateAnd(V_5, getInt32(65535), _ReturnName);
1489-
return V_6;
1490-
}
1491-
14921482
void _createPotentialHit2CommittedHit_Xe(Value* arg_0)
14931483
{
14941484
auto* V_1 = CreateInBoundsGEP(_struct_RTStackFormat__RTStack(*Ctx.getModule()), arg_0, { getInt64(0), getInt32(1), getInt32(0) });

IGC/AdaptorCommon/RayTracing/RTBuilder.cpp

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ using namespace llvm;
4141
using namespace RTStackFormat;
4242
using namespace IGC;
4343

44-
4544
namespace {
4645
class VAdapt
4746
{
@@ -872,11 +871,11 @@ Value* RTBuilder::getPrimitiveIndex(
872871
}
873872
}
874873

875-
Value* RTBuilder::getPrimitiveIndex(
874+
PHINode* RTBuilder::getPrimitiveIndex(
876875
RTBuilder::StackPointerVal* perLaneStackPtr, Value* leafType, bool Committed)
877876
{
878-
switch (getMemoryStyle())
879-
{
877+
switch (getMemoryStyle())
878+
{
880879
#define STYLE(X) \
881880
case RTMemoryStyle::X: \
882881
return _getPrimitiveIndex_##X( \
@@ -886,12 +885,11 @@ Value* RTBuilder::getPrimitiveIndex(
886885
VALUE_NAME("primitiveIndex"));
887886
#include "RayTracingMemoryStyle.h"
888887
#undef STYLE
889-
}
890-
IGC_ASSERT(0);
891-
return nullptr;
888+
}
889+
IGC_ASSERT(0);
890+
return {};
892891
}
893892

894-
895893
Value* RTBuilder::getGeometryIndex(
896894
RTBuilder::StackPointerVal* perLaneStackPtr,
897895
Instruction* I,
@@ -906,36 +904,37 @@ Value* RTBuilder::getGeometryIndex(
906904
auto [ValidBB, PN] =
907905
validateInstanceLeafPtr(perLaneStackPtr, I, (ShaderTy == CallableShaderTypeMD::ClosestHit));
908906
this->SetInsertPoint(ValidBB->getTerminator());
909-
Value* validGeomIndex = getGeometryIndex(perLaneStackPtr, leafType, ShaderTy == CallableShaderTypeMD::ClosestHit);
907+
Value* validGeomIndex = getGeometryIndex(perLaneStackPtr, &*BB->rbegin(), leafType, ShaderTy);
910908
PN->addIncoming(validGeomIndex, getUnsetPhiBlock(PN));
911909
this->SetInsertPoint(I);
912910
return PN;
913911
}
914912
else
915913
{
916-
return getGeometryIndex(perLaneStackPtr, leafType, ShaderTy == CallableShaderTypeMD::ClosestHit);
914+
return getGeometryIndex(perLaneStackPtr, I, leafType, ShaderTy);
917915
}
918916
}
919917

920918
Value* RTBuilder::getGeometryIndex(
921919
RTBuilder::StackPointerVal* perLaneStackPtr,
920+
Instruction* I,
922921
Value* leafType,
923-
bool committed)
922+
IGC::CallableShaderTypeMD ShaderTy)
924923
{
925-
switch (getMemoryStyle())
926-
{
924+
switch (getMemoryStyle())
925+
{
927926
#define STYLE(X) \
928927
case RTMemoryStyle::X: \
929928
return _getGeometryIndex_##X( \
930929
perLaneStackPtr, \
931930
leafType, \
932-
VAdapt{ *this, committed }, \
931+
VAdapt{ *this, ShaderTy == ClosestHit }, \
933932
VALUE_NAME("geometryIndex"));
934933
#include "RayTracingMemoryStyle.h"
935934
#undef STYLE
936-
}
937-
IGC_ASSERT(0);
938-
return nullptr;
935+
}
936+
IGC_ASSERT(0);
937+
return {};
939938
}
940939

941940
Value* RTBuilder::getInstanceContributionToHitGroupIndex(

IGC/AdaptorCommon/RayTracing/RTBuilder.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ class RTBuilder : public IGCIRBuilder<>
5757
//TODO: this is hardcoded string, we might want to put all "printf" of different adaptors to one place eventually
5858
static constexpr char *PrintfFuncName = "printf";
5959

60-
6160
bool isChildOfXe2 = false;
6261

6362
// Field for explicit GlobalBufferPtr - used on OpenCL path.
@@ -401,8 +400,8 @@ class RTBuilder : public IGCIRBuilder<>
401400
Value* getRTStackSize(uint32_t Align);
402401
SyncStackPointerVal* getSyncStackPointer(Value* syncStackOffset, RTBuilder::RTMemoryAccessMode Mode);
403402
Value* getGeometryIndex(
404-
StackPointerVal* perLaneStackPtr, Value* leafType, bool committed);
405-
Value* getPrimitiveIndex(
403+
StackPointerVal* perLaneStackPtr, Instruction* I, Value* leafType, IGC::CallableShaderTypeMD ShaderTy);
404+
PHINode* getPrimitiveIndex(
406405
StackPointerVal* perLaneStackPtr, Value* leafType, bool Committed);
407406
Value* getInstanceIndex(
408407
StackPointerVal* perLaneStackPtr, IGC::CallableShaderTypeMD ShaderTy);

0 commit comments

Comments
 (0)