Vulkan: Emulated RGB copies in compute
The copy between emulated RGB formats can take a number of paths:
- Sample from src (reinterpreted as UINT), output to dst
- Sample from src, output to temp buffer, copy to dst
- Copy src to temp buffer, output to dst
- Copy src to temp buffer, convert to another temp buffer, copy to dst
While directly sampling from src and outputting to dst is more
efficient, these are not always possible. The former may not have
SAMPLED_IMAGE usage bit for the reinterpreted UINT format, and the
latter may not have STORAGE_IMAGE usage at all.
This change takes the universal approach of using two temp buffers. The
ConvertVertex shader is used to transform between RGB and RGBA when
copying from the first temp buffer to the second.
Bug: angleproject:5278
Change-Id: I63d916cfdb4c389f5b817d89cd7348fdea703ce5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2556467
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by:
Tim Van Patten <timvp@google.com>
Reviewed-by:
Jamie Madill <jmadill@chromium.org>
Reviewed-by:
Brandon Schade <b.schade@samsung.com>
Showing
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
Please
register
or
sign in
to comment