[{"data":1,"prerenderedAt":775},["ShallowReactive",2],{"VClZg2BAkd":3},{"title":4,"description":5,"parent":6,"type":7,"xrefs":8,"body":9,"_type":774,"_id":4},"VkAccelerationStructureMatrixMotionInstanceNV","Structure specifying a single acceleration structure matrix motion instance for building into an acceleration structure geometry","VK_NV_ray_tracing_motion_blur","structs",[],{"type":10,"children":11,"toc":772},"root",[12,20,417,579,584,679,690,703,735,766],{"type":13,"tag":14,"props":15,"children":16},"element","p",{},[17],{"type":18,"value":19},"text","An acceleration structure matrix motion instance is defined by the\nstructure:",{"type":13,"tag":21,"props":22,"children":23},"code-group",{},[24,196],{"type":13,"tag":25,"props":26,"children":32},"pre",{"className":27,"code":28,"filename":29,"language":30,"meta":31,"style":31},"language-c shiki shiki-themes github-light-default github-dark-default","typedef struct VkAccelerationStructureMatrixMotionInstanceNV {\n // The bitfields in this structure are non-normative since bitfield ordering is implementation-defined in C. The specification defines the normative layout.;\n VkTransformMatrixKHR transformT0;\n VkTransformMatrixKHR transformT1;\n uint32_t instanceCustomIndex:24;\n uint32_t mask:8;\n uint32_t instanceShaderBindingTableRecordOffset:24;\n VkGeometryInstanceFlagsKHR flags:8;\n uint64_t accelerationStructureReference;\n} VkAccelerationStructureMatrixMotionInstanceNV;\n","C","c","",[33],{"type":13,"tag":34,"props":35,"children":36},"code",{"__ignoreMap":31},[37,60,70,79,88,113,135,156,173,187],{"type":13,"tag":38,"props":39,"children":42},"span",{"class":40,"line":41},"line",1,[43,49,54],{"type":13,"tag":38,"props":44,"children":46},{"style":45},"--shiki-default:#CF222E;--shiki-dark:#FF7B72",[47],{"type":18,"value":48},"typedef",{"type":13,"tag":38,"props":50,"children":51},{"style":45},[52],{"type":18,"value":53}," struct",{"type":13,"tag":38,"props":55,"children":57},{"style":56},"--shiki-default:#1F2328;--shiki-dark:#E6EDF3",[58],{"type":18,"value":59}," VkAccelerationStructureMatrixMotionInstanceNV {\n",{"type":13,"tag":38,"props":61,"children":63},{"class":40,"line":62},2,[64],{"type":13,"tag":38,"props":65,"children":67},{"style":66},"--shiki-default:#6E7781;--shiki-dark:#8B949E",[68],{"type":18,"value":69}," // The bitfields in this structure are non-normative since bitfield ordering is implementation-defined in C. The specification defines the normative layout.;\n",{"type":13,"tag":38,"props":71,"children":73},{"class":40,"line":72},3,[74],{"type":13,"tag":38,"props":75,"children":76},{"style":56},[77],{"type":18,"value":78}," VkTransformMatrixKHR transformT0;\n",{"type":13,"tag":38,"props":80,"children":82},{"class":40,"line":81},4,[83],{"type":13,"tag":38,"props":84,"children":85},{"style":56},[86],{"type":18,"value":87}," VkTransformMatrixKHR transformT1;\n",{"type":13,"tag":38,"props":89,"children":91},{"class":40,"line":90},5,[92,97,102,108],{"type":13,"tag":38,"props":93,"children":94},{"style":45},[95],{"type":18,"value":96}," uint32_t",{"type":13,"tag":38,"props":98,"children":99},{"style":56},[100],{"type":18,"value":101}," instanceCustomIndex:",{"type":13,"tag":38,"props":103,"children":105},{"style":104},"--shiki-default:#0550AE;--shiki-dark:#79C0FF",[106],{"type":18,"value":107},"24",{"type":13,"tag":38,"props":109,"children":110},{"style":56},[111],{"type":18,"value":112},";\n",{"type":13,"tag":38,"props":114,"children":116},{"class":40,"line":115},6,[117,121,126,131],{"type":13,"tag":38,"props":118,"children":119},{"style":45},[120],{"type":18,"value":96},{"type":13,"tag":38,"props":122,"children":123},{"style":56},[124],{"type":18,"value":125}," mask:",{"type":13,"tag":38,"props":127,"children":128},{"style":104},[129],{"type":18,"value":130},"8",{"type":13,"tag":38,"props":132,"children":133},{"style":56},[134],{"type":18,"value":112},{"type":13,"tag":38,"props":136,"children":138},{"class":40,"line":137},7,[139,143,148,152],{"type":13,"tag":38,"props":140,"children":141},{"style":45},[142],{"type":18,"value":96},{"type":13,"tag":38,"props":144,"children":145},{"style":56},[146],{"type":18,"value":147}," instanceShaderBindingTableRecordOffset:",{"type":13,"tag":38,"props":149,"children":150},{"style":104},[151],{"type":18,"value":107},{"type":13,"tag":38,"props":153,"children":154},{"style":56},[155],{"type":18,"value":112},{"type":13,"tag":38,"props":157,"children":159},{"class":40,"line":158},8,[160,165,169],{"type":13,"tag":38,"props":161,"children":162},{"style":56},[163],{"type":18,"value":164}," VkGeometryInstanceFlagsKHR flags:",{"type":13,"tag":38,"props":166,"children":167},{"style":104},[168],{"type":18,"value":130},{"type":13,"tag":38,"props":170,"children":171},{"style":56},[172],{"type":18,"value":112},{"type":13,"tag":38,"props":174,"children":176},{"class":40,"line":175},9,[177,182],{"type":13,"tag":38,"props":178,"children":179},{"style":45},[180],{"type":18,"value":181}," uint64_t",{"type":13,"tag":38,"props":183,"children":184},{"style":56},[185],{"type":18,"value":186}," accelerationStructureReference;\n",{"type":13,"tag":38,"props":188,"children":190},{"class":40,"line":189},10,[191],{"type":13,"tag":38,"props":192,"children":193},{"style":56},[194],{"type":18,"value":195},"} VkAccelerationStructureMatrixMotionInstanceNV;\n",{"type":13,"tag":25,"props":197,"children":202},{"className":198,"code":199,"filename":200,"language":201,"meta":31,"style":31},"language-rs shiki shiki-themes github-light-default github-dark-default","pub struct AccelerationStructureMatrixMotionInstanceNV {\n /// The bitfields in this structure are non-normative since bitfield ordering is implementation-defined in C. The specification defines the normative layout.\n transform_t0: vk::TransformMatrixKHR,\n transform_t1: vk::TransformMatrixKHR,\n instance_custom_index: u32,\n mask: u32,\n instance_shader_binding_table_record_offset: u32,\n flags: vk::GeometryInstanceFlagsKHR,\n acceleration_structure_reference: u64,\n}\n","Rust","rs",[203],{"type":13,"tag":34,"props":204,"children":205},{"__ignoreMap":31},[206,229,237,270,298,319,339,359,388,409],{"type":13,"tag":38,"props":207,"children":208},{"class":40,"line":41},[209,214,218,224],{"type":13,"tag":38,"props":210,"children":211},{"style":45},[212],{"type":18,"value":213},"pub",{"type":13,"tag":38,"props":215,"children":216},{"style":45},[217],{"type":18,"value":53},{"type":13,"tag":38,"props":219,"children":221},{"style":220},"--shiki-default:#953800;--shiki-dark:#FFA657",[222],{"type":18,"value":223}," AccelerationStructureMatrixMotionInstanceNV",{"type":13,"tag":38,"props":225,"children":226},{"style":56},[227],{"type":18,"value":228}," {\n",{"type":13,"tag":38,"props":230,"children":231},{"class":40,"line":62},[232],{"type":13,"tag":38,"props":233,"children":234},{"style":66},[235],{"type":18,"value":236}," /// The bitfields in this structure are non-normative since bitfield ordering is implementation-defined in C. The specification defines the normative layout.\n",{"type":13,"tag":38,"props":238,"children":239},{"class":40,"line":72},[240,245,250,255,260,265],{"type":13,"tag":38,"props":241,"children":242},{"style":56},[243],{"type":18,"value":244}," transform_t0",{"type":13,"tag":38,"props":246,"children":247},{"style":45},[248],{"type":18,"value":249},":",{"type":13,"tag":38,"props":251,"children":252},{"style":220},[253],{"type":18,"value":254}," vk",{"type":13,"tag":38,"props":256,"children":257},{"style":45},[258],{"type":18,"value":259},"::",{"type":13,"tag":38,"props":261,"children":262},{"style":220},[263],{"type":18,"value":264},"TransformMatrixKHR",{"type":13,"tag":38,"props":266,"children":267},{"style":56},[268],{"type":18,"value":269},",\n",{"type":13,"tag":38,"props":271,"children":272},{"class":40,"line":81},[273,278,282,286,290,294],{"type":13,"tag":38,"props":274,"children":275},{"style":56},[276],{"type":18,"value":277}," transform_t1",{"type":13,"tag":38,"props":279,"children":280},{"style":45},[281],{"type":18,"value":249},{"type":13,"tag":38,"props":283,"children":284},{"style":220},[285],{"type":18,"value":254},{"type":13,"tag":38,"props":287,"children":288},{"style":45},[289],{"type":18,"value":259},{"type":13,"tag":38,"props":291,"children":292},{"style":220},[293],{"type":18,"value":264},{"type":13,"tag":38,"props":295,"children":296},{"style":56},[297],{"type":18,"value":269},{"type":13,"tag":38,"props":299,"children":300},{"class":40,"line":90},[301,306,310,315],{"type":13,"tag":38,"props":302,"children":303},{"style":56},[304],{"type":18,"value":305}," instance_custom_index",{"type":13,"tag":38,"props":307,"children":308},{"style":45},[309],{"type":18,"value":249},{"type":13,"tag":38,"props":311,"children":312},{"style":220},[313],{"type":18,"value":314}," u32",{"type":13,"tag":38,"props":316,"children":317},{"style":56},[318],{"type":18,"value":269},{"type":13,"tag":38,"props":320,"children":321},{"class":40,"line":115},[322,327,331,335],{"type":13,"tag":38,"props":323,"children":324},{"style":56},[325],{"type":18,"value":326}," mask",{"type":13,"tag":38,"props":328,"children":329},{"style":45},[330],{"type":18,"value":249},{"type":13,"tag":38,"props":332,"children":333},{"style":220},[334],{"type":18,"value":314},{"type":13,"tag":38,"props":336,"children":337},{"style":56},[338],{"type":18,"value":269},{"type":13,"tag":38,"props":340,"children":341},{"class":40,"line":137},[342,347,351,355],{"type":13,"tag":38,"props":343,"children":344},{"style":56},[345],{"type":18,"value":346}," instance_shader_binding_table_record_offset",{"type":13,"tag":38,"props":348,"children":349},{"style":45},[350],{"type":18,"value":249},{"type":13,"tag":38,"props":352,"children":353},{"style":220},[354],{"type":18,"value":314},{"type":13,"tag":38,"props":356,"children":357},{"style":56},[358],{"type":18,"value":269},{"type":13,"tag":38,"props":360,"children":361},{"class":40,"line":158},[362,367,371,375,379,384],{"type":13,"tag":38,"props":363,"children":364},{"style":56},[365],{"type":18,"value":366}," flags",{"type":13,"tag":38,"props":368,"children":369},{"style":45},[370],{"type":18,"value":249},{"type":13,"tag":38,"props":372,"children":373},{"style":220},[374],{"type":18,"value":254},{"type":13,"tag":38,"props":376,"children":377},{"style":45},[378],{"type":18,"value":259},{"type":13,"tag":38,"props":380,"children":381},{"style":220},[382],{"type":18,"value":383},"GeometryInstanceFlagsKHR",{"type":13,"tag":38,"props":385,"children":386},{"style":56},[387],{"type":18,"value":269},{"type":13,"tag":38,"props":389,"children":390},{"class":40,"line":175},[391,396,400,405],{"type":13,"tag":38,"props":392,"children":393},{"style":56},[394],{"type":18,"value":395}," acceleration_structure_reference",{"type":13,"tag":38,"props":397,"children":398},{"style":45},[399],{"type":18,"value":249},{"type":13,"tag":38,"props":401,"children":402},{"style":220},[403],{"type":18,"value":404}," u64",{"type":13,"tag":38,"props":406,"children":407},{"style":56},[408],{"type":18,"value":269},{"type":13,"tag":38,"props":410,"children":411},{"class":40,"line":189},[412],{"type":13,"tag":38,"props":413,"children":414},{"style":56},[415],{"type":18,"value":416},"}\n",{"type":13,"tag":418,"props":419,"children":420},"ul",{},[421,442,458,477,501,512,531],{"type":13,"tag":422,"props":423,"children":424},"li",{},[425,431,433,440],{"type":13,"tag":34,"props":426,"children":428},{"className":427},[],[429],{"type":18,"value":430},"transformT0",{"type":18,"value":432}," is a ",{"type":13,"tag":434,"props":435,"children":437},"a",{"href":436},"/man/VkTransformMatrixKHR",[438],{"type":18,"value":439},"VkTransformMatrixKHR",{"type":18,"value":441}," structure describing a\ntransformation to be applied to the acceleration structure at time 0.",{"type":13,"tag":422,"props":443,"children":444},{},[445,451,452,456],{"type":13,"tag":34,"props":446,"children":448},{"className":447},[],[449],{"type":18,"value":450},"transformT1",{"type":18,"value":432},{"type":13,"tag":434,"props":453,"children":454},{"href":436},[455],{"type":18,"value":439},{"type":18,"value":457}," structure describing a\ntransformation to be applied to the acceleration structure at time 1.",{"type":13,"tag":422,"props":459,"children":460},{},[461,467,469,475],{"type":13,"tag":34,"props":462,"children":464},{"className":463},[],[465],{"type":18,"value":466},"instanceCustomIndex",{"type":18,"value":468}," is a 24-bit application-specified index value\naccessible to ray shaders in the ",{"type":13,"tag":34,"props":470,"children":472},{"className":471},[],[473],{"type":18,"value":474},"InstanceCustomIndexKHR",{"type":18,"value":476}," built-in.",{"type":13,"tag":422,"props":478,"children":479},{},[480,486,488,493,495],{"type":13,"tag":34,"props":481,"children":483},{"className":482},[],[484],{"type":18,"value":485},"mask",{"type":18,"value":487}," is an 8-bit visibility mask for the geometry.\nThe instance ",{"type":13,"tag":489,"props":490,"children":492},"normative",{"type":491},"may",[],{"type":18,"value":494}," only be hit if ",{"type":13,"tag":34,"props":496,"children":498},{"className":497},[],[499],{"type":18,"value":500},"Cull Mask & instance.mask != 0",{"type":13,"tag":422,"props":502,"children":503},{},[504,510],{"type":13,"tag":34,"props":505,"children":507},{"className":506},[],[508],{"type":18,"value":509},"instanceShaderBindingTableRecordOffset",{"type":18,"value":511}," is a 24-bit offset used in\ncalculating the hit shader binding table index.",{"type":13,"tag":422,"props":513,"children":514},{},[515,521,523,529],{"type":13,"tag":34,"props":516,"children":518},{"className":517},[],[519],{"type":18,"value":520},"flags",{"type":18,"value":522}," is an 8-bit mask of ",{"type":13,"tag":434,"props":524,"children":526},{"href":525},"/man/VkGeometryInstanceFlagBitsKHR",[527],{"type":18,"value":528},"VkGeometryInstanceFlagBitsKHR",{"type":18,"value":530},"\nvalues to apply to this instance.",{"type":13,"tag":422,"props":532,"children":533},{},[534,540,542],{"type":13,"tag":34,"props":535,"children":537},{"className":536},[],[538],{"type":18,"value":539},"accelerationStructureReference",{"type":18,"value":541}," is either:",{"type":13,"tag":418,"props":543,"children":544},{},[545,566],{"type":13,"tag":422,"props":546,"children":547},{},[548,550,556,558,564],{"type":18,"value":549},"a device address containing the value obtained from\n",{"type":13,"tag":434,"props":551,"children":553},{"href":552},"/man/vkGetAccelerationStructureDeviceAddressKHR",[554],{"type":18,"value":555},"vkGetAccelerationStructureDeviceAddressKHR",{"type":18,"value":557},"\nor\n",{"type":13,"tag":434,"props":559,"children":561},{"href":560},"/man/vkGetAccelerationStructureHandleNV",[562],{"type":18,"value":563},"vkGetAccelerationStructureHandleNV",{"type":18,"value":565},"\n(used by device operations which reference acceleration structures) or,",{"type":13,"tag":422,"props":567,"children":568},{},[569,571,577],{"type":18,"value":570},"a ",{"type":13,"tag":434,"props":572,"children":574},{"href":573},"/man/VkAccelerationStructureKHR",[575],{"type":18,"value":576},"VkAccelerationStructureKHR",{"type":18,"value":578}," object (used by host operations\nwhich reference acceleration structures).",{"type":13,"tag":14,"props":580,"children":581},{},[582],{"type":18,"value":583},"The C language specification does not define the ordering of bit-fields, but\nin practice, this struct produces the correct layout with existing\ncompilers.\nThe intended bit pattern is for the following:",{"type":13,"tag":418,"props":585,"children":586},{},[587,635],{"type":13,"tag":422,"props":588,"children":589},{},[590,595,597,602,604,610,612],{"type":13,"tag":34,"props":591,"children":593},{"className":592},[],[594],{"type":18,"value":466},{"type":18,"value":596}," and ",{"type":13,"tag":34,"props":598,"children":600},{"className":599},[],[601],{"type":18,"value":485},{"type":18,"value":603}," occupy the same memory as if a\nsingle ",{"type":13,"tag":34,"props":605,"children":607},{"className":606},[],[608],{"type":18,"value":609},"uint32_t",{"type":18,"value":611}," was specified in their place",{"type":13,"tag":418,"props":613,"children":614},{},[615,625],{"type":13,"tag":422,"props":616,"children":617},{},[618,623],{"type":13,"tag":34,"props":619,"children":621},{"className":620},[],[622],{"type":18,"value":466},{"type":18,"value":624}," occupies the 24 least significant bits of\nthat memory",{"type":13,"tag":422,"props":626,"children":627},{},[628,633],{"type":13,"tag":34,"props":629,"children":631},{"className":630},[],[632],{"type":18,"value":485},{"type":18,"value":634}," occupies the 8 most significant bits of that memory",{"type":13,"tag":422,"props":636,"children":637},{},[638,643,644,649,651,656,657],{"type":13,"tag":34,"props":639,"children":641},{"className":640},[],[642],{"type":18,"value":509},{"type":18,"value":596},{"type":13,"tag":34,"props":645,"children":647},{"className":646},[],[648],{"type":18,"value":520},{"type":18,"value":650}," occupy the\nsame memory as if a single ",{"type":13,"tag":34,"props":652,"children":654},{"className":653},[],[655],{"type":18,"value":609},{"type":18,"value":611},{"type":13,"tag":418,"props":658,"children":659},{},[660,670],{"type":13,"tag":422,"props":661,"children":662},{},[663,668],{"type":13,"tag":34,"props":664,"children":666},{"className":665},[],[667],{"type":18,"value":509},{"type":18,"value":669}," occupies the 24 least\nsignificant bits of that memory",{"type":13,"tag":422,"props":671,"children":672},{},[673,678],{"type":13,"tag":34,"props":674,"children":676},{"className":675},[],[677],{"type":18,"value":520},{"type":18,"value":634},{"type":13,"tag":14,"props":680,"children":681},{},[682,684,688],{"type":18,"value":683},"If a compiler produces code that diverges from that pattern, applications\n",{"type":13,"tag":489,"props":685,"children":687},{"type":686},"must",[],{"type":18,"value":689}," employ another method to set values according to the correct bit\npattern.",{"type":13,"tag":14,"props":691,"children":692},{},[693,695,701],{"type":18,"value":694},"The transform for a matrix motion instance at a point in time is derived by\ncomponent-wise linear interpolation of the two transforms.\nThat is, for a ",{"type":13,"tag":34,"props":696,"children":698},{"className":697},[],[699],{"type":18,"value":700},"time",{"type":18,"value":702}," in [0,1] the resulting transform is",{"type":13,"tag":418,"props":704,"children":705},{},[706],{"type":13,"tag":422,"props":707,"children":708},{},[709,714,716,721,723,728,730],{"type":13,"tag":34,"props":710,"children":712},{"className":711},[],[713],{"type":18,"value":430},{"type":18,"value":715}," × (1 - ",{"type":13,"tag":34,"props":717,"children":719},{"className":718},[],[720],{"type":18,"value":700},{"type":18,"value":722},") +\n",{"type":13,"tag":34,"props":724,"children":726},{"className":725},[],[727],{"type":18,"value":450},{"type":18,"value":729}," × ",{"type":13,"tag":34,"props":731,"children":733},{"className":732},[],[734],{"type":18,"value":700},{"type":13,"tag":736,"props":737,"children":739},"validity-group",{"name":738},"Valid Usage (Implicit)",[740],{"type":13,"tag":741,"props":742,"children":744},"validity-field",{"name":743},"VUID-VkAccelerationStructureMatrixMotionInstanceNV-flags-parameter",[745],{"type":13,"tag":14,"props":746,"children":747},{},[748,753,755,758,760,764],{"type":13,"tag":34,"props":749,"children":751},{"className":750},[],[752],{"type":18,"value":520},{"type":18,"value":754}," ",{"type":13,"tag":489,"props":756,"children":757},{"type":686},[],{"type":18,"value":759}," be a valid combination of ",{"type":13,"tag":434,"props":761,"children":762},{"href":525},[763],{"type":18,"value":528},{"type":18,"value":765}," values",{"type":13,"tag":767,"props":768,"children":769},"style",{},[770],{"type":18,"value":771},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":31,"searchDepth":62,"depth":62,"links":773},[],"markdown",1725732537709]