[PATCH vkd3d 1/3] vkd3d: Implement ID3D12GraphicsCommandList2::WriteBufferImmediate().

Conor McCarthy conor.mccarthy.444 at gmail.com
Fri Nov 8 10:49:07 CST 2019


Yes it looks like vkCmdUpdateBuffer is the best generic way. I haven't
really looked at doing more than this patch at the moment because the main
reason for it is to check if it fixes Hitman 2, which it doesn't. A more
general solution may still prove necessary though.

Conor


On Sat, 9 Nov 2019, 1:27 AM Philip Rebohle <philip.rebohle at tu-dortmund.de>
wrote:

> Hello,
>
> is it really necessary to use the AMD extension here?
>
> Maybe I'm overlooking something, but looking at the MSDN docs, it should
> be possible to make a vendor-neutral implementation using core Vulkan
> functionality (vkCmdUpdateBuffer), and to also support the in/out modes
> via barriers:
>
>    VkPipelineStageFlags src_stages = 0;
>
>    for (i = 0; i < Count; i++) {
>      if (pParams[i].Mode == MODE_MARKER_IN)
>        src_stages |= TOP_OF_PIPE_BIT;
>      else if (pParams[i].Mode == MODE_MARKER_OUT)
>        src_stages |= BOTTOM_OF_PIPE_BIT;
>    }
>
>    if (src_stages)
>      memory_barrier(src_stages, TRANSFER_BIT);
>
>    for (i = 0; i < Count; i++) {
>      update_buffer(...)
>
> - Philip
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20191109/e647f0b2/attachment.htm>


More information about the wine-devel mailing list