[PATCH] wined3d: Avoid read-to-read resource barriers.

Henri Verbeet hverbeet at gmail.com
Fri Aug 20 02:51:24 CDT 2021


On Thu, 19 Aug 2021 at 10:56, Jan Sikorski <jsikorski at codeweavers.com> wrote:
> We can generally skip them, but make sure that subsequent barriers
> synchronize with all accumulated usages.
>
Is that safe? I don't much doubt that this should work in practice on
common desktop GPUs, but what does the spec say? In particular, I'd be
a little concerned that e.g. VK_PIPELINE_STAGE_VERTEX_INPUT_BIT
barriers may not guarantee visibility to e.g. fragment stages.

> +static inline bool vk_access_mask_is_read_only(VkAccessFlags flags)
> +{
> +    static const VkAccessFlags read_flags =
> +            VK_ACCESS_INDIRECT_COMMAND_READ_BIT | VK_ACCESS_INDEX_READ_BIT | VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT |
> +            VK_ACCESS_UNIFORM_READ_BIT | VK_ACCESS_INPUT_ATTACHMENT_READ_BIT | VK_ACCESS_SHADER_READ_BIT |
> +            VK_ACCESS_COLOR_ATTACHMENT_READ_BIT | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT |
> +            VK_ACCESS_TRANSFER_READ_BIT | VK_ACCESS_HOST_READ_BIT | VK_ACCESS_MEMORY_READ_BIT |
> +            VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV | VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT |
> +            VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT | VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR |
> +            VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR | VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT |
> +            VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT;
> +
> +    return (flags & read_flags) == flags;
> +}
> +
We typically break lines before operators, not after.



More information about the wine-devel mailing list