feat(vk): mesh-shader plumbing - *.mesh variants compile, a pointer call for commands the interposer lacks
ludic-dev shaders: a variant whose first file is *.mesh compiles that stage with glslang -S mesh for Vulkan 1.3, without the vertex stage's depth-remap wrapper or invariant gl_Position (a mesh shader writes an array of positions and remaps depth itself). Its SPIR-V keeps the .vert name, so the manifest and the loader are unchanged. The 51 existing programs build identical SPIR-V. runtime: lsl_call_piii(fn, ptr, i32, i32, i32) calls a command-buffer command through a pointer. NVIDIA Streamline's interposer exports no vkCmdDrawMeshTasksEXT, so it is to be looked up per device with vkGetDeviceProcAddr. Both runtimes assemble. Nothing uses either yet. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
762a74624c
commit
0224af64ab
3 changed files with 25 additions and 2 deletions
|
|
@ -182,3 +182,11 @@ entry:
|
|||
%r = call i32 %fn(i32 %a0, ptr %a1)
|
||||
ret i32 %r
|
||||
}
|
||||
|
||||
; a command-buffer command with three counts, through a pointer (vkCmdDrawMeshTasksEXT: the Streamline
|
||||
; interposer exports no such command, so it is looked up per device with vkGetDeviceProcAddr)
|
||||
define void @lsl_call_piii(ptr %fn, ptr %a0, i32 %a1, i32 %a2, i32 %a3) {
|
||||
entry:
|
||||
call void %fn(ptr %a0, i32 %a1, i32 %a2, i32 %a3)
|
||||
ret void
|
||||
}
|
||||
|
|
|
|||
|
|
@ -323,3 +323,11 @@ entry:
|
|||
%r = call i32 %fn(i32 %a0, ptr %a1)
|
||||
ret i32 %r
|
||||
}
|
||||
|
||||
; a command-buffer command with three counts, through a pointer (vkCmdDrawMeshTasksEXT: the Streamline
|
||||
; interposer exports no such command, so it is looked up per device with vkGetDeviceProcAddr)
|
||||
define void @lsl_call_piii(ptr %fn, ptr %a0, i32 %a1, i32 %a2, i32 %a3) {
|
||||
entry:
|
||||
call void %fn(ptr %a0, i32 %a1, i32 %a2, i32 %a3)
|
||||
ret void
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue