@@ -6293,6 +6293,77 @@ Value *TranslateMaybeReorderThread(CallInst *CI, IntrinsicOp IOP,
62936293 Type::getVoidTy (CI->getContext ()), CI, OP);
62946294 return nullptr ;
62956295}
6296+
6297+ Value *TranslateHitObjectFromRayQuery (CallInst *CI, IntrinsicOp IOP,
6298+ OP::OpCode OpCode,
6299+ HLOperationLowerHelper &Helper,
6300+ HLObjectOperationLowerHelper *pObjHelper,
6301+ bool &Translated) {
6302+ return UndefValue::get (CI->getType ()); // TODO: Merge SER DXIL patches
6303+ }
6304+
6305+ Value *TranslateHitObjectTraceRay (CallInst *CI, IntrinsicOp IOP,
6306+ OP::OpCode OpCode,
6307+ HLOperationLowerHelper &Helper,
6308+ HLObjectOperationLowerHelper *pObjHelper,
6309+ bool &Translated) {
6310+ return UndefValue::get (CI->getType ()); // TODO: Merge SER DXIL patches
6311+ }
6312+
6313+ Value *TranslateHitObjectInvoke (CallInst *CI, IntrinsicOp IOP,
6314+ OP::OpCode OpCode,
6315+ HLOperationLowerHelper &Helper,
6316+ HLObjectOperationLowerHelper *pObjHelper,
6317+ bool &Translated) {
6318+ return nullptr ; // TODO: Merge SER DXIL patches
6319+ }
6320+
6321+ Value *TranslateHitObjectGetAttributes (CallInst *CI, IntrinsicOp IOP,
6322+ OP::OpCode OpCode,
6323+ HLOperationLowerHelper &Helper,
6324+ HLObjectOperationLowerHelper *pObjHelper,
6325+ bool &Translated) {
6326+ return UndefValue::get (CI->getType ()); // TODO: Merge SER DXIL patches
6327+ }
6328+
6329+ Value *TranslateHitObjectScalarGetter (CallInst *CI, IntrinsicOp IOP,
6330+ OP::OpCode OpCode,
6331+ HLOperationLowerHelper &Helper,
6332+ HLObjectOperationLowerHelper *pObjHelper,
6333+ bool &Translated) {
6334+ return UndefValue::get (CI->getType ()); // TODO: Merge SER DXIL patches
6335+ }
6336+
6337+ Value *TranslateHitObjectVectorGetter (CallInst *CI, IntrinsicOp IOP,
6338+ OP::OpCode OpCode,
6339+ HLOperationLowerHelper &Helper,
6340+ HLObjectOperationLowerHelper *pObjHelper,
6341+ bool &Translated) {
6342+ return UndefValue::get (CI->getType ()); // TODO: Merge SER DXIL patches
6343+ }
6344+
6345+ Value *TranslateHitObjectMatrixGetter (CallInst *CI, IntrinsicOp IOP,
6346+ OP::OpCode OpCode,
6347+ HLOperationLowerHelper &Helper,
6348+ HLObjectOperationLowerHelper *pObjHelper,
6349+ bool &Translated) {
6350+ return UndefValue::get (CI->getType ()); // TODO: Merge SER DXIL patches
6351+ }
6352+
6353+ Value *TranslateHitObjectLoadLocalRootTableConstant (
6354+ CallInst *CI, IntrinsicOp IOP, OP::OpCode OpCode,
6355+ HLOperationLowerHelper &Helper, HLObjectOperationLowerHelper *pObjHelper,
6356+ bool &Translated) {
6357+ return UndefValue::get (CI->getType ()); // TODO: Merge SER DXIL patches
6358+ }
6359+
6360+ Value *TranslateHitObjectSetShaderTableIndex (
6361+ CallInst *CI, IntrinsicOp IOP, OP::OpCode OpCode,
6362+ HLOperationLowerHelper &Helper, HLObjectOperationLowerHelper *pObjHelper,
6363+ bool &Translated) {
6364+ return UndefValue::get (CI->getType ()); // TODO: Merge SER DXIL patches
6365+ }
6366+
62966367} // namespace
62976368
62986369// Resource Handle.
@@ -7002,8 +7073,63 @@ IntrinsicLower gLowerTable[] = {
70027073 DXIL::OpCode::NumOpCodes},
70037074 {IntrinsicOp::MOP_GetBufferContents, UnsupportedVulkanIntrinsic,
70047075 DXIL::OpCode::NumOpCodes},
7076+ {IntrinsicOp::MOP_DxHitObject_FromRayQuery, TranslateHitObjectFromRayQuery,
7077+ DXIL::OpCode::HitObject_FromRayQuery},
7078+ {IntrinsicOp::MOP_DxHitObject_GetAttributes,
7079+ TranslateHitObjectGetAttributes, DXIL::OpCode::HitObject_Attributes},
7080+ {IntrinsicOp::MOP_DxHitObject_GetGeometryIndex,
7081+ TranslateHitObjectScalarGetter, DXIL::OpCode::HitObject_GeometryIndex},
7082+ {IntrinsicOp::MOP_DxHitObject_GetHitKind, TranslateHitObjectScalarGetter,
7083+ DXIL::OpCode::HitObject_HitKind},
7084+ {IntrinsicOp::MOP_DxHitObject_GetInstanceID, TranslateHitObjectScalarGetter,
7085+ DXIL::OpCode::HitObject_InstanceID},
7086+ {IntrinsicOp::MOP_DxHitObject_GetInstanceIndex,
7087+ TranslateHitObjectScalarGetter, DXIL::OpCode::HitObject_InstanceIndex},
7088+ {IntrinsicOp::MOP_DxHitObject_GetObjectRayDirection,
7089+ TranslateHitObjectVectorGetter,
7090+ DXIL::OpCode::HitObject_ObjectRayDirection},
7091+ {IntrinsicOp::MOP_DxHitObject_GetObjectRayOrigin,
7092+ TranslateHitObjectVectorGetter, DXIL::OpCode::HitObject_ObjectRayOrigin},
7093+ {IntrinsicOp::MOP_DxHitObject_GetObjectToWorld3x4,
7094+ TranslateHitObjectMatrixGetter, DXIL::OpCode::HitObject_ObjectToWorld3x4},
7095+ {IntrinsicOp::MOP_DxHitObject_GetObjectToWorld4x3,
7096+ TranslateHitObjectMatrixGetter, DXIL::OpCode::HitObject_ObjectToWorld3x4},
7097+ {IntrinsicOp::MOP_DxHitObject_GetPrimitiveIndex,
7098+ TranslateHitObjectScalarGetter, DXIL::OpCode::HitObject_PrimitiveIndex},
7099+ {IntrinsicOp::MOP_DxHitObject_GetRayFlags, TranslateHitObjectScalarGetter,
7100+ DXIL::OpCode::HitObject_RayFlags},
7101+ {IntrinsicOp::MOP_DxHitObject_GetRayTCurrent,
7102+ TranslateHitObjectScalarGetter, DXIL::OpCode::HitObject_RayTCurrent},
7103+ {IntrinsicOp::MOP_DxHitObject_GetRayTMin, TranslateHitObjectScalarGetter,
7104+ DXIL::OpCode::HitObject_RayTMin},
7105+ {IntrinsicOp::MOP_DxHitObject_GetShaderTableIndex,
7106+ TranslateHitObjectScalarGetter, DXIL::OpCode::HitObject_ShaderTableIndex},
7107+ {IntrinsicOp::MOP_DxHitObject_GetWorldRayDirection,
7108+ TranslateHitObjectVectorGetter, DXIL::OpCode::HitObject_WorldRayDirection},
7109+ {IntrinsicOp::MOP_DxHitObject_GetWorldRayOrigin,
7110+ TranslateHitObjectVectorGetter, DXIL::OpCode::HitObject_WorldRayOrigin},
7111+ {IntrinsicOp::MOP_DxHitObject_GetWorldToObject3x4,
7112+ TranslateHitObjectMatrixGetter, DXIL::OpCode::HitObject_WorldToObject3x4},
7113+ {IntrinsicOp::MOP_DxHitObject_GetWorldToObject4x3,
7114+ TranslateHitObjectMatrixGetter, DXIL::OpCode::HitObject_WorldToObject3x4},
7115+ {IntrinsicOp::MOP_DxHitObject_Invoke, TranslateHitObjectInvoke,
7116+ DXIL::OpCode::HitObject_Invoke},
7117+ {IntrinsicOp::MOP_DxHitObject_IsHit, TranslateHitObjectScalarGetter,
7118+ DXIL::OpCode::HitObject_IsHit},
7119+ {IntrinsicOp::MOP_DxHitObject_IsMiss, TranslateHitObjectScalarGetter,
7120+ DXIL::OpCode::HitObject_IsMiss},
7121+ {IntrinsicOp::MOP_DxHitObject_IsNop, TranslateHitObjectScalarGetter,
7122+ DXIL::OpCode::HitObject_IsNop},
7123+ {IntrinsicOp::MOP_DxHitObject_LoadLocalRootTableConstant,
7124+ TranslateHitObjectLoadLocalRootTableConstant,
7125+ DXIL::OpCode::HitObject_LoadLocalRootTableConstant},
70057126 {IntrinsicOp::MOP_DxHitObject_MakeMiss, TranslateHitObjectMake,
70067127 DXIL::OpCode::HitObject_MakeMiss},
7128+ {IntrinsicOp::MOP_DxHitObject_SetShaderTableIndex,
7129+ TranslateHitObjectSetShaderTableIndex,
7130+ DXIL::OpCode::HitObject_SetShaderTableIndex},
7131+ {IntrinsicOp::MOP_DxHitObject_TraceRay, TranslateHitObjectTraceRay,
7132+ DXIL::OpCode::HitObject_TraceRay},
70077133};
70087134} // namespace
70097135static_assert (
0 commit comments