@@ -6197,6 +6197,77 @@ Value *TranslateMaybeReorderThread(CallInst *CI, IntrinsicOp IOP,
6197
6197
bool &Translated) {
6198
6198
return nullptr ; // TODO: Merge SER DXIL patches
6199
6199
}
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
+
6200
6271
} // namespace
6201
6272
6202
6273
// Resource Handle.
@@ -6908,6 +6979,63 @@ IntrinsicLower gLowerTable[] = {
6908
6979
DXIL::OpCode::NumOpCodes},
6909
6980
{IntrinsicOp::MOP_GetBufferContents, UnsupportedVulkanIntrinsic,
6910
6981
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},
6911
7039
};
6912
7040
} // namespace
6913
7041
static_assert (
0 commit comments