@@ -6197,6 +6197,77 @@ Value *TranslateMaybeReorderThread(CallInst *CI, IntrinsicOp IOP,
61976197 bool &Translated) {
61986198 return nullptr ; // TODO: Merge SER DXIL patches
61996199}
6200+
6201+ Value *TranslateHitObjectFromRayQuery (CallInst *CI, IntrinsicOp IOP,
6202+ OP::OpCode OpCode,
6203+ HLOperationLowerHelper &Helper,
6204+ HLObjectOperationLowerHelper *pObjHelper,
6205+ bool &Translated) {
6206+ return UndefValue::get (CI->getType ()); // TODO: Merge SER DXIL patches
6207+ }
6208+
6209+ Value *TranslateHitObjectTraceRay (CallInst *CI, IntrinsicOp IOP,
6210+ OP::OpCode OpCode,
6211+ HLOperationLowerHelper &Helper,
6212+ HLObjectOperationLowerHelper *pObjHelper,
6213+ bool &Translated) {
6214+ return UndefValue::get (CI->getType ()); // TODO: Merge SER DXIL patches
6215+ }
6216+
6217+ Value *TranslateHitObjectInvoke (CallInst *CI, IntrinsicOp IOP,
6218+ OP::OpCode OpCode,
6219+ HLOperationLowerHelper &Helper,
6220+ HLObjectOperationLowerHelper *pObjHelper,
6221+ bool &Translated) {
6222+ return nullptr ; // TODO: Merge SER DXIL patches
6223+ }
6224+
6225+ Value *TranslateHitObjectGetAttributes (CallInst *CI, IntrinsicOp IOP,
6226+ OP::OpCode OpCode,
6227+ HLOperationLowerHelper &Helper,
6228+ HLObjectOperationLowerHelper *pObjHelper,
6229+ bool &Translated) {
6230+ return UndefValue::get (CI->getType ()); // TODO: Merge SER DXIL patches
6231+ }
6232+
6233+ Value *TranslateHitObjectScalarGetter (CallInst *CI, IntrinsicOp IOP,
6234+ OP::OpCode OpCode,
6235+ HLOperationLowerHelper &Helper,
6236+ HLObjectOperationLowerHelper *pObjHelper,
6237+ bool &Translated) {
6238+ return UndefValue::get (CI->getType ()); // TODO: Merge SER DXIL patches
6239+ }
6240+
6241+ Value *TranslateHitObjectVectorGetter (CallInst *CI, IntrinsicOp IOP,
6242+ OP::OpCode OpCode,
6243+ HLOperationLowerHelper &Helper,
6244+ HLObjectOperationLowerHelper *pObjHelper,
6245+ bool &Translated) {
6246+ return UndefValue::get (CI->getType ()); // TODO: Merge SER DXIL patches
6247+ }
6248+
6249+ Value *TranslateHitObjectMatrixGetter (CallInst *CI, IntrinsicOp IOP,
6250+ OP::OpCode OpCode,
6251+ HLOperationLowerHelper &Helper,
6252+ HLObjectOperationLowerHelper *pObjHelper,
6253+ bool &Translated) {
6254+ return UndefValue::get (CI->getType ()); // TODO: Merge SER DXIL patches
6255+ }
6256+
6257+ Value *TranslateHitObjectLoadLocalRootTableConstant (
6258+ CallInst *CI, IntrinsicOp IOP, OP::OpCode OpCode,
6259+ HLOperationLowerHelper &Helper, HLObjectOperationLowerHelper *pObjHelper,
6260+ bool &Translated) {
6261+ return UndefValue::get (CI->getType ()); // TODO: Merge SER DXIL patches
6262+ }
6263+
6264+ Value *TranslateHitObjectSetShaderTableIndex (
6265+ CallInst *CI, IntrinsicOp IOP, OP::OpCode OpCode,
6266+ HLOperationLowerHelper &Helper, HLObjectOperationLowerHelper *pObjHelper,
6267+ bool &Translated) {
6268+ return UndefValue::get (CI->getType ()); // TODO: Merge SER DXIL patches
6269+ }
6270+
62006271} // namespace
62016272
62026273// Resource Handle.
@@ -6908,6 +6979,63 @@ IntrinsicLower gLowerTable[] = {
69086979 DXIL::OpCode::NumOpCodes},
69096980 {IntrinsicOp::MOP_GetBufferContents, UnsupportedVulkanIntrinsic,
69106981 DXIL::OpCode::NumOpCodes},
6982+ {IntrinsicOp::MOP_DxHitObject_FromRayQuery, TranslateHitObjectFromRayQuery,
6983+ DXIL::OpCode::HitObject_FromRayQuery},
6984+ {IntrinsicOp::MOP_DxHitObject_GetAttributes,
6985+ TranslateHitObjectGetAttributes, DXIL::OpCode::HitObject_Attributes},
6986+ {IntrinsicOp::MOP_DxHitObject_GetGeometryIndex,
6987+ TranslateHitObjectScalarGetter, DXIL::OpCode::HitObject_GeometryIndex},
6988+ {IntrinsicOp::MOP_DxHitObject_GetHitKind, TranslateHitObjectScalarGetter,
6989+ DXIL::OpCode::HitObject_HitKind},
6990+ {IntrinsicOp::MOP_DxHitObject_GetInstanceID, TranslateHitObjectScalarGetter,
6991+ DXIL::OpCode::HitObject_InstanceID},
6992+ {IntrinsicOp::MOP_DxHitObject_GetInstanceIndex,
6993+ TranslateHitObjectScalarGetter, DXIL::OpCode::HitObject_InstanceIndex},
6994+ {IntrinsicOp::MOP_DxHitObject_GetObjectRayDirection,
6995+ TranslateHitObjectVectorGetter,
6996+ DXIL::OpCode::HitObject_ObjectRayDirection},
6997+ {IntrinsicOp::MOP_DxHitObject_GetObjectRayOrigin,
6998+ TranslateHitObjectVectorGetter, DXIL::OpCode::HitObject_ObjectRayOrigin},
6999+ {IntrinsicOp::MOP_DxHitObject_GetObjectToWorld3x4,
7000+ TranslateHitObjectMatrixGetter, DXIL::OpCode::HitObject_ObjectToWorld3x4},
7001+ {IntrinsicOp::MOP_DxHitObject_GetObjectToWorld4x3,
7002+ TranslateHitObjectMatrixGetter, DXIL::OpCode::HitObject_ObjectToWorld3x4},
7003+ {IntrinsicOp::MOP_DxHitObject_GetPrimitiveIndex,
7004+ TranslateHitObjectScalarGetter, DXIL::OpCode::HitObject_PrimitiveIndex},
7005+ {IntrinsicOp::MOP_DxHitObject_GetRayFlags, TranslateHitObjectScalarGetter,
7006+ DXIL::OpCode::HitObject_RayFlags},
7007+ {IntrinsicOp::MOP_DxHitObject_GetRayTCurrent,
7008+ TranslateHitObjectScalarGetter, DXIL::OpCode::HitObject_RayTCurrent},
7009+ {IntrinsicOp::MOP_DxHitObject_GetRayTMin, TranslateHitObjectScalarGetter,
7010+ DXIL::OpCode::HitObject_RayTMin},
7011+ {IntrinsicOp::MOP_DxHitObject_GetShaderTableIndex,
7012+ TranslateHitObjectScalarGetter, DXIL::OpCode::HitObject_ShaderTableIndex},
7013+ {IntrinsicOp::MOP_DxHitObject_GetWorldRayDirection,
7014+ TranslateHitObjectVectorGetter, DXIL::OpCode::HitObject_WorldRayDirection},
7015+ {IntrinsicOp::MOP_DxHitObject_GetWorldRayOrigin,
7016+ TranslateHitObjectVectorGetter, DXIL::OpCode::HitObject_WorldRayOrigin},
7017+ {IntrinsicOp::MOP_DxHitObject_GetWorldToObject3x4,
7018+ TranslateHitObjectMatrixGetter, DXIL::OpCode::HitObject_WorldToObject3x4},
7019+ {IntrinsicOp::MOP_DxHitObject_GetWorldToObject4x3,
7020+ TranslateHitObjectMatrixGetter, DXIL::OpCode::HitObject_WorldToObject3x4},
7021+ {IntrinsicOp::MOP_DxHitObject_Invoke, TranslateHitObjectInvoke,
7022+ DXIL::OpCode::HitObject_Invoke},
7023+ {IntrinsicOp::MOP_DxHitObject_IsHit, TranslateHitObjectScalarGetter,
7024+ DXIL::OpCode::HitObject_IsHit},
7025+ {IntrinsicOp::MOP_DxHitObject_IsMiss, TranslateHitObjectScalarGetter,
7026+ DXIL::OpCode::HitObject_IsMiss},
7027+ {IntrinsicOp::MOP_DxHitObject_IsNop, TranslateHitObjectScalarGetter,
7028+ DXIL::OpCode::HitObject_IsNop},
7029+ {IntrinsicOp::MOP_DxHitObject_LoadLocalRootTableConstant,
7030+ TranslateHitObjectLoadLocalRootTableConstant,
7031+ DXIL::OpCode::HitObject_LoadLocalRootTableConstant},
7032+ {IntrinsicOp::MOP_DxHitObject_MakeMiss, TranslateHitObjectMake,
7033+ DXIL::OpCode::HitObject_MakeMiss},
7034+ {IntrinsicOp::MOP_DxHitObject_SetShaderTableIndex,
7035+ TranslateHitObjectSetShaderTableIndex,
7036+ DXIL::OpCode::HitObject_SetShaderTableIndex},
7037+ {IntrinsicOp::MOP_DxHitObject_TraceRay, TranslateHitObjectTraceRay,
7038+ DXIL::OpCode::HitObject_TraceRay},
69117039};
69127040} // namespace
69137041static_assert (
0 commit comments