Is there a way to improperly implement these until vulkan has support? It might make games like halo work, even if it slows down the game a bit.
Maybe relevant
What exactly is that link supposed to help with? We do support simple indirect draws and dispatches, as well as indirect multidraw with indirect draw count, but not stuff like indirect vertex buffers because there is no corresponding Vulkan feature other than an Nvidia vendor extension.
indirect vertex buffers
Ah my bad i misunderstood the initial comment! I thought indirect rendering wasn't supported.
For anyone who missed it: #923 has a prototype for this based on the Nvidia vendor extension.
Is there any information regarding AMD support?
For anyone who missed it: #923 has a prototype for this based on the Nvidia vendor extension.
For the people coming from the Halo Infinite issue thread - This doesn't appear to help with Halo Infinite yet. Crashes immediately after the initial loading spinner.
Nvidia 1080Ti, 470.74 drivers (stable, not vulkan beta)
Any idea if the newly-released Vulkan 1.3 has anything that could help with this?
Any idea if the newly-released Vulkan 1.3 has anything that could help with this?
Probably not. I don't see any mention in the api docs of "indirect vertex buffers" like the above conversation suggests has been missing from Vulkan. Someone more proficient in reading specifications would have to confirm this, though.
See:
Vulkan 1.3 doesn't have any new features or extensions. It just moves existing extensions into the core API. VKD3D-Proton already uses many of those extensions so it pretty much already uses Vulkan 1.3.
It can be implemented using VK_NV_device_generated_commands and there's a WIP implementation using that in PR 923. It doesn't really work yet due to driver issues though.
Hi, just to know:
- Adds an optional new indirect ray tracing dispatch command,
flink:vkCmdTraceRaysIndirect2KHR, which sources the shader binding table
parameters as well as the dispatch dimensions from the device.
The <<features-rayTracingPipelineTraceRaysIndirect2,
pname:rayTracingPipelineTraceRaysIndirect2>> feature indicates whether
this functionality is supported.
Is this related?
Not to this issue but it's required for VKD3D-Proton to be able to implement DirectX Ray Tracing 1.1.
Ah yes , thank you. Not indirect rendering, sorry I misread. So stuff like CP2077 will start working again hopefully?
This is implemented in 2.7.
Nothing extracted yet.
Halo Infinite appears to use D3D12 indirect rendering features that aren't supported by Vulkan (as far as I know).
7eb4:fixme:d3d12_command_list_ExecuteIndirect: Ignoring unhandled argument type 0x6.7eb4:fixme:d3d12_command_list_ExecuteIndirect: Ignoring unhandled argument type 0x4.Argument type 6 is
D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW.Argument type 4 is
D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW.